共用方式為


什麼是 Mosaic AI 代理程式評估?

重要

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

本文提供了如何使用 Mosaic AI 代理程式評估的概觀。 代理程式評估可協助開發人員評估代理 AI 應用程式的品質、成本和延遲,包括 RAG 應用程式和鏈結。 代理程式評估是設計來識別質量問題,並判斷這些問題的根本原因。 代理程式評估的功能在 MLOps 生命週期的開發、預備和生產階段均為統一,且所有評估計量和資料都會記錄至 MLflow 執行。

代理程式評估會將進階、研究支援的評估技術整合到與 Lakehouse、MLflow 和其他 Databricks Data Intelligence Platform 元件整合的用戶易記 SDK 和 UI。 這項專屬技術與馬賽克 AI 研究合作開發,提供分析及增強代理程式效能的完整方法。

顯示評估的 LLMOps 圖表

代理 AI 應用程式很複雜,而且牽涉到許多不同的元件。 評估這些應用程式的效能並不像評估傳統 ML 模型的效能那麼簡單。 用來評估品質的定性和定量指標本身都比較複雜。 Agent Evaluation 包括專屬 LLM 評委與代理程式指標,來評估擷取與要求品質,以及延遲與權杖成本等整體性能指標。

如何使用代理程式評估?

下列程式碼示範了如何在先前產生的輸出上呼叫及測試代理程式評估。 其會傳回資料框,其中包含由 LLM 評委計算的評估分數,這些評估分數是 Agent Evaluation 的一部分。

您可將下列內容複製並貼到現有的 Databricks 筆記本中:

%pip install mlflow databricks-agents
dbutils.library.restartPython()

import mlflow
import pandas as pd

