בדף הזה מוסבר איך לשלב את Cloud SQL עם Vertex AI.
השילוב הזה מאפשר להחיל מודלים גדולים של שפה (LLM), שמתארחים ב-Vertex AI, על מסד נתונים של Cloud SQL ל-MySQL, בגרסה 8.0.36 ואילך.
שילוב של Cloud SQL עם Vertex AI מאפשר להחיל על הנתונים את היכולות הסמנטיות והחיזויות של מודלים של למידת מכונה (ML). השילוב הזה מרחיב את תחביר ה-SQL עם שתי פונקציות לשליחת שאילתות למודלים:
הפעלת חיזויים כדי לקרוא למודל באמצעות SQL בתוך טרנזקציה.
יצירת הטמעות (embeddings) כדי שמודל הטמעה יתרגם הנחיות טקסט לווקטורים מספריים. אחר כך אפשר להשתמש בהטמעות הווקטוריות האלה כקלט לפונקציות של
vector. השיטות האלה כוללות השוואה ומיון של דגימות טקסט לפי המרחק הסמנטי היחסי שלהן.
כתוצאה מכך, תוכלו לבצע תחזיות בזמן אמת ולהפיק תובנות חשובות ישירות במסד הנתונים, לייעל את תהליכי העבודה ולשפר את יכולות קבלת ההחלטות.
מידע נוסף על Vertex AI זמין במאמר מבוא ל-Vertex AI.
לפני שמתחילים
- נכנסים לחשבון 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.
- מפעילים את ממשקי ה-API הנדרשים. Google Cloud
המסוף
- עוברים אל APIs & Services.
- ברשימת הפרויקטים, בוחרים את הפרויקט הרצוי.
- אם ספריית ה-API לא פתוחה, בתפריט הניווט בוחרים באפשרות ספרייה.
לוחצים על ממשקי ה-API שרוצים להפעיל. כדי לבצע את התהליך הזה, צריך להפעיל את האפשרויות הבאות:
- Cloud SQL Admin API
- Vertex AI API
- Compute Engine API
- אחרי שבוחרים כל API, לוחצים על הפעלה.
gcloud
- פותחים את Cloud Shell, שנותן גישה למשאבי Google Cloud הפרויקט ישירות מהדפדפן.
- כדי להפעיל את ממשקי ה-API הנדרשים, משתמשים בפקודה
gcloud services enable:gcloud services enable sqladmin.googleapis.com \ aiplatform.googleapis.com \ compute.googleapis.com
הפקודה הזו מפעילה את ממשקי ה-API הבאים:
- Cloud SQL Admin API
- Vertex AI API
- Compute Engine API
- נותנים לחשבון השירות של Cloud SQL הרשאות לניהול זהויות והרשאות גישה (IAM) כדי לגשת אל Vertex AI.
- PROJECT_ID: מזהה הפרויקט שכולל את נקודת הקצה של Vertex AI. ב-Cloud SQL, המערכת משתמשת בנקודת הקצה הזו כדי לגשת למודל ה-LLM שמארח ב-Vertex AI.
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות של Cloud SQL.
כדי למצוא את כתובת האימייל הזו, משתמשים בפקודה
gcloud sql instances describe:gcloud sql instances describe INSTANCE_NAME | grep EmailAddress
מחליפים את INSTANCE_NAME בשם של מופע Cloud SQL.
-
צריך להעניק את ההרשאות הבאות לכל משתמש במסד נתונים של MySQL שצריך לשלוח בקשות ל-Vertex AI:
SELECT ON mysql.*EXECUTE ON mysql.*
כברירת מחדל, לכל משתמש עם תפקיד
cloudsqlsuperuserיש את ההרשאות האלה, או שהוא יכול ליצור משתמש ולהעניק לו את ההרשאות הנדרשות. מידע נוסף על התפקידcloudsqlsuperuserב-Cloud SQL זמין במאמרים הרשאות משתמש ב-MySQL 8.0 והרשאות משתמש ב-MySQL 8.4.
gcloud
כדי להוסיף את ההרשאות של Vertex AI לחשבון השירות של Cloud SQL בפרויקט שבו נמצאת מכונת Cloud SQL, משתמשים בפקודהgcloud projects add-iam-policy-binding:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/aiplatform.user"
הפעלה של שילוב מסד נתונים עם Vertex AI
כדי להפעיל שילוב של מסד נתונים עם Vertex AI, פועלים לפי השלבים הבאים:
- יוצרים או מעדכנים מכונה של Cloud SQL כדי שהמכונה תוכל להשתלב עם Vertex AI.
gcloud
יצירת המופע
כדי ליצור את מכונת Cloud SQL, משתמשים בפקודה
gcloud sql instances create.gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --tier=MACHINE_TYPE \ --region=REGION_NAME \ --edition=EDITION_NAME \ --enable-google-ml-integration
מחליפים את הפרטים הבאים:
- INSTANCE_NAME: השם של המכונה
- DATABASE_VERSION: גרסת מסד הנתונים של המופע
- MACHINE_TYPE: סוג המכונה של המכונה
- REGION_NAME: שם האזור של המכונה
- EDITION_NAME: מהדורת Cloud SQL של המופע
עדכון המכונה
כדי לעדכן את המכונה, משתמשים בפקודה
gcloud sql instances patch.gcloud sql instances patch INSTANCE_NAME \ --enable-google-ml-integration \
אם העדכון הזה משנה ערך שדורש הפעלה מחדש, תוצג הנחיה להמשיך בשינוי או לבטל אותו.
REST v1
יצירת המופע
משתמשים בדוגמה הזו כדי ליצור את המופע. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף instances:insert. מידע על הגדרות של מופעים, כולל ערכים תקינים לאזור, זמין במאמר בנושא הגדרות של מופעים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
- INSTANCE_NAME: השם של המכונה.
- REGION_NAME: שם האזור של המכונה.
- DATABASE_VERSION: מחרוזת enum של גרסת מסד הנתונים.
- PASSWORD: הסיסמה של המשתמש
root. - MACHINE_TYPE: מחרוזת enum של סוג המכונה (רמת השירות), למשל
db-custom-[CPUS]-[MEMORY_MBS]. מידע נוסף זמין במאמר בנושא רמות של מכונות. - EDITION_TYPE: מהדורת Cloud SQL, למשל
ENTERPRISE.
בנוסף, צריך לכלול בבקשה את האובייקט enableGoogleMlIntegration. מגדירים את הפרמטרים הבאים, לפי הצורך:
-
enableGoogleMlIntegration: כשהפרמטר הזה מוגדר ל-true, מופעים של Cloud SQL יכולים להתחבר ל-Vertex AI כדי להעביר בקשות לתחזיות בזמן אמת ולתובנות ל-AI. -
cloudsql.enable_google_ml_integration: כשהפרמטר הזה מוגדר ל-on, Cloud SQL יכול להשתלב עם Vertex AI.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{ "name": "INSTANCE_NAME", "region": "REGION_NAME", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" | "off" } } }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2019-09-25T22:19:33.735Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }עדכון המכונה
משתמשים בדוגמה הזו כדי לעדכן את המכונה. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף instances.patch.
אם העדכון הזה משנה ערך שדורש הפעלה מחדש, תוצג הנחיה להמשיך בשינוי או לבטל אותו.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע
- INSTANCE_NAME: השם של המכונה
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
תוכן בקשת JSON:
{ "settings": { "enableGoogleMlIntegration": true, "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" } } }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }REST v1beta4
יצירת המופע
משתמשים בדוגמה הזו כדי ליצור את המופע. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף instances:insert. מידע על הגדרות של מופעים, כולל ערכים תקינים לאזור, זמין במאמר בנושא הגדרות של מופעים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע.
- INSTANCE_NAME: השם של המכונה.
- REGION_NAME: שם האזור של המכונה.
- DATABASE_VERSION: מחרוזת enum של גרסת מסד הנתונים.
- PASSWORD: הסיסמה של המשתמש
root. - MACHINE_TYPE: מחרוזת enum של סוג המכונה (רמת השירות), למשל
db-custom-[CPUS]-[MEMORY_MBS]. מידע נוסף זמין במאמר בנושא רמות של מכונות. - EDITION_TYPE: מהדורת Cloud SQL, למשל
ENTERPRISE.
בנוסף, צריך לכלול בבקשה את האובייקט enableGoogleMlIntegration. מגדירים את הפרמטרים הבאים, לפי הצורך:
-
enableGoogleMlIntegration: כשהפרמטר הזה מוגדר ל-true, מופעים של Cloud SQL יכולים להתחבר ל-Vertex AI כדי להעביר בקשות לתחזיות בזמן אמת ולתובנות ל-AI. -
cloudsql.enable_google_ml_integration: כשהפרמטר הזה מוגדר ל-on, Cloud SQL יכול להשתלב עם Vertex AI.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
תוכן בקשת JSON:
{ "name": "INSTANCE_NAME", "region": "REGION_NAME", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" | "off" } } }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2019-09-25T22:19:33.735Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }עדכון המכונה
משתמשים בדוגמה הזו כדי לעדכן את המכונה. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף instances.patch.
אם העדכון הזה משנה ערך שדורש הפעלה מחדש, תוצג הנחיה להמשיך בשינוי או לבטל אותו.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Google Cloud שמכיל את המופע
- INSTANCE_NAME: השם של המכונה
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
תוכן בקשת JSON:
{ "settings": { "enableGoogleMlIntegration": true, "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" } } }כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
פתרון בעיות
בקטע הזה מפורט מידע על בעיות שקשורות לשילוב של Cloud SQL עם Vertex AI, וגם שלבים לפתרון הבעיות.
| שגיאה | פתרון בעיות |
|---|---|
הודעת שגיאה: Google ML integration API is supported only on MySQL version 8.0.36 or above. |
כדי להפעיל את השילוב של Vertex AI ב-Cloud SQL, צריך מסד נתונים של Cloud SQL ל-MySQL בגרסה 8.0.36 ואילך. כדי לשדרג את מסד הנתונים לגרסה הזו, אפשר לעיין במאמר בנושא שדרוג גרסה משנית של מסד הנתונים. |
הודעת שגיאה: Google ML Integration API is not supported on shared core instance. Please upsize your machine type. |
אם בחרתם ליבה משותפת לסוג המכונה של המופע, לא תוכלו להפעיל את השילוב של Vertex AI ב-Cloud SQL. שדרוג סוג המכונה לליבה ייעודית. מידע נוסף זמין במאמר בנושא סוגי מכונות. |
הודעת שגיאה: Google ML Integration is unsupported for this maintenance version. Please follow https://cloud.google.com/sql/docs/mysql/self-service-maintenance to update the maintenance version of the instance. |
כדי להפעיל את השילוב של Vertex AI ב-Cloud SQL, גרסת התחזוקה של המכונה צריכה להיות R20240130 ומעלה. כדי לשדרג את המופע לגרסה הזו, אפשר לעיין במאמר בנושא תחזוקה בשירות עצמי. |
הודעת שגיאה: Cannot invoke ml_predict_row if 'cloudsql.enable_google_ml_integration' is off. |
cloudsql.enable_google_ml_integration הסימון של מסד הנתונים מושבת. אי אפשר לשלב את Cloud SQL עם Vertex AI.כדי להפעיל את הדגל הזה, משתמשים בפקודה gcloud sql instances patch:gcloud sql instances patch INSTANCE_NAME --database-flags cloudsql.enable_google_ml_integration=onמחליפים את INSTANCE_NAME בשם של מופע Cloud SQL הראשי. |
הודעת שגיאה: Failed to connect to remote host: Connection refused. |
השילוב בין Cloud SQL לבין Vertex AI לא מופעל. כדי להפעיל את השילוב הזה, משתמשים בפקודה gcloud sql instances patch:gcloud sql instances patch INSTANCE_NAME מחליפים את INSTANCE_NAME בשם של מופע Cloud SQL הראשי. |
הודעת שגיאה: Vertex AI API has not been used in project PROJECT_ID before or it is disabled. Enable it by visiting /apis/api/aiplatform.googleapis.com/overview?project=PROJECT_ID then retry. |
Vertex AI API לא מופעל. מידע נוסף על הפעלת ה-API הזה זמין במאמר הפעלת שילוב של מסד נתונים עם Vertex AI. |
הודעת שגיאה: Permission 'aiplatform.endpoints.predict' denied on resource. |
ההרשאות של Vertex AI לא מתווספות לחשבון השירות של Cloud SQL בפרויקט שבו נמצאת מכונת Cloud SQL. למידע נוסף על הוספת ההרשאות האלה לחשבון השירות, אפשר לעיין במאמר איך מעניקים לחשבון השירות של Cloud SQL הרשאות גישה ל-Vertex AI בניהול זהויות והרשאות גישה (IAM). |
הודעת שגיאה: Publisher Model `projects/PROJECT_ID/locations/REGION_NAME/publishers/google/models/MODEL_NAME` not found. |
מודל למידת המכונה או מודל ה-LLM לא קיימים ב-Vertex AI. |
הודעת שגיאה: Resource exhausted: grpc: received message larger than max. |
הגודל של הבקשה ש-Cloud SQL מעביר ל-Vertex AI חורג מהמגבלה של gRPC של 4MB לכל בקשה. |
הודעת שגיאה: Cloud SQL attempts to send a request to Vertex AI. However, the instance is in the %s region, but the Vertex AI endpoint is in the %s region. Make sure the instance and endpoint are in the same region. |
מערכת Cloud SQL מנסה לשלוח בקשה אל Vertex AI. עם זאת, המכונה הווירטואלית נמצאת באזור אחד, אבל נקודת הקצה של Vertex AI נמצאת באזור אחר. כדי לפתור את הבעיה, גם המופע וגם נקודת הקצה צריכים להיות באותו אזור. |
הודעת שגיאה: The Vertex AI endpoint isn't formatted properly. |
הפורמט של נקודת הקצה של Vertex AI לא תקין. מידע נוסף זמין במאמר שימוש בנקודות קצה פרטיות לחיזוי אונליין. |
הודעת שגיאה: Quota exceeded for aiplatform.googleapis.com/online_prediction_requests_per_base_model with base model: textembedding-gecko. |
מספר הבקשות ש-Cloud SQL מעביר אל Vertex AI חורג מהמגבלה של 1,500 בקשות לדקה לכל אזור לכל מודל לכל פרויקט. |
הודעת שגיאה: execute command denied to user DB_USER for routine 'mysql.ml_embedding'. |
למשתמש במסד הנתונים של MySQL אין את ההרשאות הדרושות כדי להפעיל את הפונקציה mysql.ml_embedding. ההרשאות הנדרשות |