lm-evaluation-harness 安装教程:三步装好并跑通你的第一次模型评测
【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness
lm-evaluation-harness是 EleutherAI 开源的语言模型评测框架,解决"同一套任务、同一套提示词下横向比较不同模型"的问题。本文带你完成环境检查、安装验证,并用一条命令真正跑出第一个评测结果。
认识一下:它能干什么
这个框架给生成式语言模型提供统一的评测接口:内置 60 多个标准学术基准(hellaswag、ARC、MMLU、GSM8K 等)以及成百上千个子任务,所有提示词公开可复现,跑出的分数可以在不同论文之间直接对比——Hugging Face 的 Open LLM Leaderboard 就是拿它当后端。项目由 EleutherAI 开发,主体是 Python 编写。底层它对接了 Hugging Facetransformers(本地模型)、vLLM(高吞吐推理)和 OpenAI 等商用 API,也支持 LoRA 这类 PEFT 适配器的评测。
它评测时给模型喂的是 few-shot 提示,结构如下:任务描述 + 若干示例 + 待完成的 prompt,模型补全后由框架统一打分。
动手前:环境自检清单
🔍 三条检查,一分钟搞定:
| 项目 | 要求 | 怎么确认 |
|---|---|---|
| Python | ≥ 3.10 | 终端运行python --version |
| Git | 任意可用版本 | 终端运行git --version |
| GPU / CUDA | 想用 GPU 跑模型才需要 | 运行nvidia-smi,能看到显卡列表即可 |
没有 GPU 也没关系,后续命令把--device cuda:0换成--device cpu就行,只是会慢不少。
装好它:从克隆到验证
✅ 三个动作,从克隆到可运行:
- 克隆仓库并进入目录:
git clone https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness cd lm-evaluation-harness- 以可编辑模式安装核心框架:
pip install -e .注意:基础安装是"瘦身版",不再捆绑transformers和torch。你想用哪种模型后端,就装哪个 extra,比如 Hugging Face 后端:
pip install "lm_eval[hf]"- 验证安装。运行
lm-eval -h,看到帮助文本并列出run、ls、validate等子命令,就算装好了。
跑通第一次:你的第一条命令
一条最小可运行的命令,在 CUDA GPU 上评测 Hugging Face Hub 上的 GPT-J-6B:
lm_eval --model hf --model_args pretrained=EleutherAI/gpt-j-6B --tasks hellaswag --device cuda:0 --batch_size 8参数逐个看:
| 参数 | 作用 |
|---|---|
--model hf | 模型后端,hf 表示走 Hugging Facetransformers加载 |
--model_args pretrained=... | 指定模型,也可以填本地路径、加revision、dtype等键值对 |
--tasks hellaswag | 评测任务名,多个任务用逗号隔开即可并行跑 |
--device cuda:0 | 把模型放到哪块卡,CPU 则写cpu |
--batch_size 8 | 批大小,写auto可自动探测显存能容纳的最大值 |
跑完任务后,终端会打印各指标的最终得分。想跑更多任务,直接把--tasks改成lambada_openai,arc_easy这样的逗号列表即可。
多 GPU 的话,用accelerate做数据并行(每张卡放一份完整模型,K 张卡约 K 倍速度):
accelerate launch -m lm_eval --model hf --tasks lambada_openai,arc_easy --batch_size 16如果模型大到单卡放不下,则不加 launch,改用--model_args parallelize=True把权重切分到多张卡。完整的 CLI 参数可以在 CLI 参考 里查到。
新手最容易卡住的点
装完pip install -e .却报缺 torch 或 transformers?这是正常的,新版把模型后端拆成了独立 extra。跑hf模型就补装lm_eval[hf],跑 API 模型装lm_eval[api],跑 vLLM 装lm_eval[vllm],也可以一次装齐lm_eval[hf,vllm,api]。
要不要装在系统 Python 里?不建议。先用python -m venv或 conda 建个独立环境再装,datasets、transformers这类依赖版本很敏感,和别的项目共用环境大概率互相打架。
--device cuda:0报错或找不到 GPU?先跑nvidia-smi确认驱动和显卡正常。Mac 上改用--device mps(需要较新版本的 PyTorch)。
不知道有哪些任务名、怕拼错?运行lm-eval ls tasks列出全部可用任务,或者翻一下任务目录说明。
下一步
跑通第一条命令后,换个--tasks(比如mmlu、gsm8k)或换一个小一点的模型再跑一轮,就能开始你自己的横向对比了;想深挖配置方式可以看 配置指南。
【免费下载链接】lm-evaluation-harnessA framework for few-shot evaluation of language models.项目地址: https://gitcode.com/GitHub_Trending/lm/lm-evaluation-harness
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考