בדף הזה מוסבר איך לרשום נקודת קצה של מודל AI ולהפעיל חיזויים באמצעות ניהול נקודות קצה של מודלים ב-Cloud SQL. כדי להשתמש במודלים של AI בסביבות ייצור, אפשר לעיין במאמרים יצירת אפליקציות AI גנרטיבי באמצעות Cloud SQL ועבודה עם הטמעות וקטוריות.
סקירה כללית
ניהול נקודות קצה של מודלים מאפשר לכם לרשום נקודת קצה של מודל, לנהל מטא-נתונים של נקודת קצה של מודל במופע Cloud SQL, ואז ליצור אינטראקציה עם המודלים באמצעות שאילתות SQL.
ב-Cloud SQL יש את התוסף google_ml_integration שכולל פונקציות להוספה ולרישום של מטא-נתונים של נקודות קצה של מודלים שקשורים למודלים.
אפשר להשתמש במודלים האלה כדי ליצור הטמעות של וקטורים או כדי להפעיל תחזיות.
אפשר לרשום את סוגי המודלים הבאים באמצעות ניהול נקודות קצה של מודלים:
- מודלים להטמעת טקסט ב-Vertex AI.
- מודלים להטמעת טקסט שמתארחים ברשתות בתוך Google Cloud.
מודלים גנריים עם API מבוסס-JSON. דוגמאות למודלים כאלה:
- מודל
gemini-proמ-Vertex AI Model Garden - מודל
open_aiלמודלים של OpenAI - מודלים שמתארחים ברשתות בתוך Google Cloud
- מודל
איך זה עובד
אתם יכולים להשתמש בניהול נקודות קצה של מודלים כדי לרשום נקודת קצה של מודל שעומדת בדרישות הבאות:
- הקלט והפלט של המודל תומכים בפורמט JSON.
- אפשר להשתמש בפרוטוקול REST כדי לקרוא למודל.
כשרושמים נקודת קצה של מודל באמצעות הכלי לניהול נקודות קצה של מודלים, הכלי רושם כל נקודת קצה עם מזהה מודל ייחודי כהפניה למודל. אפשר להשתמש במזהה המודל הזה כדי לשלוח שאילתות למודלים, באופן הבא:
ליצור הטבעות כדי לתרגם הנחיות טקסט לווקטורים מספריים. אפשר לאחסן הטמעות שנוצרו כנתונים וקטוריים כשהתוסף
pgvectorמופעל במסד הנתונים. מידע נוסף זמין במאמר בנושא שליחת שאילתות והטמעות של אינדקסים באמצעות pgvector.אפשר להפעיל חיזוי כדי לקרוא למודל באמצעות SQL בתוך טרנזקציה.
האפליקציות שלכם יכולות לנהל את נקודות הקצה של המודלים באמצעות התוסף google_ml_integration. התוסף הזה מספק את פונקציות ה-SQL הבאות:
-
google_ml.create_model(): רישום של נקודת הקצה של המודל שמשמשת בפונקציית החיזוי או ההטמעה -
google_ml.create_sm_secret(): משתמש בסודות ב- Google CloudSecret Manager, שבו מאוחסנים מפתחות ה-API -
google_ml.embedding(): יוצר הטמעות טקסט -
google_ml.predict_row(): יצירת תחזיות כשמפעילים מודלים גנריים שתומכים בפורמטים של קלט ופלט JSON
מושגים מרכזיים
לפני שמתחילים להשתמש בניהול נקודות קצה של מודלים, חשוב להבין את המושגים שנדרשים כדי להתחבר למודלים ולהשתמש בהם.
ספק המודל
ספק המודל הוא ספק אירוח המודלים הנתמך. בטבלה הבאה מוצג הערך של ספק המודל שצריך להגדיר בהתאם לספק המודל שבו אתם משתמשים:
| ספק המודל | הגדרה בפונקציה בתור… |
|---|---|
| Vertex AI (כולל Gemini) | google |
| Anthropic | anthropic |
| Hugging Face | hugging_face |
| OpenAI | open_ai |
| מודלים אחרים שמתארחים מחוץ ל-Vertex AI, Anthropic, Hugging Face ו-OpenAI |
custom |
ספק המודלים שמוגדר כברירת מחדל הוא custom.
סוגי מודלים
סוגי מודלים הם הסוגים של מודל ה-AI. כשרושמים נקודת קצה של מודל, אפשר להגדיר את סוגי המודלים text_embedding או generic לנקודת הקצה.
- מודלים להטמעת טקסט עם תמיכה מובנית
- ניהול נקודות קצה של מודלים מספק תמיכה מובנית בכל הגרסאות של מודל
textembedding-gecko. כדי לרשום את נקודות הקצה של המודלים האלה, משתמשים בפונקציהgoogle_ml.create_model(). מערכת Cloud SQL מגדירה אוטומטית פונקציות טרנספורמציה שמוגדרות כברירת מחדל למודלים האלה. - סוג המודל של המודלים האלה הוא
text_embedding. - מודלים אחרים להטמעת טקסט
- במודלים אחרים להטמעת טקסט, צריך ליצור פונקציות טרנספורמציה כדי לטפל בפורמטים של הקלט והפלט שהמודל תומך בהם. אפשר גם להשתמש בפונקציה ליצירת כותרות HTTP שיוצרת כותרות בהתאמה אישית שנדרשות על ידי המודל.
- סוג המודל של המודלים האלה הוא
text_embedding. - מודלים גנריים
- ניהול נקודות הקצה של המודלים תומך גם ברישום של כל סוגי המודלים האחרים, מלבד מודלים להטמעת טקסט. כדי להפעיל תחזיות למודלים כלליים, משתמשים בפונקציה
google_ml.predict_row(). אפשר להגדיר מטא-נתונים של נקודת קצה של מודל, כמו נקודת קצה של בקשה וכותרות HTTP שספציפיות למודל. - אי אפשר להעביר פונקציות טרנספורמציה כשרושמים נקודת קצה של מודל גנרי. חשוב לוודא שכאשר מפעילים חיזויים, הקלט לפונקציה הוא בפורמט JSON, ושהפלט של ה-JSON מנותח כדי להפיק את הפלט הסופי.
- סוג המודל של המודלים האלה הוא
generic. genericהוא סוג המודל שמוגדר כברירת מחדל, ולכן אם רושמים נקודות קצה של מודל מהסוג הזה, הגדרת סוג המודל היא אופציונלית.
שיטות אימות
אתם יכולים להשתמש בתוסףgoogle_ml_integration כדי לציין שיטות אימות שונות לגישה למודל.
הגדרת השיטות האלה היא אופציונלית, והיא נדרשת רק אם אתם צריכים לאמת את הגישה למודל.
במודלים של Vertex AI, חשבון השירות של Cloud SQL משמש לאימות. במודלים אחרים, אפשר להשתמש במפתח ה-API או באסימון ה-bearer שמאוחסן כסוד ב-Secret Manager עם פונקציית ה-SQL google_ml.create_sm_secret().
בטבלה הבאה מפורטות שיטות האימות שאפשר להגדיר:
| שיטת אימות | הגדרה בפונקציה בתור… | ספק המודל |
|---|---|---|
| סוכן שירות של Cloud SQL | cloudsql_service_agent_iam |
ספק Vertex AI |
| Secret Manager | secret_manager |
מודלים שמארחים מחוץ ל-Vertex AI |
פונקציות חיזוי
התוסף google_ml_integration כולל את פונקציות החיזוי הבאות:
google_ml.embedding()
- Calls a registered text embedding model endpoint to
generate embeddings. הוא כולל תמיכה מובנית במודל
textembedding-geckoשל Vertex AI. - במודלים להטמעת טקסט ללא תמיכה מובנית, פרמטרי הקלט והפלט ייחודיים למודל וצריך לבצע בהם טרנספורמציה כדי שהפונקציה תקרא למודל. יוצרים פונקציית קלט לטרנספורמציה כדי להמיר את הקלט של פונקציית החיזוי לקלט הספציפי של המודל, ופונקציית פלט לטרנספורמציה כדי להמיר את הפלט הספציפי של המודל לפלט של פונקציית החיזוי.
google_ml.predict_row()
- קורא לנקודת קצה רשומה של מודל גנרי, אם נקודת הקצה תומכת בממשקי API מבוססי JSON להפעלת תחזיות.
טרנספורמציה של פונקציות
פונקציות טרנספורמציה משנות את הקלט לפורמט שהמודל מבין, וממירות את התגובה של המודל לפורמט שפונקציית החיזוי מצפה לו. פונקציות הטרנספורמציה משמשות כשרושמים את נקודת הקצה של מודל text-embedding ללא תמיכה מובנית. החתימה של פונקציות הטרנספורמציה תלויה בפונקציית החיזוי של סוג המודל.
אי אפשר להשתמש בפונקציות טרנספורמציה כשרושמים נקודת קצה של מודל generic.
בדוגמה הבאה מוצגות החתימות של פונקציית החיזוי עבור מודלים של הטמעת טקסט:
// define custom model specific input/output transform functions.
CREATE OR REPLACE FUNCTION input_transform_function(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;
CREATE OR REPLACE FUNCTION output_transform_function(model_id VARCHAR(100), response_json JSON) RETURNS real[];
מידע נוסף על יצירת פונקציות טרנספורמציה זמין במאמר דוגמה לפונקציות טרנספורמציה.
פונקציה ליצירת כותרת HTTP
הפונקציה ליצירת כותרות HTTP יוצרת את הפלט בזוגות של מפתח וערך בפורמט JSON, שמשמשים ככותרות HTTP. החתימה של פונקציית החיזוי מגדירה את החתימות של פונקציית יצירת הכותרת.
בדוגמה הבאה מוצגת החתימה של פונקציית החיזוי google_ml.embedding():
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON;
עבור פונקציית החיזוי google_ml.predict_row(), החתימה היא כדלקמן:
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON;
מידע נוסף על יצירת פונקציה ליצירת כותרות זמין במאמר דוגמה לפונקציה ליצירת כותרות.
מגבלות
- כדי להשתמש במודלים של AI עם מכונת Cloud SQL, גרסת התחזוקה של המכונה צריכה להיות
R20240910.01_02ואילך. כדי לשדרג את המכונה לגרסה הזו, אפשר לעיין במאמר בנושא ביצוע תחזוקה בשירות עצמי.
המאמרים הבאים
- הגדרת אימות לספקי מודלים.
- רישום של נקודת קצה של מודל באמצעות ניהול נקודות קצה של מודלים
- מידע נוסף על ניהול נקודות קצה של מודלים