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

במדריך הזה מוסבר איך לכוונן מודל שמעשיר משפט נתון על ידי ניסוח מדויק יותר או הוספת מילות תיאור, בלי לשנות את המשמעות הכללית. יוצרים מודל מרוחק שמפנה למודל של Gemini Enterprise Agent Platform, משתמשים בכוונון בפיקוח ואז מעריכים את המודל המכוונן באמצעות הפונקציה ML.EVALUATE.

כוונון עוזר להתאים אישית את המודל של Agent Platform שמתארח, למשל כשההתנהגות הצפויה לא מוגדרת בבירור בהנחיה, או כשההנחיות לא מניבות באופן עקבי את התוצאות הצפויות. כוונון מפוקח משפיע על המודל גם בדרכים הבאות:

  • מנחה את המודל להחזיר סגנונות תשובה ספציפיים – לדוגמה, תשובה תמציתית יותר או מפורטת יותר.
  • מלמד את המודל התנהגויות חדשות – לדוגמה, להגיב להנחיות בתור פרסונה ספציפית.
  • גורם למודל לעדכן את עצמו במידע חדש.

במדריך הזה, המטרה היא שהמודל ייצור טקסט דינמי מבוסס-AI שהסגנון והתוכן שלו תואמים ככל האפשר לתוכן של אמת הקרקע (ground truth) שסופק.

מטרות

  • יוצרים מערך נתונים.
  • מייבאים נתוני אימון והערכה לטבלאות.
  • יוצרים מודל בסיס.
  • הערכת הביצועים של מודל הבסיס.
  • יוצרים מודל מכוונן.
  • הערכת הביצועים של המודל המכוונן.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

  • BigQuery. You incur costs for the queries that you run in BigQuery.
  • BigQuery ML. You incur costs for the model that you create and the processing that you perform in BigQuery ML.
  • Gemini Enterprise Agent Platform. You incur costs for calls to and supervised tuning of the Gemini model.

בעזרת מחשבון העלויות אתם יכולים להעריך את העלויות בהתאם לשימוש הצפוי.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

מידע נוסף זמין במקורות המידע הבאים:

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

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

  • יצירה ושימוש במערכי נתונים, בחיבורים ובמודלים של BigQuery: אדמין ב-BigQuery‏ (roles/bigquery.admin).
  • נותנים הרשאות לחשבון השירות של החיבור: אדמין IAM של פרויקט (roles/resourcemanager.projectIamAdmin).

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

ההרשאות הנדרשות

  • יוצרים מערך נתונים: bigquery.datasets.create
  • יצירת טבלה: bigquery.tables.create
  • יצירה, הקצאה ושימוש בחיבור: bigquery.connections.*
  • מגדירים את חיבור ברירת המחדל: bigquery.config.*
  • מגדירים את ההרשאות של חשבון השירות: resourcemanager.projects.getIamPolicy וגם resourcemanager.projects.setIamPolicy
  • יוצרים מודל ומריצים הסקה:
    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
    • bigquery.models.updateMetadata

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

  1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.

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

    • בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים?

    כניסה לדף לבחירת הפרויקט

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

  3. מפעילים את BigQuery, ‏BigQuery Connection, ‏Agent Platform API ו-Compute Engine API, אם הם עדיין לא מופעלים.

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

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

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

יצירת קבוצת נתונים

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

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

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

    אם החלונית הימנית לא מוצגת, לוחצים על Expand left pane כדי לפתוח אותה.

  3. ב-Explorer, מרחיבים את הפרויקט ולוחצים על Datasets.

  4. בדף Datasets, לוחצים על Create dataset.

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

    • בשדה Dataset ID, מזינים bqml_tutorial.

    • בקטע Data location (מיקום הנתונים), בוחרים באפשרות US (ארה"ב).

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

  6. לוחצים על 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"
  }
}

יצירת טבלאות לבדיקה

יוצרים טבלאות של נתוני אימון והערכה על סמך מערך הנתונים הציבורי task955_wiki_auto_style_transfer מ-Hugging Face.

  1. פותחים את Cloud Shell:

  2. ב-Cloud Shell, יוצרים טבלאות של נתוני בדיקה והערכה:

    python3 -m pip install pandas pyarrow fsspec huggingface_hub
    
    python3 -c "import pandas as pd; df_train = pd.read_parquet('hf://datasets/Lots-of-LoRAs/task955_wiki_auto_style_transfer/data/train-00000-of-00001.parquet').drop('id', axis=1); df_train['output'] = [x[0] for x in df_train['output']]; df_train.to_json('wiki_auto_style_transfer_train.jsonl', orient='records', lines=True);"
    
    python3 -c "import pandas as pd; df_valid = pd.read_parquet('hf://datasets/Lots-of-LoRAs/task955_wiki_auto_style_transfer/data/valid-00000-of-00001.parquet').drop('id', axis=1); df_valid['output'] = [x[0] for x in df_valid['output']]; df_valid.to_json('wiki_auto_style_transfer_valid.jsonl', orient='records', lines=True);"
    
    bq load --replace=true --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_train wiki_auto_style_transfer_train.jsonl input:STRING,output:STRING
    
    bq load --replace=true --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_valid wiki_auto_style_transfer_valid.jsonl input:STRING,output:STRING
    

