本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 vLLM 和 lm-evaluation-harness 对 LLM 进行基准
本教程引导您在单个 Deadline Cloud 任务中根据多个基准评估多个大型语言模型 (LLM)。在参数扫描中,每个模型都成为一项任务,任务在工作器之间并行运行。最后一步以 CSV 和 Markdown 格式将每个模型的结果汇总到排名排行榜中。
本教程的源代码可在网站的 d eadline-cloud-samples
以下视频演示了 Deadline Cloud 上的 vLLM LLM 排行榜工作流程。
预计时间:20—40 分钟(取决于模型和基准的数量)。
概述
该EvalModels步骤中的每项任务都会启动本地 vLLM 服务器,使用 Eleutherai 的 lm-evaluation-harnes-harness 针对本地端点运行每个基准测试,然后停止 vLLM。有关更多信息,请参阅网站上的 vLLM
要完成本教程,请按照以下步骤操作:
-
完成先决条件。
-
设置你的农场。
-
提交评估作业。
-
下载并查看结果。
-
清理资源。
先决条件
在开始之前,建议进行以下设置:
-
具有 NVIDIA GPU 服务管理队列(A10G 或 L4,至少 32 GB 内存,至少 4 个 vCPU)的 Deadline Cloud 农场。
-
附加了 conda 队列环境的队列,用于读取
CondaPackages和CondaChannels作业参数。 -
在您的工作站上安装了 Deadline Cloud CLI。有关安装说明,请参阅网站上的截止日期云
存储库。 GitHub -
为 GPU 实例提供足够的截止日期云服务配额。在
g5.xlarge(4 个 vCPU 和 1 个 GPU)上运行的默认 3 个模型要求每个区域在 OnDemand G 实例 GPU 下至少有 3 个 GPU,每个区域在 vCPU 下至少有 12 个 vCPU。 OnDemand
注意
只有封闭模型(例如美洲驼)才需要 Hugging Face 代币。默认模型列表使用无门限模型。
设置你的农场
获得兼容农场的最快方法是在 GitHub 网站上部署 CUDA 农场 CloudFormation 模板
为您的农场配置 CLI
-
CloudFormation 堆栈到达后
CREATE_COMPLETE,将 Deadline Cloud CLI 配置为使用新农场:deadline config set defaults.farm_idFarmId-from-stack-outputsdeadline config set defaults.queue_idCUDAQueueId-from-stack-outputs
如果您已经有农场,建议使用以下配置:
-
一支配有 NVIDIA GPU、至少 32 GB 内存和至少 4 个 vCPU 的 SMF 机群。
-
具有读取
CondaPackages和CondaChannels作业参数的 conda 队列环境的队列。
提交评估作业
提交评估任务
-
克隆示例存储库并导航到任务包目录:
git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles/vllm_lm_eval_leaderboard -
使用默认模型和基准提交作业:
deadline bundle submit . \ --parameter MaxModelLen=2048默认模型列表评估三个小型的无门限模型:
Qwen/Qwen2.5-0.5BQwen/Qwen2.5-1.5B、和。EleutherAI/pythia-1.4b默认基准测试是常识推理套件:hellaswag,arc_easy,arc_challenge,winogrande. -
在 Deadline Cloud 控制台中或使用
deadline job get命令监控任务状态。
更改型号列表
在以下EvalModels步骤中,模型被定义为 STRING 参数空间template.yaml:
parameterSpace: taskParameterDefinitions: - name: ModelName type: STRING range: - "Qwen/Qwen2.5-0.5B" - "Qwen/Qwen2.5-1.5B" - "EleutherAI/pythia-1.4b"
要添加或移除模型,请编辑range列表。每个条目都成为一项任务,可在 Deadline Cloud 监视器中显示。vLLM 必须支持模型 ID。有关更多信息,请参阅 vLLM 网站上
选择基准
Benchmarks作业参数是以逗号分隔的 lm-evaluation-harness 任务名称列表。在提交时覆盖默认基准:
deadline bundle submit . \ --parameter Benchmarks="hellaswag,mmlu,gsm8k"
列表中的所有基准测试均针对每个模型的 vLLM 服务器按顺序运行。保持MaxModelLen小于或等于最小模型的上下文窗口。有关可用基准测试的完整列表,请参阅网站上的 lm-evaluation-harness 任务
下载并查看结果
下载排行榜结果
-
任务完成后,下载输出:
deadline job download-output --job-idjob-id -
查看排行榜:
cat leaderboard_results/leaderboard.md
以下示例显示了典型的排行榜输出:
# LLM Leaderboard Models: 3 | Benchmarks: arc_challenge, arc_easy, hellaswag, winogrande | Rank | Model | arc_challenge | arc_easy | hellaswag | winogrande | Mean | |------|------------------------|---------------|----------|-----------|------------|--------| | 1 | Qwen/Qwen2.5-1.5B | 0.4497 | 0.7176 | 0.6775 | 0.6322 | 0.6192 | | 2 | Qwen/Qwen2.5-0.5B | 0.3200 | 0.5816 | 0.5223 | 0.5691 | 0.4982 | | 3 | EleutherAI/pythia-1.4b | 0.2833 | 0.5387 | 0.5201 | 0.5730 | 0.4788 |
清理
为避免持续收费,请清理您为本教程创建的资源:
清理教程资源
-
如果您部署了 CUDA 农场 CloudFormation 模板,请从 CloudFormation 控制台中删除 CloudFormation 堆栈。
-
如果您使用的是现有农场,请停止或删除您在本教程中使用的 GPU 队列。
-
如果不再需要本地输出文件,请将其删除:
rm -rf leaderboard_results/
问题排查
舰队不会扩大工人规模
最常见的原因是截止日期云服务配额。在 AWSDeadline Cloud 下打开
相关资源
以下资源提供 GitHub 网站和 vLLM 网站上的其他信息: