יצירת טקסט דינמי מבוסס-AI באמצעות מודל פתוח של Gemma והפונקציה AI.GENERATE_TEXT
במדריך הזה נסביר איך ליצור מודל מרוחק שמבוסס על המודל של Gemma, ואיך להשתמש במודל הזה עם הפונקציה AI.GENERATE_TEXT כדי לחלץ מילות מפתח ולבצע ניתוח סנטימנטים של ביקורות על סרטים מהטבלה הציבורית bigquery-public-data.imdb.reviews.
ההרשאות הנדרשות
כדי להריץ את המדריך הזה, אתם צריכים את התפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):
- יצירה ושימוש במערכי נתונים, בחיבורים ובמודלים של BigQuery:
אדמין ב-BigQuery (
roles/bigquery.admin). - נותנים הרשאות לחשבון השירות של החיבור: אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin). - פריסה וביטול פריסה של מודלים ב-Gemini Enterprise Agent Platform: אדמין של Agent Platform (
roles/aiplatform.admin).
התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות כדי לבצע את המשימות שמפורטות במאמר הזה. כדי לראות את ההרשאות הנדרשות, מרחיבים את הקטע Required Permissions:
ההרשאות הנדרשות
- יוצרים מערך נתונים:
bigquery.datasets.create - יצירה, הקצאה ושימוש בחיבור:
bigquery.connections.* - מגדירים את חיבור ברירת המחדל:
bigquery.config.* - מגדירים את ההרשאות של חשבון השירות:
resourcemanager.projects.getIamPolicyוגםresourcemanager.projects.setIamPolicy - פריסה וביטול פריסה של מודל ב-Agent Platform:
aiplatform.endpoints.deployaiplatform.endpoints.undeploy
- יוצרים מודל ומריצים הסקה:
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 that's represented by the remote model.
בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.
למידע נוסף על התמחור של BigQuery, קראו את המאמר התמחור של BigQuery במרכז העזרה של BigQuery.
מודלים פתוחים שאתם פורסים ב-Agent Platform מחויבים לפי שעת מכונה. כלומר, החיוב מתחיל ברגע שנקודת הקצה מוגדרת במלואה, ונמשך עד שמבטלים את הפריסה שלה. למידע נוסף על התמחור של Agent Platform, קראו את המאמר התמחור של Agent Platform.
לפני שמתחילים
-
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.
התפקידים שנדרשים כדי לבחור או ליצור פרויקט
- בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים?
-
מפעילים את ממשקי ה-API הבאים, אם הם עדיין לא מופעלים: BigQuery, BigQuery Connection ו-Agent Platform API.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?
יצירת קבוצת נתונים
כדי ליצור מערך נתונים ב-BigQuery, בוחרים אחת מהאפשרויות הבאות:
המסוף
נכנסים לדף BigQuery במסוף Google Cloud .
בחלונית הימנית, לוחצים על Explorer:

