הרצת הסקה ב-Cloud TPU
הצגה היא תהליך הפריסה של מודל למידת מכונה מאומן בסביבת ייצור כדי להריץ הסקה. ב-TPU v5e ובגרסאות מתקדמות יותר יש תמיכה בהסקת מסקנות. כדי לטפל בעומסי עבודה, חשוב לעמוד ביעדים למדידת רמת השירות (SLO) של זמן האחזור.
במאמר הזה מוסבר איך להגיש מודל ב-TPU עם מארח יחיד. פרוסות TPU עם שמונה צ'יפים או פחות כוללות TPU VM או מארח אחד, והן נקראות TPU עם מארח יחיד. מידע נוסף על הסקת מסקנות בכמה מארחים באמצעות PyTorch זמין במאמרים vLLM-TorchTPU ו-SGLang-TorchTPU. במאמר הסקת מסקנות בכמה מארחים באמצעות Pathways מוסבר איך להסיק מסקנות בכמה מארחים באמצעות JAX.
הגדרת ה-TPU
לא משנה באיזה סטאק תבחרו, כדי להציג מודל צריך פרויקט עם TPU במארח יחיד. Google Cloud השלבים הבאים רלוונטיים לכל שילוב של ספרייה ו-framework:
- יוצרים פרויקט. כדי להשתמש ב-Cloud TPU, צריך חשבון ופרויקט ב- Google Cloud . מידע נוסף זמין במאמר הגדרת פרויקטGoogle Cloud ליחידות TPU.
בודקים את המכסה. חשוב לוודא שיש לכם מכסה מספקת למספר ליבות ה-TPU שאתם מתכננים להשתמש בהן להסקת מסקנות. ב-TPU v5e יש מכסות נפרדות לאימון ולהצגה. ב-Cloud TPU API, אלה המכסות הספציפיות להצגה של TPU v5e:
- משאבי v5e על פי דרישה:
TPU v5 lite pod cores for serving per project per zone - משאבי v5e שניתנים להפסקה לפני הזמן:
Preemptible TPU v5 lite pod cores for serving per project per zone
בגרסאות אחרות של TPU, עומסי העבודה של האימון וההצגה משתמשים באותה מכסה. מידע נוסף זמין במאמר מכסות של Cloud TPU.
- משאבי v5e על פי דרישה:
יוצרים TPU VM. בוחרים גרסת TPU ואזור עם קיבולת להצגת מודעות, ואז יוצרים TPU VM עם מארח יחיד. למידע נוסף, קראו את המאמרים אזורים וזונים של TPU וניהול משאבי TPU.
אחרי שה-TPU VM פועל, פועלים לפי מדריך ההגדרה של הספרייה והמסגרת בקטע בחירת סטאק להסקת מסקנות.
בחירת מחסנית הסקה
ב-Cloud TPU אפשר להסיק מסקנות ממודל שפה גדול (LLM) באמצעות שתי ספריות בקוד פתוח: vLLM ו-SGLang. שתי הספריות פועלות ב-Cloud TPU עם קצה עורפי של JAX או PyTorch, כך שאתם יכולים לבחור את הספרייה שהכי מתאימה לעומס העבודה שלכם, בלי קשר למסגרת שבה המודל כתוב.
קודם בוחרים את הספרייה ואז בוחרים את הקצה העורפי שתואם למסגרת של המודל, כמו שמוצג בטבלה הבאה:
| ספריית ההצגה | בק-אנד של JAX | בק-אנד של PyTorch |
|---|---|---|
| vLLM |
vllm-jax
|
vllm-torchtpu
|
| SGLang |
sglang-jax
|
sglang-torchtpu
|
הסקת מסקנות באמצעות vLLM
vLLM היא ספריית קוד פתוח להסקה מהירה ולהצגת מודלים גדולים של שפה (LLM), שמבוססת על עיבוד באצווה רציף ועל PagedAttention. אפשר להשתמש ב-Cloud TPU עם vLLM באמצעות הפלאגין vllm-jax למודלים של JAX והפלאגין vllm-torchtpu למודלים של PyTorch.
במקורות המידע הבאים תוכלו למצוא דוגמאות נוספות לשימוש ב-vLLM כדי להציג מודל ב-TPU:
- תחילת העבודה עם vLLM TPU
- הצגת מודל LLM באמצעות TPU Trillium ב-Google Kubernetes Engine עם vLLM
- מתכונים להצגת vLLM ב-Trillium TPU (v6e)
vLLM עם JAX
במסמכי התיעוד של vLLM TPU מוסבר איך להתקין את vLLM, ויש בהם מדריך למתחילים, מודלים נתמכים ואפשרויות כוונון. מידע נוסף זמין במאמר הצגת מודלים של JAX באמצעות vLLM ב-TPU.
vLLM עם PyTorch
הפלאגין vllm-torchtpu מוסיף ל-vLLM תמיכה בליבה (kernel) ובסביבת זמן הריצה של TorchTPU. מידע נוסף זמין במאמר הצגת מודלים של PyTorch באמצעות vLLM ב-TPU.
הסקה באמצעות SGLang
SGLang הוא מסגרת בקוד פתוח להצגת מודלים גדולים של שפה ומודלים מולטי-מודאליים, שמשלבת סביבת זמן ריצה עם ביצועים גבוהים עם ממשק קצה מובנה ליצירת תוכן. ב-Cloud TPU, SGLang פועל דרך הקצה העורפי של SGLang-JAX (sglang-jax) למודלים של JAX ודרך הקצה העורפי של SGLang-TorchTPU (sglang-torchtpu) למודלים של PyTorch.
SGLang עם PyTorch
מידע על התקנה, הפעלת שרת והגדרות נתמכות זמין במאמר הצגת מודלים של PyTorch באמצעות סביבת זמן הריצה SGLang-TorchTPU ב-TPU.
SGLang עם JAX
מידע על התקנה, הפעלת שרת והגדרות נתמכות זמין במאמר הצגת מודלים של JAX באמצעות סביבת זמן הריצה SGLang-JAX ב-TPU.
ביצועי ההסקה של הפרופיל
אחרי שמגדירים את ההסקה, אפשר להשתמש בכלי ליצירת פרופילים כדי לנתח את הביצועים ואת השימוש ב-TPU. למידע נוסף על יצירת פרופילים, קראו את המאמרים הבאים: