שיפור מודל באמצעות הנתונים שלכם
במאמר הזה מוסבר איך ליצור מודל מרוחק של BigQuery ML שמפנה למודל Vertex AI, ואז להגדיר את המודל לביצוע כוונון מפוקח. המודל של Vertex AI צריך להיות אחד מהמודלים הבאים:
gemini-2.5-progemini-2.5-flash-litegemini-2.0-flash-001gemini-2.0-flash-lite-001
אחרי שיוצרים את המודל המרוחק, משתמשים בפונקציה ML.EVALUATE כדי להעריך את המודל ולוודא שהביצועים שלו מתאימים לתרחיש השימוש. לאחר מכן תוכלו להשתמש במודל בשילוב עם הפונקציה AI.GENERATE_TEXT כדי לנתח טקסט בטבלה ב-BigQuery.
מידע נוסף זמין במאמר בנושא כוונון מודלים מפוקח ב-Vertex AI Gemini API.
התפקידים הנדרשים
כדי ליצור ולהעריך מודל שעבר התאמה, אתם צריכים את התפקידים הבאים בניהול זהויות והרשאות גישה (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 כנקודת קצה.יצירת משימות 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,Vertex AI, and Compute Engine 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'.
אם אתם מתכננים לציין את נקודת הקצה ככתובת 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.
כדי להקצות את התפקיד, בצע את השלבים הבאים:
המסוף
עוברים לדף IAM & Admin.
לוחצים על Grant Access.
בשדה New principals (חשבונות משתמשים חדשים), מזינים את המזהה של חשבון השירות שהעתקתם קודם.
לוחצים על בחירת תפקיד.
בתיבת הטקסט Filter, מקלידים
Vertex AI Service Agentובוחרים את התפקיד.לוחצים על Save.
gcloud
משתמשים בפקודה gcloud projects add-iam-policy-binding:
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.serviceAgent' --condition=None
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט. -
MEMBER: המזהה של חשבון השירות שהעתקתם קודם.
חשבון השירות שמשויך לחיבור הוא מופע של סוכן שירות להענקת הרשאות ב-BigQuery, ולכן אפשר להקצות לו תפקיד של סוכן שירות.
יצירת מודל עם כוונון בפיקוח
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מריצים את השאילתה הבאה כדי ליצור מודל מרוחק:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS ( ENDPOINT = 'ENDPOINT', MAX_ITERATIONS = MAX_ITERATIONS, LEARNING_RATE_MULTIPLIER = LEARNING_RATE_MULTIPLIER, DATA_SPLIT_METHOD = 'DATA_SPLIT_METHOD', DATA_SPLIT_EVAL_FRACTION = DATA_SPLIT_EVAL_FRACTION, DATA_SPLIT_COL = 'DATA_SPLIT_COL', EVALUATION_TASK = 'EVALUATION_TASK', PROMPT_COL = 'INPUT_PROMPT_COL', INPUT_LABEL_COLS = INPUT_LABEL_COLS) AS SELECT PROMPT_COLUMN, LABEL_COLUMN FROM `TABLE_PROJECT_ID.TABLE_DATASET.TABLE_NAME`;
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המודל. -
DATASET_ID: המזהה של מערך הנתונים שאמור להכיל את המודל. מערך הנתונים הזה צריך להיות באזור נתמך של Vertex AI. -
MODEL_NAME: שם המודל. -
REGION: האזור שבו נעשה שימוש בחיבור. -
CONNECTION_ID: המזהה של החיבור ל-BigQuery. החיבור הזה צריך להיות באותו מיקום שבו נמצא מערך הנתונים שבו אתם משתמשים.כשמציגים את פרטי החיבור במסוף Google Cloud , זה הערך בקטע האחרון של מזהה החיבור המלא שמוצג במזהה החיבור – לדוגמה,
projects/myproject/locations/connection_location/connections/myconnection. -
ENDPOINT: ערךSTRINGשמציין את שם המודל שבו רוצים להשתמש. -
MAX_ITERATIONS: ערךINT64שמציין את מספר השלבים להרצה לצורך כוונון מפוקח. הערך שלMAX_ITERATIONSצריך להיות בין1ל-∞.מודלים של Gemini מתאמנים באמצעות epochs ולא באמצעות steps, ולכן BigQuery ML ממיר את הערך
MAX_ITERATIONSל-epochs. ערך ברירת המחדל שלMAX_ITERATIONSהוא מספר השורות בנתוני הקלט, ששווה לאפוקה אחת. כדי להשתמש בכמה תקופות, מציינים כפולה של מספר השורות בנתוני האימון. לדוגמה, אם יש לכם 100 שורות של נתוני קלט ואתם רוצים להשתמש בשתי תקופות, צריך לציין200כערך הארגומנט. אם תספקו ערך שלא מתחלק במספר השורות בנתוני הקלט, BigQuery ML יעגל כלפי מעלה לאפוקה הקרובה ביותר. לדוגמה, אם יש לכם 100 שורות של נתוני קלט והגדרתם את הערך101לMAX_ITERATIONS, האימון יתבצע עם שתי תקופות אימון.מידע נוסף על הפרמטרים שמשמשים לכוונון של מודלים של Gemini זמין במאמר יצירת משימת כוונון.
-
DATA_SPLIT_METHOD: ערךSTRINGשמציין את השיטה שבה משתמשים כדי לפצל את נתוני הקלט לקבוצות אימון ולקבוצות הערכה. האפשרויות התקפות הן:-
AUTO_SPLIT: BigQuery ML מפצל את הנתונים באופן אוטומטי. אופן חלוקת הנתונים משתנה בהתאם למספר השורות בטבלת הקלט. זה ערך ברירת המחדל. -
RANDOM: הנתונים עוברים רנדומיזציה לפני שהם מפולגים לקבוצות. כדי להתאים אישית את פיצול הנתונים, אפשר להשתמש באפשרות הזו עם האפשרותDATA_SPLIT_EVAL_FRACTION. -
CUSTOM: הנתונים מפולחים באמצעות העמודה שצוינה באפשרותDATA_SPLIT_COL. הערךDATA_SPLIT_COLחייב להיות השם של עמודה מהסוגBOOL. שורות עם הערךTRUEאוNULLמשמשות כנתוני הערכה, ושורות עם הערךFALSEמשמשות כנתוני אימון. -
SEQ: פיצול נתונים באמצעות העמודה שצוינה באפשרותDATA_SPLIT_COL. הערךDATA_SPLIT_COLצריך להיות שם של עמודה מאחד מהסוגים הבאים:NUMERICBIGNUMERICSTRINGTIMESTAMP
הנתונים ממוינים מהקטן לגדול לפי העמודה שצוינה.
המערכת משתמשת ב-n השורות הראשונות כנתוני הערכה, כאשר n הוא הערך שצוין עבור
DATA_SPLIT_EVAL_FRACTION. השורות שנותרו משמשות כנתוני אימון. -
NO_SPLIT: לא מתבצע פיצול של הנתונים; כל נתוני הקלט משמשים כנתוני אימון.
מידע נוסף על האפשרויות האלה לפיצול נתונים זמין במאמר
DATA_SPLIT_METHOD. -
-
DATA_SPLIT_EVAL_FRACTION: ערךFLOAT64שמציין את החלק מהנתונים שייעשה בו שימוש כנתוני הערכה כשמבצעים כוונון מפוקח. הערך חייב להיות בטווח[0, 1.0]. ערך ברירת המחדל הוא0.2.משתמשים באפשרות הזו כשמציינים את הערך
RANDOMאוSEQלאפשרותDATA_SPLIT_METHOD. כדי להתאים אישית את פיצול הנתונים, אפשר להשתמש באפשרותDATA_SPLIT_METHODעם האפשרותDATA_SPLIT_EVAL_FRACTION. -
DATA_SPLIT_COL: ערךSTRINGשמציין את שם העמודה שבה יש להשתמש כדי למיין את נתוני הקלט לקבוצת האימון או לקבוצת ההערכה. משתמשים ב- כשמציינים את הערךCUSTOMאוSEQלאפשרותDATA_SPLIT_METHOD. -
EVALUATION_TASK: ערךSTRINGשמציין את סוג המשימה שרוצים לכוונן את המודל לביצוע שלה. האפשרויות התקפות הן:TEXT_GENERATIONCLASSIFICATIONSUMMARIZATIONQUESTION_ANSWERINGUNSPECIFIED
ערך ברירת המחדל הוא
UNSPECIFIED. -
INPUT_PROMPT_COL: ערךSTRINGשמכיל את השם של עמודת ההנחיות בטבלת נתוני האימון, שבה יש להשתמש כשמבצעים התאמה מפוקחת. ערך ברירת המחדל הואprompt. -
INPUT_LABEL_COLS: ערךARRAY<<STRING>שמכיל את השם של עמודת התווית בטבלת נתוני האימון, לשימוש בכוונון מפוקח. אפשר לציין רק רכיב אחד במערך. ערך ברירת המחדל הוא מערך ריק. כתוצאה מכך,labelהוא ערך ברירת המחדל של הארגומנטLABEL_COLUMN. -
PROMPT_COLUMN: העמודה בטבלת נתוני האימון שמכילה את ההנחיה להערכת התוכן בעמודהLABEL_COLUMN. העמודה הזו צריכה להיות מסוגSTRINGאו להיות מומרת ל-STRING. אם מציינים ערך לאפשרותINPUT_PROMPT_COL, צריך לציין את אותו ערך גם לאפשרותPROMPT_COLUMN. אחרת, הערך הזה חייב להיותprompt. אם בטבלה אין עמודהprompt, צריך להשתמש בכינוי כדי לציין עמודה קיימת בטבלה. לדוגמה,AS SELECT hint AS prompt, label FROM mydataset.mytable. -
LABEL_COLUMN: העמודה בטבלת נתוני האימון שמכילה את הדוגמאות לאימון המודל. העמודה הזו צריכה להיות מסוגSTRINGאו להיות מומרת ל-STRING. אם מציינים ערך לאפשרותINPUT_LABEL_COLS, צריך לציין את אותו ערך גם לאפשרותLABEL_COLUMN. אחרת, הערך הזה חייב להיותlabel. אם בטבלה אין עמודהlabel, צריך להשתמש בכינוי כדי לציין עמודה קיימת בטבלה. לדוגמה,AS SELECT prompt, feature AS label FROM mydataset.mytable. -
TABLE_PROJECT_ID: מזהה הפרויקט שמכיל את טבלת נתוני האימון. -
TABLE_DATASET: השם של מערך הנתונים שמכיל את טבלת נתוני האימון. -
TABLE_NAME: השם של הטבלה שמכילה את הנתונים שישמשו לאימון המודל.
-
הערכת המודל שעבר התאמה
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מריצים את השאילתה הבאה כדי להעריך את המודל שעבר כוונון:
SELECT * FROM ML.EVALUATE( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE `TABLE_PROJECT_ID.TABLE_DATASET.TABLE_NAME`, STRUCT('TASK_TYPE' AS task_type, TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p));
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את המודל. -
DATASET_ID: המזהה של מערך הנתונים שמכיל את המודל. -
MODEL_NAME: שם המודל. -
TABLE_PROJECT_ID: מזהה הפרויקט שמכיל את טבלת נתוני ההערכה. -
TABLE_DATASET: השם של מערך הנתונים שמכיל את טבלת נתוני ההערכה. -
TABLE_NAME: שם הטבלה שמכילה את נתוני ההערכה.לטבלה צריכה להיות עמודה שהשם שלה זהה לשם עמודת ההנחיות שמופיע במהלך אימון המודל. אפשר לספק את הערך הזה באמצעות האפשרות
prompt_colבמהלך אימון המודל. אם לא מציינים אתprompt_col, המערכת משתמשת בעמודה בשםpromptבנתוני האימון. אם אין עמודה בשםprompt, תוחזר שגיאה.בטבלה צריכה להיות עמודה ששמה זהה לשם העמודה של התווית שצוין במהלך אימון המודל. אפשר לספק את הערך הזה באמצעות האפשרות
input_label_colsבמהלך אימון המודל. אם לא מציינים אתinput_label_cols, המערכת משתמשת בעמודה שנקראתlabelבנתוני האימון. אם אין עמודה בשםlabel, תוחזר שגיאה. -
TASK_TYPE: ערךSTRINGשמציין את סוג המשימה שעבורה רוצים להעריך את המודל. האפשרויות התקפות הן:TEXT_GENERATIONCLASSIFICATIONSUMMARIZATIONQUESTION_ANSWERINGUNSPECIFIED
-
TOKENS: ערךINT64שמגדיר את המספר המקסימלי של טוקנים שאפשר ליצור בתגובה. הערך חייב להיות בטווח[1,1024]. מציינים ערך נמוך יותר לתשובות קצרות וערך גבוה יותר לתשובות ארוכות. ערך ברירת המחדל הוא128. -
TEMPERATURE: ערךFLOAT64בטווח[0.0,1.0]ששולט במידת האקראיות בבחירת האסימון. ערך ברירת המחדל הוא0.ערכים נמוכים של
temperatureמתאימים להנחיות שדורשות תשובה יותר דטרמיניסטית ופחות פתוחה או יצירתית, ואילו ערכים גבוהים שלtemperatureיכולים להוביל לתוצאות יותר מגוונות או יצירתיות. ערך של0עבורtemperatureהוא דטרמיניסטי, כלומר תמיד נבחרת התגובה עם ההסתברות הכי גבוהה. -
TOP_K: ערךINT64בטווח[1,40]שקובע את מאגר האסימונים ההתחלתי שהמודל לוקח בחשבון לצורך בחירה. מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות. ערך ברירת המחדל הוא40. -
TOP_P: ערךFLOAT64בטווח[0.0,1.0]עוזר לקבוע אילו טוקנים מהמאגר שנקבע על ידיTOP_Kייבחרו. מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות. ערך ברירת המחדל הוא0.95.
-
יצירת טקסט
ליצור טקסט באמצעות הפונקציה AI.GENERATE_TEXT:
עמודת ההנחיות
יצירת טקסט באמצעות עמודה בטבלה כדי לספק את ההנחיה.
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, STOP_SEQUENCES AS stop_sequences) );
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את המודל. -
MODEL_NAME: שם המודל. -
TABLE_NAME: שם הטבלה שמכילה את ההנחיה. בטבלה הזו חייבת להיות עמודה שהשם שלה זהה לשם של עמודת התכונות במודל המכוונן. אפשר להגדיר את שם העמודה של התכונה במודל באמצעות האפשרותPROMPT_COLכשיוצרים את המודל. אחרת, שם עמודת התכונות במודל הוא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 כשנוצרות תשובות. ההארקה מאפשרת למודל להשתמש במידע נוסף מהאינטרנט כשהוא יוצר תשובה, כדי שהתשובות יהיו ספציפיות ועובדתיות יותר. כשהשדה הזה מוגדר ל-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, או להשמיט את השדה הזה ולציין כל פרמטר בנפרד.
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמש בעמודה
promptשל הטבלהpromptsלהנחיה. - תשובה קצרה עם סבירות בינונית.
- הפונקציה מחזירה את הטקסט שנוצר ואת מאפייני הבטיחות בעמודות נפרדות.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.mymodel`, TABLE mydataset.prompts, STRUCT( 0.4 AS temperature, 100 AS max_output_tokens, 0.5 AS top_p));
שאילתת הנחיה
כדי ליצור הנחיה, משתמשים בשאילתה כדי ליצור טקסט.
SELECT * FROM AI.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, (PROMPT_QUERY), STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, STOP_SEQUENCES AS stop_sequences) );
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
DATASET_ID: המזהה של מערך הנתונים שמכיל את המודל. -
MODEL_NAME: שם המודל. -
PROMPT_QUERY: שאילתה שמספקת את נתוני ההנחיה. -
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 כשנוצרות תשובות. ההארקה מאפשרת למודל להשתמש במידע נוסף מהאינטרנט כשהוא יוצר תשובה, כדי שהתשובות יהיו ספציפיות ועובדתיות יותר. כשהשדה הזה מוגדר ל-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.mymodel`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT( 0.2 AS temperature, 650 AS max_output_tokens, 0.2 AS top_p));
דוגמה 2
בדוגמה הבאה מוצגת בקשה עם המאפיינים האלה:
- משתמשים בשאילתה כדי ליצור את נתוני ההנחיה על ידי שרשור מחרוזות שמספקות קידומות להנחיה עם עמודות בטבלה.
- תשובה קצרה עם סבירות בינונית.
- לא מחזירה את הטקסט שנוצר ואת מאפייני הבטיחות בעמודות נפרדות.
SELECT * FROM AI.GENERATE_TEXT( MODEL `mydataset.mytuned_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 0.4 AS temperature, 100 AS max_output_tokens, 0.5 AS top_p));