במדריך הזה נסביר איך לפרוס ולהכניס לשימוש בסביבת הייצור מודל שפה של gpt-oss-120b באמצעות מסגרת vLLM.
פורסים את המודל הזה באשכול Autopilot של Google Kubernetes Engine (GKE) ומשתמשים במכונה וירטואלית אחת מסוג A4 עם 8 יחידות GPU מסוג B200.
המדריך הזה מיועד למהנדסי למידת מכונה (ML), לאדמינים ולאופרטורים של פלטפורמות ולמומחים בתחום הנתונים וה-AI שרוצים להשתמש ביכולות של Kubernetes לניהול קונטיינרים כדי לטפל בעומסי עבודה של הסקת מסקנות.
מטרות
- אפשר לגשת אל
gpt-oss-120bבאמצעות Hugging Face. - מכינים את הסביבה.
- יוצרים אשכול GKE במצב אוטומטי.
- יוצרים סוד של Kubernetes לפרטי הכניסה של Hugging Face.
- יצירת קטגוריה של Cloud Storage.
- מורידים את המודל לקטגוריה של Cloud Storage.
- פריסת קונטיינר vLLM לאשכול GKE.
- אינטראקציה עם מודל השפה gpt-oss באמצעות curl.
- לפנות.
עלויות
במדריך הזה נעשה שימוש ברכיבים של Google Cloudשחלים עליהם חיובים, כולל:
כדי ליצור הערכת עלויות על סמך השימוש החזוי, אתם יכולים להשתמש במחשבון עלויות.
לפני שמתחילים
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים Google Cloud פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
יוצרים Google Cloud פרויקט:
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של פרויקט Google Cloud שיוצרים. -
בוחרים את הפרויקט שיצרתם: Google Cloud
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Google Cloud .
מפעילים את ממשק ה-API הנדרש:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable container.googleapis.com
-
מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM:
roles/container.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
USER_IDENTIFIER: המזהה של חשבון המשתמש חשבון. דוגמאות מופיעות במאמר ייצוג המשתמשים במאגרי כוח עבודה בכללי מדיניות IAM. -
ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.
-
- נכנסים לחשבון Hugging Face או יוצרים חשבון.
גישה ל-gpt-oss באמצעות Hugging Face
כדי להשתמש ב-Hugging Face כדי לגשת אל gpt-oss:
- נכנסים ל-Hugging Face ומתנסים במודל gpt-oss.
- יוצרים טוקן גישה ל-Hugging Face
read. - מעתיקים ושומרים את ערך הטוקן
read access. תשתמשו בו בהמשך המדריך הזה.
הכנת הסביבה
כדי להכין את הסביבה, מגדירים את משתני הסביבה שמוגדרים כברירת מחדל:
מחליפים את מה שכתוב בשדות הבאים:
YOUR_PROJECT_ID: המזהה של Google Cloud הפרויקט Google Cloud שבו רוצים ליצור את אשכול GKE.
YOUR_RESERVATION_NAME: כתובת ה-URL של ההזמנה שבה רוצים להשתמש כדי ליצור את אשכול GKE. בהתאם לפרויקט שבו קיימת ההזמנה, מציינים אחד מהערכים הבאים:ההזמנה קיימת בפרויקט:
RESERVATION_NAMEההזמנה קיימת בפרויקט אחר, והפרויקט שלכם יכול להשתמש בה:
projects/RESERVATION_PROJECT_ID/reservations/RESERVATION_NAME
YOUR_REGION: האזור שבו רוצים ליצור את אשכול GKE. אפשר ליצור את האשכול רק באזור שבו קיימת ההזמנה.
YOUR_CLUSTER_NAME: השם של אשכול GKE שרוצים ליצור.
YOUR_GCS_BUCKET: השם של קטגוריית Cloud Storage שממנה מורידים את המודל.
YOUR_HF_TOKEN: טוקן הגישה ל-Hugging Face שיצרתם בקטע הקודם.
YOUR_NETWORK_NAME: הרשת שבה נעשה שימוש באשכול GKE. מציינים אחד מהערכים הבאים:אם יצרתם רשת בהתאמה אישית, צריך לציין את שם הרשת.
אחרת, מציינים את הערך
default.
YOUR_SUBNETWORK_NAME: רשת המשנה שבה נעשה שימוש באשכול GKE. מציינים אחד מהערכים הבאים:אם יצרתם רשת משנה בהתאמה אישית, צריך לציין את השם של רשת המשנה. אפשר לציין רק רשת משנה שנמצאת באותו אזור של השריין.
אחרת, מציינים את הערך
default.
יצירת אשכול GKE במצב אוטומטי
כדי ליצור אשכול GKE במצב Autopilot, מריצים את הפקודה הבאה:
יצירת אשכול GKE עשויה להימשך זמן מה. כדי לוודא ש- Google Cloud סיים ליצור את האשכול, עוברים אל Kubernetes clusters במסוף Google Cloud .
יצירת סוד של Kubernetes לפרטי הכניסה של Hugging Face
כדי ליצור סוד של Kubernetes לפרטי הכניסה של Hugging Face:
מגדירים את
kubectlלתקשורת עם אשכול GKE:יוצרים סוד של Kubernetes לאחסון הטוקן של Hugging Face:
יצירת קטגוריה של Cloud Storage
אם אתם משתמשים בקטגוריה קיימת של Cloud Storage, צריך לוודא שהתנאים הבאים מתקיימים:
- הקטגוריה של Cloud Storage נמצאת באותו אזור כמו אשכול GKE.
- לחשבון השירות יש את ההרשאות הנדרשות
writeבקטגוריה.
כדי לאחסן את המודל בקטגוריה חדשה ב-Cloud Storage, צריך לבצע את השלבים הבאים:
מריצים את הפקודה הבאה כדי ליצור מאגר:
נותנים לחשבון השירות שמוגדר כברירת מחדל הרשאות
writeבקטגוריית Cloud Storage.
הורדת המודל לקטגוריה שלכם ב-Cloud Storage
כדי להוריד את המודל לקטגוריה שלכם ב-Cloud Storage:
יוצרים קובץ
gpt-download-job.yaml:כדי לאתחל את משימת ההורדה, צריך להחיל את מניפסט
gpt-download-job.yaml.משאב העבודה מוריד את משקלי המודל
gpt-oss-120bמ-Hugging Face לקטגוריה של Cloud Storage. ההורדה תימשך כ-30 דקות. אחרי שההורדה מסתיימת, ממשיכים לקטע הבא כדי להפעיל את פריסת המודל.כדי לראות את סטטוס ההשלמה, מריצים את הפקודה הבאה:
הדגל
--timeoutמציין כמה זמן הפקודה תנטר את העבודה לפני שהזמן הקצוב יסתיים.כדי למחוק את העבודה, מריצים את הפקודה הבאה:
פריסת קונטיינר vLLM באשכול GKE
אחרי שמורידים את המודל לקטגוריה של Cloud Storage, פורסים קונטיינר vLLM לאשכול GKE:
יוצרים קובץ
vllm-gpt-oss-120b.yamlעם הפריסה של vLLM שבחרתם:מחילים את קובץ
vllm-gpt-oss-120b.yamlעל אשכול GKE:כדי לראות את סטטוס ההשלמה, מריצים את הפקודה הבאה:
הדגל--timeoutמאפשר לפקודה לעקוב אחרי הפריסה למשך פרק הזמן שצוין.
אינטראקציה עם מודל gpt-oss באמצעות curl
כדי לאמת את מודל gpt-oss שפרסתם:
מגדירים העברה ליציאה אחרת למודל
gpt-oss:פותחים חלון טרמינל חדש. אחרי זה תוכלו לשוחח עם המודל באמצעות
curl:הפלט שיוצג יהיה דומה לזה:
{ "id": "chatcmpl-2235c39759c040daae23ce2addc40c0a", "object": "chat.completion", "created": 1756831629, "model": "openai/gpt-oss-120b", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "A sleek vessel gliding on water, its cloth sails billowing like captured wind.", "refusal": null, "annotations": null, "audio": null, "function_call": null, "tool_calls": [], "reasoning_content": "User asks: \"Describe a sailboat in one short sentence?\" We need to produce a short sentence description. Should comply with policy. It's fine. Provide a short sentence." }, "logprobs": null, "finish_reason": "stop", "stop_reason": null } ], "service_tier": null, "system_fingerprint": null, "usage": { "prompt_tokens": 80, "total_tokens": 142, "completion_tokens": 62, "prompt_tokens_details": null }, "prompt_logprobs": null, "kv_transfer_params": null }
בדיקת הביצועים של המודל
כדי לעקוב אחרי הביצועים של המודל, אפשר להשתמש בשילוב של לוח הבקרה vLLM ב-Cloud Monitoring. לוח הבקרה הזה עוזר לכם לראות מדדי ביצועים קריטיים של המודל, כמו קצב העברת טוקנים, זמן אחזור ברשת ושיעורי שגיאות. מידע נוסף זמין במאמר vLLM במסמכי התיעוד בנושא מעקב.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת המשאבים
אחרי שמסיימים את המדריך, מוחקים את המשאבים שכבר לא צריך.
כדי למחוק את הפריסה והשירות שמוגדרים בקובץ
vllm-gpt-oss-120b.yamlואת הסוד של Kubernetes מאשכול GKE, מריצים את הפקודה הבאה:כדי למחוק את הקטגוריה של Cloud Storage, מריצים את הפקודה הבאה:
כדי למחוק את אשכול GKE:
מחיקת פרויקט
כדי למחוק פרויקט Google Cloud :
gcloud projects delete PROJECT_ID