במדריך הזה נראה לכם איך להריץ אימון של למידת חיזוק (RL) בכמה מארחים באשכול של יחידות לעיבוד טנסורים (TPU) v6e-32 באמצעות MaxText ו-Cluster Toolkit. משתמשים ב-Cluster Toolkit כדי להריץ עומס עבודה של אימון מרובה מארחים ולייצא את התוצאות בחזרה לפורמט Hugging Face לצורך הצגה.
מטרות
- מתקינים את Cluster Toolkit ואת יחסי התלות שלו.
- פריסת אשכול Cluster Toolkit.
- המרת מודל של Hugging Face לפורמט MaxText.
- הרצת עומס עבודה של אימון RL באשכול TPU v6e.
- ממירים את המודל המכוונן בחזרה לפורמט Hugging Face לצורך הצגה.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי ליצור הערכת עלויות בהתאם לשימוש החזוי, אתם יכולים להשתמש במחשבון התמחור.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
כדי להשתמש במדריך הזה, צריך אסימון גישה של Hugging Face. אפשר להירשם לחשבון בחינם ב-Hugging Face. אחרי שיש לכם חשבון, יוצרים אסימון גישה:
- בדף Welcome to Hugging Face, לוחצים על האווטאר של החשבון ובוחרים באפשרות Access tokens.
- בדף Access tokens (אסימוני גישה), לוחצים על Create new token (יצירת אסימון חדש).
- בוחרים את סוג הטוקן Read (קריאה) ומזינים שם לטוקן.
- טוקן הגישה יוצג. שומרים את האסימון במקום בטוח.
- באתר Hugging Face, מאשרים את הסכם הרישיון של המודל שרוצים לאמן. במדריך הזה נעשה שימוש במודל
qwen3-30b-a3b.
כדי לקבל את ההרשאות שדרושות להשלמת המדריך הזה, צריך לבקש מהאדמין להקצות לכם בפרויקט את תפקידי ה-IAM הבאים:
- אדמין TPU (
roles/tpu.admin) - אדמין ב-Kubernetes Engine (
roles/container.admin) - אדמין ב-Compute (
roles/compute.admin) - אדמין באחסון (
roles/storage.admin) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) - אדמין בחשבון שירות (
roles/iam.serviceAccountAdmin) - אדמין IAM בפרויקט (
roles/resourcemanager.projectIamAdmin) - אדמין Service Usage (
roles/serviceusage.serviceUsageAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הגדרת משתני הסביבה
מגדירים את משתני הסביבה:
מחליפים את מה שכתוב בשדות הבאים:
- YOUR_PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- YOUR_REGION: האזור שבו רוצים לפרוס את האשכול.
- YOUR_ZONE: האזור שבו רוצים לפרוס את האשכול.
- YOUR_CLUSTER_NAME: השם של אשכול Google Kubernetes Engine (עד 20 תווים).
- YOUR_BUCKET_NAME: שם ייחודי גלובלית של קטגוריה ב-Cloud Storage.
- YOUR_RESERVATION_NAME: השם של ההזמנה.
- YOUR_HF_TOKEN: טוקן הגישה שלכם ל-Hugging Face.
התקנת יחסי תלות של Cluster Toolkit
כדי להשלים את המדריך הזה מלקוח או מתחנת עבודה של Linux או macOS, פועלים לפי השלבים הרלוונטיים במאמר Install dependencies (התקנת תלות) במסמכי Cluster Toolkit.
אם אתם משתמשים ב-Cloud Shell, אתם יכולים לדלג על הקטע הזה.
התקנת Cluster Toolkit
כדי להתקין את חבילת ה-prebuilt של Cluster Toolkit בספריית העבודה הנוכחית, פועלים לפי ההוראות במאמר התקנת Cluster Toolkit.
לדוגמה, אפשר להוריד ולחלץ את החבילה לספריית העבודה הנוכחית באופן הבא:
חילוץ החבילה לספריית העבודה הנוכחית מספק את קובץ ה-gcluster
binary ואת תוכניות ה-examples/blueprint שבהן משתמשים בשלבים הבאים.
יצירת אשכול Cluster Toolkit
כדי ליצור ולפרוס אשכול Cluster Toolkit עם 32 v6e שבבי TPU:
יוצרים קטגוריה של Cloud Storage:
מעתיקים את תרשים האשכול לתיקיית העבודה הנוכחית:
כברירת מחדל, לחשבון השירות של מאגר הצמתים של האשכול אין את ההרשאות הנדרשות לכתיבה לקטגוריה של Cloud Storage. כדי לאפשר לחשבון השירות של מאגר הצמתים לכתוב לקטגוריה של Cloud Storage, צריך להקצות לו את התפקיד
Storage Admin. כדי להעניק את התפקיד הזה, צריך לערוך את הקובץgke-tpu-v6e-advanced.yamlולעדכן את מודולservice-accountשנקראnode_pool_service_account:משתמשים בפקודה
gcluster deployכדי לפרוס את אשכול Cluster Toolkit באמצעות תוכנית האבgke-tpu-v6e-advanced.yamlומעבירים את המשתנים הנדרשים באמצעות הדגל--vars:מגדירים אימות של Container Registry ומקצים את התפקיד 'אדמין אחסון' (
roles/storage.admin) לחשבונות השירות של GKE:
המרת המודל לפורמט MaxText
כדי לאמן את המודל בפורמט MaxText, צריך להמיר אותו מפורמט Hugging Face לפורמט MaxText.
כדי לפשט את הפקודות הבאות, משתמשים בפקודה
gcluster job configכדי להגדיר את פרויקט ברירת המחדל, האשכול והמיקום:כדי להמיר את המודל מפורמט Hugging Face לפורמט MaxText ולאחסן אותו בקטגוריה של Cloud Storage, משתמשים בפקודה
gcluster job submit:משתמשים בפקודה
gcluster job logsכדי לבדוק את הסטטוס של משימת ההמרה:מוודאים שקבצי המודל שהומרו זמינים בקטגוריה של Cloud Storage:
התחלת עומס העבודה של האימון
אחרי שתהליך ההמרה יסתיים, מפעילים את עומס העבודה של אימון RL:
כדי לבדוק את הסטטוס של משימת האימון:
כדי לוודא שנקודות הבדיקה של האימון נוצרו בקטגוריה של Cloud Storage:
המרת המודל המאומן בחזרה לפורמט Hugging Face
אחרי שעומס העבודה של האימון מסתיים, ממירים את המודל בחזרה לפורמט Hugging Face:
כדי לבדוק את הסטטוס של עבודת ההמרה:
כדי לוודא שמשקלי המודל המאומן של Hugging Face וקובצי ההגדרות נמצאים בקטגוריה של Cloud Storage:
הסרת המשאבים
כדי להימנע מחיובים נוספים, מפעילים את הפקודה gcluster destroy כדי למחוק את המשאבים שנוצרו במהלך המדריך הזה:
המאמרים הבאים
- מידע נוסף על Cloud TPU זמין במאמר מבוא ל-Cloud TPU.
- פרטים על הארכיטקטורה וההגדרה של
v6e-32TPU זמינים במאמר TPU v6e. - מידע נוסף על Cluster Toolkit זמין במאמר סקירה כללית על Cluster Toolkit.