大模型模型评测配置:零基础跑通评测环境
做模型评测之前,先想清楚一件事:你评测的是模型本身,还是模型服务接口。
前者需要把模型权重加载到本地或指定推理后端,后者只需要一个兼容 OpenAI 接口的地址和 Key。
本文按“本地跑通评测”这条线走,以 lm-evaluation-harness 为例,给出从环境准备到结果验证的完整配置步骤。
如果你用的是其他评测框架,配置逻辑基本一致,替换命令即可。
先确认评测目标和运行环境
评测配置不是越复杂越好,先明确三个条件:
- 评测对象:Hugging Face 格式的本地模型,还是远程 API 服务。本地模型需要 GPU 显存足够,API 服务需要网络可达。
- 评测数据集:选一个轻量数据集先跑通,比如
hellaswag或arc_easy,不要一上来就全量跑。 - 运行环境:建议 Python 3.10 以上,独立虚拟环境,避免和系统包冲突。GPU 环境需确认 CUDA 驱动和 PyTorch 版本匹配。
检查基础环境:
python3 --version
nvidia-smi
nvidia-smi 能正常输出显卡信息,说明驱动可用。
如果命令不存在,先装驱动或改用 CPU 模式,但 CPU 跑大模型评测会非常慢,只适合验证流程。
安装评测框架和依赖
创建虚拟环境并安装:
python3 -m venv eval-env
source eval-env/bin/activate
pip install -U pip
pip install lm-eval
如果需要用 GPU 加速,确认 PyTorch 已按 CUDA 版本安装。
可以用下面的命令验证:
python -c "import torch; print(torch.cuda.is_available())"
返回 True 表示 GPU 可用。
返回 False 时不要急着跑评测,先排查驱动和 PyTorch 版本,否则评测会退回 CPU,耗时成倍增加。
配置模型加载方式和评测参数
本地模型评测的关键是模型加载参数。
以 Hugging Face 模型为例,常用配置项包括:
--model hf:指定使用 Hugging Face 后端。--model_args pretrained=模型路径或名称:本地路径直接写目录,远程模型写仓库名。--tasks hellaswag:指定评测任务,先用小任务验证。--device cuda:0:指定 GPU 设备;没有 GPU 写cpu。--batch_size 1:显存不足时先设为 1,跑通后再尝试调大。
一个最小可运行命令如下:
lm_eval \
--model hf \
--model_args pretrained=/data/models/Qwen2.5-1.5B-Instruct \
--tasks hellaswag \
--device cuda:0 \
--batch_size 1 \
--output_path ./results
如果模型需要信任远程代码,按框架提示追加 trust_remote_code=True,但只对可信模型开启。
评测 API 服务时,模型参数改为接口地址和 Key,例如 --model openai-chat-completions --model_args model=模型名,base_url=http://127.0.0.1:8000/v1,具体参数名以你使用的框架文档为准。
跑评测时最容易踩的坑
显存不足是最常见的问题。
报错通常包含 CUDA out of memory。
处理顺序:先把 --batch_size 降到 1,再考虑换更小的模型或使用量化加载。
不要直接改系统显存参数硬撑。
数据集下载失败也很常见。
评测框架会自动下载数据集,网络不稳定时会卡住或报连接错误。
可以提前设置镜像或手动下载到缓存目录,具体缓存路径以框架日志输出的路径为准。
模型路径写错会导致加载失败。
本地模型目录下应能看到 config.json 和权重文件;
如果只有分片文件,确认分片完整。
路径不要用中文和空格。
评测结果为空或任务名报错,先检查任务名是否拼写正确。
可以用 lm_eval --tasks list 查看可用任务,不要凭记忆写任务名。
验证评测是否真正跑通
评测结束后,重点看两处:
- 终端是否输出每个任务的指标,比如
acc、acc_norm。 --output_path指定目录下是否生成结果文件,通常是 JSON 格式。
打开结果文件,确认 results 字段里有对应任务和数值,而不是只有配置信息。
如果数值明显异常,比如准确率接近随机猜测,先检查模型是否加载正确、任务是否匹配模型类型,再考虑结果是否可信。
最后提醒一句:大模型模型评测配置的核心不是把命令跑完,而是保证模型、数据集、参数三者一致。
换模型或换任务时,重新确认加载参数和 batch size,不要直接复用上一次的命令。
按本文步骤先跑通一个小任务,再逐步扩展评测范围,出错时也更容易定位。