הרצת הסקה ב-Cloud TPU
הצגה היא תהליך הפריסה של מודל למידת מכונה מאומן בסביבת ייצור כדי להריץ הסקה. ב-TPU v5e ובגרסאות חדשות יותר יש תמיכה בהסקת מסקנות. עמידה ביעדים למדידת רמת השירות (SLO) של זמן האחזור היא בעדיפות גבוהה בעומסי עבודה של הצגת מודעות.
במאמר הזה מוסבר איך להציג מודל ב-TPU עם מארח יחיד. פרוסות TPU עם שמונה צ'יפים או פחות כוללות מארח או TPU VM אחד, והן נקראות TPU עם מארח יחיד. מידע נוסף על הסקת מסקנות בכמה מארחים באמצעות PyTorch זמין במאמרים vLLM-TorchTPU ו-SGLang-TorchTPU.
הגדרת ה-TPU
לא משנה באיזה סטאק תבחרו, כדי להגיש מודל צריך פרויקט ב- Google Cloud עם TPU במארח יחיד. השלבים הבאים רלוונטיים לכל שילוב של ספרייה ו-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 עם מארח יחיד. למידע נוסף, קראו את המאמרים אזורים ו-zones של TPU וניהול משאבי TPU.
אחרי שה-TPU VM פועל, פועלים לפי מדריך ההגדרה של הספרייה וה-framework בקטע בחירת מחסנית הסקה.
בחירת סטאק להסקת מסקנות
ב-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. למידע נוסף על יצירת פרופילים, קראו את המאמרים הבאים: