במדריך הזה נסביר איך לפרוס מודל שפה של gpt-oss-120b ולהשתמש בו באמצעות vLLM framework.
אתם פורסים את המודל הזה באשכול Autopilot של Google Kubernetes Engine (GKE) ומשתמשים במכונה וירטואלית (VM) אחת מסוג 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 .
התפקידים שנדרשים כדי לבחור או ליצור פרויקט
- בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (
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). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (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.
- thought
יוצרים טוקן גישה ל-Hugging Face
read. - מעתיקים ושומרים את ערך האסימון של
read access. תשתמשו בו בהמשך המדריך.
הכנת הסביבה
כדי להכין את הסביבה, מגדירים את משתני הסביבה שמוגדרים כברירת מחדל:
מחליפים את מה שכתוב בשדות הבאים:
YOUR_PROJECT_ID: המזהה של הפרויקט ב- 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 במצב אוטומטי, מריצים את הפקודה הבאה:
יצירת אשכול 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 במסמכי התיעוד של Monitoring.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים הנפרדים.
מחיקת המשאבים
אחרי שתסיימו את המדריך, מחקו את המשאבים שאתם לא צריכים יותר.
כדי למחוק את הפריסה והשירות שהוגדרו בקובץ
vllm-gpt-oss-120b.yamlואת הסוד של Kubernetes מאשכול GKE, מריצים את הפקודה הבאה:כדי למחוק את הקטגוריה של Cloud Storage, מריצים את הפקודה הבאה:
כדי למחוק את אשכול GKE:
מחיקת הפרויקט
כדי למחוק פרויקט ב- Google Cloud :
gcloud projects delete PROJECT_ID