View a markdown version of this page

使用 vLLM 和 lm-评估工具对 LLM 进行基准测试 - 截止日期云

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 vLLM 和 lm-评估工具对 LLM 进行基准测试

本教程将引导你在单个 Deadline Cloud 作业中根据多个基准评估多个大型语言模型 (LLM)。在参数扫描中,每个模型都变成一个任务,任务在工作人员之间并行运行。最后一步将每个模型的结果汇总到CSV和Markdown格式的排名排行榜中。

本教程的源代码可在上的 de adline-cloud-samples 存储库中找到。 GitHub

以下视频演示了 Deadline Cloud 上的 vlLM LLM 排行榜工作流程。

预计时间:20—40 分钟(取决于模型和基准测试的数量)。

概述

EvalModels步骤中的每项任务都会启动本地 vlLM 服务器,使用 eLe utherai 的 lm-评估工具对本地端点运行每个基准测试,然后停止 vLLM。模型直接从 Hugging Face Hub 加载,因此不需要作业附件。

要完成本教程,请按照以下步骤操作:

  1. 完成先决条件。

  2. 建立你的农场。

  3. 提交评估任务。

  4. 下载并查看结果。

  5. 清理资源。

先决条件

在开始之前,建议进行以下设置:

  • 具有 NVIDIA GPU 服务托管队列的 Deadline 云场(A10G 或 L4、至少 32 GB 内存、至少 4 个 vCPU)。

  • 附加了 conda 队列环境的队列,用于读取CondaPackagesCondaChannels作业参数。

  • 您的工作站上安装了 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 模板。该模板预置了一个 NVIDIA GPU 服务托管队列(A10G 或 L4)和一个队列,其中包含此捆绑包未经修改即可使用的 conda 队列环境。

为您的服务器场配置 CLI
  • CloudFormation 堆栈到达后CREATE_COMPLETE,将 Deadline Cloud CLI 配置为使用新场:

    deadline config set defaults.farm_id FarmId-from-stack-outputs deadline config set defaults.queue_id CUDAQueueId-from-stack-outputs

如果您已经有服务器场,则建议使用以下配置:

  • 一支装有 NVIDIA GPU、至少 32 GB 内存和至少 4 个 vCPU 的 SMF 舰队。

  • 具有读取CondaPackagesCondaChannels作业参数的 conda 队列环境的队列。

提交评估任务

提交评估任务
  1. 克隆示例存储库并导航到任务包目录:

    git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles/vllm_lm_eval_leaderboard
  2. 使用默认模型和基准提交作业:

    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.

  3. 在 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 任务。 GitHub

下载并查看结果

下载排行榜结果
  1. 任务完成后,下载输出:

    deadline job download-output --job-id job-id
  2. 查看排行榜:

    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 |

清理

为避免持续收费,请清理您为本教程创建的资源:

清理教程资源
  1. 如果您部署了 CUDA 群 CloudFormation 模板,请从 CloudFormation 控制台中删除 CloudFormation 堆栈。

  2. 如果您使用的是现有场,请停止或删除您在本教程中使用的 GPU 队列。

  3. 如果不再需要本地输出文件,请将其删除:

    rm -rf leaderboard_results/

问题排查

Fleet 无法扩大员工规模

最常见的原因是 Amazon EC2 vCPU 服务配额。打开 EC2 下的 Service Quotas 控制台,确认您有足够的空间来运行 On-Demand G 和 VT 实例。增加配额可能需要几分钟到几个工作日。

以下资源提供了更多信息: