~ / llm-debug-evaluation / llm-evaluation 大模型评测
Module 02 · Evaluation

大模型 评测

用 Promptfoo 做多模型/多轮对比与红队,用 RAGAS/DeepEval 评测 RAG 与生成质量,用 lm-eval-harness 跑通用能力基准。下方「评测数据集」按基础能力与价值观/安全两大维度系统梳理,含 HuggingFace 路径、名称与用法。

▦ 工具总览

工具擅长评测报告样例
Promptfoo多模型同 prompt 对比、多轮对话、红队、断言评分✅ 真实 HTML 报告(见下)
RAGASRAG 检索+生成分环节指标✅ 真实打分(faithfulness 0.75…)
DeepEval通用/安全/多模态 50+ 指标,pytest 风格✅ dashboard
lm-eval-harness通用能力基准(MMLU/GSM8K…)一键评测✅ 基准 leaderboard

01 Promptfoo

最流行的 prompt/模型评测与红队框架,支持多模型对比、多轮对话、断言评分与回归测试。

Promptfoo prompt · redteam

文档 promptfoo.dev/docsnpm i -g promptfooNode ≥20.20 / ≥22.22
官方仓库 ↗

安装(来自项目记忆本机实测)

npm install -g promptfoo            # 当前 0.121.x
# 若全局命令不在 PATH,建立软链:
ln -sf ~/.workbuddy/binaries/node/versions/22.22.2/bin/promptfoo /usr/local/bin/promptfoo
# 或每次用 npx:
npx promptfoo@latest
# 校验配置(不发请求):
promptfoo validate --config /abs/path/to/config.yaml

多模型同 prompt 对比(YAML 片段)

# ⚠️ 变量语法是 {{ env.X }} 不是 ${X};env 名须与配置 ${...} 完全一致
# 国产模型走 OpenAI 兼容:id: openai:chat:<模型> + apiBaseUrl + apiKey
prompts:
  - "中国的首都是哪里?"          # 示例问题(正确答案:北京)
providers:
  - openai:chat:gpt-4o
  - openai:chat:deepseek-chat:
      config:
        apiBaseUrl: https://api.deepseek.com/v1
        apiKey: "{{ env.DEEPSEEK_API_KEY }}"
  - openai:chat:glm-4:
      config:
        apiBaseUrl: https://open.bigmodel.cn/api/paas/v4
        apiKey: "{{ env.ZHIPU_API_KEY }}"   # 注意用 ZHIPU_ 而非 GLM_
tests:
  - vars: {}
    assert:
      - type: contains
        value: "北京"              # 断言正确答案

免费裁判模型(OpenRouter,本机实测可用)

# 在 config 里把 judge 指向 OpenRouter 免费模型
defaultTest:
  options:
    provider:
      id: openai:chat:nvidia/nemotron-3-super-120b-a12b:free
      config:
        apiBaseUrl: https://openrouter.ai/api/v1
        apiKey: "{{ env.OPENROUTER_API_KEY }}"
# 查当前免费模型:
curl https://openrouter.ai/api/v1/models | jq '.data[] | select(.pricing.prompt==0 and .pricing.completion==0)'

常用断言:equals / contains / llm-rubric / factuality / conversation-relevance / select-best。多轮用 _conversation + | dump 过滤器(JSON 转义,否则报 Bad control character);多轮强制 concurrency=1 + config.delay 规避 429。

真实评测报告样例(来源项目记忆,已嵌入)

以下为来源目录中 Promptfoo 真实产出的报告(多模型对比 / 多轮对话),可直接打开查看打分与断言结果:

真实素材 · Promptfoo 多模型对比报告(multi-model-real.html)
多模型对比multi-model-demo.html
多模型真实multi-model-real.html
!
来源目录中的 .env 含真实 API Key,已刻意排除,未进入本站点。

02 RAGAS

RAG 专用评测,把"检索"与"生成"拆开打分,是幻觉治理的第一道探针。

RAGAS RAG eval

仓库 explodinggradients/ragas
官方仓库 ↗

安装(本机踩坑结论)

