במדריך הזה נסביר איך לכוונן מודל שפה גדול (LLM) של Gemma 4 באשכול Google Kubernetes Engine (GKE) עם כמה יחידות GPU במארח יחיד ב- Google Cloud. האשכול הזה משתמש במכונה וירטואלית (VM) אחת מסוג A4 עם 8 מעבדי GPU של NVIDIA B200 שמצורפים אליה.
שני התהליכים העיקריים שמתוארים במדריך הזה הם:
- פריסת אשכול GKE עם ביצועים גבוהים באמצעות GKE Autopilot. כחלק מהפריסה הזו, יוצרים קובץ אימג' של מכונה וירטואלית בהתאמה אישית עם התוכנה הנדרשת שכבר מותקנת.
- אחרי פריסת האשכול, מריצים עבודת כוונון עדין מבוזרת באמצעות קבוצת הסקריפטים שמצורפת למדריך הזה. העבודה מתבססת על ספריית Hugging Face Accelerate.
המדריך הזה מיועד למהנדסי למידת מכונה (ML), לחוקרים, לאדמינים ולמפעילים של פלטפורמות ולמומחים בתחום הנתונים וה-AI שרוצים לפרוס אשכולות GKE ב- Google Cloud כדי לאמן מודלים גדולים של שפה (LLM).
מטרות
אפשר לגשת למודל Gemma 4 באמצעות Hugging Face.
מכינים את הסביבה.
יצירה ופריסה של אשכול GKE מסוג A4.
אפשר לבצע כוונון עדין של מודל Gemma 4 באמצעות ספריית Hugging Face Accelerate עם נתונים מקבילים שחולקו באופן מלא (FSDP).
עוקבים אחרי העבודה.
לפנות.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי ליצור הערכת עלויות בהתאם לשימוש החזוי, אתם יכולים להשתמש במחשבון התמחור.
לפני שמתחילים
מפעילים את ממשקי ה-API הנדרשים, אם יש כאלה שלא מופעלים כבר:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable compute.googleapis.com
container.googleapis.com file.googleapis.com logging.googleapis.com cloudresourcemanager.googleapis.com servicenetworking.googleapis.com מפעילים את חשבון השירות שמוגדר כברירת מחדל עבור Google Cloud הפרויקט:
export PROJECT_NUMBER="$(gcloud projects describe "YOUR_PROJECT_ID" --format "value(project_number)")" gcloud iam service-accounts enable "${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \ --project=YOUR_PROJECT_ID
מקצים את התפקידים שחשבון השירות שמוגדר כברירת מחדל צריך כדי להריץ את עומס העבודה של הכוונון העדין:
ROLES=("roles/aiplatform.user" "roles/container.developer" "roles/storage.objectUser") for role in "${ROLES[@]}"; do gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \ --role="${role}" done unset ROLES
יצירת פרטי כניסה לאימות מקומי בחשבון המשתמש:
gcloud auth application-default login
מפעילים את OS Login בפרויקט:
gcloud compute project-info add-metadata \ --metadata=enable-oslogin=TRUE \ --project=YOUR_PROJECT_ID
כדי לקבל את ההרשאות שדרושות להשלמת המדריך הזה, צריך לבקש מהאדמין להקצות לכם בפרויקט את תפקידי ה-IAM הבאים:
- אדמין ב-Kubernetes Engine (
roles/container.admin) - אדמין ב-Compute (
roles/compute.admin) - אדמין באחסון (
roles/storage.admin) - אדמין של Artifact Registry (
roles/artifactregistry.admin) - עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) - אדמין בחשבון שירות (
roles/iam.serviceAccountAdmin) - אדמין IAM בפרויקט (
roles/resourcemanager.projectIamAdmin) - אדמין Service Usage (
roles/serviceusage.serviceUsageAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
גישה ל-Gemma 4 באמצעות Hugging Face
כדי להשתמש ב-Hugging Face כדי לגשת ל-Gemma 4:
- כניסה ל-Hugging Face
- יוצרים טוקן גישה ל-Hugging Face
write.
לוחצים על Your Profile > Settings > Access tokens > +Create new token - מעתיקים את ערך האסימון
write accessושומרים אותו. תשתמשו בו בהמשך המדריך הזה.
הכנת הסביבה
כדי להכין את הסביבה, מגדירים את הפרטים הבאים:
מחליפים את מה שכתוב בשדות הבאים:
YOUR_PROJECT_ID: המזהה של Google Cloud הפרויקט שבו רוצים ליצור את אשכול GKE.
YOUR_CLUSTER_NAME: השם של אשכול GKE שרוצים ליצור.
YOUR_REGION: האזור שבו רוצים ליצור את אשכול GKE. אפשר ליצור את האשכול רק באזור שבו קיימת ההזמנה.
YOUR_RESERVATION_NAME: המזהה של הקיבולת המוזמנת.
YOUR_HF_TOKEN: טוקן הגישה ל-Hugging Face שיצרתם בקטע הקודם.
YOUR_ARTIFACT_REGISTRY_LOCATION: Google Cloud האזור שבו רוצים ליצור את מאגר Artifact Registry. כדי לצמצם את זמן האחזור של שליפת התמונות, מומלץ להשתמש באותו אזור שבו השתמשתם בשביל YOUR_REGION.
יצירת אשכול GKE במצב אוטומטי
כדי ליצור אשכול GKE במצב אוטומטי, מריצים את הפקודה הבאה:
יצירת אשכול GKE עשויה להימשך זמן מה. כדי לוודא ש- Google Cloud סיים ליצור את האשכול, עוברים אל Kubernetes clusters במסוף Google Cloud .
יצירת סוד ב-Kubernetes לפרטי הכניסה של Hugging Face
כדי ליצור סוד של Kubernetes לפרטי הכניסה של Hugging Face, פועלים לפי השלבים הבאים:
מגדירים את
kubectlלתקשורת עם אשכול GKE:יוצרים סוד של Kubernetes לאחסון הטוקן של Hugging Face:
הכנת עומס העבודה
כדי להכין את עומס העבודה, מבצעים את הפעולות הבאות:
יצירת סקריפטים של עומסי עבודה
כדי ליצור את הסקריפטים שעומס העבודה של הכוונון העדין משתמש בהם, מבצעים את הפעולות הבאות:
יוצרים ספרייה לסקריפטים של עומס העבודה. משתמשים בספרייה הזו כספריית העבודה.
יוצרים את הקובץ
cloudbuild.yamlכדי להשתמש ב-Google Cloud Build. הקובץ הזה יוצר את קונטיינר עומס העבודה ושומר אותו ב-Artifact Registry:יוצרים קובץ
Dockerfileכדי להפעיל את משימת הכוונון העדין:יוצרים את קובץ ה-
accel_fsdp_gemma4_config.yaml. קובץ ההגדרות הזה מכוון את Hugging Face Accelerate לפצל את משימת הכוונון בין שמונה מעבדי ה-GPU המקומיים במארח היחיד שלכם באמצעות FSDP:יוצרים את הקובץ
finetune.yaml:יוצרים את הקובץ
finetune.py:
שימוש ב-Docker וב-Cloud Build ליצירת קונטיינר לכוונון עדין
יוצרים מאגר Docker ב-Artifact Registry:
בספרייה
llm-finetuning-gemmaשיצרתם בשלב קודם, מריצים את הפקודה הבאה כדי ליצור את תמונת הכוונון העדין ולהעביר אותה אל Artifact Registry.מייצאים את כתובת ה-URL של התמונה. תשתמשו בו בשלב מאוחר יותר במדריך הזה:
התחלת עומס העבודה של הכוונון העדין
כדי להתחיל את עומס העבודה של הכוונון העדין:
מחילים את מניפסט הכוונון העדין כדי ליצור את משימת הכוונון העדין:
מכיוון שאתם משתמשים באשכולות במצב GKE Autopilot, יכול להיות שיעברו כמה דקות עד שהצומת עם ה-GPU יתחיל לפעול.
מריצים את הפקודה הבאה כדי לעקוב אחרי העבודה:
אחרי שה-Pods יפעלו, בודקים את היומנים של העבודה:
משאב המשימה מוריד את נתוני המודל ואז מבצע כוונון עדין של המודל בכל שמונת המעבדים הגרפיים. ההורדה נמשכת כחמש דקות. אחרי שההורדה מסתיימת, תהליך הכוונון העדין נמשך כשעתיים וחצי.
מעקב אחר עומס העבודה
אתם יכולים לעקוב אחר השימוש במעבדי ה-GPU באשכול GKE כדי לוודא שעבודת הכוונון העדין פועלת ביעילות. כדי לעשות זאת, פותחים את הקישור הבא בדפדפן:
כשעוקבים אחרי עומס העבודה, אפשר לראות את הנתונים הבאים:
- השימוש ביחידות GPU: כדי שהאימון יהיה תקין, צפוי שהשימוש בכל 8 יחידות ה-GPU יעלה ויתייצב ברמה גבוהה לאורך כל האימון.
- משך העבודה: העבודה אמורה להימשך כשעתיים וחצי באשכול A4 שצוין.
הסרת המשאבים
כדי להימנע מחיובים נוספים, מוחקים את המשאבים שנוצרו במהלך המדריך הזה.
מחיקת המשאבים
כדי למחוק את משימת הכוונון העדין, מריצים את הפקודה הבאה:
כדי למחוק את אשכול GKE, מריצים את הפקודה הבאה: