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 文件)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目