צפייה בנתוני האימון

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

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

    SELECT * FROM bqml_tutorial.wiki_auto_style_transfer_train LIMIT 1;

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

    +-----------------------------------------------+-------------------------------------------------+
    | input                                         | output                                          |
    +-----------------------------------------------+-------------------------------------------------+
    | Definition: In this task, we ask you to       | Merton College ( in full : The House or College |
    | elaborate the sentence without changing its   | of Scholars of Merton in the University of      |
    | general meaning. You can do so by explaining  | Oxford ) is one of the constituent colleges of  |
    | further the input sentence, using more        | the University of Oxford in England .           |
    | precise wording, adding qualifiers and        |                                                 |
    | auxiliary information etc.                    |                                                 |
    |                                               |                                                 |
    | Positive Example 1 -                          |                                                 |
    | Input: The Inheritance Cycle is a series of   |                                                 |
    | fantasy books written by Christopher Paolini. |                                                 |
    | Output: The Inheritance Cycle is a tetralogy  |                                                 |
    | of young adult high fantasy novels written by |                                                 |
    | American author Christopher Paolini.          |                                                 |
    |                                               |                                                 |
    | Positive Example 2 -                          |                                                 |
    | Input: The Greco-Roman or Graeco-Roman world, |                                                 |
    | refers to geographical regions and countries  |                                                 |
    | who had the language , culture , government   |                                                 |
    | or religion of the ancient Greeks and Romans. |                                                 |
    | Output: The Greco-Roman world , Greco-Roman   |                                                 |
    | culture , or the term Greco-Roman (spelled    |                                                 |
    | Graeco-Roman in the United Kingdom and the    |                                                 |
    | Commonwealth), when used as an adjective , as |                                                 |
    | understood by modern scholars and writers ,   |                                                 |
    | refers to those geographical regions and      |                                                 |
    | countries that culturally ( and so            |                                                 |
    |  historically ) were directly , long-term ,   |                                                 |
    | and intimately influenced by the language ,   |                                                 |
    | culture , government and religion of the      |                                                 |
    | ancient Greeks and Romans.                    |                                                 |
    |                                               |                                                 |
    | Negative Example 1 -                          |                                                 |
    | Input: Boryla, an American football           |                                                 |
    | quarterback, did not participate in the 1952  |                                                 |
    | playoffs.                                     |                                                 |
    | Output: Boryla was not in the 1952 playoffs.  |                                                 |
    |                                               |                                                 |
    | Negative Example 2 -                          |                                                 |
    | Input: The wild population in China decreased |                                                 |
    | to around 2,000 in 2005.                      |                                                 |
    | Output: By 2005, the wild population          |                                                 |
    | decreased to about 2,000.                     |                                                 |
    |                                               |                                                 |
    | Now complete the following example -          |                                                 |
    | Input: Merton College is one of the colleges  |                                                 |
    | of the University of Oxford .                 |                                                 |
    | Output:                                       |                                                 |
    +-----------------------------------------------+-------------------------------------------------+
    

יצירת מודל בסיס

יוצרים מודל מרוחק מעל מודל Gemini:

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

    CREATE OR REPLACE MODEL `bqml_tutorial.gemini_baseline`
    REMOTE WITH CONNECTION DEFAULT
    OPTIONS (ENDPOINT = 'gemini-2.5-pro');

    השאילתה מסתיימת תוך כמה שניות, ואז המודל gemini_baseline מופיע במערך הנתונים bqml_tutorial בחלונית Explorer. בגלל שהשאילתה משתמשת בהצהרת CREATE MODEL כדי ליצור מודל, אין תוצאות לשאילתה.

בדיקת הביצועים של מודל הבסיס

כדי לראות את הביצועים של המודל המרוחק בנתוני ההערכה בלי כוונון, מריצים את הפונקציה AI.GENERATE_TEXT:

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

    SELECT result, ground_truth
    FROM
      AI.GENERATE_TEXT(
        MODEL `bqml_tutorial.gemini_baseline`,
        (
          SELECT
            input AS prompt, output AS ground_truth
          FROM `bqml_tutorial.wiki_auto_style_transfer_valid`
          LIMIT 10
        ));

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

    +-------------------------------------------------+-------------------------------------------------+
    | result                                          | ground_truth                                    |
    +-------------------------------------------------+-------------------------------------------------+
    | In mathematics, and more specifically in graph  | In mathematics , and more specifically in graph |
    | theory, a graph is an abstract structure that   | theory , a graph is a structure amounting to a  |
    | is used to model pairwise relationships between | set of objects in which some pairs of the       |
    | objects. A graph in this context is made up of  | objects are in some sense " related " .         |
    | vertices (also called nodes or points) and      |                                                 |
    | edges (also called links or lines) that connect |                                                 |
    | pairs of vertices.                              |                                                 |
    | ...                                             | ...                                             |
    +-------------------------------------------------+-------------------------------------------------+
    

    למרות שמודל הבסיס יוצר טקסט שמשקף בצורה מדויקת את העובדות שמופיעות בתוכן של אמת הקרקע, לפעמים סגנון הטקסט שונה. מודל הבסיס נוטה ליצור פירוטים ארוכים יותר מאמת הקרקע (ground truth) הרצויה.

