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

במדריך הזה נסביר איך לייצא מודל טרנספורמציה לפורמט Open Neural Network Exchange ‏ (ONNX), לייבא את מודל ONNX למערך נתונים ב-BigQuery, ואז להשתמש במודל כדי ליצור הטמעות מטקסט באמצעות שאילתת SQL.

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

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

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

מטרות

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

עלויות

במסמך הזה משתמשים ברכיבים הבאים של 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, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

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

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

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

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

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

צריך לוודא שיש לכם בפרויקט את התפקיד או התפקידים הבאים:

בדיקת התפקידים

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

    כניסה לדף IAM
  2. בוחרים את הפרויקט.
  3. בעמודה Principal (חשבון המשתמש), מוצאים את כל השורות שבהן מופיע השם שלכם או של קבוצה שאתם נכללים בה. כדי לברר באילו קבוצות אתם נכללים, פנו לאדמין.

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

מתן התפקידים

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

    כניסה לדף IAM
  2. בוחרים את הפרויקט.
  3. לוחצים על Grant access.
  4. בשדה New principals, מזינים את מזהה המשתמש. ‫ בדרך כלל זה המזהה של משתמש במאגר זהויות של כוח עבודה. למידע נוסף, קראו את המאמר ייצוג המשתמשים במאגרי כוח עבודה בכללי מדיניות IAM או פנו לאדמין שלכם.

  5. לוחצים על Select a role ומחפשים את התפקיד.
  6. כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
  7. לוחצים על Save.

מידע נוסף על הרשאות 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. מייצאים את המודל. הארגומנט --model מציין את מזהה המודל של Hugging Face. הארגומנט --opset מציין את גרסת ספריית ONNXRuntime, והוא מוגדר ל-17 כדי לשמור על תאימות לספריית ONNXRuntime שנתמכת על ידי BigQuery.

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

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

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

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

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

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

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

כדי ליצור את הקלטים האלה, צריך להמיר את הטוקנייזר של מודל sentence-transformers/all-MiniLM-L6-v2 לפורמט ONNX באמצעות הספרייה onnxruntime-extensions. אחרי שממירים את הטוקנייזר, אפשר לבצע טוקניזציה ישירות על קלט של טקסט גולמי כדי ליצור תחזיות של 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

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

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

יוצרים מערך נתונים ב-BigQuery לאחסון מודל ה-ML.

המסוף

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

    לדף BigQuery

  2. בחלונית Explorer, לוחצים על שם הפרויקט.

  3. לוחצים על הצגת פעולות > יצירת מערך נתונים.

  4. בדף Create dataset, מבצעים את הפעולות הבאות:

    • בשדה Dataset ID (מזהה מערך הנתונים), מזינים bqml_tutorial.

    • בקטע Location type, בוחרים באפשרות Multi-region ואז בוחרים באפשרות US.

    • משאירים את הגדרות ברירת המחדל שנותרו כמו שהן ולוחצים על Create dataset (יצירת מערך נתונים).

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 , פותחים את BigQuery 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 בחלונית Query results.

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

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

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

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

     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 בחלונית Query results.

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

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

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

BQ

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

  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. משתמשים בערך הפרמטר query כדי ליצור את המודל tokenizer.

    {
    "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. משתמשים בערך הפרמטר query כדי ליצור את המודל all-MiniLM-L6-v2.

    {
    "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 , פותחים את BigQuery 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. מחיקת המודלים המיובאים.

  2. אופציונלי: מחיקת מערך הנתונים.

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