רישום של מודלים של AI מרוחקים והפעלתם באמצעות ניהול נקודות קצה של מודלים

בדף הזה מוסבר איך להפעיל חיזויים או ליצור הטמעות באמצעות מודל, ואז לרשום את נקודת הקצה של המודל באמצעות ניהול נקודות הקצה של המודלים.

מידע נוסף על הפונקציה google_ml.create_model() זמין במאמר הסבר על ניהול נקודות קצה של מודלים.

לפני שמתחילים

  • מגדירים אימות בהתאם לספק המודל.
  • חשוב לוודא שאתם משתמשים בשם המשתמש שמוגדר כברירת מחדל ב-postgres כדי לגשת למסד הנתונים.

הפעלת התוסף

  1. מגדירים את הדגל לניהול מסד הנתונים google_ml_integration.enable_model_support לערך on במכונה. מידע נוסף על הגדרת דגלים לניהול מסדי נתונים זמין במאמר הגדרת דגלים לניהול מסדי נתונים.

  2. מתחברים למכונה הראשית באמצעות Cloud SQL Studio או psql client.

  3. מריצים את הפקודה הבאה כדי לוודא שהתוסף google_ml_integration מעודכן לגרסה 1.4.2:

        ALTER EXTENSION google_ml_integration UPDATE TO '1.4.2'
    
  4. מוסיפים את התוסף google_ml_integration בגרסה 1.4.2 באמצעות psql:

      CREATE EXTENSION google_ml_integration VERSION '1.4.2';
    
  5. אופציונלי: נותנים למשתמש PostgreSQL שאינו סופר-משתמש הרשאה לנהל את המטא-נתונים של המודל:

      GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA google_ml TO NON_SUPER_USER;
    

    מחליפים את NON_SUPER_USER בשם המשתמש של PostgreSQL שאינו משתמש-על.

מגדירים אימות

בקטעים הבאים מוסבר איך להגדיר אימות לפני שמוסיפים נקודת קצה של מודל AI של Vertex AI או נקודות קצה של מודלי AI שמתארחים ב- Cloud de Confiance by S3NS.

הגדרת אימות ל-Vertex AI

כדי להשתמש בנקודות הקצה של מודל ה-AI של Google Vertex, צריך להוסיף הרשאות של Vertex AI לחשבון השירות של Cloud SQL שמבוסס על IAM, שבו אתם משתמשים כדי להתחבר למסד הנתונים. מידע נוסף על שילוב עם Vertex AI זמין במאמר שילוב של Cloud SQL עם Vertex AI.

הגדרת אימות למודלים באירוח מותאם אישית

בקטע הזה מוסבר איך להגדיר אימות אם אתם משתמשים ב-Secret Manager. בכל המודלים, חוץ מנקודות הקצה של מודלים ב-Vertex AI, אתם יכולים לאחסן את מפתחות ה-API או הטוקנים למוכ"ז ב-Secret Manager.

אם נקודת הקצה של המודל לא מטפלת באימות דרך Secret Manager, אפשר לדלג על הקטע הזה. לדוגמה, אם נקודת הקצה של המודל משתמשת בכותרות HTTP כדי להעביר פרטי אימות, או לא משתמשת באימות בכלל, אל תבצעו את השלבים בקטע הזה.

כדי ליצור מפתח API או טוקן למוכ"ז ולהשתמש בהם:

  1. יוצרים סוד ב-Secret Manager. למידע נוסף, קראו את המאמר יצירת סוד וגישה לגרסת סוד.

    השם והנתיב של הסוד משמשים בפונקציית ה-SQL‏ google_ml.create_sm_secret().

  2. נותנים למכונה של Cloud SQL הרשאות גישה לסוד.

      gcloud secrets add-iam-policy-binding SECRET_ID \
          --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
          --role="roles/secretmanager.secretAccessor"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SECRET_ID: מזהה הסוד ב-Secret Manager.
    • ‫SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות ב-Cloud SQL שמבוסס על IAM. כדי למצוא את כתובת האימייל הזו, משתמשים בפקודה gcloud sql instances describe INSTANCE_NAME ומחליפים את INSTANCE_NAME בשם המכונה. הערך שמופיע לצד הפרמטר serviceAccountEmailAddress הוא כתובת האימייל.

