效能儀表板¶
效能儀表板用於確認新的更改是否能在各種工作負載下提高/降低效能。它透過在每個帶有 perf-benchmarks 和 ready 標籤的提交以及 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 例項內執行以下命令。
執行時,基準測試指令碼會在 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 目錄 中配置的預定義模型集。要為基準測試新增新模型:
- 導航到 benchmarks 配置中的相應 GPU 目錄
- 將您的模型規格新增到相應的配置檔案中
- 新模型將在下一次計劃的基準測試執行中包含