במדריך הזה נסביר איך לפרוס ולהכניס לשימוש בסביבת הייצור מודל שפה גדול (LLM) מסוג Qwen3 באמצעות framework לפרסום מודלים של vLLM. אתם פורסים את המודל במכונה וירטואלית (VM) אחת מסוג A4 ב-Google Kubernetes Engine (GKE).
המדריך הזה מיועד למהנדסי למידת מכונה (ML), לאדמינים ולאופרטורים של פלטפורמות ולמומחי נתונים ו-AI שרוצים להשתמש ביכולות של Kubernetes לניהול קונטיינרים כדי לטפל בעומסי עבודה של הסקת מסקנות.
מטרות
אפשר לגשת אל Qwen3 באמצעות Hugging Face.
הכנת הסביבה.
יוצרים אשכול GKE במצב אוטומטי.
יצירת קטגוריה של Cloud Storage.
יוצרים סוד של Kubernetes לפרטי הכניסה של Hugging Face.
מגדירים את איחוד שירותי אימות הזהויות של עומסי העבודה ב-Cloud Storage.
מאכלסים את הקטגוריה של Cloud Storage במודל Qwen3.
פריסת קונטיינר vLLM ב-GKE.
אפשר ליצור אינטראקציה עם Qwen3 באמצעות curl.
לפנות.
עלויות
במדריך הזה נעשה שימוש ברכיבים של Google Cloudשחלים עליהם חיובים, כולל:
כדי ליצור הערכת עלויות בהתאם לשימוש החזוי, אתם יכולים להשתמש במחשבון עלויות.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-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
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-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: המזהה של חשבון המשתמש . לדוגמה,myemail@example.com. -
ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.
-
- נכנסים לחשבון Hugging Face או יוצרים חשבון חדש.
גישה ל-Qwen3 באמצעות Hugging Face
כדי להשתמש ב-Hugging Face כדי לגשת ל-Qwen3, פועלים לפי השלבים הבאים:
- כניסה לחשבון Hugging Face
- יוצרים טוקן גישה ל-Hugging Face
read. לוחצים על Your Profile > Settings > Access Tokens > +Create new token (הפרופיל שלך > הגדרות > טוקנים לגישה > +יצירת טוקן חדש). - מציינים שם לבחירתכם לטוקן ואז בוחרים תפקיד. רמת ההרשאה המינימלית בתפקיד שאפשר לבחור במדריך הזה היא קריאה.
- לוחצים על יצירת טוקן.
- מעתיקים את הטוקן שנוצר ושומרים אותו בלוח. תשתמשו בו בהמשך המדריך הזה.
הכנת הסביבה
כדי להכין את הסביבה, מגדירים את משתני הסביבה שמוגדרים כברירת מחדל:
מחליפים את מה שכתוב בשדות הבאים:
YOUR_PROJECT_ID: המזהה של Google Cloud הפרויקט שבו רוצים ליצור את אשכול GKE.
YOUR_RESERVATION_NAME: השם של ההזמנה שרוצים להשתמש בה כדי ליצור את אשכול GKE. בהתאם לפרויקט שבו קיימת ההזמנה, מציינים אחד מהערכים הבאים:ההזמנה קיימת בפרויקט:
RESERVATION_NAMEההזמנה קיימת בפרויקט אחר, והפרויקט שלכם יכול להשתמש בה:
projects/RESERVATION_PROJECT_ID/reservations/RESERVATION_NAME
YOUR_REGION: האזור שבו רוצים ליצור את אשכול GKE. אפשר ליצור את האשכול רק באזור שבו קיימת ההזמנה.
YOUR_CLUSTER_NAME: השם של אשכול GKE שרוצים ליצור.
YOUR_BUCKET_NAME: השם של קטגוריה של 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 .יצירת קטגוריה של Cloud Storage
כדי ליצור קטגוריה אזורית של Cloud Storage לאחסון המודל, מריצים את הפקודה הבאה:
יצירת סוד ב-Kubernetes לפרטי הכניסה של Hugging Face
כדי ליצור סוד של Kubernetes לפרטי הכניסה של Hugging Face, פועלים לפי השלבים הבאים:
מגדירים את
kubectlלתקשורת עם אשכול GKE:יוצרים סוד של Kubernetes לאחסון הטוקן של Hugging Face:
הגדרת איחוד שירותי אימות הזהות של עומסי עבודה ל-Cloud Storage
כדי לאפשר ל-GKE לגשת באופן מאובטח לקטגוריית Cloud Storage, צריך להגדיר איחוד של Workload Identity ב-GKE:
מילוי הקטגוריה של Cloud Storage במשקלים של מודל Qwen3
כדי לאכלס את הקטגוריה של Cloud Storage במשקלים של מודל Qwen3, מריצים Kubernetes Job שמשתמש במנהל התקן ה-CSI של Cloud Storage FUSE כדי לטעון את הקטגוריה כנפח אחסון. העבודה מורידה את המודל מ-Hugging Face אם הוא עדיין לא קיים בדלי.
יוצרים קובץ בשם
qwen3-model-loader.yamlעם התוכן הבא:מחילים את קובץ המניפסט
qwen3-model-loader.yamlכדי לאתחל את משימת ההורדה:כדי לוודא שהעבודה פועלת, מפעילים סטרימינג של יומני עבודת ההורדה:
kubectl logs -f job/qwen3-model-loader -c downloaderממתינים לסיום של משימת ההורדה של המודל:
כדי למחוק את העבודה, מריצים את הפקודה הבאה:
פריסת קונטיינר vLLM באשכול GKE
כדי לפרוס את קונטיינר vLLM כדי להכניס לשימוש בסביבת הייצור את מודל Qwen3 באמצעות Kubernetes Deployments, מבצעים את הפעולות הבאות:
יוצרים קובץ
qwen3-235b-deploy.yamlעם הפריסה של vLLM שבחרתם:מחילים את קובץ
qwen3-235b-deploy.yamlעל אשכול GKE:
הקונטיינר משתמש ב-Run:ai Model Streamer כדי להזרים משקלים של מודלים ישירות מ-Cloud Storage, ולכן זמן ההפעלה מתקצר משמעותית.כדי לראות את סטטוס ההשלמה, מריצים את הפקודה הבאה:
הדגל--timeout=600sמאפשר לפקודה לעקוב אחרי הפריסה למשך עד 10 דקות.
אינטראקציה עם Qwen3 באמצעות curl
כדי לאמת את מודל Qwen3 שפרסתם:
מגדירים העברה ליציאה אחרת ל-Qwen3:
פותחים חלון טרמינל חדש. אחרי זה תוכלו לשוחח עם המודל באמצעות
curl:הפלט אמור להיראות כך:
{ "id": "chatcmpl-a926ddf7ef2745ca832bda096e867764", "object": "chat.completion", "created": 1755023619, "model": "Qwen/Qwen3-235B-A22B-Instruct-2507", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "A GPU is a specialized electronic circuit designed to rapidly process and render graphics and perform parallel computations.", "refusal": null, "annotations": null, "audio": null, "function_call": null, "tool_calls": [], "reasoning_content": null }, "logprobs": null, "finish_reason": "stop", "stop_reason": null } ], "service_tier": null, "system_fingerprint": null, "usage": { "prompt_tokens": 16, "total_tokens": 36, "completion_tokens": 20, "prompt_tokens_details": null }, "prompt_logprobs": null, "kv_transfer_params": null }
מעקב אחר ביצועי המודל
אם רוצים לבחון את הביצועים של המודל, אפשר להשתמש בשילוב של לוח הבקרה של vLLM ב-Cloud Monitoring. לוח הבקרה הזה עוזר לכם לראות מדדי ביצועים חשובים של המודל, כמו קצב העברת טוקנים, זמן אחזור ברשת ושיעורי שגיאה. מידע נוסף מופיע במאמר בנושא vLLM במסמכי התיעוד בנושא מעקב.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
כדי להימנע מחיובים בחשבון לחיוב ב-Cloud על המשאבים שבהם השתמשתם במדריך הזה, אתם יכולים למחוק את הפרויקט שמכיל את המשאבים או להשאיר את הפרויקט ולמחוק את המשאבים הספציפיים.
מחיקת המשאבים
כדי למחוק את משאבי ההדרכה, מריצים את הפקודות הבאות:
מחיקת אשכול GKE
כדי למחוק את אשכול GKE, מריצים את הפקודה הבאה:
מחיקת פרויקט
כדי למחוק Google Cloud פרויקט:
gcloud projects delete PROJECT_ID