יצירת הטמעות באמצעות מודלים של טרנספורמרים בפורמט ONNX

במדריך הזה נלמד איך להשתמש ב-Hugging Face Optimum CLI כדי לייצא את מודל sentence-transformers/all-MiniLM-L6-v2 לפורמט Open Neural Network Exchange‏ (ONNX). משתמשים בהצהרת CREATE MODEL כדי לייבא את מודל ONNX ל-BigQuery. ולסיום, משתמשים בפונקציה ML.PREDICT כדי ליצור הטמעות באמצעות מודל ONNX המיובא.

במדריך הזה נעשה שימוש במודל sentence-transformers/all-MiniLM-L6-v2. מודל ה-transformer הזה ידוע בביצועים המהירים והיעילים שלו ביצירת הטבעות של משפטים. הטמעת משפטים מאפשרת לבצע משימות כמו חיפוש סמנטי, אשכול ודמיון בין משפטים, על ידי לכידת המשמעות הבסיסית של הטקסט.

‫ONNX מספק פורמט אחיד שמיועד לייצוג של כל מסגרת ללמידת מכונה (ML). התמיכה ב-ONNX ב-BigQuery ML מאפשרת לכם:

  • אימון מודל באמצעות המסגרת המועדפת.
  • ממירים את המודל לפורמט המודל ONNX.
  • מייבאים את מודל ONNX ל-BigQuery ומבצעים חיזויים באמצעות BigQuery ML.

מטרות

  • מייצאים את המודל sentence-transformers/all-MiniLM-L6-v2 ל-ONNX.
  • מייבאים את מודל ONNX ל-BigQuery.
  • משתמשים בפונקציה ML.PREDICT כדי ליצור הטמעות באמצעות מודל ONNX שיובא.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Cloud de Confiance by S3NS, והשימוש בהם כרוך בתשלום:

כשמסיימים את המשימות שמתוארות במסמך הזה אפשר למחוק את המשאבים שיצרתם כדי להימנע מחיובים נוספים. מידע נוסף זמין בקטע הסרת המשאבים.

לפני שמתחילים

  1. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. מוודאים שהחיוב מופעל בפרויקט Cloud de Confiance .

  3. מפעילים את BigQuery API ואת Cloud Storage API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    הפעלת ממשקי ה-API

  4. חשוב לוודא שיש לכם את ההרשאות הנדרשות לביצוע המשימות שמתוארות במסמך הזה.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להשלמת המדריך הזה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

  • יצירת מערכי נתונים, טבלאות ומודלים והרצת משימות של BigQuery: BigQuery Studio Admin (roles/bigquery.studioAdmin)
  • יוצרים קטגוריה ב-Cloud Storage ויוצרים אובייקטים של אחסון (אם ממירים ידנית את קובצי מודל הטרנספורמציה ל-ONNX): אדמין אחסון (roles/storage.admin)

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

אם תיצרו פרויקט חדש, אתם תהיו בעלי הפרויקט ותקבלו את כל ההרשאות הנדרשות לניהול זהויות והרשאות גישה (IAM) כדי להשלים את המדריך הזה.

מידע נוסף על הרשאות IAM ב-BigQuery זמין במאמר הרשאות IAM.

אופציונלי: המרה ידנית של קבצי מודל הטרנספורמציה ל-ONNX

אם אתם ממירים ידנית את מודל sentence-transformers/all-MiniLM-L6-v2 ואת ה-tokenizer ל-ONNX, אתם צריכים לפעול לפי השלבים שבקטעים הבאים. לחלופין, אפשר להשתמש בקבצים לדוגמה בקטגוריה של Cloud Storage gs://cloud-samples-data. הקבצים בדלי הזה כבר הומרו. אם אתם משתמשים בקבצים לדוגמה, דלגו אל יצירת מערך נתונים.

אם בוחרים להמיר את הקבצים באופן ידני, צריך סביבת שורת פקודה מקומית שבה מותקן Python. מידע נוסף על התקנת Python זמין במאמר הורדות של Python.

ייצוא מודל הטרנספורמר ל-ONNX

משתמשים ב-Hugging Face Optimum CLI כדי לייצא את המודל sentence-transformers/all-MiniLM-L6-v2 ל-ONNX. מידע נוסף על ייצוא מודלים באמצעות Optimum CLI זמין במאמר ייצוא מודל ל-ONNX באמצעות optimum.exporters.onnx.

כדי לייצא את המודל, פותחים סביבת שורת פקודה ופועלים לפי השלבים הבאים:

  1. מתקינים את Optimum CLI:

    pip install optimum[onnx]
    
  2. מייצאים את המודל:

    optimum-cli export onnx \
        --model sentence-transformers/all-MiniLM-L6-v2 \
        --task sentence-similarity \
        --opset 17 all-MiniLM-L6-v2/
    

    הארגומנט --model מציין את מזהה המודל של Hugging Face. הארגומנט --opset מציין את גרסת הספרייה ONNXRuntime והוא מוגדר ל-17 כדי לשמור על תאימות לספריית ONNXRuntime שנתמכת על ידי BigQuery.

קובץ המודל מיוצא לספרייה all-MiniLM-L6-v2 בתור model.onnx.

החלת קוונטיזציה על מודל טרנספורמר

משתמשים ב-Optimum CLI כדי להחיל קוונטיזציה על מודל הטרנספורמציה המיוצא, כדי להקטין את גודל המודל ולהאיץ את ההסקה. מידע נוסף זמין במאמר בנושא קוונטיזציה.

כדי להחיל קוונטיזציה על המודל, מריצים את הפקודה הבאה:

optimum-cli onnxruntime quantize \
    --onnx_model all-MiniLM-L6-v2/ \
    --avx512_vnni -o all-MiniLM-L6-v2_quantized

קובץ המודל שעבר קוונטיזציה מיוצא לספרייה all-MiniLM-L6-v2_quantized כקובץ model_quantized.onnx.

המרת הטוקנייזר ל-ONNX

כדי ליצור הטמעות באמצעות מודל טרנספורמר בפורמט ONNX, בדרך כלל משתמשים בטוקנייזר כדי ליצור שני קלטים למודל, input_ids ו-attention_mask.

כדי ליצור את הקלטים האלה, צריך להמיר את ה-tokenizer של מודל sentence-transformers/all-MiniLM-L6-v2 לפורמט ONNX באמצעות ספריית onnxruntime-extensions. אחרי שממירים את ה-tokenizer, אפשר לבצע tokenization ישירות על קלט של טקסט גולמי כדי ליצור תחזיות של ONNX.

כדי להמיר את הטוקנייזר, מבצעים את השלבים הבאים בשורת הפקודה:

  1. מתקינים את Optimum CLI:

    pip install optimum[onnx]
    
  2. משתמשים בכלי לעריכת הטקסט שרוצים כדי ליצור קובץ בשם convert-tokenizer.py. בדוגמה הבאה משתמשים בכלי Nano לעריכת טקסט:

    nano convert-tokenizer.py
    
  3. מעתיקים את סקריפט Python הבא ומדביקים אותו בקובץ convert-tokenizer.py:

    from onnxruntime_extensions import gen_processing_models
    
    # Load the Huggingface tokenizer
    tokenizer = AutoTokenizer.from_pretrained("sentence-transformers/all-MiniLM-L6-v2")
    
    # Export the tokenizer to ONNX using gen_processing_models
    onnx_tokenizer_path = "tokenizer.onnx"
    
    # Generate the tokenizer ONNX model, and set the maximum token length.
    # Ensure 'max_length' is set to a value less than the model's maximum sequence length, failing to do so will result in error during inference.
    tokenizer_onnx_model = gen_processing_models(tokenizer, pre_kwargs={'max_length': 256})[0]
    
    # Modify the tokenizer ONNX model signature.
    # This is because certain tokenizers don't support batch inference.
    tokenizer_onnx_model.graph.input[0].type.tensor_type.shape.dim[0].dim_value = 1
    
    # Save the tokenizer ONNX model
    with open(onnx_tokenizer_path, "wb") as f:
      f.write(tokenizer_onnx_model.SerializeToString())
    
  4. שומרים את קובץ ה-convert-tokenizer.py.

  5. כדי להמיר את הטוקנייזר, מריצים את סקריפט Python:

    python convert-tokenizer.py
    

הטוקנייזר שהומר מיוצא לספרייה all-MiniLM-L6-v2_quantized בשם tokenizer.onnx.

העלאת קובצי המודל שהומרו ל-Cloud Storage

אחרי שממירים את מודל הטרנספורמר ואת הטוקנייזר, מבצעים את הפעולות הבאות:

יצירת מערך נתונים

כדי ליצור מערך נתונים ב-BigQuery, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

    כפתור מודגש לחלונית הסייר.

    אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.

  3. בסייר, מרחיבים את הפרויקט ואז לוחצים על מערכי נתונים.

  4. בדף Datasets (מערכי נתונים), לוחצים על Create dataset (יצירת מערך נתונים).

  5. בחלונית Create dataset:

    • בשדה Dataset ID (מזהה קבוצת נתונים), מזינים bqml_tutorial.

    • בקטע Data location, בוחרים באפשרות US.

    משאירים את שאר הגדרות ברירת המחדל כמו שהן.

  6. לוחצים על יצירת מערך נתונים.

BQ

כדי ליצור מערך נתונים חדש, משתמשים בפקודה bq mk --dataset.

  1. יוצרים מערך נתונים בשם bqml_tutorial עם מיקום הנתונים שמוגדר ל-US:

    bq mk --dataset \
      --location=US \
      --description "BigQuery ML tutorial dataset." \
      bqml_tutorial
  2. בודקים שמערך הנתונים נוצר:

    bq ls

API

מפעילים את השיטה datasets.insert עם משאב מוגדר של מערך נתונים:

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

BigQuery DataFrames

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

import google.cloud.bigquery

bqclient = google.cloud.bigquery.Client()
bqclient.create_dataset("bqml_tutorial", exists_ok=True)

ייבוא מודלים של ONNX ל-BigQuery

מייבאים את טוקנייזר שהומר ואת מודלים של טרנספורמרים של משפטים בתור מודלים של BigQuery ML.

בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. במסוף Cloud de Confiance , עוברים לדף Studio ב-BigQuery.

    אל Studio

  2. בעורך השאילתות, מריצים את ההצהרה CREATE MODEL הבאה כדי ליצור את המודל tokenizer:

     CREATE OR REPLACE MODEL `bqml_tutorial.tokenizer`
      OPTIONS (MODEL_TYPE='ONNX',
       MODEL_PATH='TOKENIZER_BUCKET_PATH');

    מחליפים את TOKENIZER_BUCKET_PATH בנתיב למודל שהעליתם ל-Cloud Storage. אם משתמשים במודל לדוגמה, מחליפים את TOKENIZER_BUCKET_PATH בערך הבא: gs://cloud-samples-data/bigquery/ml/onnx/all-MiniLM-L6-v2/tokenizer.onnx.

    בסיום הפעולה, בחלונית תוצאות השאילתה תופיע הודעה שדומה להודעה הבאה: Successfully created model named tokenizer.

  3. כדי לפתוח את חלונית פרטים, לוחצים על מעבר למודל.

  4. כדי לראות את נתוני הקלט של המודל ואת הפלט של המודל בעמודת התווית, בודקים את הקטע עמודות התכונות:

    חלונית **הפרטים** של מודל `tokenizer`

  5. כדי ליצור את מודל all-MiniLM-L6-v2, מריצים את ההצהרה הבאה CREATE MODEL בעורך השאילתות:

     CREATE OR REPLACE MODEL `bqml_tutorial.all-MiniLM-L6-v2`
      OPTIONS (MODEL_TYPE='ONNX',
       MODEL_PATH='TRANSFORMER_BUCKET_PATH');

    מחליפים את TRANSFORMER_BUCKET_PATH בנתיב של המודל שהעליתם ל-Cloud Storage. אם משתמשים במודל לדוגמה, מחליפים את TRANSFORMER_BUCKET_PATH בערך הבא: gs://cloud-samples-data/bigquery/ml/onnx/all-MiniLM-L6-v2/model_quantized.onnx.

    בסיום הפעולה, בחלונית תוצאות השאילתה תופיע הודעה שדומה להודעה הבאה: Successfully created model named all-MiniLM-L6-v2.

  6. כדי לפתוח את חלונית פרטים, לוחצים על מעבר למודל.

  7. כדי לראות את נתוני הקלט של המודל ואת נתוני הפלט של המודל בעמודת התווית, מעיינים בקטע עמודות התכונות:

    חלונית **הפרטים** של המודל `all-MiniLM-L6-v2`

