מטרות
Gemma 4 היא משפחת המודלים הכי יעילה של Google עם פרמטרים שזמינים לכולם, והיא מספקת יכולות חזקות של הסקת מסקנות ושל סוכנים. היכולות של Gemma 4: הקשר ארוך, מולטי-מודאליות, חשיבה רציונלית והפעלת כלים מאפשרות לו לטפל בלוגיקה מורכבת, בתכנון רב-שלבי, בתכנות ובתהליכי עבודה מבוססי-סוכנים.
במדריך הזה נסביר איך להריץ היקש של LLM ביחידות GPU של Cloud Run באמצעות Gemma ו-Ollama, ומהם היעדים הבאים:
- פריסת Ollama עם המודל Gemma 4 בשירות Cloud Run עם GPU.
- שליחת הנחיות לשירות Ollama בנקודת הקצה הפרטית שלו.
כדי ללמוד על דרך חלופית לפריסת מודלים של Gemma 4 בקוד פתוח ב-Cloud Run באמצעות קונטיינר vLLM, אפשר לעיין במאמר הפעלת מודלים של Gemma 4 ב-Cloud Run.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
מפעילים את Cloud Run API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים- מתקינים ומפעילים את ה-CLI של gcloud.
- כדי להשלים את המדריך הזה, צריך לבקש מכסה של
Total Nvidia RTX Pro 6000 GPU allocation, in milli GPU, without zonal redundancy, per project per regionב-Cloud Run Admin API בדף Quotas and system limits.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להשלמת המדריך, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- אדמין ב-Cloud Run (
roles/run.admin) - אדמין IAM בפרויקט (
roles/resourcemanager.projectIamAdmin) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) - צרכן שימוש בשירות (
roles/serviceusage.serviceUsageConsumer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
מתן התפקידים
המסוף
-
נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - בוחרים את הפרויקט.
- לוחצים על Grant access.
-
בשדה New principals, מזינים את מזהה המשתמש. בדרך כלל מדובר בכתובת האימייל שמשמשת לפריסת שירות Cloud Run.
- בוחרים תפקיד מהרשימה Select a role.
- כדי להקצות עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
- לוחצים על Save.
gcloud
כדי להקצות לחשבון שלכם את תפקידי ה-IAM הנדרשים בפרויקט:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
מחליפים את:
- PROJECT_NUMBER עם מספר הפרויקט ב- Google Cloud .
- PROJECT_ID במזהה הפרויקט ב- Google Cloud .
- PRINCIPAL עם החשבון שאליו אתם מוסיפים את הקישור. בדרך כלל זו כתובת האימייל שמשמשת לפריסת שירות Cloud Run.
- ROLE עם התפקיד שאתם מוסיפים לחשבון של כלי הפריסה.
פריסת שירות Ollama להסקת מסקנות של LLM
פורסים את השירות ב-Cloud Run:
gcloud beta run deploy SERVICE-NAME \
--image "ollama/ollama:latest" \
--project PROJECT_ID \
--region REGION \
--no-allow-unauthenticated \
--cpu 20 \
--memory 80Gi \
--gpu 1 \
--gpu-type nvidia-rtx-pro-6000 \
--no-gpu-zonal-redundancy \
--max-instances 1 \
--concurrency 16 \
--timeout 600 \
--set-env-vars=OLLAMA_NUM_PARALLEL=16 \
--set-env-vars=OLLAMA_HOST=0.0.0.0:8080 \
--set-env-vars=OLLAMA_DEBUG=false \
--set-env-vars=OLLAMA_KEEP_ALIVE=-1 \
--startup-probe tcpSocket.port=8080,initialDelaySeconds=240,failureThreshold=1,timeoutSeconds=240,periodSeconds=240 \
--command "bash" \
--args="-c,(sleep 15 && ollama pull MODEL_NAME) & ollama serve"מחליפים את:
-
SERVICE-NAMEמחליפים בשם ייחודי לשירות Cloud Run. -
PROJECTבמזהה הפרויקט ב- Google Cloud .
REGIONבאזור Google Cloud שבו יש תמיכה ביחידות GPU ל-Cloud Run, כמוus-central1.nvidia-rtx-pro-6000רשימה מלאה של האזורים הנתמכים לפריסות עם GPU מופיעה במאמר בנושא הגדרת GPU.
MODEL_NAMEבשם המלא של וריאציה של Gemma 4.- Gemma 4 E2B:
gemma4:e2b - Gemma 4 E4B:
gemma4:e4b
- Gemma 4 E2B:
Gemma 4 26B ו-31B דורשים הגדרה מתקדמת יותר של Cloud Run ו-vLLM עם Direct VPC Egress ו-Run:ai Model Streamer.
שימו לב לסימונים החשובים הבאים בפקודה הזו:
- הערך של
--concurrency 16מוגדר בהתאם לערך של משתנה הסביבהOLLAMA_NUM_PARALLEL. -
--gpu 1עם--gpu-type nvidia-rtx-pro-6000מקצה GPU אחד מסוג NVIDIA RTX PRO 6000 Blackwell לכל מופע של Cloud Run בשירות. -
--max-instances 1מציין את המספר המקסימלי של מופעים שאליהם יתבצע שינוי הגודל. הערך צריך להיות קטן או שווה למכסת ה-GPU של NVIDIA RTX Pro 6000 בפרויקט (Total NVIDIA RTX Pro 6000 GPU allocation, in milli GPU, without zonal redundancy, per project per region). --no-allow-unauthenticatedמגביל את הגישה לשירות ללא אימות. אם השירות פרטי, אפשר להסתמך על אימות ניהול זהויות והרשאות גישה (IAM) המובנה ב-Cloud Run לתקשורת בין שירותים. מידע נוסף זמין במאמר ניהול גישה באמצעות IAM.- נדרשת הרשאה ל-
--no-cpu-throttlingכדי להפעיל את ה-GPU. -
--no-gpu-zonal-redundancyמגדיר אפשרויות של יתירות אזורית בהתאם לדרישות שלכם למעבר לשירות זמין באזור אחר ולמכסה הזמינה. פרטים נוספים מופיעים במאמר אפשרויות ליתירות אזורית של GPU.
הגדרות של פעולות בו-זמניות לביצועים אופטימליים
בקטע הזה מוסבר על הגדרות הבו-זמניות המומלצות. כדי להשיג זמן אחזור אופטימלי של בקשות, צריך לוודא שההגדרה --concurrency שווה למשתנה הסביבה OLLAMA_NUM_PARALLEL של Ollama.
OLLAMA_NUM_PARALLELקובע כמה משבצות לבקשות זמינות לכל מודל כדי לטפל בבקשות הסקה בו-זמנית.- האפשרות
--concurrencyקובעת כמה בקשות Cloud Run שולח למופע Ollama בו-זמנית.
אם הערך של --concurrency גדול מהערך של OLLAMA_NUM_PARALLEL, Cloud Run יכול לשלוח יותר בקשות למודל ב-Ollama מאשר מספר משבצות הבקשות שזמינות לו.
כתוצאה מכך, הבקשות נכנסות לתור ב-Ollama, וזמן האחזור של הבקשות בתור מתארך. בנוסף, התאמה אוטומטית לעומס תהיה פחות רספונסיבית, כי הבקשות בתור לא יפעילו את Cloud Run להרחבת קנה המידה ולהפעלת מופעים חדשים.
Ollama תומך גם בהצגת כמה מודלים מ-GPU אחד. כדי למנוע הוספה של בקשות לתור במופע Ollama, צריך להגדיר את --concurrency כך שיתאים ל-OLLAMA_NUM_PARALLEL.
הגדלת הערך של OLLAMA_NUM_PARALLEL
גם מאריכה את משך הזמן של בקשות מקבילות.
אופטימיזציה של השימוש ב-GPU
כדי להשיג ניצול אופטימלי של ה-GPU, צריך להגדיל את --concurrency, אבל לשמור אותו בטווח של עד פי שניים מהערך של OLLAMA_NUM_PARALLEL. למרות שהדבר מוביל להוספת בקשות לתור ב-Ollama, הוא יכול לעזור לשפר את הניצול: מופעי Ollama יכולים לעבד באופן מיידי בקשות מהתור שלהם, והתורים עוזרים לספוג עליות פתאומיות בתנועה.
בדיקה של שירות Ollama שנפרס באמצעות curl
אחרי שפורסים את שירות Ollama, אפשר לשלוח אליו בקשות. עם זאת, אם שולחים בקשה ישירות, Cloud Run מגיב עם HTTP 401 Unauthorized.
זה מכוון, כי ממשק API של הסקת מסקנות של LLM מיועד לשירותים אחרים לקריאה, כמו אפליקציית frontend. מידע נוסף על אימות בין שירותים ב-Cloud Run זמין במאמר אימות בין שירותים.
כדי לשלוח בקשות לשירות Ollama, מוסיפים לכל בקשה כותרת עם אסימון OIDC תקין. לדוגמה, אפשר להשתמש בשרת proxy למפתחים של Cloud Run:
מפעילים את ה-Proxy, וכשמוצגת בקשה להתקין את הרכיב
cloud-run-proxy, בוחרים באפשרותY:gcloud run services proxy SERVICE-NAME \ --project PROJECT_ID \ --region REGION \ --port=9090שולחים אליו בקשה בכרטיסיית טרמינל נפרדת, ומשאירים את ה-proxy פועל. שימו לב ששרת ה-Proxy פועל בכתובת
localhost:9090:curl http://localhost:9090/api/generate -d '{ "model": "MODEL_NAME", "prompt": "Why is the sky blue?", "stream": false }' | jq -r '.response'הפקודה הזו אמורה לספק פלט סטרימינג דומה לזה:
This is one of the most beautiful and fundamental questions in physics! The reason the sky appears blue is due to a phenomenon called **Rayleigh Scattering**. ...
הסרת המשאבים
כדי להימנע מחיובים נוספים בחשבון Google Cloud , מוחקים את כל המשאבים שהצבתם באמצעות המדריך הזה.
מחיקת הפרויקט
אם יצרתם פרויקט חדש בשביל המדריך הזה, מוחקים את הפרויקט. אם השתמשתם בפרויקט קיים ואתם רוצים לשמור אותו בלי השינויים שהוספתם במדריך הזה, תצטרכו למחוק את המשאבים שיצרתם לצורך המדריך.
הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.
כדי למחוק את הפרויקט:
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת משאבי הדרכה
מוחקים את שירות Cloud Run שפרסתם במדריך הזה. שירותי Cloud Run לא צוברים עלויות עד שהם מקבלים בקשות.
כדי למחוק את שירות Cloud Run, מריצים את הפקודה הבאה:
gcloud run services delete SERVICE-NAME
מחליפים את SERVICE-NAME בשם השירות.
אפשר גם למחוק שירותים של Cloud Run מGoogle Cloud המסוף.
מסירים את הגדרת ברירת המחדל של האזור
gcloudשהוספתם במהלך ההגדרה של המדריך:gcloud config unset run/regionמסירים את הגדרות הפרויקט:
gcloud config unset project