relari-ai/continuous-eval

Data-Driven Evaluation for LLM-Powered Applications

continuous-eval – 用於 LLM 驅動應用的資料驅動評估

是什麼continuous-eval 是一個 Python 庫(可在 PyPI 上取得),可讓您衡量生成式 AI 流程中每個元件的效能。它內建一個為常見 LLM 使用情境(檢索、RAG、程式碼生成、使用工具的代理、分類等)準備的現成指標目錄,並提供一個小型框架,可將這些指標連結至資料集並執行自動化測試。

為何重要 – 建立生產級 LLM 應用通常涉及多個階段(檢索器 → 重排序器 → 生成器、分類器等)。傳統評估工具只關注單一端對端分數,難以發現哪個模組表現不佳。continuous-eval 將流程視為模組圖,讓您可為每個節點附加客製化指標,甚至支援機率性或 LLM-as-a-judge 指標。


核心概念

概念 描述
指標庫 即用類別,如 PrecisionRecallF1RankedRetrievalMetricsAnswerCorrectness。涵蓋決定性、語意性與基於 LLM 的評分。
EvaluationRunner 協調在資料集上執行所有指標,聚合結果,並可執行使用者定義的 測試(例如:「召回率必須 ≥ 0.8」)。
流程 / 模組 您將系統的每個步驟宣告為 Module(名稱、輸入、輸出類型),並附加應套用至其輸出的指標。Pipeline 只是模組清單加上來源 Dataset
CustomMetric 用於建立「LLM-as-a-judge」指標的輔助工具。您提供提示(標準 + 評分表)與預期回應的結構,然後像呼叫其他指標一樣呼叫它。
遙測 可選的匿名使用追蹤,可透過設定 CONTINUOUS_EVAL_DO_NOT_TRACK=true 關閉。

典型工作流程(於 README 中圖示)

  1. 安裝 pip install continuous-eval(或克隆程式碼庫並使用 Poetry)。
  2. 準備資料 使用 example_data_downloader 下載範例,或提供自己的 JSON-lines 檔案,其中每筆記錄包含 questionretrieved_contextground_truth_contextanswer 等欄位。
  3. 定義流程 為每個階段建立 Module 物件,並透過 .use(...) 附加適當的指標物件。
  4. 執行評估 實例化 EvaluationRunner(pipeline) 並呼叫 evaluate()。執行器會回傳一個 PipelineResults 物件,可進行聚合與列印。
  5. 執行測試 提供 Test 物件清單(例如 GreaterOrEqualThan)以自動標記回歸問題。
  6. 擴充 若內建指標目錄無法滿足需求,可撰寫 CustomMetric 的子類別或實作新的指標類別。

範例片段(單一指標)

from continuous_eval.metrics.retrieval import PrecisionRecallF1

datum = {
    "question": "What is the capital of France?",
    "retrieved_context": [
        "Paris is the capital of France and its largest city.",
        "Lyon is a major city in France."
    ],
    "ground_truth_context": ["Paris is the capital of France."],
    "answer": "Paris",
    "ground_truths": ["Paris"],
}

metric = PrecisionRecallF1()
print(metric(**datum))   # → {'context_precision': ..., 'context_recall': ..., 'context_f1': ...}

何時使用

  • 需要分別評估檢索品質、重排序效果與生成正確性的 RAG 系統開發者。
  • 希望在發布新模型或提示前進行自動化回歸檢查(測試)的 LLM 產品團隊。
  • 評估多個 LLM 基礎模組並需要可重現、模組化基準套件的研究人員。
  • 希望無需撰寫完整評估框架即可整合自訂 LLM-as-a-judge 指標(如 PII 檢測、事實性)的企業。

快速上手

# 安裝套件
python3 -m pip install continuous-eval

# 克隆程式碼庫以取得範例與文件
git clone https://github.com/relari-ai/continuous-eval.git && cd continuous-eval
poetry install --all-extras   # 可選,拉取所有指標的額外相依性

# 執行內建範例(檢索資料集)
python -m examples.run_retrieval_eval   # (參見 README 中連結的 examples 程式碼庫)

如果您計畫使用基於 LLM 的指標,請確保在 .env 檔案中至少設定一個 LLM API 金鑰。


可擴充性與社群

  • 自訂指標 – 使用 CustomMetric 類別或繼承 BaseMetric 來新增任何評分邏輯,包括呼叫您自己的 LLM 端點。
  • 開源 – Apache 2.0 授權,提供貢獻指南,並有 Discord 社群提供支援。
  • 文件 – 完整的 API 參考與教學位於 https://continuous-eval.docs.relari.ai/

授權

Apache 2.0(參見程式碼庫中的 LICENSE 檔案)。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案