BQ

מריצים את ההצהרה CREATE MODEL באמצעות כלי שורת הפקודה של BigQuery query.

  1. יוצרים את מודל tokenizer:

    bq query --use_legacy_sql=false \
    "CREATE OR REPLACE MODEL
    `bqml_tutorial.tokenizer`
    OPTIONS
    (MODEL_TYPE='ONNX',
      MODEL_PATH='TOKENIZER_BUCKET_PATH')"

    מחליפים את TOKENIZER_BUCKET_PATH בנתיב למודל שהעליתם ל-Cloud Storage. אם משתמשים במודל לדוגמה, מחליפים את TOKENIZER_BUCKET_PATH בערך הבא: gs://cloud-samples-data/bigquery/ml/onnx/all-MiniLM-L6-v2/tokenizer.onnx.

    בסיום הפעולה, תופיע הודעה דומה לזו: Successfully created model named tokenizer.

  2. יוצרים את מודל all-MiniLM-L6-v2:

    bq query --use_legacy_sql=false \
    "CREATE OR REPLACE MODEL
      `bqml_tutorial.all-MiniLM-L6-v2`
    OPTIONS
      (MODEL_TYPE='ONNX',
        MODEL_PATH='TRANSFORMER_BUCKET_PATH')"

    מחליפים את הערך ב-TRANSFORMER_BUCKET_PATH בנתיב למודל שהעליתם ל-Cloud Storage. אם משתמשים במודל לדוגמה, מחליפים את TRANSFORMER_BUCKET_PATH בערך הבא: gs://cloud-samples-data/bigquery/ml/onnx/all-MiniLM-L6-v2/model_quantized.onnx.

    בסיום הפעולה, תופיע הודעה דומה לזו שבהמשך: Successfully created model named all-MiniLM-L6-v2.

  3. אחרי שמייבאים את המודלים, צריך לוודא שהם מופיעים במערך הנתונים.

    bq ls -m bqml_tutorial

    הפלט אמור להיראות כך:

    tableId            Type
    ------------------------
    tokenizer          MODEL
    all-MiniLM-L6-v2   MODEL

API

משתמשים ב-jobs.insert method כדי לייבא את המודלים. מאכלסים את הפרמטר query של QueryRequest resource בגוף הבקשה באמצעות ההצהרה CREATE MODEL.

  1. כדי ליצור את המודל tokenizer, משתמשים בפרמטר query הבא:

    {
      "query": "CREATE MODEL `PROJECT_ID :bqml_tutorial.tokenizer` OPTIONS(MODEL_TYPE='ONNX' MODEL_PATH='TOKENIZER_BUCKET_PATH')"
    }

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט.
    • TOKENIZER_BUCKET_PATH: הנתיב למודל שהעליתם ל-Cloud Storage. אם משתמשים במודל לדוגמה, מחליפים את TOKENIZER_BUCKET_PATH בערך הבא: gs://cloud-samples-data/bigquery/ml/onnx/all-MiniLM-L6-v2/tokenizer.onnx.
  2. כדי ליצור את מודל all-MiniLM-L6-v2, משתמשים בערך הפרמטר הבא: query

    {
      "query": "CREATE MODEL `PROJECT_ID :bqml_tutorial.all-MiniLM-L6-v2` OPTIONS(MODEL_TYPE='ONNX' MODEL_PATH='TRANSFORMER_BUCKET_PATH')"
    }

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט.
    • TRANSFORMER_BUCKET_PATH: הנתיב למודל שהעליתם ל-Cloud Storage. אם משתמשים במודל לדוגמה, מחליפים את TRANSFORMER_BUCKET_PATH בערך הבא: gs://cloud-samples-data/bigquery/ml/onnx/all-MiniLM-L6-v2/model_quantized.onnx.

