התוסף google_ml_integration כולל פונקציות להטמעה בשני מרחבי שמות שונים: public ו-google_ml. בדף הזה מוסבר איך ליצור הטמעות טקסט באמצעות פונקציות ממרחבי השמות האלה.
אפשר להשתמש בפונקציה embedding() בסכימה public עם כל מודל הטמעה של Vertex AI בלי לרשום את נקודת הקצה. אם רוצים להעביר מידע מותאם אישית כמו סוג המשימה, צריך לרשום את נקודת הקצה ואז להשתמש בפונקציה google_ml.embedding() בסכימה google_ml. מידע נוסף על רישום נקודת קצה זמין במאמר רישום מודל.
איך הטמעות עובדות
דמיינו מסד נתונים שפועל ב-AlloyDB עם המאפיינים הבאים:
מסד הנתונים מכיל טבלה,
items. כל שורה בטבלה הזו מתארת פריט שהעסק שלכם מוכר.הטבלה
itemsמכילה עמודה,complaints. בעמודהTEXTהזו מאוחסנות תלונות של קונים שנרשמו לגבי כל פריט.המסד נתונים משולב עם Vertex AI Model Garden, ולכן יש לו גישה למודלים
gemini-embedding-001באנגלית.
למרות שבמסד הנתונים הזה מאוחסנות תלונות על פריטים, התלונות האלה מאוחסנות כטקסט פשוט, ולכן קשה לבצע עליהן שאילתות. לדוגמה, כדי לראות אילו פריטים קיבלו הכי הרבה תלונות מלקוחות שקיבלו מוצרים בצבע הלא נכון, אפשר להריץ שאילתות SQL רגילות בטבלה, שמחפשות התאמות שונות למילות מפתח. עם זאת, הגישה הזו מתאימה רק לשורות שמכילות את מילות המפתח המדויקות האלה.
לדוגמה, שאילתת SQL בסיסית כמו SELECT * FROM item WHERE complaints LIKE
"%wrong color%" לא תחזיר שורה שבה השדה complaints מכיל רק את הערך The picture shows a blue one, but the one I received was red.
שאילתות SQL שמבוססות על הטמעות שמופעלות על ידי LLM יכולות לעזור להחזיר תשובות דומות מבחינה סמנטית לשאילתות כאלה. באמצעות הטמעות, אפשר לשלוח שאילתה לטבלה בדוגמה הזו כדי למצוא פריטים שהתלונות לגביהם דומות מבחינה סמנטית להנחיית טקסט נתונה, כמו It was the
wrong color.
כדי ליצור הטמעה בסיסית, בוחרים אחת מהסכימות הבאות.
לפני שמתחילים
כדי לאפשר ל-AlloyDB ליצור הטמעות:
- מתחברים למסד הנתונים באמצעות
psqlאו AlloyDB ל-PostgreSQL Studio בתור המשתמשpostgres. מוודאים שהתוסף
google_ml_integrationמותקן.כדי לבדוק את גרסת התוסף באמצעות הפקודה הבאה:
SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';אם צריך לעדכן את התוסף, משתמשים בפקודה
ALTER EXTENSION google_ml_integration UPDATE;.כדי ליצור הטמעות ממסד נתונים של AlloyDB, צריך להגדיר את AlloyDB כך שיפעל עם Vertex AI. מידע נוסף זמין במאמר בנושא שילוב של מסד הנתונים עם Vertex AI.
הענקת הרשאות למשתמשי מסד נתונים ליצירת הטמעות.
כדי ליצור הטמעות, צריך להעניק למשתמש את ההרשאה
EXECUTEבפונקציהgoogle_ml.embedding:\c 'DB_NAME'; GRANT EXECUTE ON FUNCTION google_ml.embedding TO 'USER_NAME';מחליפים את מה שכתוב בשדות הבאים:
DB_NAME: השם של מסד הנתונים שבו ניתנות ההרשאות.
USER_NAME: השם של המשתמש שההרשאות מוענקות לו.
יצירת הטמעות
משתמשים בפונקציית ה-SQL google_ml.embedding() כדי להפעיל מודלים להטמעת טקסט.
כדי להפעיל את המודל וליצור הטמעות, מריצים את השאילתה הבאה:
SELECT
google_ml.embedding(
model_id => 'MODEL_ID',
content => 'CONTENT');
מחליפים את מה שכתוב בשדות הבאים:
-
MODEL_ID: מזהה המודל המוסמך – לדוגמה,gemini-embedding-001. -
CONTENT: הטקסט שרוצים לתרגם להטמעה וקטורית.
דוגמאות ליצירת הטמעות
בקטע הזה מופיעות כמה דוגמאות ליצירת הטמעות באמצעות נקודת קצה של מודל רשום.
מודלים של Gemini להטמעה
כדי ליצור הטמעות לנקודת קצה של מודל gemini-embedding-001 רשום, מריצים את ההצהרה הבאה:
SELECT
google_ml.embedding(
model_id => 'gemini-embedding-001',
content => 'AlloyDB is a managed, cloud-hosted SQL database service');
אם אשכול AlloyDB ונקודת הקצה של Vertex AI נמצאים בפרויקטים שונים, צריך לבצע את הפעולות הבאות:
מריצים את ההצהרה הבאה של
CALL.CALL google_ml.create_model( model_id => 'gemini-embedding-001', model_request_url => 'https://REGION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/gemini-embedding-001:predict', model_provider => 'google', model_type => 'text_embedding', model_auth_type => 'alloydb_service_agent_iam', model_in_transform_fn => 'google_ml.vertexai_text_embedding_input_transform', model_out_transform_fn => 'google_ml.vertexai_text_embedding_output_transform' );כדי ליצור הטמעות לנקודת קצה של מודל
gemini-embedding-001רשום, מריצים את ההצהרה הבאה:SELECT google_ml.embedding( model_id => 'gemini-embedding-001', content => 'AlloyDB is a managed, cloud-hosted SQL database service');
מודל הטמעה של OpenAI
כדי ליצור הטמעות עבור נקודת קצה של מודל text-embedding-ada-002 רשום של OpenAI, מריצים את ההצהרה הבאה:
SELECT
google_ml.embedding(
model_id => 'text-embedding-ada-002',
content => 'e-mail spam');
כדי ליצור הטמעות לנקודות קצה של מודלים רשומים text-embedding-3-small או text-embedding-3-large של OpenAI, מריצים את ההצהרה הבאה:
SELECT
google_ml.embedding(
model_id => 'text-embedding-3-small',
content => 'Vector embeddings in AI');
המאמרים הבאים
- הרצת חיפושים של דמיון וקטורי.
- איך יוצרים עוזר חכם לשופינג באמצעות AlloyDB, pgvector וניהול נקודות קצה של מודלים
- יצירת אינדקסים ושאילתות של וקטורים.
- דוגמה לתהליך הטמעה