examples =  {
    "request": [
      {
      # Recommended `messages` format
        "messages": [{
          "role": "user",
          "content": "Spark is a data analytics framework."
        }],
      },
      # SplitChatMessagesRequest format
      {
        "query": "How do I convert a Spark DataFrame to Pandas?",
        "history": [
          {"role": "user", "content": "What is Spark?"},
          {"role": "assistant", "content": "Spark is a data processing engine."},
        ],
      }
      # Note: Using a primitive string is discouraged. The string will be wrapped in the
      # OpenAI messages format before being passed to your agent.
    ],
    "response": [
        "Spark is a data analytics framework.",
        "This is not possible as Spark is not a panda.",
    ],
    "retrieved_context": [ # Optional, needed for judging groundedness.
        [{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
        [{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
    ],
    "expected_response": [ # Optional, needed for judging correctness.
        "Spark is a data analytics framework.",
        "To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
    ]
}

result = mlflow.evaluate(
    data=pd.DataFrame(examples),    # Your evaluation set
    # model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
    model_type="databricks-agent",  # Enable Mosaic AI Agent Evaluation
)

# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])

或者,您可在 Databricks 工作區中匯入並執行下列筆記本:

Mosaic AI 代理程式評估範例筆記本

取得筆記本

代理程式評估輸入和輸出

下圖顯示代理程式評估所接受的輸入概觀,以及代理程式評估所產生的對應輸出。

agent_eval_data_flows

輸入

如需代理程式評估的預期輸入詳細數據,包括功能變數名稱和數據類型,請參閱 輸入架構。 部分欄位如下:

  • 用戶的查詢 (request): 對代理程式的輸入(使用者的問題或查詢)。 例如,「什麼是RAG?」。
  • 代理程式的回應 (response): 代理程式所產生的回應。 例如,「擷取增強世代為 ...」。
  • 預期的反應(expected_response): (選擇性)一個地面真理(正確)的反應。
  • trace選擇性) 代理程式的 MLflow 追蹤,代理程式評估會從中擷取中繼輸出,例如擷取的內容或工具呼叫。 或者,您可以直接提供這些中繼輸出。

輸出

根據這些輸入,代理程式評估會產生兩種類型的輸出:

  1. 評估結果(每個數據列): 針對提供作為輸入的每個數據列,代理程式評估會產生對應的輸出數據列,其中包含代理程序的品質、成本和延遲的詳細評估。
    • LLM評委檢查品質的不同方面,如正確性或基礎性,提出是/否的分數,併為該分數寫下理由。 如需詳細資訊,請參閱 代理程式評估如何評估品質、成本和延遲。
    • LLM評委的評估結合產生整體分數,指出該數據列“通過”(高品質)或“失敗”(有質量問題)。
      • 針對任何失敗的數據列,會識別根本原因。 每個根本原因都對應到特定 LLM 法官的評估,讓您能夠使用法官的理由來識別潛在的修正程式。
    • 成本與延遲是從 MLflow 追蹤擷取。 如需詳細資訊,請參閱 如何評估成本和延遲。
  2. 計量(匯總分數): 匯總分數,匯總所有輸入數據列上代理程序的品質、成本和延遲。 其中包括計量,例如正確答案的百分比、平均令牌計數、平均延遲等等。 如需詳細資訊,請參閱 如何評估 成本和延遲,以及如何 匯總 MLflow 執行層級的計量,以取得品質、成本和延遲

開發(離線評估)和生產(線上監控)

代理程式評估的設計目的是在您的開發(離線)和生產環境(在線)環境之間保持一致。 此設計可讓您順暢地從開發轉換到生產環境,讓您能夠快速反覆運算、評估、部署及監視高品質的代理應用程式。

開發與生產的主要差異在於,在生產環境中,您沒有基礎真理卷標,而在開發中,您可以選擇性地使用地面事實卷標。 使用基礎事實標籤可讓代理程式評估計算其他品質計量。

開發(離線)

agent_eval_overview_dev

在開發中,您的 requestsexpected_responses 來自 評估集。 評估集是代理程式應該能夠正確處理的代表性輸入集合。 如需評估集的詳細資訊,請參閱 評估集

若要取得 responsetrace,代理程式評估可以呼叫代理程式的程式代碼,為評估集中的每個數據列產生這些輸出。 或者,您可以自行產生這些輸出,並將其傳遞至代理程序評估。 如需詳細資訊,請參閱 如何提供評估回合 的輸入。

生產(線上)

agent_eval_overview_prod

在生產環境中,代理程式評估的所有輸入都來自您的生產記錄。

如果您使用馬賽克 AI 代理程式架構來部署 AI 應用程式,可以將代理程式評估設定為從 代理程式增強的推斷數據表 自動收集這些輸入,並持續更新監視儀錶板。 如需詳細資訊,請參閱 如何在生產流量上監視代理程序的品質。

如果您在 Azure Databricks 外部部署代理程式,您可以將記錄 ETL 傳送到所需的 輸入架構 ,並同樣地設定監視儀錶板。

使用評估集建立品質基準檢驗

若要測量開發中 AI 應用程式的品質(離線),您需要定義評估集,也就是一組代表性問題和選擇性的真話答案。 如果應用程式牽涉到擷取步驟,例如在 RAG 工作流程中,您可選擇性地提供您預期回應所依據的支援文件。

評估執行

如需如何執行評估的詳細資訊,請參閱如何執行評估並檢視結果。 代理程式評估支援提供從鏈結輸出的選項:

  • 您可以在評估執行中執行應用程式。 應用程式會在評估集中產生每個輸入的結果。
  • 您可以提供應用程式先前執行的輸出。

如需何時使用每個選項的詳細資料和說明,請參閱如何為評估執行提供評估輸入

取得 GenAI 應用程式品質的人類意見意見反應

Databricks 檢閱應用程式可讓您輕鬆地從人類檢閱者收集 AI 應用程式質量的意見反應。 如需詳細資訊,請參閱取得代理應用程式品質的意見反應

助理功能的地區可用性

Mosaic AI Agent Evaluation 是指定的服務,會在處理客戶內容時使用地理位置來管理資料落地。 若要深入了解不同地理區域中 Agent Evaluation 的可用性,請參閱 Databricks 指定的服務

定價

如需定價資訊,請參閱 Mosaic AI Agent Evaluation 評估定價

為 LLM 評委提供動力的模型相關資訊

  • LLM 評委可能會使用第三方服務來評估您的 GenAI 應用程式,包括了由 Microsoft 運作的 Azure OpenAI。
  • 針對 Azure OpenAI,Databricks 已選取退出濫用監視,因此不會使用 Azure OpenAI 儲存任何提示或回應。
  • 對於歐盟 (EU) 工作區,LLM 評委會使用歐盟託管的模型。 所有其他區域都會使用裝載於美國的模型。
  • 停用 Azure AI 支援的 AI 輔助功能可防止 LLM 評委呼叫 Azure AI 支援的模型。
  • 傳送給 LLM 評委的資料不會用於任何模型訓練。
  • LLM 評委旨在協助客戶評估其 RAG 應用程式,而 LLM 評委輸出不應用來訓練、改善或微調 LLM。