BigQuery DataFrames

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

מייבאים את הטוקנייזר ואת מודלי הטרנספורמר של המשפטים באמצעות האובייקט ONNXModel.

import bigframes
from bigframes.ml.imported import ONNXModel

bigframes.options.bigquery.project = PROJECT_ID

bigframes.options.bigquery.location = "US"

tokenizer = ONNXModel(
  model_path= "TOKENIZER_BUCKET_PATH"
)
imported_onnx_model = ONNXModel(
  model_path="TRANSFORMER_BUCKET_PATH"
)

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט.
  • TOKENIZER_BUCKET_PATH: הנתיב למודל שהעליתם ל-Cloud Storage. אם משתמשים במודל לדוגמה, מחליפים את TOKENIZER_BUCKET_PATH בערך הבא: gs://cloud-samples-data/bigquery/ml/onnx/all-MiniLM-L6-v2/tokenizer.onnx.
  • TRANSFORMER_BUCKET_PATH: הנתיב למודל שהעליתם ל-Cloud Storage. אם משתמשים במודל לדוגמה, מחליפים את TRANSFORMER_BUCKET_PATH בערך הבא: gs://cloud-samples-data/bigquery/ml/onnx/all-MiniLM-L6-v2/model_quantized.onnx.

יצירת הטמעות באמצעות מודלים של ONNX שיובאו

משתמשים בטוקנייזר המיובא ובמודלים של Sentence Transformer כדי ליצור הטמעות על סמך נתונים מbigquery-public-data.imdb.reviewsמערך הנתונים הציבורי.

בוחרים באחת מהאפשרויות הבאות:

המסוף

כדי ליצור הטבעות באמצעות המודלים, משתמשים בפונקציה ML.PREDICT.

השאילתה משתמשת בקריאה מקוננת ל-ML.PREDICT כדי לעבד טקסט גולמי ישירות דרך הטוקנייזר ומודל ההטמעה באופן הבא:

  • טוקניזציה (שאילתה פנימית): הקריאה הפנימית ל-ML.PREDICT משתמשת במודל bqml_tutorial.tokenizer. היא מקבלת את עמודה title ממערך הנתונים הציבורי bigquery-public-data.imdb.reviews כקלט text. מודל tokenizer ממיר את מחרוזות הטקסט הגולמיות לנתוני טוקנים מספריים שהמודל הראשי דורש, כולל נתוני input_ids ו-attention_mask.
  • יצירת הטמעה (שאילתה חיצונית): הקריאה החיצונית ML.PREDICT משתמשת במודל bqml_tutorial.all-MiniLM-L6-v2. השאילתה מקבלת כקלט את העמודות input_ids ו-attention_mask מהפלט של השאילתה הפנימית.

ההצהרה SELECT מאחזרת את העמודה sentence_embedding, שהיא מערך של ערכי FLOAT שמייצגים את ההטמעה הסמנטית של הטקסט.

כדי ליצור את ההטמעות, פועלים לפי השלבים הבאים:

  1. במסוף Cloud de Confiance , עוברים לדף Studio ב-BigQuery.

    אל Studio

  2. בעורך השאילתות, מריצים את השאילתה הבאה.

    SELECT
    sentence_embedding
    FROM
    ML.PREDICT (MODEL `bqml_tutorial.all-MiniLM-L6-v2`,
      (
      SELECT
        input_ids, attention_mask
      FROM
        ML.PREDICT(MODEL `bqml_tutorial.tokenizer`,
          (
          SELECT
            title AS text
          FROM
            `bigquery-public-data.imdb.reviews` limit 10))));

    התוצאה אמורה להיראות כך:

    +-----------------------+
    | sentence_embedding    |
    +-----------------------+
    | -0.02361682802438736  |
    | 0.02025664784014225   |
    | 0.005168713629245758  |
    | -0.026361213997006416 |
    | 0.0655381828546524    |
    | ...                   |
    +-----------------------+
    

