用途
01-auto-arena 用于在缺少现成测试数据的情况下,自动评估和比较多个 AI 模型或智能体。它面向“模型选型”与“版本对比”类需求:给定一个任务描述,由工具自动生成测试问题、收集各模型回答,并给出可量化排序。
主要能力
整个流程由 OpenJudge AutoArenaPipeline 驱动,包含若干步骤:
- 生成查询:由 LLM 根据任务描述生成多样化的测试查询。
- 收集回答:并发调用所有目标端点获取响应。
- 生成评测标准:LLM 根据任务与样例查询生成 rubrics。
- 成对评估:裁判模型对每一对模型进行比较,并做位置偏置交换(原始顺序与交换顺序各评一次)。
- 分析与排名:计算胜率、胜率矩阵和排名。
- 报告与图表:输出 Markdown 报告、胜率柱状图,可选生成矩阵热力图。
使用方式
安装依赖:
pip install py-openjudge
pip install matplotlib
运行评测的 CLI 用法:
python -m cookbooks.auto_arena --config config.yaml --save
其他 CLI 选项包括:使用预生成查询(--queries_file)、忽略检查点从头运行(--fresh)、仅重跑成对评估(--rerun-judge)等。
也可通过 Python API 调用:
import asyncio
from cookbooks.auto_arena.auto_arena_pipeline import AutoArenaPipeline
async def main():
pipeline = AutoArenaPipeline.from_config("config.yaml")
result = await pipeline.evaluate()
print(f"Best model: {result.best_pipeline}")
asyncio.run(main())
配置使用 YAML 文件,必填项包括任务描述、至少两个目标端点、一个裁判端点;密钥支持 ${ENV_VAR} 环境变量写法。可选配置覆盖查询数量(默认 20)、种子查询、系统提示词、输出目录、报告语言(默认 zh)、生成与评估参数(并发、超时、重试、去重阈值等)以及报告与图表开关。
适用场景
- 在多个模型之间做选型对比,或对比微调前后的版本。
- 评估不同智能体方案在同一任务上的表现。
- 需要自动化、可复现的评测报告与图表时。
限制与前提
- 目标端点与裁判端点需为 OpenAI 兼容接口,且至少需要两个目标端点。
- 需要相应 API 密钥;不同模型前缀对应不同环境变量(如 OPENAI_API_KEY、ANTHROPIC_API_KEY、DASHSCOPE_API_KEY、DEEPSEEK_API_KEY),自定义端点需在配置中填写 api_key 与 base_url。
- 图表生成依赖 matplotlib。
- 工具支持检查点与断点续跑;向配置新增端点会触发增量响应收集。
结果解读
胜率表示模型在成对比较中获胜的比例,每对均以两种顺序评估以消除位置偏置;胜率矩阵中 win_matrix[A][B] 表示模型 A 在所有查询上战胜模型 B 的频率。输出文件包括结果 JSON、可选 Markdown 报告、图表、查询、响应、rubrics、比较详情与检查点。