lm-evaluation-harness 项目介绍
项目概况
lm-evaluation-harness 是一个用于测试生成性语言模型的统一框架,提供了丰富的功能和广泛的评估任务支持。此项目可以帮助开发者和研究人员在各种标准学术基准上测试和评估大语言模型的性能。目前有超过60个标准学术基准任务和数百个子任务或变体可供选择。
特性概述
lm-evaluation-harness 提供以下关键特性:
-
多模式任务支持:支持文本+图像多模态输入和文本输出任务,使用户可以评估模型在复杂输入上的表现。
-
广泛的模型支持:兼容通过 transformers、GPT-NeoX 和 Megatron-DeepSpeed 加载的模型,并支持 vLLM 的快速、内存高效推理。也支持商业API如 OpenAI 和 TextSynth。
-
本地和自定义模型支持:不仅支持本地模型和基准,还允许用户添加自定义的提示和评估指标。
-
高效的推理能力:优化API模型,支持批量和异步请求,简化个性化使用。
-
易于复现的评估方法:评估使用公开的提示,确保结果的 reproducibility(可重复性)和 comparability(可比性)。
最新更新
项目最新发布的 v0.4.0 版本引入了以下功能和改进:
- 新增公开大模型排行榜任务
- 内部代码重构
- 基于配置的任务创建与配置
- 支持 Jinja2 提示设计并从 Promptsource 导入提示
- 更高级的配置选项,包括输出后处理、答案提取和多次生成
- 提速并支持新建模库,包括 HF 模型的快速数据并行使用、vLLM支持等
安装与使用
安装步骤
用户可以通过克隆 GitHub 仓库的方式来安装此软件包:
git clone --depth 1 https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness
pip install -e .
基本使用
用户可以通过命令行参数指定模型、任务、以及设备进行测试。例如,要在 CUDA 兼容的 GPU 上评估一个托管在 HuggingFace Hub 上的模型(如 GPT-J-6B),可以使用以下命令:
lm_eval --model hf \
--model_args pretrained=EleutherAI/gpt-j-6B \
--tasks hellaswag \
--device cuda:0 \
--batch_size 8
扩展使用
该项目支持公开的 API 和自托管的推理服务器。因此,用户可以使用本地服务器上运行的推理服务进行评估。此外,支持多个额外的依赖项,用于扩展功能,如使用 MPS 框架在 Mac 上运行或使用 Zenoml 来可视化结果。
应用范围
lm-evaluation-harness 是 🤗 Hugging Face 开发的流行榨汁框架 Open LLM Leaderboard 的后端,被包括 NVIDIA、Cohere 等在内的多个组织内部使用。同时,它已被用于数百篇学术论文中。
贡献与支持
开发团队鼓励用户通过 GitHub Issues 或 PRs 提交功能反馈和性能改进建议,同时也欢迎在 EleutherAI 的 Discord 社区中参与讨论。
总之,lm-evaluation-harness 是一款功能强大且灵活的工具,旨在帮助开发者和研究人员更好地理解和评估现代语言模型的性能。