vLLM 分析#

我们支持使用 torch.profiler 模块对 vLLM 工作者进行追踪。您可以通过将 VLLM_TORCH_PROFILER_DIR 环境变量设置为您希望保存追踪的目录来启用追踪:VLLM_TORCH_PROFILER_DIR=/mnt/traces/

OpenAI 服务器还需要在设置 VLLM_TORCH_PROFILER_DIR 环境变量的情况下启动。

在使用 benchmarks/benchmark_serving.py 时,你可以通过传递 --profile 标志来启用性能分析。

警告

仅在开发环境中启用性能分析。

可以使用 https://ui.perfetto.dev/ 来可视化跟踪。

小技巧

在分析时,仅通过 vLLM 发送少量请求,因为跟踪数据可能会变得非常大。此外,无需解压跟踪数据,它们可以直接查看。

小技巧

要停止分析器 - 它会将所有分析跟踪文件刷新到目录中。这需要时间,例如,对于大约100个请求的数据量,对于llama 70b,在H100上大约需要10分钟来刷新。在启动服务器之前,将环境变量VLLM_RPC_TIMEOUT设置为一个较大的数字。比如说30分钟。export VLLM_RPC_TIMEOUT=1800000

示例命令及用法:#

离线推理:#

请参考 examples/offline_inference_with_profiler.py 中的示例。

OpenAI 服务器:#

VLLM_TORCH_PROFILER_DIR=./vllm_profile python -m vllm.entrypoints.openai.api_server --model meta-llama/Meta-Llama-3-70B

benchmark_serving.py:

python benchmarks/benchmark_serving.py --backend vllm --model meta-llama/Meta-Llama-3-70B --dataset-name sharegpt --dataset-path sharegpt.json --profile --num-prompts 2