טיפול בשגיאות שקשורות למכסה באמצעות קריאה חוזרת ל-ML.GENERATE_EMBEDDING
במדריך הזה נסביר איך להשתמש בפרוצדורה המאוחסנת הציבורית BigQuery
bqutil.procedure.bqml_generate_embeddings כדי לבצע איטרציה של קריאות לפונקציה ML.GENERATE_EMBEDDING.
הפעלת הפונקציה באופן איטרטיבי מאפשרת לטפל בשגיאות שניתן לנסות שוב, שמתרחשות בגלל חריגה ממכסות ומגבלות שחלות על הפונקציה.
כדי לבדוק את קוד המקור של bqutil.procedure.bqml_generate_embeddings
הפרוצדורה המאוחסנת ב-GitHub, אפשר לעיין בbqml_generate_embeddings.sqlx.
מידע נוסף על הפרמטרים של הפרוצדורה המאוחסנת ועל השימוש בה זמין בקובץ ה-README.
במדריך הזה מוסבר איך לבצע את הפעולות הבאות:
- יצירת מודל מרחוק על בסיס מודל
text-embedding-005. - איטרציה על קריאות לפונקציה
ML.GENERATE_EMBEDDING, באמצעות המודל המרוחק וטבלת הנתונים הציבורייםbigquery-public-data.bbc_news.fulltextעם הפרוצדורה המאוחסנתbqutil.procedure.bqml_generate_embeddings.
ההרשאות הנדרשות
כדי להפעיל את המדריך הזה, אתם צריכים את התפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):
- יצירה ושימוש במערכי נתונים, בחיבורים ובמודלים של BigQuery:
ניהול BigQuery (
roles/bigquery.admin). - נותנים הרשאות לחשבון השירות של החיבור: אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin).
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לביצוע המשימות שמתוארות במסמך הזה. כדי לראות את ההרשאות הנדרשות, מרחיבים את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
- יצירת מערך נתונים:
bigquery.datasets.create - יוצרים חיבור, מקצים אותו ומשתמשים בו:
bigquery.connections.* - הגדרת חיבור ברירת המחדל:
bigquery.config.* - מגדירים את ההרשאות לחשבון השירות:
resourcemanager.projects.getIamPolicyו-resourcemanager.projects.setIamPolicy - יצירת מודל והרצת הסקה:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
יכול להיות שתוכלו לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
- Gemini Enterprise Agent Platform: You incur costs for calls to the Agent Platform model.
כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.
מידע נוסף על התמחור של BigQuery זמין במאמר תמחור ב-BigQuery.
מידע נוסף על התמחור של Agent Platform
לפני שמתחילים
-
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
מפעילים את ממשקי ה-API של BigQuery, של BigQuery Connection ושל Agent Platform, אם הם עדיין לא מופעלים.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
יצירת מערך נתונים
יוצרים מערך נתונים ב-BigQuery לאחסון המודלים ונתונים לדוגמה:
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית Explorer, לוחצים על שם הפרויקט.
לוחצים על View actions > Create dataset (הצגת פעולות > יצירת מערך נתונים).
בדף Create dataset, מבצעים את הפעולות הבאות:
בשדה Dataset ID (מזהה קבוצת נתונים), מזינים
target_dataset.בקטע Location type, בוחרים באפשרות Multi-region ואז באפשרות US (multiple regions in United States).
משאירים את הגדרות ברירת המחדל שנותרו כמו שהן ולוחצים על Create dataset (יצירת מערך נתונים).
יצירת מודל ליצירת הטמעת טקסט
יצירת מודל מרוחק שמייצג Agent Platform מתארחת
text-embedding-005
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מריצים את ההצהרה הבאה:
CREATE OR REPLACE MODEL `target_dataset.embedding_model` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'text-embedding-005');
השאילתה תימשך כמה שניות, ואז המודל
embeddingיופיע במערך הנתוניםsampleבחלונית Explorer. מכיוון שהשאילתה משתמשת בהצהרהCREATE MODELכדי ליצור מודל, אין תוצאות לשאילתה.
הפעלת התהליך המאוחסן
מריצים את bqutil.procedure.bqml_generate_embeddings הפרוצדורה המאוחסנת, שחוזרת על קריאות לפונקציה ML.GENERATE_EMBEDDING באמצעות המודל target_dataset.embedding_model וטבלת הנתונים הציבוריים bigquery-public-data.bbc_news.fulltext:
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, מריצים את ההצהרה הבאה:
CALL `bqutil.procedure.bqml_generate_embeddings`( "bigquery-public-data.bbc_news.fulltext", -- source table "PROJECT_ID.target_dataset.news_body_embeddings", -- destination table "PROJECT_ID.target_dataset.embedding_model", -- model "body", -- content column ["filename"], -- key columns '{}' -- optional arguments encoded as a JSON string );
מחליפים את
PROJECT_IDבמזהה הפרויקט שבו אתם משתמשים במדריך הזה.התהליך המאוחסן יוצר טבלה
target_dataset.news_body_embeddingsשתכיל את הפלט של הפונקציהML.GENERATE_EMBEDDING.אחרי שהשאילתה מסיימת לפעול, מוודאים שאין שורות בטבלה
target_dataset.news_body_embeddingsשמכילות שגיאה שאפשר לנסות לתקן. בעורך השאילתות, מריצים את ההצהרה הבאה:SELECT * FROM `target_dataset.news_body_embeddings` WHERE ml_generate_embedding_status LIKE '%A retryable error occurred%';
השאילתה מחזירה את ההודעה
No data to display.
הסרת המשאבים
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.