אם החלונית הימנית לא מוצגת, לוחצים על Expand left pane כדי לפתוח אותה.
ב-Explorer, מרחיבים את הפרויקט ולוחצים על Datasets.
בדף Datasets, לוחצים על Create dataset.
בחלונית Create dataset:
בשדה Dataset ID, מזינים
bqml_tutorial.בקטע Data location (מיקום הנתונים), בוחרים באפשרות US (ארה"ב).
משאירים את שאר הגדרות ברירת המחדל כמו שהן.
לוחצים על Create dataset.
BQ
כדי ליצור קבוצת נתונים חדשה, משתמשים בפקודה bq mk --dataset.
יוצרים מערך נתונים בשם
bqml_tutorialומגדירים את מיקום הנתונים ל-US:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
מוודאים שמערך הנתונים נוצר:
bq ls
API
מפעילים את השיטה datasets.insert עם משאב של מערך נתונים מוגדר:
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
יצירת המודל המרוחק
יוצרים מודל מרוחק שמייצג מודל של Agent Platform באירוח:
נכנסים לדף BigQuery במסוף Google Cloud .
בעורך השאילתות, מריצים את ההצהרה הבאה:
CREATE OR REPLACE MODEL `bqml_tutorial.gemma_model` REMOTE WITH CONNECTION DEFAULT OPTIONS ( MODEL_GARDEN_MODEL_NAME = 'publishers/google/models/gemma3@gemma-3-270m-it', MACHINE_TYPE = 'g2-standard-12' );
השאילתה מסתיימת תוך 20 דקות, ואז המודל gemma_model מופיע במערך הנתונים bqml_tutorial בחלונית Explorer. בגלל שהשאילתה משתמשת בהצהרת CREATE MODEL כדי ליצור מודל, אין תוצאות לשאילתה.
חילוץ מילות מפתח
מחלצים מילות מפתח מביקורות על סרטים ב-IMDB באמצעות המודל המרוחק והפונקציה AI.GENERATE_TEXT:
נכנסים לדף BigQuery במסוף Google Cloud .
בעורך השאילתות, מזינים את ההצהרה הבאה כדי לחלץ מילות מפתח מ-10 ביקורות על סרטים:
SELECT * FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT 'Extract the key words from the movie review below: ' || review AS prompt, * FROM `bigquery-public-data.imdb.reviews` LIMIT 10 ), STRUCT( 0.2 AS temperature, 100 AS max_output_tokens));
הפלט דומה לפלט הבא, שבו הושמטו עמודות שלא נוצרו לשם הבהרה:
+----------------------------------------------+-------------------------+-----------------------------+-----+ | result | status | prompt | ... | +----------------------------------------------+-------------------------+-----------------------------+-----+ | Here are some key words from the | | Extract the key words from | | | movie review: * **Romance:** | | the movie review below: | | | "romantic tryst," "elope" * **Comedy:** | | Linda Arvidson (as Jennie) | | | "Contrived Comedy" * **Burglary:** | | and Harry Solter (as Frank) | | | "burglar," "rob," "booty" * **Chase:** | | are enjoying a romantic | | | "chases," "escape" * **Director:** "D.W. | | tryst, when in walks her... | | | Griffith" * **Actors:** "Linda Arvidson,"... | | | | +----------------------------------------------+-------------------------+-----------------------------+-----+ | Here are some key words from the | | Extract the key words from | | | movie review: * **Elderbush Gilch:** The | | the movie review below: | | | name of the movie being reviewed. * | | This is the second addition | | | **Disappointment:** The reviewer's | | to Frank Baum's personally | | | overall feeling about the film. * | | produced trilogy of Oz | | | **Dim-witted:** Describes the story | | films. It's essentially ... | | | line negatively. * **Moronic, sadistic,... | | | | +----------------------------------------------+-------------------------+-----------------------------+-----+התוצאות כוללות את העמודות הבאות:
-
result: הטקסט שנוצר. -
status: סטטוס התגובה מה-API בשורה המתאימה. אם הפעולה הצליחה, הערך הזה ריק. -
prompt: ההנחיה שמשמשת לניתוח הסנטימנטים. - כל העמודות מהטבלה
bigquery-public-data.imdb.reviews.
-
ניתוח סנטימנטים
מבצעים ניתוח סנטימנטים של ביקורות על סרטים ב-IMDB באמצעות המודל המרוחק והפונקציה AI.GENERATE_TEXT:
נכנסים לדף BigQuery במסוף Google Cloud .
בעורך השאילתות, מריצים את ההצהרה הבאה כדי לבצע ניתוח סנטימנטים ב-10 ביקורות על סרטים:
SELECT * FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT 'Analyze the sentiment of the following movie review and classify it as either POSITIVE or NEGATIVE. \nMovie Review: ' || review AS prompt, * FROM `bigquery-public-data.imdb.reviews` LIMIT 10 ), STRUCT( 0.2 AS temperature, 128 AS max_output_tokens));
הפלט דומה לפלט הבא, שבו הושמטו עמודות שלא נוצרו לשם הבהרה:
+-----------------------------+-------------------------+-----------------------------+-----+ | result | status | prompt | ... | +-----------------------------+-------------------------+-----------------------------+-----+ | **NEGATIVE** | | Analyze the sentiment of | | | | | movie review and classify | | | | | it as either POSITIVE or | | | | | NEGATIVE. Movie Review: | | | | | Although Charlie Chaplin | | | | | made some great short | | | | | comedies in the late... | | +-----------------------------+-------------------------+-----------------------------+-----+ | **NEGATIVE** | | Analyze the sentiment of | | | | | movie review and classify | | | | | it as either POSITIVE or | | | | | NEGATIVE. Movie Review: | | | | | Opulent sets and sumptuous | | | | | costumes well photographed | | | | | by Theodor Sparkuhl, and... | | +-----------------------------+-------------------------+-----------------------------+-----+התוצאות כוללות את אותן עמודות שמתועדות בקטע חילוץ מילות מפתח.
ביטול הפריסה של המודל
אם אתם בוחרים לא למחוק את הפרויקט כמו שמומלץ, אתם צריכים לבטל את הפריסה של מודל Gemma ב-Agent Platform כדי להימנע מהמשך החיוב עליו. BigQuery מבטל באופן אוטומטי את פריסת המודל אחרי תקופה מסוימת של חוסר פעילות (6.5 שעות כברירת מחדל).
לחלופין, אתם יכולים לבטל את הפריסה של המודל באופן מיידי באמצעות ההצהרה ALTER MODEL, כמו בדוגמה הבאה:
ALTER MODEL `bqml_tutorial.gemma_model` SET OPTIONS (deploy_model = false);
מידע נוסף מופיע במאמר ביטול פריסה אוטומטי או מיידי של מודלים פתוחים.
הסרת המשאבים
- במסוף Google Cloud , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.