共用方式為


代理程式評估輸入架構

重要

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

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

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

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

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

評估輸入架構

下表顯示代理程式評估的輸入架構。 數據表的最後兩個數據行會參考如何提供呼叫的 mlflow.evaluate() 輸入。 如需詳細資訊,請參閱 如何提供評估回合 的輸入。

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

expected_facts 方針

欄位 expected_facts 會指定預期出現在特定輸入要求的任何正確模型回應中的事實清單。 也就是說,如果模型回應包含這些事實,則不論回應的片語方式為何,都會被視為正確。

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

您最多可以指定和 的expected_factsexpected_response其中一個 。 如果您同時指定兩者,則會報告錯誤。 Databricks 建議使用 expected_facts,因為它是更具體的指導方針,可協助代理程式評估更有效率地判斷產生的響應品質。

expected_response 方針

欄位 expected_response 包含完整格式的回應,代表正確模型響應的參考。 也就是說,如果模型回應符合 中 expected_response的信息內容,則視為正確。 相反地, expected_facts 只會列出出現在正確回應中所需的事實,而且不是完整格式的參考回應。

類似於 expected_factsexpected_response 應該只包含正確回應所需的最小事實集。 只包含必要資訊,並排除答案中並非嚴格要求的資訊,可讓代理程式評估在輸出品質上提供更強固的訊號。

您最多可以指定和 的expected_factsexpected_response其中一個 。 如果您同時指定兩者,則會報告錯誤。 Databricks 建議使用 expected_facts,因為它是更具體的指導方針,可協助代理程式評估更有效率地判斷產生的響應品質。

要求的結構描述

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

  • OpenAI 聊天完成架構。 OpenAI 聊天完成架構必須有物件的陣列做為 messages 參數。 欄位 messages 可以編碼完整的交談。
  • 如果代理程式支援 OpenAI 聊天完成架構,您可以傳遞純字串。 此格式僅支援單一回合交談。 一般字串會在傳遞至代理程式之前,使用轉換成 messages 格式 "role": "user" 。 例如,在傳遞至代理程式之前,會先將純字串 "What is MLflow?" 轉換成 {"messages": [{"role": "user", "content": "What is MLflow?"}]}
  • SplitChatMessagesRequest. 最近要求的 query 字串欄位,以及編碼先前交談回合的選擇性history 欄位。

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

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

import pandas as pd

data = {
  "request": [

      # Plain string. Plain strings are transformed to the `messages` format before being passed to your agent.
      "What is the difference between reduceByKey and groupByKey in Spark?",

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

      # SplitChatMessagesRequest. Use 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)。 必要 必要

計算計量

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

如需這些計量量值的詳細資訊,請參閱 代理程式評估如何評估品質、成本和延遲。

計算計量 request requestexpected_response requestexpected_responseexpected_retrieved_context requestexpected_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