Google Cloud מספק גישה למאיצי למידת מכונה שתוכננו בהתאמה אישית, שנקראים Tensor Processing Units (TPUs). יחידות ה-TPU מותאמות להאצת האימון וההסקה של מודלים של למידת מכונה, ולכן הן אידיאליות למגוון אפליקציות, כולל עיבוד שפה טבעית, ראייה ממוחשבת וזיהוי דיבור.
בדף הזה מוסבר איך לפרוס את המודלים שלכם למארח יחיד Cloud TPU v5e, v6e או TPU7x להסקת מסקנות אונליין בפלטפורמת הסוכנים של Gemini Enterprise.
יש תמיכה רק ב-Cloud TPU בגרסאות v5e, v6e וב-TPU7x (סוג המכונה tpu7x-standard-4t).
אין תמיכה בדורות אחרים של Cloud TPU.
כדי לדעת באילו מיקומים זמינות גרסאות Cloud TPU v5e, v6e ו-TPU7x, אפשר לעיין במאמר בנושא מיקומים.
ייבוא המודל
כדי לפרוס ב-Cloud TPU, צריך לייבא את המודל ל-Agent Platform ולהגדיר אותו לשימוש באחד מהקונטיינרים הבאים:
- מאגר TensorFlow runtime אופטימלי שנוצר מראש, גרסה
nightlyאו גרסה2.15ואילך - גרסה
2.1ואילך של מאגר TPU של PyTorch שנבנה מראש - קונטיינר מותאם אישית משלכם שתומך ב-TPU
קונטיינר מוכן מראש עם זמן ריצה אופטימלי של TensorFlow
כדי לייבא ולהריץ TensorFlow SavedModel ב-Cloud TPU, המודל צריך להיות מותאם ל-TPU. אם TensorFlow SavedModel שלכם עדיין לא מותאם ל-TPU, אתם יכולים לבצע אופטימיזציה אוטומטית של המודל. כדי לעשות זאת, מייבאים את המודל ואז Gemini Enterprise Agent Platform מבצעת אופטימיזציה של המודל הלא מותאם באמצעות אלגוריתם חלוקה אוטומטי. האופטימיזציה הזו לא פועלת בכל המודלים. אם האופטימיזציה נכשלת, צריך לבצע אופטימיזציה של המודל באופן ידני.
בדוגמת הקוד הבאה אפשר לראות איך משתמשים באופטימיזציה אוטומטית של מודלים עם חלוקה אוטומטית למחיצות:
model = aiplatform.Model.upload(
display_name='TPU optimized model with automatic partitioning',
artifact_uri="gs://model-artifact-uri",
serving_container_image_uri="us-docker.pkg.dev/vertex-ai-restricted/prediction/tf_opt-tpu.2-15:latest",
serving_container_args=[
]
)
מידע נוסף על ייבוא מודלים זמין במאמר בנושא ייבוא מודלים ל-Agent Platform.
מאגר PyTorch מובנה
ההוראות לייבוא ולהרצה של מודל PyTorch ב-Cloud TPU זהות להוראות לייבוא ולהרצה של מודל PyTorch.
לדוגמה, TorchServe for Cloud TPU v5e Inference לאחר מכן, מעלים את ארטיפקטים של המודל לתיקייה ב-Cloud Storage ומעלים את המודל כמו שמוצג:
model = aiplatform.Model.upload(
display_name='DenseNet TPU model from SDK PyTorch 2.1',
artifact_uri="gs://model-artifact-uri",
serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/pytorch-tpu.2-1:latest",
serving_container_args=[],
serving_container_predict_route="/predictions/model",
serving_container_health_route="/ping",
serving_container_ports=[8080]
)
מידע נוסף זמין במאמר בנושא ייצוא ארטיפקטים של מודלים ל-PyTorch ובמדריך בנושא הפעלת מודל PyTorch באמצעות קונטיינר מוכן מראש.
מאגר תגים בהתאמה אישית
במאגרי תגים מותאמים אישית, המודל לא חייב להיות מודל TensorFlow, אבל הוא חייב להיות מותאם ל-TPU. מידע על יצירת מודל שעבר אופטימיזציה ל-TPU זמין במדריכים הבאים בנושא מסגרות ML נפוצות:
מידע על הפעלת מודלים שאומנו באמצעות JAX, TensorFlow או PyTorch ב-Cloud TPU v5e זמין במאמר הסקת מסקנות ב-Cloud TPU v5e.
מוודאים שהמאגר המותאם אישית עומד בדרישות למאגר מותאם אישית.
צריך להגדיל את מגבלת הזיכרון הנעול כדי שהדרייבר יוכל לתקשר עם שבבי ה-TPU באמצעות גישה ישירה לזיכרון (DMA). לדוגמה:
שורת הפקודה
ulimit -l 68719476736Python
import resource
resource.setrlimit(
resource.RLIMIT_MEMLOCK,
(
68_719_476_736_000, # soft limit
68_719_476_736_000, # hard limit
),
)
אחר כך, כדאי לעיין במאמר בנושא שימוש במאגר תגים בהתאמה אישית להסקת מסקנות כדי לקבל מידע על ייבוא מודל עם מאגר תגים בהתאמה אישית. אם רוצים להטמיע לוגיקה של עיבוד מקדים או עיבוד פוסט, כדאי להשתמש בשגרות מותאמות אישית להסקת מסקנות.
יצירת נקודת קצה
ההוראות ליצירת נקודת קצה ל-Cloud TPU זהות להוראות ליצירת כל נקודת קצה.
לדוגמה, הפקודה הבאה יוצרת משאב endpoint:
endpoint = aiplatform.Endpoint.create(display_name='My endpoint')
התשובה מכילה את המזהה של נקודת הקצה החדשה, שבו משתמשים בשלבים הבאים.
מידע נוסף על יצירת נקודת קצה זמין במאמר בנושא פריסת מודל לנקודת קצה.
פריסת מודל
ההוראות לפריסת מודל ב-Cloud TPU זהות להוראות לפריסת כל מודל, רק שצריך לציין אחד מסוגי המכונות הנתמכים הבאים של Cloud TPU:
| סוג המכונה | מספר שבבי ה-TPU |
|---|---|
tpu7x-standard-4t |
4 |
ct6e-standard-1t |
1 |
ct6e-standard-4t |
4 |
ct6e-standard-8t |
8 |
ct5lp-hightpu-1t |
1 |
ct5lp-hightpu-4t |
4 |
ct5lp-hightpu-8t |
8 |
מאיצי TPU מובנים בסוג המכונה. לא צריך לציין את סוג המאיץ או את מספר המאיצים.
לדוגמה, הפקודה הבאה פורסת מודל באמצעות קריאה ל-deployModel:
machine_type = 'ct5lp-hightpu-1t'
deployed_model = model.deploy(
endpoint=endpoint,
deployed_model_display_name='My deployed model',
machine_type=machine_type,
traffic_percentage=100,
min_replica_count=1
sync=True,
)
מידע נוסף זמין במאמר בנושא פריסת מודל לנקודת קצה.
קבלת מסקנות אונליין
ההוראות לקבלת מסקנות אונליין מ-Cloud TPU זהות להוראות לקבלת מסקנות אונליין.
לדוגמה, הפקודה הבאה שולחת בקשה להסקת מסקנות אונליין על ידי קריאה ל-predict:
deployed_model.predict(...)
במאמר בנושא דרישות לגבי בקשות והחזרות של מסקנות לגבי מאגרי תגים בהתאמה אישית מוסבר איך להשתמש במאגרי תגים בהתאמה אישית.
הבטחת קיבולת
ברוב האזורים, TPU v5e, v6e, and TPU7x cores per region
הקווטה להפעלת מודלים בהתאמה אישית היא 0. באזורים מסוימים, היא מוגבלת.
לפרטים, ראו איך שולחים בקשה לשינוי המכסות.
תמחור
החיוב על סוגי מכונות TPU הוא שעתי, כמו כל סוגי המכונות האחרים ב-Vertex Prediction. מידע נוסף מופיע במאמר בנושא תמחור של תחזיות.