מודלים של הטמעת טקסט עם תמיכה מובנית

בקטע הזה מוסבר איך לרשום נקודות קצה של מודלים לניהול נקודות קצה של מודלים.

מודלים להטמעה של Vertex AI

הכלי לניהול נקודות קצה של מודלים מספק תמיכה מובנית בכל הגרסאות של המודלים text-embedding-gecko,‏ text-embedding ו-gemini-embedding של Vertex AI. משתמשים בשם המלא כדי להגדיר את גרסת המודל ל-textembedding-gecko@001 או ל-textembedding-gecko@002.

מזהי נקודות הקצה של מודל ההטמעה של Vertex AI נתמכים כברירת מחדל בניהול נקודות הקצה של המודלים, לכן אתם יכולים להשתמש בכל אחד מהם ישירות כמזהה המודל. במודלים האלה, התוסף מגדיר באופן אוטומטי פונקציות טרנספורמציה כברירת מחדל.

חשוב לוודא שהמכונה של Cloud SQL והמודל של Vertex AI שאתם שולחים אליו שאילתות נמצאים באותו אזור.

כדי לרשום את נקודת הקצה של המודל textembedding-gecko@002, מפעילים את הפונקציה create_model:

  CALL
    google_ml.create_model(
      model_id => 'textembedding-gecko@002',
      model_provider => 'google',
      model_qualified_name => 'textembedding-gecko@002',
      model_type => 'text_embedding',
      model_auth_type => 'cloudsql_service_agent_iam');

מודלים להטמעת טקסט שמתארחים בצד הלקוח

בקטע הזה מוסבר איך לרשום נקודות קצה (endpoints) של מודלים בהתאמה אישית שמתארחים ברשתות ב- Cloud de Confiance by S3NS.

כדי להוסיף נקודות קצה של מודלים להטמעת טקסט באירוח מותאם אישית, צריך ליצור פונקציות טרנספורמציה, ואם רוצים, גם כותרות HTTP מותאמות אישית. לעומת זאת, הוספת נקודות קצה (endpoints) של מודלים גנריים באירוח בצד הלקוח כוללת יצירה אופציונלית של כותרות HTTP בהתאמה אישית והגדרה של כתובת ה-URL לבקשת המודל.

בדוגמה הבאה מוסיפים את נקודת הקצה של מודל הטמעת הטקסט custom-embedding-model שמתארח ב-Cymbal, שמתארח ב- Cloud de Confiance by S3NS. פונקציות הטרנספורמציה cymbal_text_input_transform ו-cymbal_text_output_transform משמשות להמרת פורמט הקלט והפלט של המודל לפורמט הקלט והפלט של פונקציית החיזוי.

