simple-llm-eval
cyberark/simple-llm-eval加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

你训练了一个新模型,或者换了最新的 GPT-4 替代品,怎么知道它的回答质量变好了还是变差了?传统的做法是找一批人工标注员,给每次回答打分——成本高、速度慢、主观性强。于是业界开始探索一条新路:让一个 LLM 来当裁判,自动评估另一个 LLM 的输出质量。这就是"LLM as a Judge"方法。
simpleval(项目名 simple-llm-eval)正是这一方法的工程化实现。它由网络安全公司 CyberArk 开源,提供了一套完整的 LLM 评估框架,支持多种主流 LLM 提供商,让开发者能够以极低的接入成本,对 LLM 应用进行系统化的质量评估。
CyberArk 是知名的网络安全公司,其核心产品是特权访问管理(Privileged Access Management)。在将 LLM 集成到安全产品的过程中,CyberArk 团队需要大量测试不同 LLM 在安全问答、威胁检测等场景下的表现,于是自研了这套评估工具,并在 2024 年初开源至 GitHub。
作者 Roy Ben Yosef 在 PyPI 发布时将包名定为 simpleval(Simple Validation),强调"简单"二字——即插即用,不需要复杂的评估基础设施,即可对 LLM 应用打分。
simpleval 的核心逻辑围绕三个角色展开:
评估流程如下:用户准备一组测试用例(每个用例包含输入和标准答案/参考答案),框架自动让被测 LLM 逐条执行,再由裁判 LLM 对每条输出进行评分,最终汇总生成报告。
simpleval 通过 LiteLLM 库统一接入多家 LLM 提供商,官方明确支持:
| 提供商 | 接入方式 |
|---|---|
| OpenAI | API Key |
| Gemini API / Vertex AI | |
| AWS Bedrock | Claude / Titan 等 |
| Anthropic | Claude 系列 |
| Azure OpenAI | 企业部署 |
| 其他 | LiteLLM 支持的全部模型 |
这意味着只需配置一次 Judge 认证信息,即可跨多个模型跑同一套测试集进行横向对比。
评估完成后,simpleval 提供三类 HTML 可视化报告:
这三份报告由 reports-frontend 目录中的 Node.js + HTML/JS 实现,无需额外安装,评估完成后直接在本地浏览器打开即可查看。
simpleval 的代码结构清晰,主包位于 simpleval/ 目录:
simpleval/
├── evaluation/ # 核心评估引擎
│ ├── judges/ # 裁判模型抽象层
│ │ ├── base_judge.py # 裁判基类,定义评分接口
│ │ ├── judge_provider.py # 裁判实例化工厂
│ │ └── models/ # 具体裁判实现
│ ├── metrics/ # 评分指标定义与解析
│ ├── schemas/ # Pydantic 数据模型
│ └── llm_task_runner.py # LLM 任务执行器
├── parallel_runner/ # 并行执行引擎
├── commands/ # CLI 命令(init/judge/list/report 等)
├── testcases/ # 测试用例管理
├── eval_sets/ # 预设评估集
└── main.py # 入口点(simpleval CLI)
关键设计亮点:
插件式裁判:通过 JudgeProvider 工厂类动态加载裁判模型,新增加警模型只需在 models/ 下实现 BaseJudge 接口即可,无需修改核心逻辑。
并行执行:内置 parallel_runner 支持多任务并行,通过 tenacity 库实现重试机制(stop_after_attempt + wait_fixed),网络抖动时自动重试,提高评估稳定性。
CLI 优先:所有功能通过 simpleval 命令行暴露(pip install simpleval 后可用),同时提供 Judge Explorer、Metrics Explorer 等交互式子命令,引导用户完成配置。
依赖精简:核心依赖仅 litellm(统一 API)、pydantic(数据校验)、click(CLI 框架)、tenacity(重试),不引入 LangChain 等重型框架。
simpleval 要求 Python >= 3.11,安装方式:
pip install simpleval
# 或
uv pip install simpleval
安装后运行 simpleval init 初始化配置,然后:
# 查看可用裁判模型
simpleval list-judges
# 运行评估
simpleval run --eval-set my-eval-set
优势在于无需 Docker、无需 GPU,直接通过 API 调用 LLM,对于有 OpenAI/Anthropic 等 API 的团队来说几乎是零门槛上手。局限性在于完全依赖外部 LLM API,网络质量影响评估稳定性,且评估成本与调用量成正比。
裁判偏见问题:用 LLM 评 LLM 天然存在"近亲繁殖"偏见——GPT-4 裁判倾向于给 OpenAI 模型更高分,Claude 裁判则偏好 Anthropic 风格,跨厂商评估时结果需谨慎解读。
评估集质量依赖:框架本身不提供标准评估集,用户需自行准备测试用例,低质量测试集输出的分数毫无意义。
无容器化:项目未提供 Dockerfile 或 docker-compose,对于需要隔离运行环境的团队(尤其是安全敏感场景)不够友好,需手动配置虚拟环境。
规模限制:目前版本对超长上下文和超多并发任务的支持较为基础,大规模评估任务可能需要自行优化并发策略。
"LLM as a Judge"是 2024 年以来 LLM 评估领域最活跃的研究方向之一,simpleval 的价值在于将这个方法工程化、产品化。CyberArk 的安全背景赋予了项目独特的视角——在安全敏感场景下,LLM 的输出质量不仅关乎体验,更关乎安全风险,而标准化评估是降低风险的第一步。
随着 LLM 应用在企业级场景的渗透,LLM 评估将从"可选项"变成"必选项",simpleval 填补了开源生态中"轻量级、多模型支持、有可视化报告"这一空白位,是值得关注的工具。