本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 vLLM 和 lm-评估工具对 LLM 进行基准测试
本教程将引导你在单个 Deadline Cloud 作业中根据多个基准评估多个大型语言模型 (LLM)。在参数扫描中,每个模型都变成一个任务,任务在工作人员之间并行运行。最后一步将每个模型的结果汇总到CSV和Markdown格式的排名排行榜中。
本教程的源代码可在上的 de adline-cloud-samples 存储库中找到。
以下视频演示了 Deadline Cloud 上的 vlLM LLM 排行榜工作流程。
预计时间:20—40 分钟(取决于模型和基准测试的数量)。
概述
EvalModels步骤中的每项任务都会启动本地 vlLM 服务器,使用 eLe
要完成本教程,请按照以下步骤操作:
-
完成先决条件。
-
建立你的农场。
-
提交评估任务。
-
下载并查看结果。
-
清理资源。
先决条件
在开始之前,建议进行以下设置:
-
具有 NVIDIA GPU 服务托管队列的 Deadline 云场(A10G 或 L4、至少 32 GB 内存、至少 4 个 vCPU)。
-
附加了 conda 队列环境的队列,用于读取
CondaPackages和CondaChannels作业参数。 -
您的工作站上安装了 De adline Cloud CLI
。 -
GPU 实例的亚马逊弹性计算云 (Amazon EC2) Elastic Compute vCPU 服务配额充足。在运行 G 和 VT 实例下运行的默认 3 个模型
g5.xlarge(每个 4 个 vCPU)需要至少 12 个 vCPU。 On-Demand
注意
只有门控模型(例如 Llama)才需要 Hugging Face 代币。默认模型列表使用非门控模型。
设置你的农场
获得兼容服务器场的最快方法是部署 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 必须支持型号(请参阅 vl LM 支持的
选择基准
Benchmarks作业参数是以逗号分隔的 lm-评估工具任务名称列表。在提交时覆盖默认基准:
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/
问题排查
Fleet 无法扩大员工规模
最常见的原因是 Amazon EC2 vCPU 服务配额。打开 EC2 下的 Service Quotas 控制台
相关资源
以下资源提供了更多信息: