AlloyDB AI היא חבילת תכונות שכלולה ב-AlloyDB Omni, שמאפשרת לכם לפתח אפליקציות של AI גנרטיבי לארגונים. מידע נוסף על פונקציונליות ה-AI/ML של AlloyDB זמין במאמר פיתוח אפליקציות של AI גנרטיבי.
בעזרת AlloyDB Omni עם AlloyDB AI, אתם יכולים לשלוח שאילתות למודלים מרוחקים של למידת מכונה באמצעות התוסף google_ml_integration כדי לעבוד עם חיזויים אונליין והטמעות טקסט שנוצרו ממודלים של למידת מכונה. AlloyDB Omni עם AlloyDB AI יכול גם לעבד הטמעות וקטורים מתוכן אחר, כמו תמונה, למשל אם משתמשים בממשק google_ml.predict_row ומבצעים את התרגום בעצמכם בשאילתה.
הגדרת Google Cloud לשליחת שאילתות למודלים מרוחקים
כדי לשלוח שאילתות למודלים של Vertex AI, צריך להגדיר חשבון שירות של AlloyDB Omni עם Vertex AI לפני שמתקינים את AlloyDB Omni.
כדי להגדיר חשבון שירות לשליחת שאילתות למודלים מרוחקים:
יוצרים חשבון שירות באמצעותGoogle Cloud. בשלב מאוחר יותר תתנו לחשבון השירות הזה הרשאות גישה ל-Vertex AI.
יוצרים מפתח של חשבון שירות, שומרים אותו בפורמט JSON בקובץ
private-key.jsonומורידים אותו.מעתיקים את המפתח של חשבון השירות שיצרתם אל
KEY_PATH. נתיב המפתח צריך להיות נתיב במארח שלכם, שנגיש למשתמש שיפעיל את מאגר AlloyDB Omni, ובבעלותו.מפעילים את Vertex AI API בפרויקט ב- Google Cloud .
gcloud services enable aiplatform.googleapis.com
מוסיפים הרשאות של Vertex AI לניהול זהויות והרשאות גישה (IAM) לפרויקט ולחשבון השירות המתאימים.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role="roles/aiplatform.user"מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
SERVICE_ACCOUNT_ID: המזהה של חשבון השירות שיצרתם בשלב הראשון. הסיומת הזו כוללת את הסיומת המלאה@PROJECT_ID.iam.gserviceaccount.com. לדוגמה:my-service@my-project.iam.gserviceaccount.com.
הגדרת AlloyDB AI ל-AlloyDB Omni
כדי להתקין את AlloyDB Omni ולשלב את AlloyDB AI, מבצעים את השלבים הבאים כמשתמש Root:
מבצעים את כל השלבים שמפורטים בקטע הגדרה של Google Cloud לשליחת שאילתות למודלים מרוחקים.
אם כבר קיים קונטיינר עם אותו שם, עוצרים ומסירים אותו.
Docker
docker stop CONTAINER_NAMEdocker rm CONTAINER_NAMEDocker
docker stop CONTAINER_NAMEdocker rm CONTAINER_NAMEPodman
podman stop CONTAINER_NAMEpodman rm CONTAINER_NAMEPodman
podman stop CONTAINER_NAMEpodman rm CONTAINER_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
CONTAINER_NAME: השם שרוצים להקצות למאגר של AlloyDB Omni במרשם המאגרים של המכונה המארחת. לדוגמה,my-omni-1.
-
מפעילים קונטיינר חדש של AlloyDB Omni וטוענים את המפתח לקונטיינר.
Docker
docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest
Docker
docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest
Podman
podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest
Podman
podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest
מחליפים את המשתנים הבאים:
-
CONTAINER_NAME: השם שרוצים להקצות למאגר של AlloyDB Omni במרשם המאגרים של המכונה המארחת. לדוגמה,my-omni-1. -
NEW_PASSWORD: הסיסמה שהוקצתה למשתמשpostgresשל הקונטיינר החדש אחרי שהוא נוצר. שימו לב שהמדיניותNEW_PASSWORDתגדיר סיסמה חדשה רק אםDATA_DIRהוא מיקום חדש. -
DATA_DIR: הנתיב לספריית המארח שבה הנתונים מאוחסנים. -
KEY_PATH: הנתיב לקובץ המפתח של חשבון השירות. -
HOST_PORT: יציאת TCP במכונה המארחת שאליה הקונטיינר צריך לפרסם את היציאה שלו5432. כדי להשתמש ביציאת ברירת המחדל של PostgreSQL גם במכונה המארחת, מציינים את הערך5432.
-
מוודאים שקובץ המפתח קריא למשתמש
postgresבתוך הקונטיינר של AlloyDB Omni.Docker
docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsondocker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonDocker
docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsondocker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonPodman
podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsonpodman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonPodman
podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsonpodman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonמחליפים את המשתנים הבאים:
-
CONTAINER_NAME: השם שרוצים להקצות למאגר של AlloyDB Omni במרשם המאגרים של המכונה המארחת. לדוגמה,my-omni-1. -
KEY_PATH: הנתיב למארח של קובץ המפתח של חשבון השירות.
-
מעדכנים את AlloyDB Omni על ידי הוספת אפשרויות ההגדרה הבאות.
Docker
docker exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Docker
docker exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Podman
podman exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Podman
podman exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
מחליפים את המשתנים הבאים:
-
CONTAINER_NAME: השם שרוצים להקצות למאגר של AlloyDB Omni במרשם המאגרים של המכונה המארחת. לדוגמה,my-omni-1.
-
מפעילים מחדש את הקונטיינר של AlloyDB Omni.
Docker
docker restart CONTAINER_NAME
Docker
docker restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
מחליפים את המשתנה הבא:
-
CONTAINER_NAME: השם שרוצים להקצות למאגר של AlloyDB Omni במרשם המאגרים של המכונה המארחת. לדוגמה,my-omni-1.
-
התחברות באמצעות psql בקונטיינר
כדי להתחבר לשרת של מסד הנתונים של AlloyDB Omni באמצעות עותק של psql בקונטיינר, מריצים את הפקודה הבאה:
Docker
docker exec -it CONTAINER_NAME psql -U postgres
Docker
docker exec -it CONTAINER_NAME psql -U postgres
Podman
podman exec -it CONTAINER_NAME psql -U postgres
Podman
podman exec -it CONTAINER_NAME psql -U postgres
מחליפים את המשתנה הבא:
-
CONTAINER_NAME: השם שרוצים להקצות למאגר של AlloyDB Omni במרשם המאגרים של המכונה המארחת. לדוגמה,my-omni-1.
אימות ההתקנה של AlloyDB Omni עם AlloyDB AI
כדי לוודא שההתקנה בוצעה בהצלחה ושהיא משתמשת בחיזוי מודל, מזינים את הפקודה הבאה:
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
SELECT array_dims(embedding('text-embedding-005', 'AlloyDB AI')::real[]);
הפלט אמור להיראות כך:
array_dims
------------
[1:768]
(1 row)
בשאילתה הקודמת, הקריאה ל-embedding() יוצרת הטמעות לטקסט הקלט AlloyDB AI.
array_dims מחזירה את המימדים של המערך שמוחזר על ידי embedding().
מכיוון שהמודל text-embedding-005 מחזיר פלט עם 768 מאפיינים, הפלט הוא [768].
המאמרים הבאים
- הפעלה והתחברות ל-AlloyDB Omni.
- ניהול AlloyDB Omni
- פיתוח אפליקציות של AI גנרטיבי באמצעות AlloyDB AI.
- רישום וקריאה למודלים מרוחקים של AI.