AlloyDB AI היא חבילת תכונות שכלולה ב-AlloyDB Omni ומאפשרת לכם ליצור אפליקציות AI גנרטיביות לארגונים. מידע נוסף על הפונקציונליות של AI/ML ב-AlloyDB זמין במאמר פיתוח אפליקציות AI גנרטיבי.
AlloyDB Omni עם AlloyDB AI מאפשר לכם להריץ שאילתות על מודלים מרוחקים של למידת מכונה כדי לעבוד עם חיזויים אונליין ועם הטמעות טקסט שנוצרו ממודלים של למידת מכונה. בנוסף, אפשר להשתמש ב-AlloyDB Omni עם AlloyDB AI כדי לעבד הטמעות של וקטורים מתוכן אחר, כמו תמונה, למשל אם משתמשים בממשק google_ml.predict_row ומבצעים את התרגום בעצמכם בשאילתה.
הגדרת מכונת AlloyDB Omni לביצוע שאילתות במודלים מרוחקים
AlloyDB Omni יכול לשלוח שאילתות למודלים של ML מרחוק באמצעות התוסף google_ml_integration.
אם רוצים לשלוח שאילתות למודלים של Vertex AI, צריך להגדיר את חשבון השירות של AlloyDB Omni עם Vertex AI לפני שמתקינים את AlloyDB Omni.
כדי להגדיר את AlloyDB Omni לשליחת שאילתות למודלים מרוחקים, מבצעים את השלבים הבאים:
יוצרים חשבון שירות עם Google Cloud.
יוצרים מפתח לחשבון שירות בפורמט JSON ומורידים אותו. חשוב לשמור את מפתח חשבון השירות כי תצטרכו להשתמש בו בהמשך התהליך.
מעתיקים את מפתח חשבון השירות שיצרתם אל
KEY_PATH. נתיב המפתח צריך להיות נתיב במארח שלכם שאפשר לגשת אליו, והוא בבעלות המשתמש שיפעיל את קונטיינר AlloyDB Omni.מפעילים את Vertex AI API ב Google Cloud פרויקט.
gcloud services enable aiplatform.googleapis.com
מוסיפים הרשאות ניהול זהויות והרשאות גישה (IAM) ב-Vertex AI לפרויקט ולחשבון השירות המתאימים.
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:
צריך להשלים את כל השלבים שמפורטים במאמר בנושא הגדרת AlloyDB Omni לשליחת שאילתות למודלים מבוססי-ענן.
אם קיים מאגר תגים בשם זהה, צריך לעצור אותו ולהסיר אותו.
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 מרחוק והפעלתם