הערכת המודל הבסיסי

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

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

    SELECT *
    FROM
      ML.EVALUATE(
        MODEL `bqml_tutorial.gemini_baseline`,
        (
          SELECT
            input AS input_text, output AS output_text
          FROM `bqml_tutorial.wiki_auto_style_transfer_valid`
        ),
        STRUCT('text_generation' AS task_type));

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

    +---------------------+---------------------+-------------------------------------------+--------------------------------------------+
    | bleu4_score         | rouge-l_precision   | rouge-l_recall      | rouge-l_f1_score    | evaluation_status                          |
    +---------------------+---------------------+---------------------+---------------------+--------------------------------------------+
    | 0.32571814014498979 | 0.45752569962901607 | 0.557224161991254   | 0.49205029983307907 | {                                          |
    |                     |                     |                     |                     |  "num_successful_rows": 176,               |
    |                     |                     |                     |                     |  "num_total_rows": 176                     |
    |                     |                     |                     |                     | }                                          |
    +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
    

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

יצירת מודל מכוונן

יוצרים מודל מרוחק שדומה מאוד למודל שיצרתם בקטע יצירת מודל, אבל הפעם מציינים את הפסוקית AS SELECT כדי לספק את נתוני האימון לכוונון המודל.

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

    CREATE OR REPLACE MODEL `bqml_tutorial.gemini_tuned`
      REMOTE
        WITH CONNECTION DEFAULT
      OPTIONS (
        endpoint = 'gemini-2.5-pro',
        max_iterations = 500,
        data_split_method = 'no_split')
    AS
    SELECT
      input AS prompt, output AS label
    FROM `bqml_tutorial.wiki_auto_style_transfer_train`;

    השאילתה מסתיימת תוך כמה דקות, ואז המודל gemini_tuned מופיע במערך הנתונים bqml_tutorial בחלונית Explorer. בגלל שהשאילתה משתמשת בהצהרת CREATE MODEL כדי ליצור מודל, אין תוצאות לשאילתה.

בדיקת הביצועים של המודל המכוונן

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

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

    SELECT result, ground_truth
    FROM
      AI.GENERATE_TEXT(
        MODEL `bqml_tutorial.gemini_tuned`,
        (
          SELECT
            input AS prompt, output AS ground_truth
          FROM `bqml_tutorial.wiki_auto_style_transfer_valid`
          LIMIT 10
        ));

    המודל המכוונן יוצר טקסט שדומה הרבה יותר בסגנון שלו לתוכן של אמת הקרקע (ground truth).

הערכת המודל המכוונן

כדי להשוות בין התשובות של המודל המכוונן לבין התשובות האידיאליות, משתמשים בפונקציה ML.EVALUATE:

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

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

    SELECT *
    FROM
      ML.EVALUATE(
        MODEL `bqml_tutorial.gemini_tuned`,
        (
          SELECT
            input AS prompt, output AS label
          FROM `bqml_tutorial.wiki_auto_style_transfer_valid`
        ),
        STRUCT('text_generation' AS task_type));

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

    +---------------------+---------------------+-------------------------------------------+--------------------------------------------+
    | bleu4_score         | rouge-l_precision   | rouge-l_recall      | rouge-l_f1_score    | evaluation_status                          |
    +---------------------+---------------------+---------------------+---------------------+--------------------------------------------+
    | 0.44878025403825506 | 0.57236062510796448 | 0.638794269320597   | 0.59591519400141835 | {                                          |
    |                     |                     |                     |                     |  "num_successful_rows": 176,               |
    |                     |                     |                     |                     |  "num_total_rows": 176                     |
    |                     |                     |                     |                     | }                                          |
    +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
    

המודל המכוונן מציג שיפור ניכר בביצועים, והוא עולה על המודל הבסיסי בכל מדדי ההערכה.

הסרת המשאבים

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

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

    כדי למחוק פרויקט ב- Google Cloud :

    gcloud projects delete PROJECT_ID

מחיקת משאבים ספציפיים

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

  1. נכנסים לדף BigQuery.

    כניסה לדף BigQuery

  2. מוחקים את מערך הנתונים bqml_tutorial. מחיקת מערך הנתונים מוחקת גם את המודלים והטבלאות.

    1. בחלונית Explorer, מרחיבים את הפרויקט ולוחצים על Datasets.

    2. ברשימה Datasets, לוחצים על מערך הנתונים bqml_tutorial.

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

    4. בתיבת הדו-שיח Delete dataset, לוחצים על Delete.

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