במדריך הזה נסביר איך לפרוס ולהכניס לשימוש בסביבת הייצור מודל של למידת מכונה (ML) שניתן להרחבה באשכול Google Kubernetes Engine (GKE) באמצעות המסגרת TorchServe. אתם מכניסים לשימוש בסביבת הייצור מודל PyTorch שעבר אימון מראש ומייצר חיזויים על סמך בקשות משתמשים. אחרי פריסת המודל, מקבלים כתובת URL לחיזוי שהאפליקציה משתמשת בה כדי לשלוח בקשות לחיזוי. השיטה הזו מאפשרת לכם להרחיב את המודל ואת אפליקציית האינטרנט באופן עצמאי. כשפורסים את עומס העבודה של ה-ML ואת האפליקציה ב-Autopilot, GKE בוחר את סוג המכונה והגודל הבסיסיים היעילים ביותר להרצת עומסי העבודה.
המדריך הזה מיועד למהנדסי למידת מכונה (ML), לאדמינים ולמפעילים של פלטפורמות ולמומחי נתונים ו-AI שרוצים להשתמש ב-GKE Autopilot כדי לצמצם את העלויות האדמיניסטרטיביות של הגדרת צמתים, שינוי גודל ושדרוגים. מידע נוסף על תפקידים נפוצים ומשימות לדוגמה שאנחנו מתייחסים אליהם ב Google Cloud תוכן זמין במאמר תפקידים נפוצים של משתמשים ומשימות ב-GKE.
לפני שקוראים את הדף הזה, חשוב להכיר את מצב Autopilot ב-GKE.
מידע על אפליקציית המדריך
האפליקציה היא אפליקציית אינטרנט קטנה ב-Python שנוצרה באמצעות מסגרת Fast Dash. אתם משתמשים באפליקציה כדי לשלוח בקשות לחיזוי למודל T5. האפליקציה הזו מתעדת את קלט הטקסט של המשתמשים ואת צמדי השפות, ושולחת את המידע למודל. המודל מתרגם את הטקסט ומחזיר את התוצאה לאפליקציה, שבה התוצאה מוצגת למשתמש. מידע נוסף על Fast Dash זמין במאמרי העזרה בנושא Fast Dash.
מטרות
- מכינים מודל T5 שאומן מראש ממאגר Hugging Face להכניס לשימוש בסביבת הייצור על ידי אריזתו כקובץ אימג' של קונטיינר והעברתו בדחיפה אל Artifact Registry
- פריסת המודל באשכול Autopilot
- פריסת אפליקציית Fast Dash שמתקשרת עם המודל
- שינוי קנה מידה אוטומטי של המודל על סמך מדדי Prometheus
עלויות
במסמך הזה משתמשים ברכיבים הבאים של 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 של Kubernetes Engine, Cloud Storage, Artifact Registry ו-Cloud Build:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable container.googleapis.com
storage.googleapis.com artifactregistry.googleapis.com cloudbuild.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 של Kubernetes Engine, Cloud Storage, Artifact Registry ו-Cloud Build:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםgcloud services enable container.googleapis.com
storage.googleapis.com artifactregistry.googleapis.com cloudbuild.googleapis.com
הכנת הסביבה
משכפלים את מאגר הדוגמאות ופותחים את ספריית ההדרכה:
git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samples.git
cd kubernetes-engine-samples/ai-ml/t5-model-serving
יצירת האשכול
מריצים את הפקודה הבאה:
gcloud container clusters create-auto ml-cluster \
--release-channel=RELEASE_CHANNEL \
--cluster-version=CLUSTER_VERSION \
--location=us-central1
מחליפים את מה שכתוב בשדות הבאים:
-
RELEASE_CHANNEL: ערוץ ההפצה של האשכול. חייב להיות אחד מהערכיםrapid,regularאוstable. כדי להשתמש ב-GPU ברמה 4, צריך לבחור ערוץ עם GKE בגרסה 1.28.3-gke.1203000 ומעלה. כדי לראות את הגרסאות שזמינות בערוץ ספציפי, אפשר לעיין במאמר בנושא הצגת גרסאות ברירת המחדל והגרסאות הזמינות לערוצי הפצה. -
CLUSTER_VERSION: גרסת GKE לשימוש. הערך חייב להיות1.28.3-gke.1203000או מאוחר יותר.
הפעולה הזו תימשך כמה דקות.
יצירת מאגר Artifact Registry
יוצרים מאגר רגיל חדש ב-Artifact Registry בפורמט Docker באותו אזור שבו נמצא האשכול:
gcloud artifacts repositories create models \ --repository-format=docker \ --location=us-central1 \ --description="Repo for T5 serving image"בודקים את שם המאגר:
gcloud artifacts repositories describe models \ --location=us-central1הפלט אמור להיראות כך:
Encryption: Google-managed key Repository Size: 0.000MB createTime: '2023-06-14T15:48:35.267196Z' description: Repo for T5 serving image format: DOCKER mode: STANDARD_REPOSITORY name: projects/PROJECT_ID/locations/us-central1/repositories/models updateTime: '2023-06-14T15:48:35.267196Z'
אריזת המודל
בקטע הזה, אורזים את המודל ואת מסגרת ההגשה בקובץ אימג' אחד של קונטיינר באמצעות Cloud Build, ומעבירים בדחיפה את קובץ האימג' שנוצר למאגר Artifact Registry.
בודקים את קובץ ה-Dockerfile של קובץ האימג' של הקונטיינר:
קובץ ה-Dockerfile הזה מגדיר את תהליך הבנייה הרב-שלבי הבא:
- מורידים את ארטיפקטי המודל ממאגר Hugging Face.
- אורזים את המודל באמצעות הכלי PyTorch Serving Archive. נוצר קובץ ארכיון של המודל (.mar) ששרת ההיקש משתמש בו כדי לטעון את המודל.
- יוצרים את התמונה הסופית באמצעות PyTorch Serve.
יוצרים את קובץ האימג' ומעבירים אותו בדחיפה באמצעות Cloud Build:
gcloud builds submit model/ \ --region=us-central1 \ --config=model/cloudbuild.yaml \ --substitutions=_LOCATION=us-central1,_MACHINE=gpu,_MODEL_NAME=t5-small,_MODEL_VERSION=1.0תהליך ה-build נמשך כמה דקות. אם משתמשים במודל בגודל גדול יותר מ-
t5-small, תהליך build עשוי להימשך הרבה יותר זמן.בודקים שהתמונה נמצאת במאגר:
gcloud artifacts docker images list us-central1-docker.pkg.dev/PROJECT_ID/modelsמחליפים את
PROJECT_IDבמזהה הפרויקט ב- Google Cloud.הפלט אמור להיראות כך:
IMAGE DIGEST CREATE_TIME UPDATE_TIME us-central1-docker.pkg.dev/PROJECT_ID/models/t5-small sha256:0cd... 2023-06-14T12:06:38 2023-06-14T12:06:38
פריסת המודל הארוז ב-GKE
כדי לפרוס את התמונה, נעשה שימוש בפריסות של Kubernetes במדריך הזה. פריסה היא אובייקט Kubernetes API שמאפשר להפעיל כמה רפליקות של Pods שמפוזרות בין הצמתים באשכול.
משנים את מניפסט Kubernetes במאגר לדוגמה כך שיתאים לסביבה שלכם.
בודקים את המניפסט של עומס העבודה של ההיסק:
מחליפים את
PROJECT_IDבמזהה הפרויקט ב- Google Cloud:sed -i "s/PROJECT_ID/PROJECT_ID/g" "kubernetes/serving-gpu.yaml"כך מוודאים שנתיב קובץ האימג' של קונטיינר במפרט ה-Deployment (פריסה) תואם לנתיב של מודל T5 ב-Artifact Registry.
יוצרים את משאבי Kubernetes:
kubectl create -f kubernetes/serving-gpu.yaml
כדי לוודא שהפריסה של המודל בוצעה בהצלחה:
קבלת הסטטוס של הפריסה והשירות:
kubectl get -f kubernetes/serving-gpu.yamlממתינים עד שהפלט יציג Pods מוכנים, כמו בדוגמה הבאה. בהתאם לגודל התמונה, יכול להיות שייקח כמה דקות עד שהתמונה הראשונה תישלף.
NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/t5-inference 1/1 1 0 66s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/t5-inference ClusterIP 10.48.131.86 <none> 8080/TCP,8081/TCP,8082/TCP 66sפותחים יציאה מקומית עבור השירות
t5-inference:kubectl port-forward svc/t5-inference 8080פותחים חלון טרמינל חדש ושולחים בקשת בדיקה לשירות:
curl -v -X POST -H 'Content-Type: application/json' -d '{"text": "this is a test sentence", "from": "en", "to": "fr"}' "http://localhost:8080/predictions/t5-small/1.0"אם בקשת הבדיקה נכשלת והחיבור ל-Pod נסגר, צריך לבדוק את היומנים:
kubectl logs deployments/t5-inferenceאם הפלט דומה לזה, סימן שההתקנה של TorchServe נכשלה בגלל תלות במודל מסוים:
org.pytorch.serve.archive.model.ModelException: Custom pip package installation failed for t5-smallכדי לפתור את הבעיה, מפעילים מחדש את הפריסה:
kubectl rollout restart deployment t5-inferenceבקר הפריסה יוצר Pod חדש. חוזרים על השלבים הקודמים כדי לפתוח יציאה ב-Pod החדש.
גישה למודל שנפרס באמצעות אפליקציית האינטרנט
כדי לגשת למודל שנפרס באמצעות אפליקציית האינטרנט Fast Dash, צריך לבצע את הפעולות הבאות:
בונים את אפליקציית האינטרנט Fast Dash ומעבירים אותה בדחיפה כקובץ אימג' של קונטיינר ב-Artifact Registry:
gcloud builds submit client-app/ \ --region=us-central1 \ --config=client-app/cloudbuild.yamlפותחים את
kubernetes/application.yamlבכלי לעריכת טקסט ומחליפים אתPROJECT_IDבשדהimage:במזהה הפרויקט. אפשר גם להריץ את הפקודה הבאה:sed -i "s/PROJECT_ID/PROJECT_ID/g" "kubernetes/application.yaml"יוצרים את משאבי Kubernetes:
kubectl create -f kubernetes/application.yamlיכול להיות שיעבור קצת זמן עד שהפריסה והשירות יוקצו במלואם.
כדי לבדוק את הסטטוס, מריצים את הפקודה הבאה:
kubectl get -f kubernetes/application.yamlממתינים עד שהפלט יציג Pods מוכנים, כמו בדוגמה הבאה:
NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/fastdash 1/1 1 0 1m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/fastdash NodePort 203.0.113.12 <none> 8050/TCP 1mאפליקציית האינטרנט פועלת עכשיו, אבל היא לא חשופה לכתובת IP חיצונית. כדי לגשת לאפליקציית האינטרנט, פותחים יציאה מקומית:
kubectl port-forward service/fastdash 8050בדפדפן, פותחים את ממשק האינטרנט:
- אם אתם משתמשים במעטפת מקומית, פותחים דפדפן ועוברים אל http://127.0.0.1:8050.
- אם אתם משתמשים ב-Cloud Shell, לוחצים על תצוגה מקדימה באינטרנט ואז על שינוי היציאה. מציינים את היציאה
8050.
כדי לשלוח בקשה למודל T5, מציינים ערכים בשדות TEXT (טקסט), FROM LANG (שפת המקור) ו-TO LANG (שפת היעד) בממשק האינטרנט ולוחצים על Submit (שליחה). רשימת השפות הזמינות מופיעה במאמרי העזרה בנושא T5.
הפעלת שינוי גודל אוטומטי של המודל
בקטע הזה מוסבר איך להפעיל התאמה אוטומטית לעומס של המודל על סמך מדדים מהשירות המנוהל של Google Cloud ל-Prometheus, באמצעות הפעולות הבאות:
- התקנת Custom Metrics Stackdriver Adapter
- החלת הגדרות של PodMonitoring ו-HorizontalPodAutoscaling
השירות המנוהל של Google Cloud ל-Prometheus מופעל כברירת מחדל באשכולות Autopilot שפועלת בהם גרסה 1.25 ואילך.
התקנת Custom Metrics Stackdriver Adapter
המתאם הזה מאפשר לאשכול להשתמש במדדים מ-Prometheus כדי לקבל החלטות לגבי התאמה אוטומטית לעומס ב-Kubernetes.
פורסים את המתאם:
kubectl create -f https://raw.githubusercontent.com/GoogleCloudPlatform/k8s-stackdriver/master/custom-metrics-stackdriver-adapter/deploy/production/adapter_new_resource_model.yamlיוצרים חשבון שירות ב-IAM לשימוש המתאם:
gcloud iam service-accounts create monitoring-viewerמקצים לחשבון השירות ב-IAM את התפקיד
monitoring.viewerבפרויקט ואת התפקידiam.workloadIdentityUser:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:monitoring-viewer@PROJECT_ID.iam.gserviceaccount.com" \ --role roles/monitoring.viewer gcloud iam service-accounts add-iam-policy-binding monitoring-viewer@PROJECT_ID.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[custom-metrics/custom-metrics-stackdriver-adapter]"מחליפים את
PROJECT_IDבמזהה הפרויקט ב- Google Cloud.מוסיפים הערה ל-ServiceAccount של Kubernetes של המתאם כדי לאפשר לו להתחזות לחשבון השירות ב-IAM:
kubectl annotate serviceaccount custom-metrics-stackdriver-adapter \ --namespace custom-metrics \ iam.gke.io/gcp-service-account=monitoring-viewer@PROJECT_ID.iam.gserviceaccount.comמפעילים מחדש את המתאם כדי להפיץ את השינויים:
kubectl rollout restart deployment custom-metrics-stackdriver-adapter \ --namespace=custom-metrics
החלת הגדרות של PodMonitoring ו-HorizontalPodAutoscaling
PodMonitoring הוא משאב מותאם אישית של השירות המנוהל של Google Cloud ל-Prometheus, שמאפשר הטמעה של מדדים וגירוד של יעדים במרחב שמות ספציפי.
פורסים את משאב PodMonitoring באותו מרחב שמות כמו TorchServe Deployment:
kubectl apply -f kubernetes/pod-monitoring.yamlבודקים את מניפסט ה-HorizontalPodAutoscaler:
ה-HorizontalPodAutoscaler משנה את מספר ה-Pods של מודל T5 בהתאם למשך המצטבר של תור הבקשות. התאמה אוטומטית לעומס מבוססת על המדד
ts_queue_latency_microseconds, שמציג את משך התור המצטבר במיקרו-שניות.יוצרים את HorizontalPodAutoscaler:
kubectl apply -f kubernetes/hpa.yaml
אימות של שינוי גודל אוטומטי באמצעות מחולל עומסים
כדי לבדוק את ההגדרה של התאמה אוטומטית לעומס, צריך ליצור עומס עבור אפליקציית ההצגה. במדריך הזה נעשה שימוש בגנרטור עומסים של Locust כדי לשלוח בקשות לנקודת הקצה של התחזית עבור המודל.
יוצרים את מחולל העומסים:
kubectl apply -f kubernetes/loadgenerator.yamlממתינים עד שה-Pods של מחולל העומסים יהיו מוכנים.
חושפים את ממשק האינטרנט של מחולל העומסים באופן מקומי:
kubectl port-forward svc/loadgenerator 8080אם מופיעה הודעת שגיאה, נסו שוב כשה-Pod פועל.
בדפדפן, פותחים את ממשק האינטרנט של מחולל העומסים:
- אם אתם משתמשים במעטפת מקומית, פותחים דפדפן ועוברים אל http://127.0.0.1:8080.
- אם אתם משתמשים ב-Cloud Shell, לוחצים על תצוגה מקדימה באינטרנט ואז על שינוי היציאה. מזינים את יציאת
8080.
לוחצים על הכרטיסייה תרשימים כדי לראות את הביצועים לאורך זמן.
פותחים חלון טרמינל חדש וצופים בספירת הרפליקות של ה-Horizontal Pod Autoscalers:
kubectl get hpa -wמספר העותקים גדל ככל שהעומס גדל. הגדלת הקיבולת עשויה להימשך כעשר דקות. ככל שמופעלות רפליקות חדשות, מספר הבקשות המוצלחות בתרשים Locust עולה.
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE t5-inference Deployment/t5-inference 71352001470m/7M 1 5 1 2m11s
המלצות
- יוצרים את המודל עם אותה גרסה של קובץ הבסיס של Docker שבה תשתמשו להצגת המודל.
- אם למודל יש תלות מיוחדת בחבילות, או אם גודל התלות גדול, צריך ליצור גרסה מותאמת אישית של תמונת הבסיס של Docker.
- צפייה בגרסת העץ של חבילות התלות של המודל. מוודאים שיחסי התלות של החבילה תומכים בגרסאות של כל אחד מהם. לדוגמה, גרסה 2.0.3 של Panda תומכת ב-NumPy מגרסה 1.20.3 ואילך.
- להריץ מודלים שדורשים הרבה משאבי GPU בצמתים של GPU, ומודלים שדורשים הרבה משאבי CPU בצמתים של CPU. כך אפשר לשפר את היציבות של פרסום המודל ולוודא שאתם משתמשים במשאבי הצמתים בצורה יעילה.
מעקב אחר ביצועי המודל
כדי לעקוב אחרי ביצועי המודל, אפשר להשתמש בשילוב של לוח הבקרה של TorchServe ב-Cloud Monitoring. לוח הבקרה הזה מאפשר לכם לראות מדדי ביצועים קריטיים כמו קצב העברת נתונים של טוקנים, זמן האחזור של הבקשות ושיעורי השגיאות.
כדי להשתמש בלוח הבקרה של TorchServe, צריך להפעיל את השירות המנוהל של Google Cloud ל-Prometheus באשכול GKE. השירות הזה אוסף את המדדים מ-TorchServe. כברירת מחדל, TorchServe חושף מדדים בפורמט Prometheus, כך שלא צריך להתקין כלי נוסף לייצוא נתונים.
אחר כך אפשר לראות את המדדים באמצעות לוח הבקרה של TorchServe. מידע על שימוש בשירות המנוהל של Google Cloud ל-Prometheus כדי לאסוף מדדים מהמודל זמין במאמר TorchServe בנושא יכולת צפייה במסמכי Cloud Monitoring.הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת הפרויקט
כדי למחוק Google Cloud פרויקט:
gcloud projects delete PROJECT_ID
מחיקת משאבים בודדים
מחיקת משאבי Kubernetes:
kubectl delete -f kubernetes/loadgenerator.yaml kubectl delete -f kubernetes/hpa.yaml kubectl delete -f kubernetes/pod-monitoring.yaml kubectl delete -f kubernetes/application.yaml kubectl delete -f kubernetes/serving-gpu.yaml kubectl delete -f https://raw.githubusercontent.com/GoogleCloudPlatform/k8s-stackdriver/master/custom-metrics-stackdriver-adapter/deploy/production/adapter_new_resource_model.yamlמחיקת אשכול GKE:
gcloud container clusters delete "ml-cluster" \ --location="us-central1" --quietמוחקים את חשבון השירות של IAM ואת הקישורים למדיניות IAM:
gcloud projects remove-iam-policy-binding PROJECT_ID \ --member "serviceAccount:monitoring-viewer@PROJECT_ID.iam.gserviceaccount.com" \ --role roles/monitoring.viewer gcloud iam service-accounts remove-iam-policy-binding monitoring-viewer@PROJECT_ID.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[custom-metrics/custom-metrics-stackdriver-adapter]" gcloud iam service-accounts delete monitoring-viewerמוחקים את התמונות ב-Artifact Registry. אפשר גם למחוק את כל המאגר. הוראות מופיעות במסמכי התיעוד של Artifact Registry בנושא מחיקת תמונות.
סקירה כללית של הרכיב
בקטע הזה מתוארים הרכיבים שבהם נעשה שימוש במדריך הזה, כמו המודל, אפליקציית האינטרנט, המסגרת והאשכול.
מידע על מודל T5
במדריך הזה נעשה שימוש במודל T5 רב-לשוני שאומן מראש. T5 הוא טרנספורמר מסוג יצירת טקסט על סמך טקסט שממיר טקסט משפה אחת לשפה אחרת. ב-T5, הקלט והפלט הם תמיד מחרוזות טקסט, בניגוד למודלים בסגנון BERT שיכולים להפיק רק תווית של מחלקה או טווח של הקלט. אפשר להשתמש במודל T5 גם למשימות כמו סיכום, שאלות ותשובות או סיווג טקסט. המודל עבר אימון על כמות גדולה של טקסט מ-Colossal Clean Crawled Corpus (C4) ומ-Wiki-DPR.
מידע נוסף מופיע במאמרי העזרה בנושא מודל T5.
Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li ו-Peter J. ליו הציג את מודל T5 במאמר Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer שפורסם ב-Journal of Machine Learning Research.
מודל T5 תומך בגדלים שונים של מודלים, עם רמות מורכבות שונות שמתאימות לתרחישי שימוש ספציפיים. במדריך הזה נעשה שימוש בגודל ברירת המחדל, t5-small, אבל אפשר גם לבחור גודל אחר. הגודל הבא של T5 מופץ ברישיון Apache 2.0:
-
t5-small: 60 מיליון פרמטרים -
t5-base: 220 מיליון פרמטרים -
t5-large: 770 million parameters. ההורדה היא בנפח 3GB. -
t5-3b: 3 מיליארד פרמטרים. ההורדה היא בנפח 11GB. t5-11b: 11 מיליארד פרמטרים. הורדה של 45GB.
מודלים אחרים של T5 זמינים במאגר Hugging Face.
מידע על TorchServe
TorchServe הוא כלי גמיש להצגת מודלים של PyTorch. הוא מספק תמיכה מוכנה לשימוש בכל ה-frameworks העיקריים של למידה עמוקה, כולל PyTorch, TensorFlow ו-ONNX. אפשר להשתמש ב-TorchServe כדי לפרוס מודלים בסביבת ייצור, או כדי ליצור אב-טיפוסים במהירות ולבצע ניסויים.
המאמרים הבאים
- להכניס לשימוש בסביבת הייצור מודל שפה גדול (LLM) עם כמה יחידות GPU.
- כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים ושיטות מומלצות בנושאי Google Cloud. כל אלה זמינים במרכז הארכיטקטורה של Cloud.