最佳化級別¶
概述¶
vLLM 現在支援最佳化級別(-O0、-O1、-O2、-O3)。最佳化級別為使用者提供了一種直觀的機制,可以在啟動時間和效能之間進行權衡。級別越高,效能越好,但啟動時間也越長。這些最佳化級別帶有相關的預設設定,以幫助使用者獲得期望的開箱即用效能。重要的是,最佳化級別設定的預設值純粹是預設值;顯式的使用者設定不會被覆蓋。
級別摘要和使用示例¶
# CLI usage
python -m vllm.entrypoints.api_server --model RedHatAI/Llama-3.2-1B-FP8 -O0
# Python API usage
from vllm.entrypoints.llm import LLM
llm = LLM(
model="RedHatAI/Llama-3.2-1B-FP8",
optimization_level=0
)
-O1: 快速最佳化¶
- 啟動:中等啟動時間
- 效能:Inductor 編譯,CUDAGraphMode.PIECEWISE
- 用例:平衡大多數開發場景
# CLI usage
python -m vllm.entrypoints.api_server --model RedHatAI/Llama-3.2-1B-FP8 -O1
# Python API usage
from vllm.entrypoints.llm import LLM
llm = LLM(
model="RedHatAI/Llama-3.2-1B-FP8",
optimization_level=1
)
-O2: 完全最佳化(預設)¶
- 啟動:啟動時間較長
- 效能:
-O1+ CUDAGraphMode.FULL_AND_PIECEWISE - 用例:對效能要求較高的生產工作負載。這是預設用例。它也與之前的預設設定非常相似。主要區別在於啟用了 noop 和 fusion 標誌。
# CLI usage (default, so optional)
python -m vllm.entrypoints.api_server --model RedHatAI/Llama-3.2-1B-FP8 -O2
# Python API usage
from vllm.entrypoints.llm import LLM
llm = LLM(
model="RedHatAI/Llama-3.2-1B-FP8",
optimization_level=2 # This is the default
)
-O3: 完全最佳化¶
仍在開發中。已新增基礎架構以防止在未來版本中更改 API。目前表現與 O2 相同。
故障排除¶
常見問題¶
- 啟動時間太長:使用
-O0或-O1以加快啟動速度 - 編譯錯誤:使用
debug_dump_path獲取其他除錯資訊 - 效能問題:確保生產環境使用
-O2