במדריך הזה תלמדו איך לייבא מודלים של TensorFlow למערך נתונים של BigQuery ML. לאחר מכן, משתמשים בשאילתת SQL כדי ליצור תחזיות מהמודלים שיובאו.
מטרות
- משתמשים בהצהרת
CREATE MODELכדי לייבא מודלים של TensorFlow ל-BigQuery ML. - משתמשים בפונקציה
ML.PREDICTכדי ליצור תחזיות באמצעות מודלים של TensorFlow שיובאו.
עלויות
במסמך הזה משתמשים ברכיבים הבאים של Cloud de Confiance by S3NS, והשימוש בהם כרוך בתשלום:
כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.
לפני שמתחילים
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance 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.
צריך לוודא ש-BigQuery API מופעל.
- חשוב לוודא שיש לכם את ההרשאות הנדרשות לביצוע המשימות שמתוארות במסמך הזה.
התפקידים הנדרשים
אם יוצרים פרויקט חדש, אתם הבעלים של הפרויקט, ויש לכם את כל ההרשאות הנדרשות לניהול זהויות והרשאות גישה (IAM) שאתם צריכים כדי להשלים את המדריך הזה.
אם אתם משתמשים בפרויקט קיים, התפקיד אדמין של BigQuery Studio (roles/bigquery.studioAdmin) מעניק את כל ההרשאות שנדרשות כדי להשלים את ההדרכה הזו.
מוודאים שיש לכם את התפקיד או התפקידים הבאים בפרויקט:
BigQuery Studio Admin (roles/bigquery.studioAdmin).
בדיקת התפקידים
-
נכנסים לדף IAM במסוף Cloud de Confiance .
כניסה לדף IAM - בוחרים את הפרויקט.
-
בעמודה Principal (חשבון המשתמש), מוצאים את כל השורות שבהן מופיע השם שלכם או של קבוצה שאתם נכללים בה. כדי לברר באילו קבוצות אתם נכללים, פנו לאדמין.
- בודקים את העמודה Role בכל השורות שבהן מצוין או מופיע השם שלכם, כדי לראות אם רשימת התפקידים כוללת את התפקידים הנדרשים.
מתן התפקידים
-
נכנסים לדף IAM במסוף Cloud de Confiance .
כניסה לדף IAM - בוחרים את הפרויקט.
- לוחצים על Grant access.
-
בשדה New principals, מזינים את מזהה המשתמש. בדרך כלל זה המזהה של משתמש במאגר זהויות של כוח עבודה. למידע נוסף, קראו את המאמר ייצוג המשתמשים במאגרי כוח עבודה בכללי מדיניות IAM או פנו לאדמין שלכם.
- לוחצים על Select a role ומחפשים את התפקיד.
- כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
- לוחצים על Save.
מידע נוסף על הרשאות IAM ב-BigQuery זמין במאמר הרשאות ב-BigQuery.
יצירת מערך נתונים
יוצרים מערך נתונים ב-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" } }
ייבוא מודל TensorFlow
בשלבים הבאים מוסבר איך לייבא מודל מ-Cloud Storage.
הנתיב למודל הוא
gs://cloud-training-demos/txtclass/export/exporter/1549825580/*. שם הדגם המיובא הוא imported_tf_model.
שימו לב שמזהה ה-URI של Cloud Storage מסתיים בתו כללי (*).
התו הזה מציין ש-BigQuery ML צריך לייבא את כל הנכסים שמשויכים למודל.
המודל שיובא הוא מודל TensorFlow לסיווג טקסט, שמנבא באיזה אתר פורסמה כותרת מאמר מסוימת.
כדי לייבא את מודל TensorFlow למערך הנתונים, פועלים לפי השלבים הבאים.
המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
כדי ליצור חדש, לוחצים על שאילתת SQL.
בעורך השאילתות, מזינים את ההצהרה
CREATE MODELולוחצים על Run.CREATE OR REPLACE MODEL `bqml_tutorial.imported_tf_model` OPTIONS (MODEL_TYPE='TENSORFLOW', MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')
בסיום הפעולה, אמורה להופיע הודעה כמו
Successfully created model named imported_tf_model.המודל החדש מופיע בחלונית משאבים. מודלים מסומנים בסמל המודל:
.אם בוחרים את המודל החדש בחלונית Resources, המידע על המודל מופיע מתחת לעורך השאילתות.
BQ
מייבאים את מודל TensorFlow מ-Cloud Storage על ידי הזנת ההצהרה הבאה
CREATE MODEL.bq query --use_legacy_sql=false \ "CREATE OR REPLACE MODEL `bqml_tutorial.imported_tf_model` OPTIONS (MODEL_TYPE='TENSORFLOW', MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')"
אחרי שמייבאים את המודל, מוודאים שהוא מופיע במערך הנתונים.
bq ls -m bqml_tutorial
הפלט אמור להיראות כך:
tableId Type ------------------- ------- imported_tf_model MODEL
API
מוסיפים משרה חדשה ומאכלסים את המאפיין jobs#configuration.query בגוף הבקשה.
{ "query": "CREATE MODEL `PROJECT_ID:bqml_tutorial.imported_tf_model` OPTIONS(MODEL_TYPE='TENSORFLOW' MODEL_PATH='gs://cloud-training-demos/txtclass/export/exporter/1549825580/*')" }
מחליפים את PROJECT_ID בשם הפרויקט ומערך הנתונים.
BigQuery DataFrames
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
מייבאים את המודל באמצעות האובייקט TensorFlowModel.
מידע נוסף על ייבוא מודלים של TensorFlow ל-BigQuery ML, כולל דרישות לגבי פורמט ואחסון, מופיע בהצהרה CREATE MODEL בנושא ייבוא מודלים של TensorFlow.
יצירת תחזיות באמצעות מודל TensorFlow מיובא
אחרי שמייבאים את מודל TensorFlow, משתמשים בפונקציה ML.PREDICT כדי ליצור תחזיות באמצעות המודל.
השאילתה הבאה משתמשת ב-imported_tf_model כדי ליצור תחזיות באמצעות נתוני קלט מהטבלה full במערך הנתונים הציבורי hacker_news. בשאילתה, הפונקציה serving_input_fn של מודל TensorFlow מציינת שהמודל מצפה למחרוזת קלט אחת בשם input. שאילתת המשנה מקצה את הכינוי input לעמודה title בהצהרת SELECT של שאילתת המשנה.
כדי ליצור תחזיות באמצעות מודל TensorFlow המיובא, פועלים לפי השלבים הבאים.
המסוף
במסוף Cloud de Confiance , עוברים לדף BigQuery.
בקטע יצירה של, לוחצים על שאילתת SQL.
בעורך השאילתות, מזינים את השאילתה הזו שמשתמשת בפונקציה
ML.PREDICT.SELECT * FROM ML.PREDICT(MODEL `bqml_tutorial.imported_tf_model`, ( SELECT title AS input FROM bigquery-public-data.hacker_news.full ) )
תוצאות השאילתה אמורות להיראות כך:
BQ
כדי להריץ את השאילתה שמשתמשת ב-ML.PREDICT, מזינים את הפקודה הבאה.
bq query \ --use_legacy_sql=false \ 'SELECT * FROM ML.PREDICT( MODEL `bqml_tutorial.imported_tf_model`, (SELECT title AS input FROM `bigquery-public-data.hacker_news.full`))'
התוצאות אמורות להיראות כך:
+------------------------------------------------------------------------+----------------------------------------------------------------------------------+ | dense_1 | input | +------------------------------------------------------------------------+----------------------------------------------------------------------------------+ | ["0.6251608729362488","0.2989124357700348","0.07592673599720001"] | How Red Hat Decides Which Open Source Companies t... | | ["0.014276246540248394","0.972910463809967","0.01281337533146143"] | Ask HN: Toronto/GTA mastermind around side income for big corp. dev? | | ["0.9821603298187256","1.8601855117594823E-5","0.01782100833952427"] | Ask HN: What are good resources on strategy and decision making for your career? | | ["0.8611106276512146","0.06648492068052292","0.07240450382232666"] | Forget about promises, use harvests | +------------------------------------------------------------------------+----------------------------------------------------------------------------------+
API
מוסיפים משרה חדשה ומאכלסים את מאפיין jobs#configuration.query כמו בגוף הבקשה. מחליפים את project_id בשם הפרויקט.
{ "query": "SELECT * FROM ML.PREDICT(MODEL `project_id.bqml_tutorial.imported_tf_model`, (SELECT * FROM input_data))" }
BigQuery DataFrames
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.
משתמשים בפונקציה predict כדי להפעיל את מודל TensorFlow:
התוצאות אמורות להיראות כך:
בתוצאות השאילתה, העמודה dense_1 מכילה מערך של ערכי הסתברות, והעמודה input מכילה את ערכי המחרוזת התואמים מטבלת הקלט. כל ערך של רכיב במערך מייצג את ההסתברות שמחרוזת הקלט התואמת היא כותרת של מאמר מפרסום מסוים.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.
מחיקת הפרויקט
המסוף
- במסוף Cloud de Confiance , נכנסים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
gcloud
כדי למחוק Cloud de Confiance פרויקט:
gcloud projects delete PROJECT_ID
מחיקת משאבים בודדים
לחלופין, אפשר להסיר את המשאבים הספציפיים שבהם השתמשתם במדריך הזה:
אופציונלי: מחיקת מערך הנתונים.
המאמרים הבאים
- סקירה כללית על BigQuery ML זמינה במאמר מבוא ל-BigQuery ML.
- כדי להתחיל להשתמש ב-BigQuery ML, אפשר לעיין במאמר בנושא יצירת מודלים של למידת מכונה ב-BigQuery ML.
- מידע נוסף על ייבוא מודלים של TensorFlow זמין במאמר בנושא הצהרת
CREATE MODELלייבוא מודלים של TensorFlow. - למידע נוסף על עבודה עם מודלים, אפשר לעיין במקורות המידע הבאים:
- מידע נוסף על השימוש ב-BigQuery DataFrames API ב-BigQuery notebook זמין במאמרים הבאים: