代理程式評估輸入架構
重要
這項功能處於公開預覽狀態。
本文說明代理程式評估所需的輸入架構,以評估應用程式的品質、成本和延遲。
- 在開發期間,評估會脫機進行,而評估集是代理程式評估的必要輸入。
- 當應用程式在生產環境中時,代理程式評估的所有輸入都來自推斷數據表或生產記錄。
在線和離線評估的輸入架構都相同。
如需評估集的一般資訊,請參閱 評估集。
評估輸入架構
下表顯示代理程式評估的輸入架構。
資料行 | 資料類型 | 描述 | 傳遞為輸入引數的應用程式 | 先前提供的生成輸出 |
---|---|---|---|---|
request_id | 字串 | 要求的唯一識別碼。 | 選擇性 | 選擇性 |
要求 | 請參閱要求的結構描述。 | 要評估的應用程式輸入、使用者的問題或查詢。 例如,「什麼是RAG?」。 | 必要 | 必要 |
expected_retrieved_context | 陣列 | 物件的陣列,其中包含要求的預期擷取內容 (如果應用程式包含擷取步驟)。 陣列結構描述 | 選擇性 | 選擇性 |
expected_response | 字串 | 輸入要求的基準真相 (正確) 答案。 請參閱 expected_response 方針。 | 選擇性 | 選擇性 |
回覆 | 字串 | 評估應用程式所產生的回覆。 | 由代理程式評估產生 | 選擇性。 如果未提供,則衍生自追蹤。 (response 或 trace 為必要項目。) |
retrieved_context | 陣列 | 正在評估之應用程式中擷取器所產生的擷取結果。 如果應用程式中有多個擷取步驟,這是最後一個步驟的擷取結果 (依時間順序在追蹤中)。 陣列結構描述 | 由代理程式評估產生 | 選擇性。 如果未提供,則衍生自提供的追蹤。 |
追蹤 | MLflow 追蹤的 JSON 字串 | 對應要求上應用程式執行的 MLflow 追蹤。 | 由代理程式評估產生 | 選擇性。 (response 或 trace 為必要項目。) |
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_context
和 retrieved_context
的結構描述,如下表所示:
資料行 | 資料類型 | 描述 | 傳遞為輸入引數的應用程式 | 先前提供的生成輸出 |
---|---|---|---|---|
content | 字串 | 擷取內容的內容。 任何格式的字串,例如 HTML、純文字或 Markdown。 | 選擇性 | 選擇性 |
doc_uri | 字串 | 區塊的來源父文件的唯一識別碼 (URI)。 | 必要 | 必要 |
計算計量
下表中的數據行表示輸入中包含的數據,並 ✓
指出提供該數據時支援計量。
如需這些計量量值的詳細資訊,請參閱 如何向 LLM 評委評估品質。
計算計量 | request |
request 和 expected_response |
request 、expected_response 和 expected_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 |
✓ |