BQ

משתמשים בכלי שורת הפקודה של BigQuery query כדי להריץ שאילתה. השאילתה משתמשת בפונקציה ML.PREDICT כדי ליצור הטמעות באמצעות המודלים.

השאילתה משתמשת בקריאה מקוננת ל-ML.PREDICT כדי לעבד טקסט גולמי ישירות דרך הטוקנייזר ומודל ההטמעה באופן הבא:

  • טוקניזציה (שאילתה פנימית): הקריאה הפנימית ל-ML.PREDICT משתמשת במודל bqml_tutorial.tokenizer. היא מקבלת את עמודה title ממערך הנתונים הציבורי bigquery-public-data.imdb.reviews כקלט text. מודל tokenizer ממיר את מחרוזות הטקסט הגולמיות לנתוני טוקנים מספריים שהמודל הראשי דורש, כולל נתוני input_ids ו-attention_mask.
  • יצירת הטמעה (שאילתה חיצונית): הקריאה החיצונית ML.PREDICT משתמשת במודל bqml_tutorial.all-MiniLM-L6-v2. השאילתה מקבלת כקלט את העמודות input_ids ו-attention_mask מהפלט של השאילתה הפנימית.

ההצהרה SELECT מאחזרת את העמודה sentence_embedding, שהיא מערך של ערכי FLOAT שמייצגים את ההטמעה הסמנטית של הטקסט.

מריצים את הפקודה הבאה בשורת הפקודה כדי להריץ את השאילתה.

bq query --use_legacy_sql=false \
'SELECT
sentence_embedding
FROM
ML.PREDICT (MODEL `bqml_tutorial.all-MiniLM-L6-v2`,
  (
  SELECT
    input_ids, attention_mask
  FROM
    ML.PREDICT(MODEL `bqml_tutorial.tokenizer`,
      (
      SELECT
        title AS text
      FROM
        `bigquery-public-data.imdb.reviews` limit 10))))'

התוצאה אמורה להיראות כך:

+-----------------------+
| sentence_embedding    |
+-----------------------+
| -0.02361682802438736  |
| 0.02025664784014225   |
| 0.005168713629245758  |
| -0.026361213997006416 |
| 0.0655381828546524    |
| ...                   |
+-----------------------+

BigQuery DataFrames

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של BigQuery DataFrames במדריך לתחילת העבודה עם BigQuery באמצעות BigQuery DataFrames. מידע נוסף מופיע במאמרי העזרה בנושא BigQuery DataFrames.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

משתמשים ב-method‏ predict כדי ליצור הטמעות באמצעות מודלים של ONNX.

import bigframes.pandas as bpd

df = bpd.read_gbq("bigquery-public-data.imdb.reviews", max_results=10)
df_pred = df.rename(columns={"title": "text"})
tokens = tokenizer.predict(df_pred)
predictions = imported_onnx_model.predict(tokens)
predictions.peek(5)

הפלט אמור להיראות כך:

פלט ממודל הטרנספורמר.

הסרת המשאבים

כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.

מחיקת הפרויקט

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

gcloud

    כדי למחוק Cloud de Confiance פרויקט:

    gcloud projects delete PROJECT_ID

מחיקת משאבים בודדים

לחלופין, כדי לשמור את הפרויקט ולמחוק את המשאבים שבהם השתמשתם במדריך הזה, פועלים לפי השלבים הבאים:

  1. במסוף Cloud de Confiance , עוברים לדף Studio ב-BigQuery.

    אל Studio

  2. בחלונית הימנית, מרחיבים את הפרויקט ואז לוחצים על מערכי נתונים.

  3. במערך הנתונים bqml_tutorial, לוחצים על פתיחת הפעולות > מחיקה.

  4. בתיבת הדו-שיח מחיקת מערך נתונים, לוחצים על מחיקה כדי לאשר.

  5. אם ביצעתם את השלבים להמרה ידנית של קובצי מודל הטרנספורמר ל-ONNX, ממחקים את קטגוריה של Cloud Storage.

המאמרים הבאים