בדף הזה מוסבר איך לשלב את Cloud SQL עם Vertex AI.
השילוב הזה מאפשר לכם להחיל מודלים גדולים של שפה (LLM) שמארחים ב-Vertex AI על מסד נתונים של Cloud SQL ל-PostgreSQL, בגרסה 12 ואילך.
שילוב של Cloud SQL עם Vertex AI מאפשר להחיל על הנתונים את היכולות הסמנטיות והחיזויות של מודלים של למידת מכונה (ML). השילוב הזה מרחיב את תחביר ה-SQL עם שתי פונקציות לשליחת שאילתות למודלים:
הפעלת חיזויים כדי לקרוא למודל באמצעות SQL בתוך טרנזקציה.
יצירת הטמעות (embeddings) כדי שמודל הטמעה יתרגם הנחיות טקסט לווקטורים מספריים. אחר כך אפשר להשתמש בהטמעות הווקטוריות האלה כקלט לפונקציות של
vector. השיטות האלה כוללות השוואה ומיון של דגימות טקסט לפי המרחק הסמנטי היחסי שלהן.
כתוצאה מכך, תוכלו לבצע תחזיות בזמן אמת ולהפיק תובנות חשובות ישירות במסד הנתונים, לייעל את תהליכי העבודה ולשפר את יכולות קבלת ההחלטות.
מידע נוסף על Vertex AI זמין במאמר מבוא ל-Vertex AI.
לפני שמתחילים
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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 Cloud de Confiance project.
- מפעילים את ממשקי ה-API הנדרשים. Cloud de Confiance by S3NS
המסוף
- עוברים אל APIs & Services.
- ברשימת הפרויקטים, בוחרים את הפרויקט הרצוי.
- אם ספריית ה-API לא פתוחה, בתפריט הניווט בוחרים באפשרות ספרייה.
לוחצים על ממשקי ה-API שרוצים להפעיל. כדי לבצע את התהליך הזה, צריך להפעיל את האפשרויות הבאות:
- Cloud SQL Admin API
- Vertex AI API
- Compute Engine API
- אחרי שבוחרים כל API, לוחצים על הפעלה.
gcloud
- פותחים את Cloud Shell, שנותן גישה למשאבי Cloud de Confiance by S3NS הפרויקט ישירות מהדפדפן.
- כדי להפעיל את ממשקי ה-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.
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 \ --enable-google-ml-integration \ --database-flags cloudsql.enable_google_ml_integration=on
מחליפים את הפרטים הבאים:
- INSTANCE_NAME: השם של המכונה
- DATABASE_VERSION: גרסת מסד הנתונים של המופע (לדוגמה,
POSTGRES_13) - MACHINE_TYPE: סוג המכונה של המכונה
- REGION_NAME: שם האזור של המכונה
עדכון המכונה
כדי לעדכן את המכונה, משתמשים בפקודה
gcloud sql instances patch.gcloud sql instances patch INSTANCE_NAME \ --enable-google-ml-integration \ --database-flags cloudsql.enable_google_ml_integration=on
אם העדכון הזה משנה ערך שדורש הפעלה מחדש, תוצג הנחיה להמשיך בשינוי או לבטל אותו.
REST v1
יצירת המופע
משתמשים בדוגמה הזו כדי ליצור את המופע. רשימה מלאה של הפרמטרים של הקריאה הזו מופיעה בדף instances:insert. מידע על הגדרות של מופעים, כולל ערכים תקינים לאזור, זמין במאמר בנושא הגדרות של מופעים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: המזהה או מספר הפרויקט של פרויקט Cloud de Confiance שמכיל את המופע.
- INSTANCE_NAME: השם של המכונה.
- REGION_NAME: שם האזור של המכונה.
- DATABASE_VERSION: מחרוזת enum של גרסת מסד הנתונים, כמו
POSTGRES_13. - 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: המזהה או מספר הפרויקט של פרויקט Cloud de Confiance שמכיל את המופע
- 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: המזהה או מספר הפרויקט של פרויקט Cloud de Confiance שמכיל את המופע.
- INSTANCE_NAME: השם של המכונה.
- REGION_NAME: שם האזור של המכונה.
- DATABASE_VERSION: מחרוזת enum של גרסת מסד הנתונים, כמו
POSTGRES_13. - 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: המזהה או מספר הפרויקט של פרויקט Cloud de Confiance שמכיל את המופע
- 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" } - מתקינים את התוסף
google_ml_integrationבמסד נתונים של מכונת Cloud SQL הראשית. מסד הנתונים הזה מכיל נתונים שאתם רוצים להריץ עליהם תחזיות.- מקשרים לקוח
psqlלמכונה הראשית, כמו שמתואר במאמר קישור באמצעות לקוח psql. - בשורת הפקודה
psql, מתחברים למסד הנתונים:\c DB_NAME
מחליפים את
DB_NAMEבשם של מסד הנתונים שבו רוצים להתקין את התוסף. - מתקינים את התוסף:
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
- מקשרים לקוח
פתרון בעיות
בקטע הזה מפורט מידע על בעיות שקשורות לשילוב של Cloud SQL עם Vertex AI, וגם שלבים לפתרון הבעיות.
| שגיאה | פתרון בעיות |
|---|---|
הודעת שגיאה: Google ML integration API is supported only on Postgres version 12 or above. |
כדי להפעיל את השילוב של Vertex AI ב-Cloud SQL, צריך מסד נתונים של Cloud SQL ל-PostgreSQL, מגרסה 12 ואילך. כדי לשדרג את מסד הנתונים לגרסה הזו, אפשר לעיין במאמר שדרוג הגרסה הראשית של מסד הנתונים במקום. |
הודעת שגיאה: 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/postgres/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 בקשות לדקה לכל אזור לכל מודל לכל פרויקט. |