במדריך הזה נסביר בפירוט איך להריץ אימון של למידת חיזוק (RL) במופע של מכונה וירטואלית (VM) של יחידת עיבוד טנסור (TPU) יחידה ב- Google Cloud באמצעות MaxText, מחסנית אימון מבוססת JAX עם ביצועים גבוהים למודלים גדולים של שפה (LLM).v6e-8
מטרות
- מגדירים מופע של מכונה וירטואלית ב-Cloud TPU.
- מתקינים את MaxText ואת יחסי התלות שלו.
- המרת מודל של Hugging Face לפורמט MaxText.
- מריצים עומס עבודה של אופטימיזציה יחסית של מדיניות קבוצת RL (GRPO) ב-TPU.
- להמיר את המודל המאומן בחזרה לפורמט Hugging Face לצורך הצגה.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
כדי להשתמש במדריך הזה, צריך אסימון גישה של Hugging Face. אפשר להירשם לחשבון בחינם ב-Hugging Face. אחרי שיש לכם חשבון, יוצרים אסימון גישה:
- בדף Welcome to Hugging Face, לוחצים על הדמות שמייצגת את החשבון ובוחרים באפשרות Access tokens.
- בדף Access tokens (אסימוני גישה), לוחצים על Create new token (יצירת אסימון חדש).
- בוחרים את סוג הטוקן Read (קריאה) ומזינים שם לטוקן.
- טוקן הגישה יוצג. שומרים את האסימון במקום בטוח.
- באתר Hugging Face, מאשרים את הסכם הרישיון של המודל שרוצים לאמן. במדריך הזה נעשה שימוש במודל
llama3.1-8b-Instruct.
כדי לקבל את ההרשאות שדרושות להשלמת המדריך הזה, צריך לבקש מהאדמין להקצות לכם בפרויקט את תפקידי ה-IAM הבאים:
- אדמין TPU (
roles/tpu.admin) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) - עורך Compute (
roles/compute.editor)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
הגדרת הסביבה
מגדירים את משתני הסביבה על ידי הרצת הסקריפט הבא:
מחליפים את מה שכתוב בשדות הבאים:
- YOUR_PROJECT_ID: מזהה הפרויקט ב- Google Cloud
- ZONE_NAME: האזור שרוצים להשתמש בו
- RESERVATION_NAME: הזמנת הקיבולת
- TPU_MACHINE_NAME: השם של מכונת ה-VM של Cloud TPU
מריצים את הפקודה הבאה כדי לבצע אימות באמצעות Google Cloud :
gcloud auth login
יצירת מכונת Cloud TPU וירטואלית
יוצרים מכונת VM של Cloud TPU עם 8 v6e שבבי TPU, שקשורים להזמנת הקיבולת.
אחרי שיוצרים את מופע ה-VM, מתחברים אליו באמצעות SSH.
מבצעים את השלבים הבאים במופע של מכונת TPU וירטואלית.
התקנת MaxText
מעדכנים את חבילות המערכת במכונה הווירטואלית של TPU.
מתקינים את Python 3.12, שנדרש ל-MaxText, ואת חבילת הסביבה הווירטואלית שלו.
כדי להאיץ את ההתקנה של חבילת Python, משתמשים ב-uv.
יוצרים סביבה וירטואלית בשם maxtext_venv ומפעילים אותה.
מתקינים את MaxText ואת יחסי התלות שנדרשים לו למשימות אחרי האימון.
מריצים את הפקודה הבאה כדי להתקין את יחסי התלות הנדרשים שנותרו:
המרת המודל לפורמט MaxText
כדי לאמן את המודל בפורמט MaxText, צריך להמיר אותו מפורמט Hugging Face לפורמט MaxText.
מספקים את הערכים הבאים:
- טוקן הגישה שלכם ל-Hugging Face
- שם המודל שרוצים להשתמש בו
- הספרייה שבה רוצים לשמור את המודל בפורמט MaxText
- אפשרויות לטעינה ולאחסון
מחליפים את YOUR_HF_TOKEN באסימון הגישה של Hugging Face שיצרתם קודם.
כדי להמיר את המודל מפורמט Hugging Face לפורמט MaxText, מריצים את הסקריפט הבא. ההמרה הזו נמשכת כחמש דקות.
התחלת עומס העבודה של האימון
אחרי שתהליך ההמרה יסתיים, תוכלו להתחיל את עומס העבודה של RL.
מגדירים את פרמטרים של אימון עומס העבודה של RL.
מפעילים את משימת האימון. התהליך נמשך כ-10 דקות במכונה וירטואלית
v6e-8.
המרת המודל המאומן בחזרה לפורמט Hugging Face
אחרי שסיימתם את עומס העבודה של האימון, המירו את המודל בחזרה לפורמט Hugging Face.
מגדירים את הנתיבים לייצוא ואת הפרמטרים שאומנו.
מריצים את ההמרה בחזרה לפורמט Hugging Face.
אחרי שההמרה מסתיימת, המודל המותאם שמאוחסן ב-/dev/shm/$MODEL_NAME/hf-trained מוכן לשימוש. כי כשמפעילים מחדש את ה-VM, מאבדים את הגישה לתוכן של התיקייה /dev/shm. לכן, כדאי להעביר את המודל המכוונן לאחסון קבוע או להעלות אותו ל-Hugging Face Hub.
הסרת המשאבים
כדי להימנע מחיובים נוספים, מומלץ למחוק את המשאבים שנוצרו במהלך המדריך הזה.
מחיקת מופע של מכונת TPU וירטואלית
מוחקים את המכונה הווירטואלית של Cloud TPU.
המאמרים הבאים
- מידע נוסף על Cloud TPU זמין במאמר מבוא ל-Cloud TPU.
- פרטים על הארכיטקטורה וההגדרות של
v6e-8TPU זמינים במאמר TPU v6e.