執行 AutoSxS pipeline,進行逐對模型式評估

本頁面說明如何使用 AutoSxS 執行以模型為基礎的逐對評估。AutoSxS 是一項工具,可透過評估管道服務執行。我們將說明如何透過 Agent Platform API、Agent Platform SDK for Python 或 Google Cloud 控制台使用 AutoSxS。

AutoSxS

自動並排比較 (AutoSxS) 是以模型為基礎的成對評估工具,可透過評估 pipeline 服務執行。AutoSxS 可用於評估 Gemini Enterprise Agent Platform Model Registry 中生成式 AI 模型的效能,或預先生成的預測結果,因此可支援 Gemini Enterprise Agent Platform 基礎模型、經過調整的生成式 AI 模型,以及第三方語言模型。AutoSxS 會使用自動評分器,判斷哪個模型對提示詞的回覆較佳。這項服務可隨選使用,評估語言模型的成效與人工評估人員相當。

自動評分工具

概略來說,這張圖表顯示 AutoSxS 如何使用第三個模型 (自動評估工具),比較模型 A 和 B 的預測結果。

AutoSxS 運作方式總覽

模型 A 和 B 收到輸入提示後,各自生成回覆並傳送至自動評分工具。自動評估工具與真人評估員類似,是一種語言模型,可根據原始推論提示判斷模型回覆的品質。使用 AutoSxS 時,自動評分工具會根據推論指令,使用一組條件比較兩個模型的回覆品質。系統會根據這些條件,比較模型 A 和模型 B 的結果,判斷哪個模型表現最佳。自動評分工具會將回覆偏好設定輸出為匯總指標,並輸出每個樣本的偏好設定說明和可信度分數。詳情請參閱判斷表。

支援的模型

只要提供預先生成的預測結果,AutoSxS 就能評估任何模型。AutoSxS 也支援為 Gemini Enterprise Agent Platform Model Registry 中,支援 Gemini Enterprise Agent Platform 批次預測的任何模型自動生成回覆。

如果 Gemini Enterprise Agent Platform Model Registry 不支援您的文字模型,AutoSxS 也接受以 JSONL 格式儲存在 Cloud Storage 或 BigQuery 資料表中的預先生成預測結果。如要瞭解定價,請參閱「文字生成」。

支援的工作與條件

AutoSxS 支援評估摘要和問答工作的模型。每項工作都有預先定義的評估條件,可讓語言評估更客觀,並提升回覆品質。

評分標準會依工作列出。

重點摘要

summarization 工作的輸入詞元上限為 4,096 個。

summarization 的評估條件如下:

條件
1. 遵循指示 模型的回覆在多大程度上展現出對提示指令的理解?
2. 有依據 回覆是否僅包含推論背景資訊和推論指示中的資訊?
3. 完整詳盡 模型在摘要中擷取重要細節的程度為何?
4. 簡短 摘要是否過於冗長?是否含有華麗的詞藻?是否過於簡短?

問答

question_answering 任務的輸入詞元限制為 4,096 個。

question_answering 的評估條件如下:

條件
1. 完整回答問題 答案完整回答問題。
2. 有依據 回覆是否僅包含指令背景資訊和推論指令中的資訊?
3. 關聯性 答案內容是否與問題相關?
4. 完整詳盡 模型在多大程度上擷取了問題中的重要細節?

準備 AutoSxS 的評估資料集

本節將詳細說明您應在 AutoSxS 評估資料集中提供的資料,以及建構資料集的最佳做法。範例應反映模型在實際工作環境中可能遇到的真實輸入內容,並盡可能對比實際模型的行為。

資料集格式

AutoSxS 接受單一評估資料集,且結構定義可彈性調整。資料集可以是 BigQuery 資料表,也可以儲存在 Cloud Storage,格式為 JSON Lines。

評估資料集的每一列代表一個樣本,資料欄則為下列其中一項:

  • ID 欄:用於識別各個不重複的樣本。
  • 資料欄:用於填寫提示詞範本。請參閱「提示參數」
  • 預先生成的預測結果:由相同模型使用相同提示生成的預測結果。使用預先產生的預測結果,可節省時間和資源。
  • 基準真相人類偏好:如果兩個模型都提供預先產生的預測,則用於根據基準真相偏好資料設定 AutoSxS 基準。

以下是評估資料集範例,其中 context 和 question 是資料欄,model_b_response 則包含預先生成的預測。

context question model_b_response
有些人可能認為鋼或鈦是最堅硬的材料,但其實鑽石才是。 最堅硬的材質是什麼? 鑽石是硬度最高的材料,硬度高於鋼或鈦。

如要進一步瞭解如何呼叫 AutoSxS,請參閱「執行模型評估」。如要進一步瞭解權杖長度,請參閱「支援的工作和條件」。如要將資料上傳至 Cloud Storage,請參閱「將評估資料集上傳至 Cloud Storage」。

提示參數

許多語言模型會將提示參數做為輸入內容,而非單一提示字串。舉例來說,chat-bison 接受多個提示參數 (messages、examples、context),這些參數會構成提示的一部分。不過,text-bison 只有一個提示參數,名為 prompt,其中包含整個提示。

我們會說明如何在推論和評估時,靈活指定模型提示詞參數。AutoSxS 可讓您透過範本化提示參數,彈性呼叫具有不同預期輸入內容的語言模型。

推論

如果任何模型沒有預先生成的預測,AutoSxS 會使用 Gemini Enterprise Agent Platform 批次預測生成回覆。必須指定每個模型的提示參數。

在 AutoSxS 中,您可以將評估資料集中的單一資料欄做為提示參數。

{'some_parameter': {'column': 'my_column'}}

或者,您也可以定義範本,並使用評估資料集的資料欄做為變數,指定提示參數:

{'some_parameter': {'template': 'Summarize the following: {{ my_column }}.'}}

提供模型提示詞參數進行推論時,使用者可以使用受保護的 default_instruction 關鍵字做為範本引數,系統會將其替換為指定任務的預設推論指令:

model_prompt_parameters = {
        'prompt': {'template': '{{ default_instruction }}: {{ context }}'},
}

如要生成預測結果,請提供模型提示參數和輸出資料欄。請參閱以下例子:

Gemini

如果是 Gemini 模型,模型提示參數的鍵為 contents (必要) 和 system_instruction (選用),與 Gemini 要求主體結構定義一致。

model_a_prompt_parameters={
    'contents': {
        'column': 'context'
    },
    'system_instruction': {'template': '{{ default_instruction }}'},
},

text-bison

舉例來說,text-bison 使用「prompt」做為輸入內容,並使用「content」做為輸出內容。步驟如下:

  1. 找出待評估模型所需的輸入和輸出內容。
  2. 將輸入內容定義為模型提示詞參數。
  3. 將輸出內容傳遞至回應欄。
model_a_prompt_parameters={
    'prompt': {
        'template': {
            'Answer the following question from the point of view of a college professor: {{ context }}\n{{ question }}'
        },
    },
},
response_column_a='content',  # Column in Model A response.
response_column_b='model_b_response',  # Column in eval dataset.

評估

就像您必須提供推論的提示參數一樣,您也必須提供評估的提示參數。自動評分工具需要下列提示參數:

自動評分工具提示詞參數 使用者是否可設定? 說明 範例
自動評分工具指令 否 校正後的指令,說明自動評分器應依據哪些條件判斷指定回覆。 請選出能回答問題且最符合指示的回覆。
推論指令 是 各候選模型應執行工作的說明。 正確回答此問題:下列哪一個是最硬的材質?
推論背景資訊 是 執行中工作的額外脈絡資訊。 雖然鈦和鑽石都比銅還要硬,但鑽石的硬度評分是 98,而鈦是 36。評分較高表示硬度較高。
回應 否1 一組要評估的回覆,分別來自兩個候選模型。 菱形

1您只能透過預先產生的回覆設定提示參數。

使用參數的程式碼範例:

autorater_prompt_parameters={
    'inference_instruction': {
        'template': 'Answer the following question from the point of view of a college professor: {{ question }}.'
    },
    'inference_context': {
        'column': 'context'
    }
}

無論是否提供相同資訊,模型 A 和 B 的推論指令和情境格式都可以不同。也就是說,自動評估工具會採用獨立但單一的推論指令和背景資訊。

評估資料集範例

本節提供問答工作評估資料集的範例,包括預先產生的模型 B 預測。在這個範例中,AutoSxS 只會對模型 A 執行推論。我們提供 id 欄,用於區分問題和背景資訊相同的樣本。

{
  "id": 1,
  "question": "What is the hardest material?",
  "context": "Some might think that steel is the hardest material, or even titanium. However, diamond is actually the hardest material.",
  "model_b_response": "Diamond is the hardest material. It is harder than steel or titanium."
}
{
  "id": 2,
  "question": "What is the highest mountain in the world?",
  "context": "K2 and Everest are the two tallest mountains, with K2 being just over 28k feet and Everest being 29k feet tall.",
  "model_b_response": "Mount Everest is the tallest mountain, with a height of 29k feet."
}
{
  "id": 3,
  "question": "Who directed The Godfather?",
  "context": "Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The Godfather, and the latter directed it as well.",
  "model_b_response": "Francis Ford Coppola directed The Godfather."
}
{
  "id": 4,
  "question": "Who directed The Godfather?",
  "context": "Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The Godfather, and the latter directed it as well.",
  "model_b_response": "John Smith."
}

最佳做法

定義評估資料集時,請遵循下列最佳做法:

  • 提供範例,說明模型在正式環境中處理的輸入類型。
  • 資料集必須至少包含一個評估範例。建議您提供約 100 個範例,確保匯總指標品質良好。如果提供的樣本超過 400 個,匯總指標品質的提升速度往往會降低。
  • 如需提示詞撰寫指南,請參閱「設計文字提示詞」。
  • 如果您為任一模型使用預先產生的預測,請將預先產生的預測加入評估資料集的資料欄。提供預先產生的預測結果相當實用,因為您可以比較不在 Vertex Model Registry 中的模型輸出內容,並重複使用回覆。

評估模型

您可以使用 REST API、Agent Platform SDK for Python 或Google Cloud 控制台評估模型。

請使用下列語法指定模型路徑:

  • 發布端模型:publishers/PUBLISHER/models/MODEL 範例:publishers/google/models/text-bison
  • 調整後的模型:projects/PROJECT_NUMBER/locations/LOCATION/models/MODEL@VERSION 範例:projects/123456789012/locations/us-central1/models/1234567890123456789

REST

如要建立模型評估工作,請使用 pipelineJobs 方法傳送 POST 要求。

使用任何要求資料之前,請先替換下列項目:

  • PIPELINEJOB_DISPLAYNAME:pipelineJob 的顯示名稱。
  • PROJECT_ID:執行 pipeline 元件的 Google Cloud 專案。
  • LOCATION:執行管道元件的區域。支援 us-central1。
  • OUTPUT_DIR:用於儲存評估輸出的 Cloud Storage URI。
  • EVALUATION_DATASET:BigQuery 資料表,或以逗號分隔的 Cloud Storage 路徑清單,指向含有評估樣本的 JSONL 資料集。
  • TASK:評估工作,可以是 [summarization, question_answering] 的其中一項。
  • ID_COLUMNS:區分不重複評估樣本的資料欄。
  • AUTORATER_PROMPT_PARAMETERS:對應至資料欄或範本的自動評分提示參數。預期參數為:inference_instruction (執行任務的詳細說明) 和 inference_context (執行任務時要參考的內容)。舉例來說,{'inference_context': {'column': 'my_prompt'}} 會使用評估資料集的「my_prompt」資料欄,做為自動評分工具的背景資訊。
  • RESPONSE_COLUMN_A:含有預先定義預測資料的評估用資料集內的資料欄名稱,或含有預測資料的模型 A 輸出內容中的資料欄名稱。如未提供任何值,系統會嘗試推論出正確的模型輸出內容資料欄名稱。
  • RESPONSE_COLUMN_B:含有預先定義預測資料的評估用資料集內的資料欄名稱,或含有預測資料的模型 B 輸出內容中的資料欄名稱。如未提供任何值,系統會嘗試推論出正確的模型輸出內容資料欄名稱。
  • MODEL_A (選用):完整模型資源名稱 (projects/{project}/locations/{location}/models/{model}@{version}) 或發布者模型資源名稱 (publishers/{publisher}/models/{model})。如果指定了模型 A 回覆,則不應提供這個參數。
  • MODEL_B (選用):完整模型資源名稱 (projects/{project}/locations/{location}/models/{model}@{version}) 或發布者模型資源名稱 (publishers/{publisher}/models/{model})。如果指定了模型 B 回覆,則不應提供這個參數。
  • MODEL_A_PROMPT_PARAMETERS (選用):模型 A 的提示詞範本參數,對應至資料欄或範本。如果模型 A 的回覆是預先定義,則不應提供這個參數。範例:{'prompt': {'column': 'my_prompt'}} 會使用評估資料集的 my_prompt 欄,做為名為 prompt 的提示參數。
  • MODEL_B_PROMPT_PARAMETERS (選用):模型 B 的提示詞範本參數,對應至資料欄或範本。如果模型 B 的回覆是預先定義,則不應提供這個參數。範例:{'prompt': {'column': 'my_prompt'}} 會使用評估資料集的 my_prompt 欄,做為名為 prompt 的提示參數。
  • JUDGMENTS_FORMAT (選用):寫入判斷結果的格式。可以是 jsonl (預設值)、json 或 bigquery。
  • BIGQUERY_DESTINATION_PREFIX:如果指定格式為 bigquery,則為要寫入判斷結果的 BigQuery 資料表。

JSON 要求主體

  {
    "displayName": "PIPELINEJOB_DISPLAYNAME",
    "runtimeConfig": {
        "gcsOutputDirectory": "gs://OUTPUT_DIR",
        "parameterValues": {
            "evaluation_dataset": "EVALUATION_DATASET",
            "id_columns": ["ID_COLUMNS"],
            "task": "TASK",
            "autorater_prompt_parameters": AUTORATER_PROMPT_PARAMETERS,
            "response_column_a": "RESPONSE_COLUMN_A",
            "response_column_b": "RESPONSE_COLUMN_B",
            "model_a": "MODEL_A",
            "model_a_prompt_parameters": MODEL_A_PROMPT_PARAMETERS,
            "model_b": "MODEL_B",
            "model_b_prompt_parameters": MODEL_B_PROMPT_PARAMETERS,
            "judgments_format": "JUDGMENTS_FORMAT",
            "bigquery_destination_prefix":BIGQUERY_DESTINATION_PREFIX,
        },
    },
    "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default"
  }

使用 curl 傳送要求。

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs"

回應

  "state": "PIPELINE_STATE_PENDING",
  "labels": {
    "vertex-ai-pipelines-run-billing-id": "1234567890123456789"
  },
  "runtimeConfig": {
    "gcsOutputDirectory": "gs://my-evaluation-bucket/output",
    "parameterValues": {
      "evaluation_dataset": "gs://my-evaluation-bucket/output/data.json",
      "id_columns": [
        "context"
      ],
      "task": "question_answering",
      "autorater_prompt_parameters": {
        "inference_instruction": {
          "template": "Answer the following question: {{ question }} }."
        },
        "inference_context": {
          "column": "context"
        }
      },
      "response_column_a": "",
      "response_column_b": "response_b",
      "model_a": "publishers/google/models/text-bison@002",
      "model_a_prompt_parameters": {
        "prompt": {
          "template": "Answer the following question from the point of view of a college professor: {{ question }}\n{{ context }} }"
        }
      },
      "model_b": "",
      "model_b_prompt_parameters": {}
    }
  },
  "serviceAccount": "123456789012-compute@developer.gserviceaccount.com",
  "templateUri": "https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default",
  "templateMetadata": {
    "version": "sha256:7366b784205551ed28f2c076e841c0dbeec4111b6df16743fc5605daa2da8f8a"
  }
}

Agent Platform SDK for Python

如要瞭解如何安裝或更新 Agent Platform SDK for Python,請參閱「安裝 Agent Platform SDK for Python」。如要進一步瞭解 Python API,請參閱「Agent Platform SDK for Python API」。

如要進一步瞭解管道參數,請參閱 Google Cloud Pipeline Components 參考文件。

使用任何要求資料之前,請先替換下列項目:

  • PIPELINEJOB_DISPLAYNAME:pipelineJob 的顯示名稱。
  • PROJECT_ID:執行 pipeline 元件的 Google Cloud 專案。
  • LOCATION:執行管道元件的區域。支援 us-central1。
  • OUTPUT_DIR:用於儲存評估輸出的 Cloud Storage URI。
  • EVALUATION_DATASET:BigQuery 資料表,或以逗號分隔的 Cloud Storage 路徑清單,指向含有評估樣本的 JSONL 資料集。
  • TASK:評估工作,可以是 [summarization, question_answering] 的其中一項。
  • ID_COLUMNS:區分不重複評估樣本的資料欄。
  • AUTORATER_PROMPT_PARAMETERS:對應至資料欄或範本的自動評分提示參數。預期參數為:inference_instruction (執行任務的詳細說明) 和 inference_context (執行任務時要參考的內容)。舉例來說,{'inference_context': {'column': 'my_prompt'}} 會使用評估資料集的「my_prompt」資料欄,做為自動評分工具的背景資訊。
  • RESPONSE_COLUMN_A:含有預先定義預測資料的評估用資料集內的資料欄名稱,或含有預測資料的模型 A 輸出內容中的資料欄名稱。如未提供任何值,系統會嘗試推論出正確的模型輸出內容資料欄名稱。
  • RESPONSE_COLUMN_B:含有預先定義預測資料的評估用資料集內的資料欄名稱,或含有預測資料的模型 B 輸出內容中的資料欄名稱。如未提供任何值,系統會嘗試推論出正確的模型輸出內容資料欄名稱。
  • MODEL_A (選用):完整模型資源名稱 (projects/{project}/locations/{location}/models/{model}@{version}) 或發布者模型資源名稱 (publishers/{publisher}/models/{model})。如果已指定模型 A 回覆,則不應提供這個參數。
  • MODEL_B (選用):完整模型資源名稱 (projects/{project}/locations/{location}/models/{model}@{version}) 或發布者模型資源名稱 (publishers/{publisher}/models/{model})。如果指定了模型 B 回覆,則不應提供這個參數。
  • MODEL_A_PROMPT_PARAMETERS (選用):模型 A 的提示詞範本參數,對應至資料欄或範本。如果模型 A 的回覆是預先定義,則不應提供這個參數。範例:{'prompt': {'column': 'my_prompt'}} 會使用評估資料集的 my_prompt 欄,做為名為 prompt 的提示參數。
  • MODEL_B_PROMPT_PARAMETERS (選用):模型 B 的提示詞範本參數,對應至資料欄或範本。如果模型 B 的回覆是預先定義,則不應提供這個參數。範例:{'prompt': {'column': 'my_prompt'}} 會使用評估資料集的 my_prompt 欄,做為名為 prompt 的提示參數。
  • JUDGMENTS_FORMAT (選用):寫入判斷結果的格式。可以是 jsonl (預設值)、json 或 bigquery。
  • BIGQUERY_DESTINATION_PREFIX:如果指定格式為 bigquery,則為要寫入判斷結果的 BigQuery 資料表。
import os
from google.cloud import aiplatform
parameters = {
    'evaluation_dataset': 'EVALUATION_DATASET',
    'id_columns': ['ID_COLUMNS'],
    'task': 'TASK',
    'autorater_prompt_parameters': AUTORATER_PROMPT_PARAMETERS,
    'response_column_a': 'RESPONSE_COLUMN_A',
    'response_column_b': 'RESPONSE_COLUMN_B',
    'model_a': 'MODEL_A',
    'model_a_prompt_parameters': MODEL_A_PROMPT_PARAMETERS,
    'model_b': 'MODEL_B',
    'model_b_prompt_parameters': MODEL_B_PROMPT_PARAMETERS,
    'judgments_format': 'JUDGMENTS_FORMAT',
    'bigquery_destination_prefix':
    BIGQUERY_DESTINATION_PREFIX,
}
aiplatform.init(project='PROJECT_ID', location='LOCATION', staging_bucket='gs://OUTPUT_DIR')
aiplatform.PipelineJob(
    display_name='PIPELINEJOB_DISPLAYNAME',
    pipeline_root=os.path.join('gs://OUTPUT_DIR', 'PIPELINEJOB_DISPLAYNAME'),
    template_path=(
      'https://us-kfp.pkg.dev/ml-pipeline/google-cloud-registry/autosxs-template/default'),
    parameter_values=parameters,
).run()

控制台

如要使用 Google Cloud 控制台建立成對模型評估工作,請按照下列步驟操作:

  1. 從 Google 基礎模型開始,或使用 Gemini Enterprise Agent Platform Model Registry 中現有的模型:

    • 如要評估 Google 基礎模型,請按照下列步驟操作:

      1. 前往 Gemini Enterprise Agent Platform 的 Model Garden,選取支援成對評估的模型,例如 text-bison。

        前往 Model Garden

      2. 按一下「Evaluate」(評估)。

      3. 在隨即顯示的選單中,按一下「Select」(選取),選取模型版本。

      4. 如果您尚未儲存模型副本,系統可能會在「Save model」(儲存模型) 窗格中,要求您將模型副本儲存至 Gemini Enterprise Agent Platform Model Registry。輸入模型名稱,然後按一下「儲存」。

      5. 「Create Evaluation」(建立評估作業) 頁面隨即顯示。在「Evaluate Method」(評估方法) 步驟中,選取「Evaluate this model against another model」(將此模型與另一個模型並列評估)。

      6. 按一下「繼續」。

    • 如要評估 Gemini Enterprise Agent Platform Model Registry 中的現有模型,請按照下列步驟操作:

      1. 前往 Gemini Enterprise Agent Platform 的「Model Registry」頁面:

        前往 Gemini Enterprise Agent Platform Model Registry

      2. 按一下要評估的模型名稱。請確認模型類型支援成對評估。例如:text-bison。

      3. 在「評估」分頁中,點選「SxS」。

      4. 按一下「Create SxS Evaluation」(建立並排評估)。

  2. 在評估作業建立頁面的每個步驟中,輸入必要資訊,然後按一下「Continue」(繼續):

    1. 在「Evaluation dataset」(評估資料集) 步驟中,選取評估目標和要與所選模型比較的模型。選取評估資料集,然後輸入ID 欄 (回應欄)。

    2. 在「Model settings」(模型設定) 步驟中,指定要使用資料集內現有的模型回覆,還是要透過 Gemini Enterprise Agent Platform 批次預測功能生成回覆。指定兩個模型的回覆資料欄。如果選取 Gemini Enterprise Agent Platform 批次預測選項,可以指定推論模型提示參數。

    3. 在「Autorater settings」(自動評估工具設定) 步驟中,輸入自動評估工具提示參數和評估結果的輸出位置。

  3. 按一下「Start Evaluation」(開始評估)。

查看評估結果

您可以檢查 AutoSxS 管道產生的下列構件,在 Agent Platform Pipelines 中查看評估結果:

判斷結果

AutoSxS 會輸出判斷結果 (樣本層級指標),協助使用者瞭解樣本層級的模型效能。判斷結果包含下列資訊:

  • 推論提示
  • 模型回覆
  • 自動評分工具決策
  • 評分說明
  • 可信度分數

判斷結果可以 JSONL 格式寫入 Cloud Storage,或寫入具有下列資料欄的 BigQuery 資料表:

欄 說明
ID 欄 這類資料欄可以區分出不重複的評估範例。
inference_instruction 用於生成模型回覆的指令。
inference_context 用於生成模型回覆的背景資訊。
response_a 模型 A 根據推論指令和情境提供的回覆。
response_b 模型 B 根據推論指令和情境提供的回覆。
choice 回覆較佳的模型。可能的值為 Model A、Model B 或 Error。Error:發生錯誤,導致自動評分工具無法判斷模型 A 或模型 B 的回覆較佳。
confidence 分數介於 0 到 1 之間,代表自動標註工具對其選擇的信心程度。
explanation 自動評分工具選擇該選項的原因。

匯總指標

AutoSxS 會使用判斷表計算匯總 (勝率) 指標。如果未提供人類偏好資料,系統會產生下列匯總指標:

指標 說明
AutoRater 模型 A 勝出率 自動評分工具判定模型 A 回覆較佳的次數百分比。
AutoRater 模型 B 勝出率 自動評分工具判定模型 B 回覆較佳的次數百分比。

如要進一步瞭解勝率,請查看逐列結果和自動評估工具的說明,判斷結果和說明是否符合預期。

人類偏好對齊指標

如果提供人類偏好資料,AutoSxS 會輸出下列指標:

