本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 vLLM 和 lm-evaluation-harness 為 LLMs 建立基準
本教學課程將逐步引導您針對單一截止日期雲端任務中的多個基準評估多個大型語言模型 (LLMs)。每個模型會在參數掃描中成為一個任務,而任務會跨工作者平行執行。最後一步會以 CSV 和 Markdown 格式,將每個模型的結果彙總成排名排行榜。
本教學課程的原始程式碼可在 GitHub 的 deadline-cloud-samples
下列影片示範在截止日期雲端上的 vLLM LLM 排行榜工作流程。
預估時間:20–40 分鐘 (取決於模型和基準的數量)。
概觀
EvalModels 步驟中的每個任務都會啟動本機 vLLM
若要完成本教學課程,請遵循下列步驟:
-
完成先決條件。
-
設定您的陣列。
-
提交評估任務。
-
下載並檢閱結果。
-
清除資源。
先決條件
開始之前,建議您進行下列設定:
-
具有 NVIDIA GPU 服務受管機群 (A10G 或 L4,至少 32 GB RAM,至少 4 個 vCPUs的截止日期雲端陣列。
-
連接 conda 佇列環境的佇列,讀取
CondaPackages和CondaChannels任務參數。 -
工作站上安裝的截止日期雲端 CLI
。 -
GPU 執行個體的 Amazon Elastic Compute Cloud (Amazon EC2) vCPU 服務配額足夠。預設的 3 模型在 上執行
g5.xlarge(每個 4 vCPUs),在執行隨需 G 和 VT 執行個體下至少需要 12 vCPUs。
注意
Hugging Face 字符僅適用於門控模型 (例如 Llama)。預設模型清單使用非門控模型。
設定您的陣列
取得相容陣列的最快方法是部署 CUDA 陣列 CloudFormation 範本
為您的陣列設定 CLI
-
CloudFormation 堆疊到達 後
CREATE_COMPLETE,設定截止日期雲端 CLI 以使用新的陣列:deadline config set defaults.farm_idFarmId-from-stack-outputsdeadline config set defaults.queue_idCUDAQueueId-from-stack-outputs
如果您已經有陣列,建議使用下列組態:
-
具有 NVIDIA GPUs、至少 32 GB RAM 和至少 4 個 vCPUs 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.5B、Qwen/Qwen2.5-1.5B和EleutherAI/pythia-1.4b。預設基準是通用推理套件:hellaswag,arc_easy,arc_challenge,winogrande。 -
在截止日期雲端主控台或使用
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清單。每個項目都會成為在截止日期雲端監視器中可見的任務。vLLM 必須支援模型 IDs(請參閱 vLLM 支援的模型清單
選擇基準
Benchmarks 任務參數是以逗號分隔的 lm-evaluation-harness 任務名稱清單。在提交時覆寫預設基準:
deadline bundle submit . \ --parameter Benchmarks="hellaswag,mmlu,gsm8k"
清單中的所有基準都會針對每個模型的 vLLM 伺服器依序執行。保持MaxModelLen小於或等於最小模型的內容視窗。如需可用基準的完整清單,請參閱 GitHub 上的 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/
疑難排解
機群不會擴展工作者
最常見的原因是 Amazon EC2 vCPU 服務配額。開啟 EC2 下的 Service Quotas 主控台
相關資源
下列資源提供其他資訊: