בדף הזה נסביר איך להפעיל תחזיות אונליין ממסד נתונים של AlloyDB Omni.
AlloyDB מאפשר לכם לקבל חיזויים אונליין בקוד ה-SQL באמצעות הפעלת הפונקציה ml_predict_row(). מידע נוסף על שימוש במודלים של למידת מכונה (ML) עם AlloyDB זמין במאמר בנושא פיתוח אפליקציות של AI גנרטיבי.
לפני שמתחילים
כדי להפעיל חיזוי מיידי ממסד נתונים של AlloyDB, צריך להכין את מסד הנתונים ולבחור מודל ML מתאים.
הכנת מסד הנתונים
נותנים למשתמשים במסד הנתונים הרשאה להריץ את הפונקציה
ml_predict_row()כדי להריץ חיזויים:מחברים לקוח
psqlלמכונה הראשית של האשכול, כמו שמתואר במאמר חיבור לקוח psql למכונה.בשורת הפקודה של psql, מתחברים למסד הנתונים ונותנים הרשאות:
\c DB_NAME GRANT EXECUTE ON FUNCTION ml_predict_row TO USER_NAME;מחליפים את מה שכתוב בשדות הבאים:
DB_NAME: שם מסד הנתונים שבו צריך להעניק את ההרשאות.
USER_NAME: השם של המשתמש שצריך להעניק לו הרשאות.
בחירת מודל למידת מכונה
כשקוראים לפונקציה ml_predict_row(), צריך לציין את המיקום של מודל ה-ML.
המודל שאתם מציינים יכול להיות אחד מהמודלים הבאים:
מודל שפועל ב-Vertex AI Model Garden.
הפונקציה
ml_predict_row()תומכת בהפעלת חיזויים רק במודלים טבלאיים או במודלים בהתאמה אישית.מודל Vertex AI עם נקודת קצה פעילה, שיש לכם הרשאה לניהול זהויות והרשאות גישה (IAM) כדי לגשת אליה.
AlloyDB לא תומך בנקודות קצה פרטיות לקבלת חיזויים אונליין.
הפעלת חיזויים אונליין
משתמשים בפונקציית ה-SQL ml_predict_row() כדי להפעיל חיזויים אונליין על הנתונים.
הפורמט של הארגומנט הראשוני של הפונקציה תלוי בשאלה אם מודל ה-AI שבו רוצים להשתמש נמצא ב-Vertex AI Model Garden או שהוא נקודת קצה (endpoint) שפועלת בפרויקט ב- Google Cloud .
שימוש במודל AI ב-Vertex AI Model Garden
כדי להפעיל חיזוי אונליין באמצעות מודל למידת מכונה שפועל ב-Vertex AI Model Garden, משתמשים בתחביר הבא לפונקציית ה-SQL ml_predict_row():
SELECT ml_predict_row('projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/MODEL_ID', '{ CONTENTS }');
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud
REGION_ID: המזהה של Google Cloud האזור שבו המודל נמצא, לדוגמה,us-central1עבור gemini-pro
MODEL_ID: המזהה של מודל ה-ML לשימוש – לדוגמה, gemini-pro
CONTENTS: הקלט לקריאה לחיזוי, בפורמט JSON
אם מודל ה-ML מאוחסן באותו פרויקט ואזור כמו אשכול AlloyDB, אפשר לקצר את הארגומנט הראשון של הפונקציה הזו:
SELECT ml_predict_row('publishers/google/models/MODEL_ID', '{ CONTENTS }');
למידע על הודעות התגובה של המודל ב-JSON, קראו את המסמך בנושא מודלים בסיסיים של AI גנרטיבי.
דוגמאות מופיעות בקטע דוגמאות להפעלת פקודות.
שימוש בנקודת קצה של מודל Vertex AI
כדי להפעיל חיזוי מיידי באמצעות נקודת קצה (endpoint) של מודל AI של Vertex AI, משתמשים בתחביר הבא של פונקציית ה-SQL: ml_predict_row()
SELECT ml_predict_row('projects/PROJECT_ID/locations/REGION_ID/endpoints/ENDPOINT_ID', '{ CONTENTS }');
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: המזהה של Google Cloud הפרויקט שבו נמצא המודל
REGION_ID: מזהה האזור ב- Google Cloud שבו נמצא המודל. לדוגמה:us-central1
ENDPOINT_ID: המזהה של נקודת הקצה של המודל
CONTENTS: הקלט לקריאת החיזוי, בפורמט JSON
אם נקודת הקצה נמצאת באותו פרויקט ואזור כמו אשכול AlloyDB, אפשר לקצר את הארגומנט הראשון של הפונקציה הזו:
SELECT ml_predict_row('endpoints/ENDPOINT_ID', '{ CONTENTS }');
למידע על הודעות התגובה של המודל בפורמט JSON, ראו PredictResponse.
דוגמאות להפעלות
בדוגמה הבאה נעשה שימוש במודל gemini-pro, שזמין ב-Model Garden, כדי ליצור טקסט דינמי מבוסס-AI על סמך פרומפט קצר שסופק כארגומנט מילולי ל-ml_predict_row():
select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:generateContent', '{
"contents": [{
"role": "user",
"parts": [{
"text": "What is AlloyDB?"
}]
}]
}');
התגובה היא אובייקט JSON. מידע נוסף על הפורמט של האובייקט מופיע במאמר בנושא גוף התגובה.
בדוגמה הבאה, השינויים שבוצעו בדוגמה הקודמת הם:
בדוגמה הזו, הקלט הוא התוכן של העמודה
messages.messageבמסד הנתונים הנוכחי.הדוגמה ממחישה את השימוש בפונקציה
json_build_object()ככלי עזר לעיצוב הפרמטרים של הפונקציה.
select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:generateContent', json_build_object('contents', json_build_object('text', message))) from messages;
אובייקט ה-JSON שמוחזר מכיל עכשיו רשומה אחת במערך predictions לכל שורה בטבלה messages.
התגובה היא אובייקט JSON, ולכן אפשר לשלוף ממנה שדות ספציפיים באמצעות אופרטור החץ של PostgreSQL:
select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:generateContent', json_build_object('contents', json_build_object('text', message)))->'predictions'->0->'content' FROM messages;
דוגמאות נוספות לארגומנטים של ml_predict_row() מופיעות במאמר מדריך למתחילים: שימוש ב-Vertex AI API.