大模型 评测
用 Promptfoo 做多模型/多轮对比与红队,用 RAGAS/DeepEval 评测 RAG 与生成质量,用 lm-eval-harness 跑通用能力基准。下方「评测数据集」按基础能力与价值观/安全两大维度系统梳理,含 HuggingFace 路径、名称与用法。
▦ 工具总览
| 工具 | 擅长 | 评测报告样例 |
|---|---|---|
| Promptfoo | 多模型同 prompt 对比、多轮对话、红队、断言评分 | ✅ 真实 HTML 报告(见下) |
| RAGAS | RAG 检索+生成分环节指标 | ✅ 真实打分(faithfulness 0.75…) |
| DeepEval | 通用/安全/多模态 50+ 指标,pytest 风格 | ✅ dashboard |
| lm-eval-harness | 通用能力基准(MMLU/GSM8K…)一键评测 | ✅ 基准 leaderboard |
01 Promptfoo
最流行的 prompt/模型评测与红队框架,支持多模型对比、多轮对话、断言评分与回归测试。
Promptfoo prompt · redteam
安装(来自项目记忆本机实测)
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 真实产出的报告(多模型对比 / 多轮对话),可直接打开查看打分与断言结果:
.env 含真实 API Key,已刻意排除,未进入本站点。02 RAGAS
RAG 专用评测,把"检索"与"生成"拆开打分,是幻觉治理的第一道探针。
RAGAS RAG eval
安装(本机踩坑结论)
# 用 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
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
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)与价值观/安全评测两大维度。下方每条数据集:名称即原始链接(点一下跳转到官方托管页)、附下载/获取命令与详细使用方式。
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>