『不废话』之大模型性能评估
前一篇『不废话』之大模型性能排行榜文章,梳理了如何知道业务最适配开源大模型。这次我们来谈谈,当我们微调完大模型之后,总是应该需要一套行之有效的性能评价体系来判断我们的微调是否有效。业界通常是考虑跟微调之前的基模进行比对,今天让我们从纯技术的角度来分析这个话题。
以下内容充分参考了网络资料,不仅适合这次的话题,同时也适合对比2个不同的模型性能。
第一步:定义你的比较目标
深入评估之前,明确以下关键问题:
- 哪些特定功能对您的应用程序最重要?
- 您是否优先考虑准确性、速度、成本或专业知识?
- 你需要定量指标,定性评估,还是两者兼而有之?
提示:创建一个简单的评分规则,并加权重要性。
第二步:选择合适的基准
不同的基准测试衡量LLM不同的能力:
通用能力
框架 | 地址 |
---|---|
MMLU | https://huggingface.co/datasets/cais/mmlu |
HELM | https://github.com/stanford-crfm/helm |
BIG-Bench | https://github.com/google/BIG-bench |
Winogrande | https://huggingface.co/datasets/allenai/ai2_arc |
推理与问题解决
框架 | 地址 |
---|---|
GSM8K | https://huggingface.co/datasets/openai/gsm8k |
MATH | https://github.com/hendrycks/math |
LogiQA | https://huggingface.co/datasets/lucasmccabe/logiqa |
ai2 arc | https://huggingface.co/datasets/allenai/ai2_arc |
HellaSwag | https://huggingface.co/datasets/Rowan/hellaswag |
编码和技术能力
框架 | 地址 |
---|---|
HumanEval | https://paperswithcode.com/sota/code-generation-on-humaneval |
SWE-Bench | https://www.swebench.com/ |
APSS | https://arxiv.org/abs/2105.09938 |
MBPP | https://github.com/google-research/google-research/tree/master/mbpp |
DS-1000 | https://ds1000-code-gen.github.io/ |
BigCodeBench | https://github.com/bigcode-project/bigcodebench |
真实性与事实性
框架 | 地址 |
---|---|
TruthfulQA | https://github.com/sylinrl/TruthfulQA |
FActScore | https://github.com/shmsw25/FActScore |
DeepEval | https://github.com/confident-ai/deepeval |
Opik | https://github.com/comet-ml/opik |
RAGAs | https://github.com/explodinggradients/ragas |
Deepchecks | https://github.com/deepchecks/deepchecks |
Phoenix | https://github.com/Arize-ai/phoenix |
Evalverse | https://github.com/evalplus/evalplus |
指令遵循
框架 | 地址 | |
---|---|---|
Alpaca Eval | https://github.com/tatsu-lab/alpaca_eval | |
MT-Bench | https://github.com/mtbench101/mt-bench-101 |
安全性评价
框架 | 地址 |
---|---|
Anthropic’s Red Teaming dataset | https://arxiv.org/abs/2209.07858 |
SafetyBench | https://github.com/thu-coai/SafetyBench |
提示:专注于与您的特定用例相一致的基准测试,而不是试图测试所有内容。
第三步:设置测试环境
确保在一致的测试条件下进行公平比较:
环境检查表
- 尽可能使用相同的硬件进行所有测试
- 控制温度(temperature)、最大令牌(max tokens)和其他生成参数
- 记录API版本或部署配置
- 标准化提示格式和说明
- 跨模型使用相同的评估标准
提示:创建一个配置文件,记录所有测试参数的重现性。
第五步:使用评估框架
有几个框架可以帮助您自动化和标准化评估过程:
流行的评估框架
框架 | 最适合 | 安装 |
---|---|---|
LangChain Evaluation | 工作流测试 | pip install langchain-eval |
EleutherAI LM Evaluation Harness | 学术基准 | pip install lm-eval |
DeepEval | 单元测试 | pip install deepeval |
Promptfoo | 即时比较 | npm install -g promptfoo npm install -gnpm |
TruLens | 反馈分析 | pip install trulens-eval |
第六步:实现自定义评估测试
根据您的需求量身定制测试:
自定义测试类别
- 与您所在行业相关的特定领域知识测试
- 来自预期用例的真实提示
- 突破模型功能边界的边缘案例
- 跨模型具有相同输入的A/B比较
- 与代表性用户进行用户体验测试
提示:包括“预期”场景和挑战模型的“压力测试”场景
第七步:分析结果
将原始数据转化为可操作的见解:
分析技术
- 跨基准比较原始分数
- 将结果标准化,以考虑不同的尺度
- 以百分比计算业绩差距
- 确定优势和劣势的模式
- 考虑差异的统计显著性
- 绘制不同功能域的性能图
第8步:记录和可视化结果
为您的结果创建清晰、可扫描的文档:
第八步:不断的迭代
- 判断能不能上线?
- 不能上线?申请经费
- 继续微调
- 再次评估
- 回到1