指標 說明
AutoRater 模型 A 勝出率 自動評分工具判定模型 A 回覆較佳的次數百分比。
AutoRater 模型 B 勝出率 自動評分工具判定模型 B 回覆較佳的次數百分比。
人類偏好模型 A 勝出率 資料標註人員判定模型 A 回應較佳的時間百分比。
人類偏好模型 B 勝出率 資料標註人員判定模型 B 回應較佳的時間百分比。
TP 自動標註工具與資料標註人員都判定模型 A 回應較佳的範例數。
FP 自動標註工具判定模型 A 回應較佳,而資料標註人員認為模型 B 回應較佳的範例數。
TN 自動標註工具與資料標註人員都判定模型 B 回應較佳的範例數。
FN 自動標註工具判定模型 B 回應較佳,而資料標註人員認為模型 A 回應較佳的範例數。
準確率 自動標註工具與資料標註人員判定一致的時間百分比。
精確度 在自動標註工具判定模型 A 回應較佳的所有案例當中,自動標註工具與資料標註人員都判定模型 A 回應較佳的時間百分比。
喚回度 在資料標註人員判定模型 A 回應較佳的所有案例當中,自動標註工具與資料標註人員都判定模型 A 回應較佳的時間百分比。
F1 精確度與喚回度的調和平均數。
科恩卡帕係數 這項指標可以測量自動標註工具與資料標註人員判定一致的程度,會將隨機出現一致情形的可能性納入考量。科恩卡帕係數的建議解讀方式如下:
-1.0 - 0.0一致程度小於或等於隨機出現一致情形的機率
0.0 - 0.2還算同意
0.2 - 0.4公平協議
0.4 - 0.6還算同意
0.6 - 0.8高度一致
0.8 - 1.0近乎完全一致
1.0完全一致

AutoSxS 用途

您可以透過三種用途情境,瞭解如何使用 AutoSxS。

比較模型

將調整後的第一方 (1p) 模型與參考 1p 模型進行比較。

您可以指定同時在兩個模型上執行推論。

圖 2:這兩個推論模型

這個程式碼範例會依據 Vertex Model Registry 中的參考模型,評估同一個 Registry 中的調整後模型。

# Evaluation dataset schema:
#   my_question: str
#   my_context: str
parameters = {
    'evaluation_dataset': DATASET,
    'id_columns': ['my_context'],
    'task': 'question_answering',
    'autorater_prompt_parameters': {
      'inference_instruction': {'column': 'my_question'},
      'inference_context': {'column': 'my_context'},
  },
    'model_a': 'publishers/google/models/text-bison@002',
    'model_a_prompt_parameters': {QUESTION: {'template': '{{my_question}}\nCONTEXT: {{my_context}}'}},
  'response_column_a': 'content',
    'model_b': 'projects/abc/locations/abc/models/tuned_bison',
    'model_b_prompt_parameters': {'prompt': {'template': '{{my_context}}\n{{my_question}}'}},
  'response_column_b': 'content',
}

比較預測結果

依據參考第三方模型,評估調整過的第三方模型。

您可以直接提供模型回覆,略過推論。

圖 3. 一次只會執行一個推論模型

這個程式碼範例會依據參考第三方模型,評估經過調整的第三方模型。

# Evaluation dataset schema:
#   my_question: str
#   my_context: str
#   response_b: str

parameters = {
    'evaluation_dataset': DATASET,
    'id_columns': ['my_context'],
    'task': 'question_answering',
    'autorater_prompt_parameters':
        'inference_instruction': {'column': 'my_question'},
        'inference_context': {'column': 'my_context'},
    },
    'response_column_a': 'content',
    'response_column_b': 'response_b',
}

檢查對齊

所有支援的工作都已使用人工評估者資料進行基準測試,確保自動評估者的回覆符合人類偏好。如要根據用途設定 AutoSxS 基準,請直接將人類偏好資料提供給 AutoSxS,系統會輸出經過校正的匯總統計資料。

如要根據人類偏好資料集檢查校正情形,您可以將這兩項輸出內容 (預測結果) 指定給自動評估工具。您也可以提供推論結果。

圖 4. 提供給自動評分工具的兩個模型輸出內容

這個程式碼範例會驗證自動評分工具的結果和說明是否符合預期。

# Evaluation dataset schema:
#  my_question: str
#  my_context: str
#   response_a: str
#   response_b: str
#   actual: str
parameters = {
    'evaluation_dataset': DATASET,
    'id_columns': ['my_context'],
    'task': 'question_answering',
    'autorater_prompt_parameters': {
      'inference_instruction': {'column': 'my_question'},
      'inference_context': {'column': 'my_context'},
  },
  'response_column_a': 'response_a',
  'response_column_b': 'response_b',
  'human_preference_column': 'actual',
}

後續步驟