הרצת הסקה ב-Cloud TPU

הצגה היא תהליך הפריסה של מודל למידת מכונה מאומן בסביבת ייצור כדי להריץ הסקה. ב-TPU v5e ובגרסאות מתקדמות יותר יש תמיכה בהסקת מסקנות. כדי לטפל בעומסי עבודה, חשוב לעמוד ביעדים למדידת רמת השירות (SLO) של זמן האחזור.

במאמר הזה מוסבר איך להגיש מודל ב-TPU עם מארח יחיד. פרוסות TPU עם שמונה צ'יפים או פחות כוללות TPU VM או מארח אחד, והן נקראות TPU עם מארח יחיד. מידע נוסף על הסקת מסקנות בכמה מארחים באמצעות PyTorch זמין במאמרים vLLM-TorchTPU ו-SGLang-TorchTPU. במאמר הסקת מסקנות בכמה מארחים באמצעות Pathways מוסבר איך להסיק מסקנות בכמה מארחים באמצעות JAX.

הגדרת ה-TPU

לא משנה באיזה סטאק תבחרו, כדי להציג מודל צריך פרויקט עם TPU במארח יחיד. Google Cloud השלבים הבאים רלוונטיים לכל שילוב של ספרייה ו-framework:

  1. יוצרים פרויקט. כדי להשתמש ב-Cloud TPU, צריך חשבון ופרויקט ב- Google Cloud . מידע נוסף זמין במאמר הגדרת פרויקטGoogle Cloud ליחידות TPU.
  2. בודקים את המכסה. חשוב לוודא שיש לכם מכסה מספקת למספר ליבות ה-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.

  3. יוצרים 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 עם 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. למידע נוסף על יצירת פרופילים, קראו את המאמרים הבאים: