יצירת טקסט באמצעות הפונקציה AI.GENERATE_TEXT
במאמר הזה נסביר איך ליצור מודל מרוחק של BigQuery ML שמייצג מודל Vertex AI, ואז להשתמש במודל המרוחק הזה עם הפונקציה AI.GENERATE_TEXT כדי ליצור טקסט.
המערכת תומכת בסוגים הבאים של מודלים מרוחקים:
- מודלים מרוחקים באמצעות כל אחד מהמודלים של Gemini שזמינים לכלל המשתמשים או בגרסת טרום-השקה.
- מודלים מרוחקים במקום מודלים של Anthropic Claude.
- מודלים מרחוק במקום מודלים של Llama
- מודלים מרוחקים במקום מודלים של Mistral AI
- מודלים מרוחקים באמצעות מודלים נתמכים של קוד פתוח.
בהתאם למודל Vertex AI שתבחרו, תוכלו ליצור טקסט על סמך קלט של נתונים לא מובְנים מטבלאות אובייקטים או קלט של טקסט מטבלאות רגילות.
התפקידים הנדרשים
כדי ליצור מודל מרוחק וליצור טקסט, אתם צריכים את התפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):
- יצירה ושימוש במערכי נתונים, בטבלאות ובמודלים של BigQuery: BigQuery Data Editor (
roles/bigquery.dataEditor) בפרויקט. יצירה, הקצאה ושימוש בחיבורים ל-BigQuery: BigQuery Connections Admin (
roles/bigquery.connectionsAdmin) בפרויקט.אם לא הגדרתם חיבור ברירת מחדל, תוכלו ליצור חיבור ולהגדיר אותו כחלק מהרצת ההצהרה
CREATE MODEL. כדי לעשות זאת, צריך להיות לכם תפקיד BigQuery Admin (roles/bigquery.admin) בפרויקט. מידע נוסף מופיע במאמר בנושא הגדרת חיבור ברירת המחדל.נותנים הרשאות לחשבון השירות של החיבור: אדמין IAM של הפרויקט (
roles/resourcemanager.projectIamAdmin) בפרויקט שמכיל את נקודת הקצה של Vertex AI. זהו הפרויקט הנוכחי של מודלים מרוחקים שיוצרים על ידי ציון שם המודל כנקודת קצה. זהו הפרויקט שמזוהה בכתובת ה-URL של מודלים מרוחקים שיוצרים על ידי ציון כתובת URL כנקודת קצה.אם אתם משתמשים במודל מרוחק כדי לנתח נתונים לא מובנים מטבלת אובייקטים, וקטגוריית Cloud Storage שבה אתם משתמשים בטבלת האובייקטים נמצאת בפרויקט אחר מנקודת הקצה של Vertex AI, אתם צריכים גם הרשאת Storage Admin (
roles/storage.admin) בקטגוריית Cloud Storage שבה נעשה שימוש בטבלת האובייקטים.יצירת משימות BigQuery: BigQuery Job User (
roles/bigquery.jobUser) בפרויקט.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לביצוע המשימות שמתוארות במסמך הזה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
- יצירת מערך נתונים:
bigquery.datasets.create - יצירה, הקצאה ושימוש בחיבור:
bigquery.connections.* - מגדירים את ההרשאות לחשבון השירות:
resourcemanager.projects.getIamPolicyו-resourcemanager.projects.setIamPolicy - יצירת מודל והרצת הסקה:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
יכול להיות שתוכלו לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
לפני שמתחילים
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
יצירת מערך נתונים
יוצרים מערך נתונים ב-BigQuery שיכיל את המשאבים:
המסוף
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, לוחצים על שם הפרויקט.
לוחצים על הצגת פעולות > יצירת מערך נתונים.
בדף Create dataset, מבצעים את הפעולות הבאות:
בשדה Dataset ID, מקלידים שם למערך הנתונים.
בשדה Location type, בוחרים באפשרות Region או Multi-region.
- אם בחרתם באפשרות אזור, בוחרים מיקום מהרשימה אזור.
- אם בחרתם באפשרות Multi-region, בוחרים באפשרות US או Europe מהרשימה Multi-region.
לוחצים על יצירת מערך נתונים.
BQ
יצירת חיבור
יוצרים חיבור למשאב בענן כדי שהמודל המרוחק יוכל להשתמש בו, ומקבלים את חשבון השירות של החיבור. יוצרים את החיבור באותו מיקום שבו נמצאת קבוצת הנתונים שיצרתם בשלב הקודם.
אם כבר הגדרתם חיבור ברירת מחדל או שיש לכם את תפקיד האדמין ב-BigQuery, אתם יכולים לדלג על השלב הזה.
בוחרים באחת מהאפשרויות הבאות:המסוף
עוברים לדף BigQuery.
בחלונית השמאלית, לוחצים על Explorer:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer מרחיבים את שם הפרויקט ואז לוחצים על Connections.
בדף Connections (חיבורים), לוחצים על Create connection (יצירת חיבור).
בקטע Connection type (סוג החיבור), בוחרים באפשרות Vertex AI remote models, remote functions, BigLake and Spanner (Cloud Resource) (מודלים מרוחקים של Vertex AI, פונקציות מרוחקות, BigLake ו-Spanner (משאב בענן)).
בשדה מזהה החיבור, מזינים שם לחיבור.
בקטע Location type, בוחרים מיקום לחיבור. החיבור צריך להיות ממוקם יחד עם המשאבים האחרים שלכם, כמו מערכי נתונים.
לוחצים על יצירת קישור.
לוחצים על מעבר לחיבור.
בחלונית Connection info (פרטי התחברות), מעתיקים את מזהה חשבון השירות כדי להשתמש בו בשלב מאוחר יותר.
BQ
בסביבת שורת פקודה, יוצרים חיבור:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
הפרמטר
--project_idמבטל את פרויקט ברירת המחדל.מחליפים את מה שכתוב בשדות הבאים:
-
REGION: אזור החיבור -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
CONNECTION_ID: מזהה לחיבור
כשיוצרים משאב חיבור, מערכת BigQuery יוצרת חשבון שירות ייחודי ומקשרת אותו לחיבור.
פתרון בעיות: אם מופיעה שגיאת החיבור הבאה, צריך לעדכן את Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
-
מאחזרים ומעתיקים את מזהה חשבון השירות כדי להשתמש בו בשלב מאוחר יותר:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
הפלט אמור להיראות כך:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Terraform
משתמשים במשאב google_bigquery_connection.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
בדוגמה הבאה נוצר חיבור למשאב Cloud בשם my_cloud_resource_connection באזור US:
כדי להחיל את ההגדרות של Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
הקצאת תפקיד לחשבון השירות של חיבור המודל המרוחק
צריך להעניק את התפקיד Vertex AI User לחשבון השירות של החיבור שבו נעשה שימוש במודל המרוחק.
אם אתם מתכננים לציין את נקודת הקצה של המודל המרוחק ככתובת URL, לדוגמה endpoint = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/publishers/google/models/gemini-2.0-flash', צריך להקצות את התפקיד הזה באותו פרויקט שציינתם בכתובת ה-URL.
אם אתם מתכננים לציין את נקודת הקצה של המודל המרוחק באמצעות שם המודל, למשל endpoint = 'gemini-2.0-flash', צריך להקצות את התפקיד הזה באותו פרויקט שבו אתם מתכננים ליצור את המודל המרוחק.
הקצאת התפקיד בפרויקט אחר מובילה לשגיאה bqcx-1234567890-wxyz@gcp-sa-bigquery-condel.iam.gserviceaccount.com does not have the permission to access resource.
כדי להעניק את התפקיד Vertex AI User:
המסוף
עוברים לדף IAM & Admin.
לוחצים על הוספה.
תיבת הדו-שיח Add principals נפתחת.
בשדה New principals, מזינים את מזהה חשבון השירות שהעתקתם קודם.
בשדה Select a role (בחירת תפקיד), בוחרים באפשרות Vertex AI ואז באפשרות Vertex AI User (משתמש Vertex AI).
לוחצים על Save.
gcloud
משתמשים בפקודה gcloud projects add-iam-policy-binding.
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
MEMBER: המזהה של חשבון השירות שהעתקתם קודם
הקצאת תפקיד לחשבון השירות של חיבור טבלת האובייקט
אם אתם משתמשים במודל מרוחק כדי ליצור טקסט מנתונים בטבלת אובייקטים, אתם צריכים להעניק לחשבון השירות של החיבור לטבלת האובייקטים את התפקיד 'משתמש Vertex AI' באותו פרויקט שבו אתם מתכננים ליצור את המודל המרוחק. אם לא, אפשר לדלג על השלב הזה.
כדי למצוא את חשבון השירות לחיבור של טבלת האובייקטים:
עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, לוחצים על Datasets (מערכי נתונים) ואז בוחרים מערך נתונים שמכיל את טבלת האובייקטים.
לוחצים על סקירה כללית > טבלאות ובוחרים את טבלת האובייקטים.
בחלונית העריכה, לוחצים על הכרטיסייה פרטים.
רושמים את שם החיבור בשדה מזהה החיבור.
בחלונית Explorer (סייר), לוחצים על Connections (חיבורים).
בוחרים את החיבור שתואם לחיבור שמופיע בשדה מזהה החיבור בטבלת האובייקטים.
מעתיקים את הערך בשדה מזהה חשבון שירות.
כדי להקצות את התפקיד, בצע את השלבים הבאים:
המסוף
עוברים לדף IAM & Admin.
לוחצים על הוספה.
תיבת הדו-שיח Add principals נפתחת.
בשדה New principals, מזינים את מזהה חשבון השירות שהעתקתם קודם.
בשדה Select a role (בחירת תפקיד), בוחרים באפשרות Vertex AI ואז באפשרות Vertex AI User (משתמש Vertex AI).
לוחצים על Save.
gcloud
משתמשים בפקודה gcloud projects add-iam-policy-binding.
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
MEMBER: המזהה של חשבון השירות שהעתקתם קודם
הפעלת מודל של שותף
השלב הזה נדרש רק אם רוצים להשתמש במודלים של Anthropic Claude, Llama או Mistral AI.
נכנסים לדף Model Garden במסוף Google Cloud של Vertex AI.
מחפשים או מדפדפים כדי למצוא את מודל השותף שרוצים להשתמש בו.
לוחצים על כרטיס המודל.
בדף המודל, לוחצים על הפעלה.
ממלאים את הפרטים שנדרשים להפעלה ולוחצים על הבא.
בקטע תנאים והגבלות, מסמנים את תיבת הסימון.
לוחצים על Agree (אישור) כדי לאשר את התנאים וההגבלות ולהפעיל את המודל.
בחירת שיטת פריסה של מודל פתוח
אם יוצרים מודל מרוחק על בסיס מודל פתוח נתמך, אפשר לפרוס אוטומטית את המודל הפתוח בו-זמנית עם יצירת המודל המרוחק, על ידי ציון מזהה המודל של Vertex AI Model Garden או Hugging Face בהצהרת CREATE MODEL.
לחלופין, אפשר קודם לפרוס את המודל הפתוח באופן ידני, ואז להשתמש במודל הפתוח עם המודל המרוחק על ידי הגדרת נקודת הקצה של המודל בהצהרת CREATE MODEL. מידע נוסף זמין במאמר בנושא פריסת מודלים פתוחים.
יצירת מודל מרוחק של BigQuery ML
יוצרים מודל מרחוק:
מודלים פתוחים חדשים
במסוף Google Cloud , עוברים לדף BigQuery.
באמצעות עורך ה-SQL, יוצרים מודל מרוחק:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS ( {HUGGING_FACE_MODEL_ID = 'HUGGING_FACE_MODEL_ID' | MODEL_GARDEN_MODEL_NAME = 'MODEL_GARDEN_MODEL_NAME'} [, HUGGING_FACE_TOKEN = 'HUGGING_FACE_TOKEN' ] [, MACHINE_TYPE = 'MACHINE_TYPE' ] [, MIN_REPLICA_COUNT = MIN_REPLICA_COUNT ] [, MAX_REPLICA_COUNT = MAX_REPLICA_COUNT ] [, RESERVATION_AFFINITY_TYPE = {'NO_RESERVATION' | 'ANY_RESERVATION' | 'SPECIFIC_RESERVATION'} ] [, RESERVATION_AFFINITY_KEY = 'compute.googleapis.com/reservation-name' ] [, RESERVATION_AFFINITY_VALUES = RESERVATION_AFFINITY_VALUES ] [, ENDPOINT_IDLE_TTL = ENDPOINT_IDLE_TTL ] );
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שאמור להכיל את המודל. מערך הנתונים הזה צריך להיות באותו מיקום כמו החיבור שבו אתם משתמשים. -
MODEL_NAME: שם המודל. -
REGION: האזור שבו נעשה שימוש בחיבור. -
CONNECTION_ID: המזהה של החיבור ל-BigQuery.אפשר לקבל את הערך הזה על ידי צפייה בפרטי החיבור במסוף Google Cloud והעתקת הערך בקטע האחרון של מזהה החיבור המלא שמוצג במזהה החיבור. לדוגמה,
projects/myproject/locations/connection_location/connections/myconnection. -
HUGGING_FACE_MODEL_ID: ערךSTRINGשמציין את מזהה המודל של מודל נתמך של Hugging Face, בפורמטprovider_name/model_name. לדוגמה,deepseek-ai/DeepSeek-R1. כדי לקבל את מזהה המודל, לוחצים על שם המודל ב-Hugging Face Model Hub ומעתיקים את מזהה המודל מהחלק העליון של כרטיס המודל. -
MODEL_GARDEN_MODEL_NAME: ערךSTRINGשמציין את מזהה המודל ואת גרסת המודל של מודל נתמך ב-Vertex AI Model Garden, בפורמטpublishers/publisher/models/model_name@model_version. לדוגמה,publishers/openai/models/gpt-oss@gpt-oss-120b. כדי לקבל את מזהה המודל, לוחצים על כרטיס המודל ב-Vertex AI Model Garden ואז מעתיקים את מזהה המודל מהשדה מזהה המודל. אפשר להעתיק את גרסת ברירת המחדל של המודל מהשדה Version בכרטיס המודל. כדי לראות גרסאות אחרות של המודל שבהן אפשר להשתמש, לוחצים על Deploy model (פריסת המודל) ואז על השדה Resource ID (מזהה המשאב). -
HUGGING_FACE_TOKEN: ערךSTRINGשמציין את User Access Token של Hugging Face שבו רוצים להשתמש. אפשר לציין ערך לאפשרות הזו רק אם מציינים ערך גם לאפשרותHUGGING_FACE_MODEL_ID.ל-token צריך להיות התפקיד
readלפחות, אבל אפשר להשתמש גם ב-tokens עם היקף רחב יותר. האפשרות הזו נדרשת אם המודל שמוגדר על ידי הערךHUGGING_FACE_MODEL_IDהוא מודל מוגבל או פרטי של Hugging Face.כדי לקבל גישה לחלק מהמודלים המוגבלים, צריך להביע הסכמה מפורשת לתנאים ולהגבלות שלהם. כדי לאשר את התנאים האלה, מבצעים את השלבים הבאים:
- עוברים לדף של המודל באתר Hugging Face.
- מאתרים את התנאים וההגבלות של המודל וקוראים אותם. בדרך כלל אפשר למצוא קישור להסכם השירות בכרטיס המודל.
- מאשרים את התנאים בהתאם להנחיות בדף.
-
MACHINE_TYPE: ערךSTRINGשמציין את סוג המכונה שבה יש להשתמש כשפורסים את המודל ב-Vertex AI. מידע על סוגי מכונות נתמכים זמין במאמר סוגי מכונות. אם לא מציינים ערך לאפשרותMACHINE_TYPE, נעשה שימוש בסוג המכונה שמוגדר כברירת מחדל ב-Vertex AI Model Garden עבור המודל. -
MIN_REPLICA_COUNT: ערךINT64שמציין את המספר המינימלי של העתקים של מכונות שמשמשים לפריסת המודל בנקודת קצה של Vertex AI. השירות מגדיל או מקטין את מספר הרפליקות בהתאם לעומס ההיקש בנקודת הקצה. מספר הרפליקות שנעשה בהן שימוש אף פעם לא נמוך מהערךMIN_REPLICA_COUNTואף פעם לא גבוה מהערךMAX_REPLICA_COUNT. הערך שלMIN_REPLICA_COUNTצריך להיות בטווח[1, 4096]. ערך ברירת המחדל הוא1. -
MAX_REPLICA_COUNT: ערךINT64שמציין את המספר המקסימלי של רפליקות של מכונות שמשמשות לפריסת המודל בנקודת קצה של Vertex AI. השירות מגדיל או מקטין את מספר הרפליקות בהתאם לעומס ההיקש בנקודת הקצה. מספר הרפליקות שנעשה בהן שימוש אף פעם לא נמוך מהערךMIN_REPLICA_COUNTואף פעם לא גבוה מהערךMAX_REPLICA_COUNT. הערך שלMAX_REPLICA_COUNTצריך להיות בטווח[1, 4096]. ערך ברירת המחדל הואMIN_REPLICA_COUNT. -
RESERVATION_AFFINITY_TYPE: קובע אם המודל שנפרס משתמש בהזמנות של Compute Engine כדי לספק זמינות מובטחת של מכונות וירטואליות (VM) כשמוצגות תחזיות, ומציין אם המודל משתמש במכונות וירטואליות מכל ההזמנות הזמינות או רק מהזמנה ספציפית אחת. למידע נוסף, קראו את המאמר בנושא זיקה להזמנה ב-Compute Engine.אפשר להשתמש רק בהזמנות של Compute Engine שמשותפות עם Vertex AI. מידע נוסף זמין במאמר בנושא אישור שימוש בהזמנה.
הערכים הנתמכים הם:
-
NO_RESERVATION: לא מתבצעת צריכה של הזמנה כשהמודל שלכם נפרס בנקודת קצה של Vertex AI. הגדרתNO_RESERVATIONזהה להגדרה של אי-הגדרת שיוך להזמנה. -
ANY_RESERVATION: פריסת המודל של Vertex AI צורכת מכונות וירטואליות (VM) מהזמנות ב-Compute Engine שנמצאות בפרויקט הנוכחי או משותפות עם הפרויקט, ושמוגדרות לצריכה אוטומטית. רק מכונות וירטואליות שעומדות בדרישות הבאות ישמשו לגיבוי:- הם משתמשים בסוג המכונה שצוין בערך
MACHINE_TYPE. - אם מערך הנתונים ב-BigQuery שבו אתם יוצרים את המודל המרוחק נמצא באזור יחיד, ההזמנה צריכה להיות באותו אזור. אם מערך הנתונים נמצא באזור
US, ההזמנה צריכה להיות באזורus-central1. אם מערך הנתונים נמצא בEUמספר אזורים, ההזמנה צריכה להיות באזורeurope-west4.
אם אין מספיק קיבולת בהזמנות הזמינות, או אם לא נמצאות הזמנות מתאימות, המערכת מקצה מכונות וירטואליות (VM) ב-Compute Engine על פי דרישה כדי לעמוד בדרישות המשאבים.
- הם משתמשים בסוג המכונה שצוין בערך
-
SPECIFIC_RESERVATION: פריסת המודל ב-Vertex AI צורכת מכונות וירטואליות רק מההזמנה שצוינה בערךRESERVATION_AFFINITY_VALUES. צריך להגדיר את ההזמנה הזו לשימוש במשאבים שמיועדים ספציפית להזמנה. הפריסה נכשלת אם לשרת שהוזמן אין מספיק קיבולת.
-
-
RESERVATION_AFFINITY_KEY: המחרוזתcompute.googleapis.com/reservation-name. חובה לציין את האפשרות הזו כשהערך שלRESERVATION_AFFINITY_TYPEהואSPECIFIC_RESERVATION. -
RESERVATION_AFFINITY_VALUES: ערךARRAY<STRING>שמציין את שם המשאב המלא של ההזמנה ב-Compute Engine, בפורמט הבא:
projects/myproject/zones/reservation_zone/reservations/reservation_nameלדוגמה,
RESERVATION_AFFINITY_values = ['projects/myProject/zones/us-central1-a/reservations/myReservationName'].אפשר לראות את שם ההזמנה והאזור בדף Reservations במסוף Google Cloud . מידע נוסף זמין במאמר הצגת הזמנות.
חובה לציין את האפשרות הזו אם הערך של
RESERVATION_AFFINITY_TYPEהואSPECIFIC_RESERVATION. -
ENDPOINT_IDLE_TTL: ערךINTERVALשמציין את משך הזמן של חוסר הפעילות שאחריו המודל הפתוח יבוטל אוטומטית מנקודת הקצה של Vertex AI.כדי להפעיל ביטול פריסה אוטומטי, מציינים ערך של מרווח זמן בין 390 דקות (6.5 שעות) ל-7 ימים. לדוגמה, אם מציינים
INTERVAL 8 HOUR, המודל יבוטל אחרי 8 שעות של חוסר פעילות. ערך ברירת המחדל הוא 390 דקות (6.5 שעות).חוסר פעילות של מודל מוגדר כפרק הזמן שעבר מאז שאחת מהפעולות הבאות בוצעה במודל:
- מריצים את ההצהרה
CREATE MODEL. - הפעלת ההצהרה
ALTER MODELעם הארגומנטDEPLOY_MODELשהערך שלו הואTRUE. - שליחת בקשת הסקה לנקודת הקצה של המודל. לדוגמה, על ידי הרצת הפונקציה
AI.GENERATE_EMBEDDINGאוAI.GENERATE_TEXT.
כל אחת מהפעולות האלה מאפסת את טיימר חוסר הפעילות לאפס. האיפוס מופעל בתחילת משימת BigQuery שמבצעת את הפעולה.
אחרי שמבטלים את הפריסה של המודל, בקשות להסקת מסקנות שנשלחות למודל מחזירות שגיאה. אובייקט המודל ב-BigQuery נשאר ללא שינוי, כולל המטא-נתונים של המודל. כדי להשתמש שוב במודל להיקש, צריך לפרוס אותו מחדש על ידי הפעלת ההצהרה
ALTER MODELבמודל והגדרת האפשרותDEPLOY_MODELלערךTRUE. - מריצים את ההצהרה
מודלים פתוחים שנפרסו
במסוף Google Cloud , עוברים לדף BigQuery.
באמצעות עורך ה-SQL, יוצרים מודל מרוחק:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS ( ENDPOINT = 'https://ENDPOINT_REGION-aiplatform.googleapis.com/v1/projects/ENDPOINT_PROJECT_ID/locations/ENDPOINT_REGION/endpoints/ENDPOINT_ID' );
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שאמור להכיל את המודל. מערך הנתונים הזה צריך להיות באותו מיקום כמו החיבור שבו אתם משתמשים. -
MODEL_NAME: שם המודל. -
REGION: האזור שבו נעשה שימוש בחיבור. -
CONNECTION_ID: המזהה של החיבור ל-BigQuery.אפשר לקבל את הערך הזה על ידי צפייה בפרטי החיבור במסוף Google Cloud והעתקת הערך בקטע האחרון של מזהה החיבור המלא שמוצג במזהה החיבור. לדוגמה,
projects/myproject/locations/connection_location/connections/myconnection. -
ENDPOINT_REGION: האזור שבו המודל הפתוח פרוס. -
ENDPOINT_PROJECT_ID: הפרויקט שבו נפרס המודל הפתוח. -
ENDPOINT_ID: המזהה של נקודת הקצה (endpoint) של HTTPS שבה נעשה שימוש במודל הפתוח. כדי לקבל את מזהה נקודת הקצה, מאתרים את המודל הפתוח בדף Online prediction ומעתיקים את הערך בשדה ID.
כל שאר הדגמים
במסוף Google Cloud , עוברים לדף BigQuery.
באמצעות עורך ה-SQL, יוצרים מודל מרוחק:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS (ENDPOINT = 'ENDPOINT');
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שאמור להכיל את המודל. מערך הנתונים הזה צריך להיות באותו מיקום כמו החיבור שבו אתם משתמשים. -
MODEL_NAME: שם המודל. -
REGION: האזור שבו נעשה שימוש בחיבור. -
CONNECTION_ID: המזהה של החיבור ל-BigQuery.אפשר לקבל את הערך הזה על ידי צפייה בפרטי החיבור במסוף Google Cloud והעתקת הערך בקטע האחרון של מזהה החיבור המלא שמוצג במזהה החיבור. לדוגמה,
projects/myproject/locations/connection_location/connections/myconnection. -
ENDPOINT: נקודת הקצה של מודל Vertex AI לשימוש.למודלים שעברו אימון מראש ב-Vertex AI, למודלים של Claude ולמודלים של Mistral AI, מציינים את שם המודל. בחלק מהמודלים האלה, אפשר לציין גרסה מסוימת של המודל כחלק מהשם. כדי לשפר את הזמינות של מודלים נתמכים של Gemini, אפשר לציין את נקודת הקצה הגלובלית.
במודלים של Llama, מציינים נקודת קצה (endpoint) של OpenAI API בפורמט
openapi/<publisher_name>/<model_name>. לדוגמה,openapi/meta/llama-3.1-405b-instruct-maas.מידע על שמות וגרסאות של מודלים נתמכים זמין במאמר
ENDPOINT.המודל של Vertex AI שאתם מציינים צריך להיות זמין במיקום שבו אתם יוצרים את המודל המרוחק. מידע נוסף זמין במאמר מיקומים.
יצירת טקסט מנתונים בטבלה רגילה
יצירת טקסט באמצעות הפונקציה AI.GENERATE_TEXT עם נתוני הנחיה מטבלה רגילה:
Gemini
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT( { { [MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_P AS top_p] [, TEMPERATURE AS temperature] [, STOP_SEQUENCES AS stop_sequences] [, GROUND_WITH_GOOGLE_SEARCH AS ground_with_google_search] [, SAFETY_SETTINGS AS safety_settings] } | [, MODEL_PARAMS AS model_params] } [, REQUEST_TYPE AS request_type]) );
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את המודל. -
MODEL_NAME: שם המודל. -
TABLE_NAME: שם הטבלה שמכילה את ההנחיה. בטבלה הזו צריכה להיות עמודה בשםprompt, או שאפשר להשתמש בכינוי כדי להשתמש בעמודה עם שם אחר. -
PROMPT_QUERY: שאילתה שמספקת את נתוני ההנחיה. השאילתה הזו צריכה ליצור עמודה בשםprompt. -
TOKENS: ערךINT64שמגדיר את המספר המקסימלי של טוקנים שאפשר ליצור בתגובה. הערך חייב להיות בטווח[1,8192]. מציינים ערך נמוך יותר לתשובות קצרות וערך גבוה יותר לתשובות ארוכות. ערך ברירת המחדל הוא128. -
TEMPERATURE: ערךFLOAT64בטווח[0.0,1.0]ששולט במידת האקראיות בבחירת האסימון. ערך ברירת המחדל הוא0.ערכים נמוכים של
temperatureמתאימים להנחיות שדורשות תשובה יותר דטרמיניסטית ופחות פתוחה או יצירתית, ואילו ערכים גבוהים שלtemperatureיכולים להוביל לתוצאות יותר מגוונות או יצירתיות. ערך של0עבורtemperatureהוא דטרמיניסטי, כלומר תמיד נבחרת התגובה עם ההסתברות הכי גבוהה. -
TOP_P: ערךFLOAT64בטווח[0.0,1.0]עוזר לקבוע את ההסתברות של האסימונים שנבחרו. מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות. ערך ברירת המחדל הוא0.95. -
STOP_SEQUENCES: ערךARRAY<STRING>שמסיר את המחרוזות שצוינו אם הן נכללות בתשובות מהמודל. ההתאמה בין המחרוזות היא מדויקת, כולל אותיות רישיות. ברירת המחדל היא מערך ריק. -
GROUND_WITH_GOOGLE_SEARCH: ערךBOOLשקובע אם המודל של Vertex AI משתמש ב[הארקה באמצעות חיפוש Google](/vertex-ai/generative-ai/docs/grounding/overview#ground-public) כשנוצרות תשובות. ההארקה מאפשרת למודל להשתמש במידע נוסף מהאינטרנט כשהוא יוצר תשובה, כדי שהתשובות יהיו ספציפיות ועובדתיות יותר. כשהשדה הזה מוגדר ל-True, התוצאות כוללות עמודה נוספתgrounding_resultשבה מפורטים המקורות שהמודל השתמש בהם כדי לאסוף מידע נוסף. ערך ברירת המחדל הואFALSE. -
SAFETY_SETTINGS: ערךARRAY<STRUCT<STRING AS category, STRING AS threshold>>שמגדיר את ערכי הסף של בטיחות התוכן לסינון התשובות. הרכיב הראשון במבנה מציין קטגוריה של נזק, והרכיב השני במבנה מציין סף חסימה תואם. המודל מסנן תוכן שמפר את ההגדרות האלה. אפשר לציין כל קטגוריה רק פעם אחת. לדוגמה, אי אפשר לציין גם אתSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)וגם אתSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold). אם אין הגדרת בטיחות לקטגוריה מסוימת, נעשה שימוש בהגדרת הבטיחות שלBLOCK_MEDIUM_AND_ABOVE. הקטגוריות הנתמכות הן:HARM_CATEGORY_HATE_SPEECHHARM_CATEGORY_DANGEROUS_CONTENTHARM_CATEGORY_HARASSMENTHARM_CATEGORY_SEXUALLY_EXPLICIT
BLOCK_NONE(מוגבל)BLOCK_LOW_AND_ABOVEBLOCK_MEDIUM_AND_ABOVE(ברירת מחדל)BLOCK_ONLY_HIGHHARM_BLOCK_THRESHOLD_UNSPECIFIED
-
REQUEST_TYPE: ערךSTRINGשמציין את סוג בקשת ההסקה שרוצים לשלוח למודל Gemini. סוג הבקשה קובע באיזו מכסה הבקשה משתמשת. הערכים התקפים הם:DEDICATED: הפונקציהAI.GENERATE_TEXTמשתמשת רק במכסת הקצאת משאבים לפי התפוקה שנקבעה. הפונקציהAI.GENERATE_TEXTמחזירה את השגיאהProvisioned throughput is not purchased or is not activeאם מכסת הקצאת משאבים לפי התפוקה שנקבעה לא זמינה.-
SHARED: הפונקציהAI.GENERATE_TEXTמשתמשת רק במכסה דינמית משותפת (DSQ), גם אם רכשתם הקצאת משאבים לפי התפוקה שנקבעה. -
UNSPECIFIED: הפונקציהAI.GENERATE_TEXTמשתמשת במכסה באופן הבא:- אם לא רכשתם מכסת הקצאת משאבים לפי התפוקה שנקבעה, הפונקציה
AI.GENERATE_TEXTמשתמשת במכסת DSQ. - אם רכשתם מכסת הקצאת משאבים לפי התפוקה שנקבעה, הפונקציה
AI.GENERATE_TEXTמשתמשת קודם במכסת הקצאת משאבים לפי התפוקה שנקבעה. אם הבקשות חורגות ממכסת הקצאת משאבים לפי התפוקה שנקבעה, התנועה העודפת משתמשת במכסת DSQ.
- אם לא רכשתם מכסת הקצאת משאבים לפי התפוקה שנקבעה, הפונקציה
ערך ברירת המחדל הוא
UNSPECIFIED.מידע נוסף זמין במאמר בנושא שימוש ב-Vertex AI Provisioned Throughput.
-
MODEL_PARAMS: מחרוזת מילולית בפורמט JSON שמספקת פרמטרים למודל. הערך חייב להיות בפורמט שלgenerateContentגוף הבקשה. אפשר לספק ערך לכל שדה בגוף הבקשה, חוץ מהשדהcontents[]. אם מגדירים את השדה הזה, אי אפשר לציין גם פרמטרים של מודל בארגומנט של המבנה ברמה העליונה לפונקציהAI.GENERATE_TEXT. צריך לציין כל פרמטר של מודל בשדהMODEL_PARAMS, או להשמיט את השדה הזה ולציין כל פרמטר בנפרד.
דוגמה 1
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- הנחיות לסיכום הטקסט בעמודה
bodyבטבלהarticles.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ));
דוגמה 2
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמשים בשאילתה כדי ליצור את נתוני ההנחיה על ידי שרשור מחרוזות שמספקות קידומות להנחיה עם עמודות בטבלה.
- מחזירה תשובה קצרה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens));
דוגמה 3
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמש בעמודה
promptשל הטבלהpromptsלהנחיה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts);
דוגמה 4
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמש בעמודה
promptשל הטבלהpromptsלהנחיה. - מחזירה תשובה קצרה.
- מאחזרת נתונים ציבוריים מהאינטרנט ומחזירה אותם כדי להצדיק את התשובה.
- המסננים מסירים תשובות לא בטוחות באמצעות שתי הגדרות אבטחה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT( 100 AS max_output_tokens, 0.5 AS top_p, TRUE AS ground_with_google_search, [STRUCT('HARM_CATEGORY_HATE_SPEECH' AS category, 'BLOCK_LOW_AND_ABOVE' AS threshold), STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)] AS safety_settings));
דוגמה 5
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמש בעמודה
promptשל הטבלהpromptsלהנחיה. - התשובה תהיה ארוכה יותר.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.flash_2_model`, TABLE mydataset.prompts, STRUCT( 0.4 AS temperature, 8192 AS max_output_tokens));
דוגמה 6
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- הנחיות לסיכום הטקסט בעמודה
bodyבטבלהarticles. - מאחזרת נתונים ציבוריים מהאינטרנט ומחזירה אותם כדי להצדיק את התשובה.
- המסננים מסירים תשובות לא בטוחות באמצעות שתי הגדרות אבטחה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT( .1 AS TEMPERATURE, TRUE AS ground_with_google_search, [STRUCT('HARM_CATEGORY_HATE_SPEECH' AS category, 'BLOCK_LOW_AND_ABOVE' AS threshold), STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)] AS safety_settings));
Claude
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT( { { [MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_K AS top_k] [, TOP_P AS top_p] } | [, MODEL_PARAMS AS model_params] }) );
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את המודל. -
MODEL_NAME: שם המודל. -
TABLE_NAME: שם הטבלה שמכילה את ההנחיה. בטבלה הזו צריכה להיות עמודה בשםprompt, או שאפשר להשתמש בכינוי כדי להשתמש בעמודה עם שם אחר. -
PROMPT_QUERY: שאילתה שמספקת את נתוני ההנחיה. השאילתה הזו צריכה ליצור עמודה בשםprompt. -
TOKENS: ערךINT64שמגדיר את המספר המקסימלי של טוקנים שאפשר ליצור בתגובה. הערך חייב להיות בטווח[1,4096]. מציינים ערך נמוך יותר לתשובות קצרות וערך גבוה יותר לתשובות ארוכות. ערך ברירת המחדל הוא128. -
TOP_K: ערךINT64בטווח[1,40]שקובע את מאגר האסימונים ההתחלתי שהמודל לוקח בחשבון לצורך בחירה. מציינים ערך נמוך יותר לתשובות פחות אקראיות וערך גבוה יותר לתשובות אקראיות יותר. אם לא מציינים ערך, המודל קובע ערך מתאים. -
TOP_P: ערךFLOAT64בטווח[0.0,1.0]עוזר לקבוע את ההסתברות של האסימונים שנבחרו. מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות. אם לא מציינים ערך, המודל קובע ערך מתאים. -
MODEL_PARAMS: מחרוזת מילולית בפורמט JSON שמספקת פרמטרים למודל. הערך חייב להיות בפורמט שלgenerateContentגוף הבקשה. אפשר לספק ערך לכל שדה בגוף הבקשה, חוץ מהשדהcontents[]. אם מגדירים את השדה הזה, אי אפשר לציין גם פרמטרים של מודל בארגומנט של המבנה ברמה העליונה לפונקציהAI.GENERATE_TEXT. צריך לציין כל פרמטר של מודל בשדהMODEL_PARAMS, או להשמיט את השדה הזה ולציין כל פרמטר בנפרד.
דוגמה 1
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- הנחיות לסיכום הטקסט בעמודה
bodyבטבלהarticles.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ));
דוגמה 2
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמשים בשאילתה כדי ליצור את נתוני ההנחיה על ידי שרשור מחרוזות שמספקות קידומות להנחיה עם עמודות בטבלה.
- מחזירה תשובה קצרה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens));
דוגמה 3
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמש בעמודה
promptשל הטבלהpromptsלהנחיה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts);
Llama
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT( { { [MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_P AS top_p] [, TEMPERATURE AS temperature] [, STOP_SEQUENCES AS stop_sequences] | } [, MODEL_PARAMS AS model_params] }) );
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את המודל. -
MODEL_NAME: שם המודל. -
TABLE_NAME: שם הטבלה שמכילה את ההנחיה. בטבלה הזו צריכה להיות עמודה בשםprompt, או שאפשר להשתמש בכינוי כדי להשתמש בעמודה עם שם אחר. -
PROMPT_QUERY: שאילתה שמספקת את נתוני ההנחיה. השאילתה הזו צריכה ליצור עמודה בשםprompt. -
TOKENS: ערךINT64שמגדיר את המספר המקסימלי של טוקנים שאפשר ליצור בתגובה. הערך חייב להיות בטווח[1,4096]. מציינים ערך נמוך יותר לתשובות קצרות וערך גבוה יותר לתשובות ארוכות. ערך ברירת המחדל הוא128. -
TEMPERATURE: ערךFLOAT64בטווח[0.0,1.0]ששולט במידת האקראיות בבחירת האסימון. ערך ברירת המחדל הוא0.ערכים נמוכים של
temperatureמתאימים להנחיות שדורשות תשובה יותר דטרמיניסטית ופחות פתוחה או יצירתית, ואילו ערכים גבוהים שלtemperatureיכולים להוביל לתוצאות יותר מגוונות או יצירתיות. ערך של0עבורtemperatureהוא דטרמיניסטי, כלומר תמיד נבחרת התגובה עם ההסתברות הכי גבוהה. -
TOP_P: ערךFLOAT64בטווח[0.0,1.0]עוזר לקבוע את ההסתברות של האסימונים שנבחרו. מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות. ערך ברירת המחדל הוא0.95. -
STOP_SEQUENCES: ערךARRAY<STRING>שמסיר את המחרוזות שצוינו אם הן נכללות בתשובות מהמודל. ההתאמה בין המחרוזות היא מדויקת, כולל אותיות רישיות. ברירת המחדל היא מערך ריק. -
MODEL_PARAMS: מחרוזת מילולית בפורמט JSON שמספקת פרמטרים למודל. הערך חייב להיות בפורמט שלgenerateContentגוף הבקשה. אפשר לספק ערך לכל שדה בגוף הבקשה, חוץ מהשדהcontents[]. אם מגדירים את השדה הזה, אי אפשר לציין גם פרמטרים של מודל בארגומנט של המבנה ברמה העליונה לפונקציהAI.GENERATE_TEXT. צריך לציין כל פרמטר של מודל בשדהMODEL_PARAMS, או להשמיט את השדה הזה ולציין כל פרמטר בנפרד.
דוגמה 1
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- הנחיות לסיכום הטקסט בעמודה
bodyבטבלהarticles.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ));
דוגמה 2
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמשים בשאילתה כדי ליצור את נתוני ההנחיה על ידי שרשור מחרוזות שמספקות קידומות להנחיה עם עמודות בטבלה.
- מחזירה תשובה קצרה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens));
דוגמה 3
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמש בעמודה
promptשל הטבלהpromptsלהנחיה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts);
Mistral AI
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT( { { [MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_P AS top_p] [, TEMPERATURE AS temperature] [, STOP_SEQUENCES AS stop_sequences] | } [, MODEL_PARAMS AS model_params] }) );
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את המודל. -
MODEL_NAME: שם המודל. -
TABLE_NAME: שם הטבלה שמכילה את ההנחיה. בטבלה הזו צריכה להיות עמודה בשםprompt, או שאפשר להשתמש בכינוי כדי להשתמש בעמודה עם שם אחר. -
PROMPT_QUERY: שאילתה שמספקת את נתוני ההנחיה. השאילתה הזו צריכה ליצור עמודה בשםprompt. -
TOKENS: ערךINT64שמגדיר את המספר המקסימלי של טוקנים שאפשר ליצור בתגובה. הערך חייב להיות בטווח[1,4096]. מציינים ערך נמוך יותר לתשובות קצרות וערך גבוה יותר לתשובות ארוכות. ערך ברירת המחדל הוא128. -
TEMPERATURE: ערךFLOAT64בטווח[0.0,1.0]ששולט במידת האקראיות בבחירת האסימון. ערך ברירת המחדל הוא0.ערכים נמוכים של
temperatureמתאימים להנחיות שדורשות תשובה יותר דטרמיניסטית ופחות פתוחה או יצירתית, ואילו ערכים גבוהים שלtemperatureיכולים להוביל לתוצאות יותר מגוונות או יצירתיות. ערך של0עבורtemperatureהוא דטרמיניסטי, כלומר תמיד נבחרת התגובה עם ההסתברות הכי גבוהה. -
TOP_P: ערךFLOAT64בטווח[0.0,1.0]עוזר לקבוע את ההסתברות של האסימונים שנבחרו. מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות. ערך ברירת המחדל הוא0.95. -
STOP_SEQUENCES: ערךARRAY<STRING>שמסיר את המחרוזות שצוינו אם הן נכללות בתשובות מהמודל. ההתאמה בין המחרוזות היא מדויקת, כולל אותיות רישיות. ברירת המחדל היא מערך ריק. -
MODEL_PARAMS: מחרוזת מילולית בפורמט JSON שמספקת פרמטרים למודל. הערך חייב להיות בפורמט שלgenerateContentגוף הבקשה. אפשר לספק ערך לכל שדה בגוף הבקשה, חוץ מהשדהcontents[]. אם מגדירים את השדה הזה, אי אפשר לציין גם פרמטרים של מודל בארגומנט של המבנה ברמה העליונה לפונקציהAI.GENERATE_TEXT. צריך לציין כל פרמטר של מודל בשדהMODEL_PARAMS, או להשמיט את השדה הזה ולציין כל פרמטר בנפרד.
דוגמה 1
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- הנחיות לסיכום הטקסט בעמודה
bodyבטבלהarticles.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ));
דוגמה 2
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמשים בשאילתה כדי ליצור את נתוני ההנחיה על ידי שרשור מחרוזות שמספקות קידומות להנחיה עם עמודות בטבלה.
- מחזירה תשובה קצרה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens));
דוגמה 3
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמש בעמודה
promptשל הטבלהpromptsלהנחיה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts);
מודלים פתוחים
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT( { { [MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_K AS top_k] [, TOP_P AS top_p] [, TEMPERATURE AS temperature] } | [, MODEL_PARAMS AS model_params] }) );
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את המודל. -
MODEL_NAME: שם המודל. -
TABLE_NAME: שם הטבלה שמכילה את ההנחיה. בטבלה הזו צריכה להיות עמודה בשםprompt, או שאפשר להשתמש בכינוי כדי להשתמש בעמודה עם שם אחר. -
PROMPT_QUERY: שאילתה שמספקת את נתוני ההנחיה. השאילתה הזו צריכה ליצור עמודה בשםprompt. -
TOKENS: ערךINT64שמגדיר את המספר המקסימלי של טוקנים שאפשר ליצור בתגובה. הערך חייב להיות בטווח[1,4096]. מציינים ערך נמוך יותר לתשובות קצרות וערך גבוה יותר לתשובות ארוכות. אם לא מציינים ערך, המודל קובע ערך מתאים. -
TEMPERATURE: ערךFLOAT64בטווח[0.0,1.0]ששולט במידת האקראיות בבחירת האסימון. אם לא מציינים ערך, המודל קובע ערך מתאים.ערכים נמוכים של
temperatureמתאימים להנחיות שדורשות תשובה יותר דטרמיניסטית ופחות פתוחה או יצירתית, ואילו ערכים גבוהים שלtemperatureיכולים להוביל לתוצאות יותר מגוונות או יצירתיות. ערך של0עבורtemperatureהוא דטרמיניסטי, כלומר תמיד נבחרת התגובה עם ההסתברות הכי גבוהה. -
TOP_K: ערךINT64בטווח[1,40]שקובע את מאגר האסימונים ההתחלתי שהמודל לוקח בחשבון לצורך בחירה. מציינים ערך נמוך יותר לתשובות פחות אקראיות וערך גבוה יותר לתשובות אקראיות יותר. אם לא מציינים ערך, המודל קובע ערך מתאים. -
TOP_P: ערךFLOAT64בטווח[0.0,1.0]עוזר לקבוע את ההסתברות של האסימונים שנבחרו. מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות. אם לא מציינים ערך, המודל קובע ערך מתאים. -
MODEL_PARAMS: מחרוזת מילולית בפורמט JSON שמספקת פרמטרים למודל. הערך חייב להיות בפורמט שלgenerateContentגוף הבקשה. אפשר לספק ערך לכל שדה בגוף הבקשה, חוץ מהשדהcontents[]. אם מגדירים את השדה הזה, אי אפשר לציין גם פרמטרים של מודל בארגומנט של המבנה ברמה העליונה לפונקציהAI.GENERATE_TEXT. צריך לציין כל פרמטר של מודל בשדהMODEL_PARAMS, או להשמיט את השדה הזה ולציין כל פרמטר בנפרד.
דוגמה 1
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- הנחיות לסיכום הטקסט בעמודה
bodyבטבלהarticles.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ));
דוגמה 2
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמשים בשאילתה כדי ליצור את נתוני ההנחיה על ידי שרשור מחרוזות שמספקות קידומות להנחיה עם עמודות בטבלה.
- מחזירה תשובה קצרה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens));
דוגמה 3
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמש בעמודה
promptשל הטבלהpromptsלהנחיה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts);
יצירת טקסט מנתונים בטבלת אובייקטים
אפשר ליצור טקסט באמצעות הפונקציה AI.GENERATE_TEXT עם מודל Gemini כדי לנתח נתונים לא מובנים מטבלת אובייקטים. מספקים את נתוני ההנחיה בפרמטר prompt.
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET.MODEL`, { TABLE `PROJECT_ID.DATASET.TABLE` | (QUERY_STATEMENT) }, STRUCT( PROMPT AS prompt { { [, MAX_OUTPUT_TOKENS AS max_output_tokens] [, TOP_P AS top_p] [, TEMPERATURE AS temperature] [, STOP_SEQUENCES AS stop_sequences] [, SAFETY_SETTINGS AS safety_settings] } | [, MODEL_PARAMS AS model_params] }) );
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: הפרויקט שמכיל את המשאב. -
DATASET: קבוצת הנתונים שמכילה את המשאב. -
MODEL: השם של המודל המרוחק מעל מודל Vertex AI. מידע נוסף על יצירת מודל מרוחק מסוג כזה זמין במאמר בנושא הצהרתCREATE MODELלמודלים מרוחקים ב-LLM .כדי לוודא באיזה מודל נעשה שימוש במודל המרוחק, פותחים את מסוף Google Cloud ובודקים את השדה Remote endpoint בדף פרטי המודל.
הערה: שימוש במודל מרוחק שמבוסס על מודל Gemini 2.5 כרוך בתשלום על תהליך החשיבה.
-
TABLE: השם של טבלת האובייקטים שמכילה את התוכן לניתוח. מידע נוסף על סוגי התוכן שאפשר לנתח זמין במאמר בנושא קלט.הקטגוריה של Cloud Storage שמשמשת את טבלת אובייקט הקלט צריכה להיות באותו פרויקט שבו יצרתם את המודל ושבו אתם קוראים לפונקציה
AI.GENERATE_TEXT. -
QUERY_STATEMENT: שאילתת GoogleSQL שמייצרת את נתוני התמונה. אפשר לציין בשאילתה רק את הסעיפיםWHEREו-ORDER BY. -
PROMPT: ערךSTRINGשמכיל את ההנחיה לשימוש בניתוח התוכן החזותי. הערך שלpromptחייב לכלול פחות מ-16,000 טוקנים. טוקן יכול להיות קצר יותר ממילה, והוא בערך באורך של ארבעה תווים. 100 טוקנים שווים בערך ל-60-80 מילים. -
MAX_OUTPUT_TOKENS: ערךINT64שמגדיר את המספר המקסימלי של טוקנים שאפשר ליצור בתגובה. הערך חייב להיות בטווח[1,8192]. מציינים ערך נמוך יותר לתשובות קצרות וערך גבוה יותר לתשובות ארוכות. ערך ברירת המחדל הוא1024. -
TOP_P: ערךFLOAT64בטווח[0.0,1.0]שמשנה את האופן שבו המודל בוחר טוקנים לפלט. מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות. ערך ברירת המחדל הוא0.95.הטוקנים נבחרים מההסתברות הגבוהה ביותר להסתברות הנמוכה ביותר עד שסכום ההסתברויות שלהם שווה לערך
TOP_P. לדוגמה, אם ההסתברות של הטוקנים A, B ו-C היא0.3,0.2ו-0.1, והערך שלTOP_Pהוא0.5, המודל יבחר את A או את B כטוקן הבא באמצעות הערךTEMPERATURE, ולא יתייחס ל-C. -
TEMPERATURE: ערךFLOAT64בטווח[0.0,1.0]ששולט במידת האקראיות בבחירת האסימון. ערכים נמוכים שלTEMPERATUREמתאימים להנחיות שדורשות תשובה יותר דטרמיניסטית ופחות פתוחה או יצירתית, ואילו ערכים גבוהים שלTEMPERATUREיכולים להוביל לתוצאות יותר מגוונות או יצירתיות. ערךTEMPERATUREשל0הוא דטרמיניסטי, כלומר תמיד נבחרת התשובה עם ההסתברות הכי גבוהה. ערך ברירת המחדל הוא0. -
STOP_SEQUENCES: ערךARRAYשמסיר את המחרוזות שצוינו אם הן נכללות בתשובות מהמודל. ההתאמה בין המחרוזות היא מדויקת, כולל אותיות רישיות. ערך ברירת המחדל הוא מערך ריק. -
SAFETY_SETTINGS: ערךARRAYשמגדיר את ספי התוכן הבטוח לסינון התשובות. הרכיב הראשון במבנה מציין קטגוריה של נזק, והרכיב השני במבנה מציין סף חסימה תואם. המודל מסנן את התוכן שמפר את ההגדרות האלה. אפשר לציין כל קטגוריה רק פעם אחת. לדוגמה, אי אפשר לציין גם את> STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)וגם אתSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold). אם אין הגדרת בטיחות לקטגוריה מסוימת, נעשה שימוש בהגדרת הבטיחותBLOCK_MEDIUM_AND_ABOVE.הקטגוריות הנתמכות הן:
HARM_CATEGORY_HATE_SPEECHHARM_CATEGORY_DANGEROUS_CONTENTHARM_CATEGORY_HARASSMENTHARM_CATEGORY_SEXUALLY_EXPLICIT
הערכים האפשריים:
BLOCK_NONE( מוגבל )BLOCK_LOW_AND_ABOVEBLOCK_MEDIUM_AND_ABOVE(ברירת מחדל)BLOCK_ONLY_HIGHHARM_BLOCK_THRESHOLD_UNSPECIFIED
מידע נוסף מופיע בהגדרות של קטגוריית בטיחות ושל סף החסימה .
-
MODEL_PARAMS: מחרוזת מילולית בפורמט JSON שמספקת פרמטרים נוספים למודל. הערך צריך להיות בפורמט שלgenerateContentגוף הבקשה . אפשר לספק ערך לכל שדה בגוף הבקשה, חוץ מהשדהcontents[]. אם מגדירים את השדה הזה, אי אפשר לציין גם פרמטרים של מודל במבנה ברמה העליונה של הארגומנט של הפונקציהAI.GENERATE_TEXT.
הצגת פרמטרים אופציונליים נוספים
דוגמאות
בדוגמה הזו, תוכן אודיו מתורגם ומתומלל מטבלת אובייקטים בשם feedback:
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.audio_model`, TABLE `mydataset.feedback`, STRUCT('What is the content of this audio clip, translated into Spanish?' AS PROMPT));
בדוגמה הזו, התוכן של קובץ PDF מסווג מטבלת אובייקטים בשם invoices:
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.classify_model`, TABLE `mydataset.invoices`, STRUCT('Classify this document based on the invoice total, using the following categories: 0 to 100, 101 to 200, greater than 200' AS PROMPT));