跳到內容

效能儀表板

效能儀表板用於確認新的更改是否能在各種工作負載下提高/降低效能。它透過在每個帶有 perf-benchmarksready 標籤的提交以及 PR 合併到 vLLM 時觸發基準測試執行來更新。

結果會自動釋出到公共的 vLLM 效能儀表板

手動觸發基準測試

使用 vllm-ci-test-repo 映象 和 vLLM 基準測試套件。對於 x86 CPU 環境,請使用帶有 "-cpu" 字尾的映象。對於 AArch64 CPU 環境,請使用帶有 "-arm64-cpu" 字尾的映象。

這是 CPU 的 docker run 命令示例。對於 GPU,請跳過設定 ON_CPU 環境變數。

export VLLM_COMMIT=1da94e673c257373280026f75ceb4effac80e892 # use full commit hash from the main branch
export HF_TOKEN=<valid Hugging Face token>
if [[ "$(uname -m)" == aarch64 || "$(uname -m)" == arm64 ]]; then
  IMG_SUFFIX="arm64-cpu"
else
  IMG_SUFFIX="cpu"
fi
docker run -it --entrypoint /bin/bash -v /data/huggingface:/root/.cache/huggingface -e HF_TOKEN=$HF_TOKEN -e ON_ARM64_CPU=1 --shm-size=16g --name vllm-cpu-ci public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:${VLLM_COMMIT}-${IMG_SUFFIX}

然後,在 docker 例項內執行以下命令。

bash .buildkite/performance-benchmarks/scripts/run-performance-benchmarks.sh

執行時,基準測試指令碼會在 benchmark/results 資料夾下生成結果,以及 benchmark_results.md 和 benchmark_results.json 檔案。

執行時環境變數

  • ON_CPU:在 Intel® Xeon® 和 Arm® Neoverse™ 處理器上將其值設定為 '1'。預設值為 0。
  • SERVING_JSON:用於服務測試的 JSON 檔案。預設值為空字串(使用預設檔案)。
  • LATENCY_JSON:用於延遲測試的 JSON 檔案。預設值為空字串(使用預設檔案)。
  • THROUGHPUT_JSON:用於吞吐量測試的 JSON 檔案。預設值為空字串(使用預設檔案)。
  • REMOTE_HOST:用於基準測試的遠端 vLLM 服務的 IP。預設值為空字串。
  • REMOTE_PORT:用於基準測試的遠端 vLLM 服務的埠。預設值為空字串。

有關更多結果視覺化,請檢視 視覺化結果

有關效能基準測試及其引數的更多資訊,請參閱 基準測試 README 效能基準測試描述

持續基準測試

持續基準測試為 vLLM 在不同模型和 GPU 裝置上的效能提供自動化監控。這有助於跟蹤 vLLM 的效能特徵隨時間的變化,並識別任何效能迴歸或改進。

工作原理

持續基準測試透過 PyTorch 基礎設施倉庫中的 GitHub 工作流程 CI 觸發,該工作流程每 4 小時自動執行一次。該工作流程執行三種類型的效能測試:

  • 服務測試:衡量請求處理和 API 效能
  • 吞吐量測試:評估 token 生成速率
  • 延遲測試:評估響應時間特性

基準測試配置

當前基準測試執行的是在 vllm-benchmarks 目錄 中配置的預定義模型集。要為基準測試新增新模型:

  1. 導航到 benchmarks 配置中的相應 GPU 目錄
  2. 將您的模型規格新增到相應的配置檔案中
  3. 新模型將在下一次計劃的基準測試執行中包含