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 指标。
核心概念
| 概念 | 描述 |
|---|---|
| 指标库 | 即用类,如 PrecisionRecallF1、RankedRetrievalMetrics、AnswerCorrectness。涵盖确定性、语义性和基于 LLM 的评分。 |
| EvaluationRunner | 协调在数据集上执行所有指标,聚合结果,并可运行用户定义的 测试(例如:“召回率必须 ≥ 0.8”)。 |
| 流水线 / 模块 | 您将系统的每个步骤声明为 Module(名称、输入、输出类型),并附加应应用于其输出的指标。Pipeline 只是模块列表加上源 Dataset。 |
| CustomMetric | 用于构建“LLM-as-a-judge”指标的辅助工具。您提供一个提示(标准 + 评分表)和预期响应的模式,然后像调用其他指标一样调用它。 |
| 遥测 | 可选的匿名使用跟踪,可通过设置 CONTINUOUS_EVAL_DO_NOT_TRACK=true 禁用。 |
典型工作流程(在 README 中图示)
- 安装
pip install continuous-eval(或克隆仓库并使用 Poetry)。 - 准备数据 使用
example_data_downloader下载示例,或提供自己的 JSON-lines 文件,其中每条记录包含question、retrieved_context、ground_truth_context、answer等字段。 - 定义流水线 为每个阶段创建
Module对象,并通过.use(...)附加适当的指标对象。 - 运行评估 实例化
EvaluationRunner(pipeline)并调用evaluate()。运行器返回一个PipelineResults对象,可进行聚合和打印。 - 运行测试 提供
Test对象列表(例如GreaterOrEqualThan)以自动标记回归问题。 - 扩展 如果内置指标库无法满足需求,可编写
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 文件)。
相关
- 项目
- 项目
- 项目
- 项目
- 项目