במדריך הזה מוסבר איך להריץ אימון של למידת חיזוק (RL) במופע של מכונה וירטואלית (VM) של יחידת עיבוד טנסור (TPU) אחת ב-v6e-8 באמצעות MaxText, מחסנית אימון מבוססת-JAX עם ביצועים גבוהים למודלים גדולים של שפה (LLM). Google Cloud
סיכום עומס העבודה
הפעלת עומס העבודה הזה של RL אחרי אימון ב-Cloud TPU כוללת את הרכיבים הבאים:
מודל: Llama 3.1 8B Instruct (
llama3.1-8b-Instruct), מודל LLM עם משקלים פתוחים שמותאם לדיאלוגים ולמשימות של מילוי הוראות. במדריך הזה, משקלי המודל מומרים מהפורמט של Hugging Face לפורמט שתואם ל-MaxText (mt-format) ומוכנים להפעלה מבוזרת ב-TPU שלv6e-8באמצעות JAX.אלגוריתם של למידת חיזוק (RL): אופטימיזציה של מדיניות יחסית לקבוצה (GRPO), שבה עומס העבודה מפעיל צינור עיבוד נתונים (pipeline) ניתן להרחבה אחרי האימון באמצעות כלי האימון המובנה של MaxText ללמידת חיזוק. בשיטת GRPO אין צורך במודל נפרד של ערך או של מבקר. במקום זאת, המערכת מעריכה קבוצה של פלטים שנוצרו לאותה הנחיה, ומשתמשת בתגמולים יחסיים כדי לבצע אופטימיזציה יעילה של מדיניות השחקן.
מערך נתונים ותבנית: Grade School Math 8K (GSM8K), מערך נתונים איכותי שמורכב מבעיות מילוליות במתמטיקה לבית הספר היסודי, עם מגוון לשוני. עומס העבודה הזה משתמש בו כדי ליצור השקות, לחשב תגמולים ולשפר את יכולות החשיבה הרציונלית הרב-שלבית במהלך שלב ההתאמה של RL.
תשתית ומסגרת: צומת Cloud TPU
v6e-8יחיד (ct6e-standard-8t) באמצעות MaxText (maxtext[tpu-post-train]), מחסנית אימון עם ביצועים גבוהים שמופעלת על ידי JAX.
מטרות
- מגדירים מכונה וירטואלית של Cloud TPU.
- מתקינים את MaxText ואת יחסי התלות שלו.
- המרת מודל של Hugging Face לפורמט MaxText.
- מריצים עומס עבודה של אופטימיזציה יחסית של מדיניות קבוצת RL (GRPO) ב-TPU.
- להמיר את המודל המאומן בחזרה לפורמט Hugging Face לצורך הצגה.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
כדי להשתמש במדריך הזה, צריך אסימון גישה של Hugging Face. אתם יכולים להירשם לחשבון בחינם ב-Hugging Face. אחרי שיוצרים חשבון, יוצרים אסימון גישה:
- בדף Welcome to Hugging Face, לוחצים על הדמות של החשבון ובוחרים באפשרות טוקן גישה.
- בדף 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
- YOUR_ZONE: האזור שבו רוצים להשתמש
- YOUR_RESERVATION_NAME: הזמנת הקיבולת
- YOUR_TPU_NAME: השם של מכונת ה-TPU VM של Cloud TPU
מבצעים אימות באמצעות Google Cloud על ידי הפעלת הפקודה הבאה:
gcloud auth login
יצירת Cloud TPU VM
יצירת מכונת VM של Cloud TPU עם 8 v6e שבבי TPU, שמשויכת להזמנת
הקיבולת.
אחרי שיוצרים את המכונה הווירטואלית, מתחברים אליה באמצעות SSH.
מבצעים את השלבים הבאים במופע של TPU VM.
התקנת 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 מוכן לשימוש. כי כשמפעילים מחדש את המכונה הווירטואלית, מאבדים את הגישה לתוכן של התיקייה /dev/shm. לכן, כדאי להעביר את המודל המכוונן לאחסון מתמיד או להעלות אותו ל-Hugging Face Hub.
הסרת המשאבים
כדי להימנע מחיובים נוספים, מחקו את המשאבים שיצרתם במהלך המדריך הזה.
מחיקת המכונה הווירטואלית של ה-TPU
מוחקים את המכונה הווירטואלית של Cloud TPU.
המאמרים הבאים
- מידע נוסף על Cloud TPU זמין במאמר מבוא ל-Cloud TPU.
- פרטים על הארכיטקטורה וההגדרה של
v6e-8TPU זמינים במאמר TPU v6e.