# 用 uv 的 Python 3.11 建 venv;锁 ragas<0.2(0.2 API 改为类式 Faithfulness())
unset PIP_USER
pip install --no-user "ragas<0.2" datasets
# 注:ragas 0.1.x 并不依赖 scikit-network;系统 Python 3.14 编译失败
#     纯属被 datasets 误带,换 3.11 即解。

四件套指标与诊断

指标衡量低分说明
faithfulness答案 ↔ 检索文档(防幻觉最直接)答案编了文档没有的内容
answer_relevancy答案 ↔ 问题答非所问
context_recall文档 ↔ 标准答案(需 ground_truth)检索漏了关键信息
context_precision检索文档 ↔ 问题检索噪声大

本机实测(Ollama 离线裁判,真实结果)

# 离线跑裁判的 4 个要点(否则指标全 NaN):
# ① base_url 用 127.0.0.1(Ollama 只监听 IPv4,localhost→::1 连不上)
# ② 先同步 invoke("ping") 预热再异步评测
# ③ keep_alive:-1 常驻 + RunConfig(timeout=300, max_workers=1, max_retries=3)
# ④ 运行前 unset HTTP_PROXY HTTPS_PROXY(本机死代理)
{'faithfulness': 0.7500, 'answer_relevancy': 0.8073,
 'context_precision': 1.0000, 'context_recall': 1.0000}

03 DeepEval

pytest 风格的 LLM 评测框架,指标最全(50+,含安全/多模态),生产常组合使用。

DeepEval pytest · 50+ metrics

仓库 confident-ai/deepeval
官方仓库 ↗
pip install deepeval
# test_rag.py
from deepeval import assert_test
from deepeval.test_case import LLMTestCase
from deepeval.metrics import FaithfulnessMetric, AnswerRelevancyMetric
test_case = LLMTestCase(input="...", actual_output="...",
                        retrieval_context=["..."], expected_output="...")
assert_test(test_case, [FaithfulnessMetric(), AnswerRelevancyMetric()])
# 运行
deepeval test run test_rag.py      # 生成 dashboard 报告

常见指标:Faithfulness / Answer Relevancy / Contextual Recall-Precision / Hallucination / Toxicity / Bias / Summarization / G-Eval(LLM-as-Judge)。与 Confident AI 平台联动可做回归门禁。

04 lm-eval-harness

EleutherAI 出品的通用能力基准评测框架,一键跑 MMLU/GSM8K 等数百个 benchmark。

lm-evaluation-harness harness

仓库 EleutherAI/lm-evaluation-harness
官方仓库 ↗
pip install lm-eval
# 评测本地/API 模型
lm_eval --model hf --model_args pretrained=meta-llama/Llama-3-8B \
        --tasks gsm8k,mmlu --num_fewshot 5 --output_path out.json
# 列出全部任务
lm_eval --tasks list

支持 HuggingFace 本地模型、vLLM、OpenAI/Anthropic 兼容 API。下文「基础评测数据集」中的大部分基准都可通过 --tasks 直接调用。

▦ 评测数据集(分维度 · 可溯源)

按你的要求,分为基础能力评测(通用大模型能力,多来自 HuggingFace)与价值观/安全评测两大维度。下方每条数据集:名称即原始链接(点一下跳转到官方托管页)、附下载/获取命令与详细使用方式。

i
约定:huggingface-cli download <repo> 拉的是数据集原始文件(可本地二次处理);lm_eval --tasks <task> 是直接跑官方评测流程(自动下载并缓存)。两者可并行使用。<model> 处替换为你的模型,如 meta-llama/Llama-3-8B 或 openai:chat:gpt-4o。

A. 基础能力评测(通用大模型基准)

MMLU ↗ 知识与推理 · 57 学科

简介:大规模多任务语言理解,15,908 道多选题,覆盖 57 个学科,测零样本/少样本下的综合知识推理。

下载 / 获取

# 方式一:HuggingFace CLI 拿原始文件
huggingface-cli download cais/mmlu --local-dir ./data/mmlu
# 方式二:datasets 库直接加载
python -c "from datasets import load_dataset; d=load_dataset('cais/mmlu','all'); print(d)"

详细使用

# 用 lm-eval-harness 跑(5-shot,输出各子集 + 宏平均 acc)
lm_eval --model hf --model_args pretrained=<model> \
        --tasks mmlu --num_fewshot 5 --output_path out/mmlu.json
# 看 aggregate.acc(宏平均);分学科看 mmlu_*{subject}

GSM8K ↗ 数学 · 小学应用题

简介:8.5K 道小学水平数学应用题,需多步算术推理并给出计算过程(Chain-of-Thought)。

下载 / 获取

# HuggingFace CLI
huggingface-cli download openai/gsm8k --local-dir ./data/gsm8k
# datasets 库
python -c "from datasets import load_dataset; d=load_dataset('openai/gsm8k','main'); print(d)"

详细使用

# 8-shot CoT(GSM8K 官方评测用 8-shot)
lm_eval --model hf --model_args pretrained=<model> \
        --tasks gsm8k --num_fewshot 8 --output_path out/gsm8k.json
# 指标 gsm8k_acc:抽取末行数值后精确匹配

MATH ↗ 数学 · 竞赛级

简介:12,500 道竞赛级数学题(AMC 10/12、AIME),难度高,测严谨链式推理与符号计算。

下载 / 获取

huggingface-cli download hendrycks/competition_math --local-dir ./data/math

详细使用

# lm-eval 用 minerva_math(4-shot CoT,含答案等价判定)
lm_eval --model hf --model_args pretrained=<model> \
        --tasks minerva_math --num_fewshot 4
# 或自定义 MATH 评测 + 数值/符号等价校验(更严格)

C-Eval ↗ 中文知识 · 52 学科

简介:13,948 道题、52 学科的中文综合考试,覆盖人文/社科/理工/其他四大类,测中文综合能力。

下载 / 获取

# 数据集
huggingface-cli download hkust-nlp/ceval --local-dir ./data/ceval
# 含评测脚本与标准答案
git clone https://github.com/hkust-nlp/ceval

详细使用

lm_eval --model hf --model_args pretrained=<model> \
        --tasks ceval --num_fewshot 5

CMMLU ↗ 中文知识与推理

简介:12K 道、67 学科的中文知识与推理基准,与 C-Eval 互补,测中文基座能力。

下载 / 获取

huggingface-cli download haonan-li/cmmlu --local-dir ./data/cmmlu

详细使用

lm_eval --model hf --model_args pretrained=<model> \
        --tasks cmmlu --num_fewshot 5

BBH ↗ 复杂推理 · 23 任务

简介:Big-Bench Hard,23 项高难度任务(逻辑推理、算法、语言理解等),从 BIG-Bench 中挑出模型显著弱于人类的部分。

下载 / 获取

huggingface-cli download lukaemon/bbh --local-dir ./data/bbh

详细使用

lm_eval --model hf --model_args pretrained=<model> \
        --tasks bbh --num_fewshot 3
# 指标:各任务 acc 与 macro avg

HumanEval ↗ 代码生成

简介:164 道 Python 函数级代码生成题,用 pass@k 评测(给定签名与文档串,生成实现并通过单元测试)。

下载 / 获取

# 官方原版
huggingface-cli download openai_humaneval --local-dir ./data/humaneval
# 多语言 / 更严格版
huggingface-cli download bigcode/humanevalpack --local-dir ./data/humanevalpack

详细使用

lm_eval --model hf --model_args pretrained=<model> --tasks humaneval
# 注意:原 HumanEval 有训练泄露争议,建议并行跑
#       humanevalpack(多语言)/ humanevalplus 交叉验证

TruthfulQA ↗ 真实性 · 抗谄媚

简介:817 道题,测模型"真实性/抗谄媚"——是否会复述常见人类谬误(而非给出正确事实)。

下载 / 获取

huggingface-cli download truthful_qa --local-dir ./data/truthfulqa

详细使用

lm_eval --model hf --model_args pretrained=<model> \
        --tasks truthfulqa_mc1,truthfulqa_mc2
# mc1=单真选项概率;mc2=多真选项归一化概率

MT-Bench ↗ 多轮对话

简介:80 道、2 轮对话题,覆盖写作/推理/数学/代码/知识等,用 GPT-4 当裁判评多轮对话能力。

下载 / 获取

git clone https://github.com/lm-sys/MT-Bench
huggingface-cli download lmsys/mt-bench --local-dir ./data/mt-bench

详细使用

# 走 FastChat 流程(生成答案 + GPT-4 裁判打分)
cd MT-Bench
python gen_model_answer.py --model <name>
python gen_judgment.py --model-list <name>   # 产出 pairwise + 单轮分
# 或 lm-eval 直接跑(需配置 judge 模型)
lm_eval --model <your-model> --tasks mtbench

B. 价值观 / 安全评测

AlignBench ↗ 中文对齐 · 8 维

简介:清华 THUDM 中文对齐评测,8 维度(基础语言/高级中文/数学/逻辑/角色扮演/知识/代码/安全),GPT-4 裁判打分。

下载 / 获取

git clone https://github.com/THUDM/AlignBench
huggingface-cli download THUDM/AlignBench --local-dir ./data/alignbench

详细使用

cd AlignBench
python run.py --model <model> --api_key <key>   # 调用模型生成
python run.py --mode score                      # GPT-4 裁判打分
# 产出各维度分数与总分(对齐质量)

SafetyBench ↗ 安全 · 7 类风险

简介:11,435 道安全多选题,覆盖冒犯/不公/犯罪/身心健康/伦理/自我认知/物理伤害 7 类风险。

下载 / 获取

git clone https://github.com/thu-coai/SafetyBench
huggingface-cli download thu-coai/safetybench --local-dir ./data/safetybench

详细使用

cd SafetyBench
python evaluate.py --model <model> --api_key <key>
# 输出各风险类别的"安全率"(safe rate),越高越安全

CValues ↗ 中文价值观

简介:中文价值观评测,覆盖 Helpfulness 与 Harmlessness,含 Safe / Unsafe 应答场景(中英双语)。

下载 / 获取

git clone https://github.com/values-hub/CValues

详细使用

cd CValues
# 按仓库说明跑分类/生成评测,区分 Helpful / Safe 应答
python evaluate.py --model <model>

TrustLLM ↗ 可信度 · 8 维

简介:综合"可信 LLM"基准,覆盖真实/安全/公平/鲁棒/隐私/机器伦理八大维度。

下载 / 获取

git clone https://github.com/HowieHwong/TrustLLM
huggingface-cli download HowieHwong/TrustLLM --local-dir ./data/trustllm

详细使用

cd TrustLLM
# 各子任务(truthfulness/safety/fairness/...)有独立脚本
python run.py --task safety --model <model>

Do-Not-Answer ↗ 对抗 · 风险泄露

简介:对抗性 unsafe 问题集,测模型在"过度拒绝 vs 风险泄露"间的权衡(风险分类 + 拒绝/应答分析)。

下载 / 获取

git clone https://github.com/Paul3432/Do-Not-Answer
huggingface-cli download Libr-AI/do-not-answer --local-dir ./data/do-not-answer

详细使用

cd Do-Not-Answer
python evaluate.py --model <model> --api_key <key>
# 产出风险类别分布与"是否合规应答"判定

SuperCLUE ↗ 中文综合

简介:中文通用大模型综合评测(理解/生成/对齐),由 CLUE 团队维护的公开榜单。

下载 / 获取

git clone https://github.com/CLUEbenchmark/SuperCLUE
huggingface-cli download CLUEbenchmark/SuperCLUE --local-dir ./data/superclue

详细使用

cd SuperCLUE
# 按官方流程提交模型生成结果,或对接其评测 API 拿综合分
python evaluate.py --model <model>
i
价值观评测方法通常有二:① 选择题/打分(SafetyBench 安全率、AlignBench 维度分);② LLM-as-Judge(用强模型按 rubric 对回答的安全性/帮助性打分,注意裁判本身也有价值观偏差,建议多裁判交叉)。下一页的 Agent 评测会进一步把"安全"拆成注入/沙箱/记忆腐化等维度。
→
下一页 → Agent 评测:AgentEval 实测、AgentBench/WebArena/ToolEmu,以及注入/沙箱/记忆腐化/长程/一致性五维系统方法论。