ניתוח תמונות
במדריך הזה נסביר איך לשלב את BigQuery ML עם Gemini כדי להפיק תובנות מנתוני תמונות לא מובְנים. במדריך הזה יוצרים מודל מרוחק שמבוסס על gemini-2.5-flash ומשתמשים בפונקציה AI.GENERATE_TEXT כדי לחלץ אוטומטית מטא-נתונים, כמו שמות ומשנות יציאה לאקרנים, מאוסף של פוסטרים של סרטים.
מטרות
- יצירת טבלת אובייקטים ב-BigQuery על נתוני תמונות בקטגוריה של Cloud Storage.
- יוצרים מודל מרוחק של BigQuery ML שמכוון למודל Gemini Enterprise Agent Platform
gemini-2.5-flash. - משתמשים במודל מרוחק עם הפונקציה
AI.GENERATE_TEXTכדי לזהות את הסרטים שמשויכים לקבוצה של כרזות סרטים.
עלויות
במדריך הזה השתמשנו ברכיבים הבאים של Cloud de Confiance, והשימוש בהם כרוך בתשלום:
כדי ליצור הערכת עלויות על סמך השימוש החזוי, אתם יכולים להשתמש במחשבון התמחור.
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
-
בדף לבחירת הפרויקט במסוף Cloud de Confiance , בוחרים פרויקט ב- Cloud de Confiance או יוצרים אותו.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
מפעילים את ממשקי ה-API BigQuery, BigQuery Connection ו-Agent Platform.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים
התפקידים הנדרשים
כדי להפעיל את המדריך הזה, אתם צריכים את התפקידים הבאים בניהול הזהויות והרשאות הגישה (IAM):
- יצירה ושימוש במערכי נתונים, בחיבורים ובמודלים של BigQuery:
ניהול BigQuery (
roles/bigquery.admin). - נותנים הרשאות לחשבון השירות של החיבור: אדמין IAM של פרויקט (
roles/resourcemanager.projectIamAdmin).
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות לביצוע המשימות שמתוארות במסמך הזה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
- יצירת מערך נתונים:
bigquery.datasets.create - יצירה, הקצאה ושימוש בחיבור:
bigquery.connections.* - הגדרת החיבור המוגדר כברירת מחדל:
bigquery.config.* - מגדירים את ההרשאות לחשבון השירות:
resourcemanager.projects.getIamPolicyו-resourcemanager.projects.setIamPolicy - יצירת טבלת אובייקטים:
bigquery.tables.createו-bigquery.tables.update - יצירת מודל והרצת הסקה:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
יכול להיות שתוכלו לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הכנת הסביבה
כדי לבצע היסק (inference) ב-BigQuery ML בטבלאות של אובייקטים באמצעות gemini-2.5-flash, צריך להקצות מקום שמור ב-BigQuery לפרויקט. אם כבר הוקצתה הזמנה לפרויקט, אפשר לדלג על השלב הזה.
יצירת בקשה לשמירת מקום
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בתפריט הניווט, לוחצים על ניהול קיבולת.
לוחצים על יצירת הזמנה.
בדף Create reservation, מבצעים את הפעולות הבאות:
- בשדה Reservation name (שם ההזמנה), מזינים
bqml-tutorial-reservation. - בקטע Location (מיקום), בוחרים באפשרות us (multiple regions in United States) (ארה"ב (מספר אזורים בארצות הברית)).
- משאירים את שאר הגדרות ברירת המחדל כמו שהן ולוחצים על שמירה.
- בשדה Reservation name (שם ההזמנה), מזינים
הקצאת ההזמנה
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בתפריט הניווט, לוחצים על ניהול קיבולת.
בטבלה Slot Reservations (הזמנות של משבצות זמן), מוצאים את ההזמנה שרוצים להקצות לפרויקט.
לוחצים על הצגת פעולות > יצירת מטלה.
בקטע Create an assignment (יצירת מטלה), לוחצים על Browse (עיון) ובוחרים את הפרויקט.
בשדה Job type (סוג העבודה), בוחרים באפשרות QUERY (שאילתה). הבחירה הזו מבטיחה ששאילתות ה-SQL ישתמשו במשבצות של ההזמנה הזו.
לוחצים על יצירה.
יצירת מערך נתונים
יוצרים מערך נתונים ב-BigQuery לאחסון מודל ה-ML.
המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בחלונית Explorer, לוחצים על שם הפרויקט.
לוחצים על הצגת פעולות > יצירת מערך נתונים.
בדף Create dataset, מבצעים את הפעולות הבאות:
בשדה Dataset ID (מזהה מערך הנתונים), מזינים
bqml_tutorial.בקטע Location type, בוחרים באפשרות Multi-region ואז בוחרים באפשרות 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" } }
יצירת טבלת האובייקטים
צור טבלת אובייקטים של תמונות פוסטרים של סרטים בקטגוריה הציבורית של Cloud Storage. טבלת האובייקטים מאפשרת לכם לנתח את התמונות בלי להעביר אותן מ-Cloud Storage.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מריצים את השאילתה הבאה כדי ליצור את טבלת האובייקטים:
CREATE OR REPLACE EXTERNAL TABLE `bqml_tutorial.movie_posters` WITH CONNECTION DEFAULT OPTIONS ( object_metadata = 'SIMPLE', uris = ['gs://cloud-samples-data/vertex-ai/dataset-management/datasets/classic-movie-posters/*']);
יצירת המודל המרוחק
יצירת מודל מרוחק שמייצג מודל של Agent Platform
gemini-2.5-flash:
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מריצים את השאילתה הבאה כדי ליצור את המודל המרוחק:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini-vision` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.5-flash');
יכול להיות שיחלפו כמה דקות עד שהשאילתה תושלם, ואז מודל
gemini-visionיופיע במערך הנתוניםbqml_tutorialבחלונית Explorer. מכיוון שהשאילתה משתמשת בהצהרתCREATE MODELכדי ליצור מודל, אין תוצאות לשאילתה.
ניתוח של כרזות סרטים
משתמשים במודל המרוחק כדי לנתח את כרזות הסרטים ולקבוע איזה סרט כל כרזה מייצגת, ואז כותבים את הנתונים האלה לטבלה.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מריצים את השאילתה הבאה כדי לנתח את תמונות הפוסטרים של הסרטים:
CREATE OR REPLACE TABLE `bqml_tutorial.movie_posters_results` AS ( SELECT uri, result FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini-vision`, TABLE `bqml_tutorial.movie_posters`, STRUCT( 0.2 AS temperature, 'For the movie represented by this poster, what is the movie title and year of release? Answer in JSON format with two keys: title, year. title should be string, year should be integer.' AS PROMPT)));
בעורך השאילתות, מריצים את ההצהרה הבאה כדי להציג את נתוני הטבלה:
SELECT * FROM `bqml_tutorial.movie_posters_results`;
הפלט אמור להיראות כך:
+--------------------------------------------+----------------------------------+ | uri | result | +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |
json | | management/datasets/classic-movie- | { | | posters/little_annie_rooney.jpg | "title": "Little Annie Rooney", | | | "year": 1912 | | | } | | || +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |json | | management/datasets/classic-movie- | { | | posters/mighty_like_a_mouse.jpg | "title": "Mighty Like a Moose", | | | "year": 1926 | | | } | | || +--------------------------------------------+----------------------------------+ | gs://cloud-samples-data/vertex-ai/dataset- |json | | management/datasets/classic-movie- | { | | posters/brown_of_harvard.jpeg | "title": "Brown of Harvard", | | | "year": 1926 | | | } | | || +--------------------------------------------+----------------------------------+
עיצוב הפלט של המודל
כדי שיהיה קל יותר לקרוא את הנתונים של שם הסרט ושנת היציאה שלו, צריך לעצב את הנתונים שהוחזרו על ידי המודל.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בעורך השאילתות, מריצים את השאילתה הבאה כדי לעצב את הנתונים:
CREATE OR REPLACE TABLE `bqml_tutorial.movie_posters_results_formatted` AS ( SELECT uri, JSON_QUERY(RTRIM(LTRIM(results.result, " ```json"), "```"), "$.title") AS title, JSON_QUERY(RTRIM(LTRIM(results.result, " ```json"), "```"), "$.year") AS year FROM `bqml_tutorial.movie_posters_results` results );
בעורך השאילתות, מריצים את ההצהרה הבאה כדי להציג את נתוני הטבלה:
SELECT * FROM `bqml_tutorial.movie_posters_results_formatted`;
הפלט אמור להיראות כך:
+--------------------------------------------+----------------------------+------+ | uri | title | year | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "Barque sortant du port" | 1895 | | management/datasets/classic-movie- | | | | posters/barque_sortant_du_port.jpeg | | | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "The Great Train Robbery" | 1903 | | management/datasets/classic-movie- | | | | posters/the_great_train_robbery.jpg | | | +--------------------------------------------+----------------------------+------+ | gs://cloud-samples-data/vertex-ai/dataset- | "Little Annie Rooney" | 1912 | | management/datasets/classic-movie- | | | | posters/little_annie_rooney.jpg | | | +--------------------------------------------+----------------------------+------+
מחיקת הפרויקט
- במסוף Cloud de Confiance , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מחיקת משאבים בודדים
אם רוצים להשתמש שוב בפרויקט, צריך למחוק את המשאבים שיצרתם בשביל המדריך.
מחיקת מערך הנתונים
המסוף
כדי למחוק את מערך הנתונים bqml_tutorial כולו ואת כל התוכן שלו, מריצים את פקודת ה-SQL הבאה:
DROP SCHEMA IF EXISTS `bqml_tutorial` CASCADE;
BQ
מחיקת מערך הנתונים bqml_tutorial כולו וכל התוכן שלו:
bq rm -r bqml_tutorial
מחיקת ההזמנה
המסוף
אם יצרתם הזמנה ב-BigQuery כחלק מהמדריך הזה, מומלץ להסיר אותה כדי להימנע מחיובים נוספים על יחידות קיבולת.
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בתפריט הניווט, לוחצים על ניהול קיבולת.
בטבלה Slot Reservations, מחפשים את
bqml-tutorial-reservation.לוחצים על הצגת פעולות > מחיקה.
BQ
אם יצרתם הזמנה ב-BigQuery בשם bqml-tutorial-reservation במיקום us, אתם יכולים להשתמש בפקודה הבאה כדי להסיר אותה:
bq rm --reservation --location=us bqml-tutorial-reservation
מחיקת החיבור
המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על Explorer, מאתרים את הפרויקט ולוחצים על Connections.
בטבלה, מחפשים את החיבור.
לוחצים על הצגת פעולות > מחיקה.
BQ
מחיקת החיבור:
bq rm --connection --location=us CONNECTION_ID
מחליפים את CONNECTION_ID במזהה החיבור בפועל.
המאמרים הבאים
- מידע נוסף על פונקציות של AI גנרטיבי ב-BigQuery
- איך משפרים מודל באמצעות הנתונים שלכם
- כדאי להעמיק את הקריאה ולהכיר דוגמאות לארכיטקטורות, תרשימים ושיטות מומלצות בנושאי Google Cloud. כל אלה זמינים במרכז הארכיטקטורה של Cloud.