במדריך הזה מוסבר איך להריץ כוונון מפוקח (SFT) באשכול של Tensor Processing Unit (TPU) v6e עם כמה מארחים, באמצעות MaxText ו-Cluster Toolkit. אתם משתמשים ב-Cluster Toolkit כדי להריץ עומס עבודה של אימון בכמה מארחים, ולייצא את התוצאות בחזרה לפורמט של Hugging Face לצורך הצגה.
סיכום עומס העבודה
כדי להריץ את עומס העבודה של SFT ב-Cloud TPU וב-GKE, צריך להשתמש ברכיבים הבאים:
- מודל: Gemma 4 31B (
google/gemma-4-31b-it), מודל מתקדם עם משקלים פתוחים. במדריך הזה, משקלי המודל יורדו מ-Hugging Face, יומרו לפורמט שתואם ל-MaxText וייפרסו באשכול GKE עם תשתית Cloud TPU v6e (v6e-32). - שיטת האימון: SFT באמצעות MaxText. עומס העבודה מריץ צינור עיבוד נתונים של כוונון בקנה מידה גדול ב-Cloud TPU v6e באמצעות JAX. הוא מבצע אופטימיזציה של הפרמטרים של המודל במשך 1,000 שלבים באמצעות מאמן ה-SFT המובנה של MaxText (
maxtext.trainers.post_train.sft.train_sft) ומערכי נתונים של כוונון לפי הוראות. - מערך נתונים ותבנית: UltraChat 200k (
HuggingFaceH4/ultrachat_200k), מערך נתונים גדול ואיכותי של שיחות עם כמה תורות. עומס העבודה משתמש במערך הנתונים הזה כדי לכוונן את המודל ולשפר את היכולות שלו לנהל שיחות ולמלא הוראות. - תשתית ומסגרת: GKE, מנוהל באמצעות Cluster Toolkit, ב-Cloud TPU v6e (
v6e-32, עם טופולוגיה של4x8). ה-framework הוא MaxText (tpu_post_training:0.2.4) עם קצה עורפי של JAX.
מטרות
- מתקינים את Cluster Toolkit ואת יחסי התלות שלו.
- פריסת אשכול של Cluster Toolkit.
- המרת מודל של Hugging Face לפורמט MaxText.
- מריצים עומס עבודה של אימון SFT ב-TPU.
- ממירים את המודל המכוונן בחזרה לפורמט של Hugging Face כדי להשתמש בו.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
כדי להשתמש במדריך הזה, צריך טוקן גישה ל-Hugging Face. אתם יכולים להירשם לחשבון בחינם ב-Hugging Face. אחרי שיוצרים חשבון, יוצרים אסימון גישה:
- בדף Welcome to Hugging Face, לוחצים על הדמות של החשבון ובוחרים באפשרות טוקן גישה.
- בדף טוקני גישה, לוחצים על יצירת טוקן חדש.
- בוחרים את סוג הטוקן Read ומזינים שם לטוקן.
- טוקן הגישה שלכם יוצג. שומרים את הטוקן במקום בטוח.
- בכרטיס המודל
google/gemma-4-31b-itב-Hugging Face, מאשרים את הסכם הרישיון של המודל.
כדי לקבל את ההרשאות שדרושות להשלמת המדריך, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM בפרויקט:
-
כדי להשלים את המדריך:
- אדמין ב-TPU (
roles/tpu.admin) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) - אדמין ב-Compute (
roles/compute.admin) - אדמין באחסון (
roles/storage.admin) - אדמין ב-Kubernetes Engine (
roles/container.admin) - אדמין בחשבון שירות (
roles/iam.serviceAccountAdmin) - אדמין IAM בפרויקט (
roles/resourcemanager.projectIamAdmin) - אדמין של שימוש בשירות (
roles/serviceusage.serviceUsageAdmin)
- אדמין ב-TPU (
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הגדרת משתני הסביבה
מגדירים את משתני הסביבה:
מחליפים את מה שכתוב בשדות הבאים:
-
YOUR_PROJECT_ID: מזהה הפרויקט ב- Google Cloud. -
YOUR_REGION: האזור שבו נמצאת ההזמנה של ה-TPU ושבו פורסים את האשכול. -
YOUR_ZONE: האזור שבו נמצאת ההזמנה של ה-TPU ושבו פורסים את האשכול. -
YOUR_CLUSTER_NAME: השם של אשכול GKE. השם צריך להתחיל באות קטנה, לכלול רק אותיות קטנות, מספרים ומקפים, ולהיות באורך של עד 20 תווים, כדי שמזהי חשבונות השירות שמבוססים עליו לא יחרגו ממגבלת 30 התווים. -
YOUR_BUCKET_NAME: שם ייחודי גלובלי לקטגוריה של Cloud Storage. -
YOUR_RESERVATION_NAME: השם של ההזמנה של TPU v6e. -
YOUR_HF_TOKEN: טוקן הגישה שלכם ל-Hugging Face.
כברירת מחדל, הסקריפט מגדיר את MODEL_NAME ל-gemma4-31b (שם המודל של MaxText ל-google/gemma-4-31b-it).
התקנת יחסי התלות של Cluster Toolkit
כדי להשלים את המדריך הזה מתחנת עבודה או מלקוח של Linux או macOS, פועלים לפי השלבים הרלוונטיים בקטע התקנת יחסי תלות במסמכי התיעוד של Cluster Toolkit.
אם אתם משתמשים ב-Cloud Shell, אתם יכולים לדלג על החלק הזה.
התקנת Cluster Toolkit
מורידים ומחלצים את החבילה שנוצרה מראש לגרסה הספציפית של Cluster Toolkit שמוגדרת ב-CLUSTER_TOOLKIT_VERSION (v1.103.0) לספריית העבודה הנוכחית:
אימות הסביבה
כדי לוודא ש-Cluster Toolkit יכול להקצות משאבים ולשלוח קובצי אימג' ל-Artifact Registry בשמכם, צריך לאמת את Google Cloud CLI ולהגדיר את Application Default Credentials:
יצירת אשכול ב-Cluster Toolkit
כדי ליצור ולפרוס אשכול של Cluster Toolkit עם 32 שבבי TPU מסוג v6e:
יוצרים קטגוריה של Cloud Storage:
מכינים את הגדרת התוכנית ומעתיקים את תוכנית הפריסה לדוגמה לספריית עבודה מבודדת:
מעדכנים את
tmp/gke-tpu-v6e-advanced.yamlכדי להקצות לחשבון השירות של מאגר הצמתים של האשכול (gke-np-sa) את התפקיד "אדמין של Storage" (roles/storage.admin) לכתיבת נקודות ביקורת בקטגוריה של Cloud Storage, מחליפים את סוג המכונה של מאגר הצמתים של המערכת ל-e2-standard-8ומצמידים את מאגר הצמתים של המערכת לאזור היעד כדי למנוע מחסור בסוגי מכונות באזור:משתמשים בפקודה
gcluster deployכדי לפרוס את האשכול של Cluster Toolkit באמצעות תוכנית ה-blueprinttmp/gke-tpu-v6e-advanced.yaml, ומעבירים את המשתנים הנדרשים באמצעות הדגל--vars:
המרת המודל לפורמט MaxText
כדי לאמן את המודל בפורמט MaxText, צריך להמיר אותו מפורמט Hugging Face לפורמט MaxText.
כדי לפשט את הפקודות הבאות, משתמשים בפקודה
gcluster job configכדי להגדיר את פרויקט ברירת המחדל, האשכול והמיקום:משתמשים בפקודה
gcluster job submitכדי להמיר את המודל מפורמט Hugging Face לפורמט MaxText, ולאחסן אותו בקטגוריה של Cloud Storage:הפקודה כוללת את הדגל
--await-job-completion, כלומר היא ממתינה בטרמינל הנוכחי עד לסיום ההמרה.אופציונלי: כדי להעביר בסטרימינג את יומני ההמרה בזמן שהמשימה פועלת, פותחים טרמינל נפרד בספריית העבודה שבה חילצתם את
gcluster, ומריצים את הפקודהgcluster job logs:בטרמינל המקורי, מוודאים שקובצי המודל שהומרו זמינים בקטגוריה של Cloud Storage:
התחלת עומס העבודה של האימון
אחרי שתהליך ההמרה מסתיים, מפעילים את עומס העבודה של SFT:
הפקודה כוללת את הדגל
--await-job-completion, כלומר היא ממתינה בטרמינל הנוכחי עד לסיום משימת האימון.אופציונלי: כדי להעביר בסטרימינג את יומני האימון בזמן אמת בזמן שהמשימה פועלת, פותחים טרמינל נפרד בספריית העבודה שבה חילצתם את
gcluster, ומריצים את הפקודהgcluster job logs:אחרי שההידור הראשוני של XLA מסתיים, הרכז מתעד את התקדמות הפלט של כל שלב בהרצה של 1,000 השלבים בפורמט
completed step: <step>, seconds: ..., TFLOP/s/device: ..., loss: ..., כשההפסד באימון יורד מכ-1.57בשלב 5 לכ-0.82בשלב 1,000. לפני שממשיכים לחלק הבא, מחכים עד ששלב 1000 יסתיים והפלט מהפקודה./gcluster job listיציג את הסטטוס שלsftבתורSucceeded.בטרמינל המקורי, מוודאים שנקודות הבדיקה של אימון ה-SFT נוצרו בקטגוריה של Cloud Storage:
המרת המודל המאומן חזרה לפורמט של Hugging Face
אחרי שעומס העבודה של האימון מסתיים, ממירים את המודל חזרה לפורמט של Hugging Face:
הפקודה כוללת את הדגל
--await-job-completion, כלומר היא ממתינה בטרמינל הנוכחי עד לסיום ההמרה.אופציונלי: כדי להציג את יומני ההמרות בשידור חי בזמן שהמשימה פועלת, פותחים טרמינל נפרד בספריית העבודה שבה חילצתם את
gcluster, ומריצים את הפקודהgcluster job logs:בטרמינל המקורי, מוודאים שהמשקולות הסופיות של Hugging Face Safetensors נוצרו בקטגוריה של Cloud Storage:
הסרת המשאבים
כדי להימנע מחיובים נוספים, השתמשו בפקודה gcluster destroy כדי למחוק את המשאבים שנוצרו במהלך המדריך הזה:
המאמרים הבאים
- למידע נוסף על Cloud TPU, קראו את המאמר מבוא ל-Cloud TPU.
- פרטים על הארכיטקטורה וההגדרות של TPU
v6e-32מופיעים במאמר TPU v6e.