代理程式評估輸入架構

重要

這項功能處於公開預覽狀態

本文說明代理程式評估所需的輸入架構,以評估應用程式的品質、成本和延遲。

  • 在開發期間,評估會脫機進行,而評估集是代理程式評估的必要輸入。
  • 當應用程式在生產環境中時,代理程式評估的所有輸入都來自推斷數據表或生產記錄。

在線和離線評估的輸入架構都相同。

如需評估集的一般資訊,請參閱 評估集

評估輸入架構

下表顯示代理程式評估的輸入架構。

資料行 資料類型 描述 傳遞為輸入引數的應用程式 先前提供的生成輸出
request_id 字串 要求的唯一識別碼。 選擇性 選擇性
要求 請參閱要求的結構描述 要評估的應用程式輸入、使用者的問題或查詢。 例如,「什麼是RAG?」。 必要 必要
expected_retrieved_context 陣列 物件的陣列,其中包含要求的預期擷取內容 (如果應用程式包含擷取步驟)。 陣列結構描述 選擇性 選擇性
expected_response 字串 輸入要求的基準真相 (正確) 答案。 請參閱 expected_response 方針 選擇性 選擇性
回覆 字串 評估應用程式所產生的回覆。 由代理程式評估產生 選擇性。 如果未提供,則衍生自追蹤。 (responsetrace為必要項目。)
retrieved_context 陣列 正在評估之應用程式中擷取器所產生的擷取結果。 如果應用程式中有多個擷取步驟,這是最後一個步驟的擷取結果 (依時間順序在追蹤中)。 陣列結構描述 由代理程式評估產生 選擇性。 如果未提供,則衍生自提供的追蹤。
追蹤 MLflow 追蹤的 JSON 字串 對應要求上應用程式執行的 MLflow 追蹤。 由代理程式評估產生 選擇性。 (responsetrace為必要項目。)

expected_response 方針

基準真相 expected_response 應該包含正確回覆所需的最少事實集。 如果您複製其他來源的回覆,請務必編輯回覆,刪除任何非必要的文字,答案才會被視為正確。

只包含必要資訊,並排除答案中並非嚴格要求的資訊,可讓代理程式評估在輸出品質上提供更強固的訊號。

要求的結構描述

請求結構描述可以是下列其中之一:

  • 純字串。 此格式僅支援單一回合交談。
  • OpenAI 聊天完成結構描述後面的 messages 欄位,可以編碼完整的交談。
  • 最近要求的 query 字串欄位,以及編碼先前交談回合的選擇性history 欄位。

針對多回合聊天應用程式,請使用上述第二或第三個選項。

下列範例顯示評估資料集相同 request 資料行中的所有三個選項:

import pandas as pd

data = {
  "request": [

      # Plain string
      "What is the difference between reduceByKey and groupByKey in Spark?",

      # Using the `messages` field for a single- or multi-turn chat
      {
          "messages": [
              {
                  "role": "user",
                  "content": "How can you minimize data shuffling in Spark?"
              }
          ]
      },

      # Using the query and history fields for a single- or multi-turn chat
      {
          "query": "Explain broadcast variables in Spark. How do they enhance performance?",
          "history": [
              {
                  "role": "user",
                  "content": "What are broadcast variables?"
              },
              {
                  "role": "assistant",
                  "content": "Broadcast variables allow the programmer to keep a read-only variable cached on each machine."
              }
          ]
      }
  ],

  "expected_response": [
    "expected response for first question",
    "expected response for second question",
    "expected response for third question"
  ]
}

eval_dataset = pd.DataFrame(data)

評估輸入中的陣列架構

陣列 expected_retrieved_contextretrieved_context 的結構描述,如下表所示:

資料行 資料類型 描述 傳遞為輸入引數的應用程式 先前提供的生成輸出
content 字串 擷取內容的內容。 任何格式的字串,例如 HTML、純文字或 Markdown。 選擇性 選擇性
doc_uri 字串 區塊的來源父文件的唯一識別碼 (URI)。 必要 必要

計算計量

下表中的數據行表示輸入中包含的數據,並 指出提供該數據時支援計量。

如需這些計量量值的詳細資訊,請參閱 如何向 LLM 評委評估品質。

計算計量 request requestexpected_response requestexpected_responseexpected_retrieved_context
response/llm_judged/relevance_to_query/rating
response/llm_judged/safety/rating
response/llm_judged/groundedness/rating
retrieval/llm_judged/chunk_relevance_precision
agent/total_token_count
agent/input_token_count
agent/output_token_count
response/llm_judged/correctness/rating
retrieval/llm_judged/context_sufficiency/rating
retrieval/ground_truth/document_recall