כדי לרשום נקודות קצה של מודלים להטמעת טקסט באירוח בצד הלקוח, השלם את השלבים הבאים:

  1. קוראים לסוד ששמור ב-Secret Manager:

    CALL
      google_ml.create_sm_secret(
        secret_id => 'SECRET_ID',
        secret_path => 'projects/project-id/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SECRET_ID: מזהה הסוד שהגדרתם, שמשמש לאחר מכן לרישום נקודת קצה של מודל. לדוגמה, key1.
    • ‫SECRET_MANAGER_SECRET_ID: מזהה הסוד שהוגדר ב-Secret Manager כשיצרתם את הסוד.
    • ‫PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .
    • ‫VERSION_NUMBER: מספר הגרסה של מזהה הסוד.
  2. יוצרים את פונקציות הטרנספורמציה של הקלט והפלט על סמך החתימה הבאה של פונקציית החיזוי לנקודות קצה של מודל הטמעת טקסט. מידע נוסף על יצירת פונקציות טרנספורמציה זמין במאמר דוגמה לפונקציות טרנספורמציה.

    הנה דוגמאות לפונקציות טרנספורמציה שספציפיות לנקודת הקצה של מודל הטמעת הטקסט custom-embedding-model:

    -- Input Transform Function corresponding to the custom model endpoint
    CREATE OR REPLACE FUNCTION cymbal_text_input_transform(model_id VARCHAR(100), input_text TEXT)
    RETURNS JSON
    LANGUAGE plpgsql
    AS $$
    DECLARE
      transformed_input JSON;
      model_qualified_name TEXT;
    BEGIN
      SELECT json_build_object('prompt', json_build_array(input_text))::JSON INTO transformed_input;
      RETURN transformed_input;
    END;
    $$;
    -- Output Transform Function corresponding to the custom model endpoint
    CREATE OR REPLACE FUNCTION cymbal_text_output_transform(model_id VARCHAR(100), response_json JSON)
    RETURNS REAL[]
    LANGUAGE plpgsql
    AS $$
    DECLARE
      transformed_output REAL[];
    BEGIN
      SELECT ARRAY(SELECT json_array_elements_text(response_json->0)) INTO transformed_output;
      RETURN transformed_output;
    END;
    $$;
    
  3. קוראים לפונקציה create model כדי לרשום את נקודת הקצה של מודל ההטמעה בהתאמה אישית:

  CALL
    google_ml.create_model(
      model_id => 'MODEL_ID',
      model_request_url => 'REQUEST_URL',
      model_provider => 'custom',
      model_type => 'text_embedding',
      model_auth_type => 'secret_manager',
      model_auth_id => 'SECRET_ID',
      model_qualified_name => 'MODEL_QUALIFIED_NAME',
      model_in_transform_fn => 'cymbal_text_input_transform',
      model_out_transform_fn => 'cymbal_text_output_transform');

מחליפים את מה שכתוב בשדות הבאים:

  • ‫MODEL_ID: חובה. מזהה ייחודי לנקודת הקצה של המודל שאתם מגדירים (לדוגמה, custom-embedding-model). מזהה המודל הזה משמש כהפניה למטא-נתונים שנקודת הקצה של המודל צריכה כדי ליצור הטמעות או להפעיל חיזויים.
  • ‫REQUEST_URL: חובה. נקודת הקצה הספציפית למודל כשמוסיפים הטמעת טקסט בהתאמה אישית ונקודות קצה של מודל גנרי – לדוגמה, https://cymbal.com/models/text/embeddings/v1. מוודאים שאפשר לגשת לנקודת הקצה של המודל דרך כתובת IP פנימית. בניהול נקודות קצה של מודלים אין תמיכה בכתובות IP חיצוניות.
  • ‫MODEL_QUALIFIED_NAME: נדרש אם נקודת הקצה של המודל משתמשת בשם מלא. השם המלא, אם לנקודת הקצה של המודל יש כמה גרסאות.
  • ‫SECRET_ID: מזהה הסוד שבו השתמשתם קודם בתהליך google_ml.create_sm_secret().

מודלים גנריים

בקטע הזה מוסבר איך לרשום נקודת קצה גנרית של מודל gemini-pro מ-Vertex AI Model Garden, שאין לה תמיכה מובנית. אתם יכולים לרשום כל נקודת קצה (endpoint) של מודל גנרי שמתארח ב- Cloud de Confiance by S3NS.

‫Cloud SQL תומך רק בנקודות קצה של מודלים שזמינות דרך Vertex AI Model Garden, ובנקודות קצה של מודלים שמתארחות ברשתות ב- Cloud de Confiance by S3NS.

מודל Gemini

בדוגמה הבאה מוסיפים את נקודת הקצה של מודל ה-AI gemini-1.0-pro מ-Vertex AI Model Garden.

כדי לרשום את נקודת הקצה של המודל gemini-1.0-pro, מפעילים את הפונקציה create model:

    CALL
      google_ml.create_model(
        model_id => 'MODEL_ID',
        model_request_url => 'https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent',
        model_provider => 'google',
        model_auth_type => 'cloudsql_service_agent_iam');

מחליפים את מה שכתוב בשדות הבאים:

  • ‫MODEL_ID: מזהה ייחודי לנקודת הקצה של המודל שאתם מגדירים (לדוגמה,
    gemini-1). מזהה המודל הזה משמש כהפניה למטא-נתונים שנקודת הקצה של המודל צריכה כדי ליצור הטמעות או להפעיל חיזויים.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS .

מידע נוסף זמין במאמר הפעלת חיזויים לנקודות קצה של מודלים גנריים.

המאמרים הבאים