支持的功能¶
本文档总结了 vLLM Intel® Gaudi® 硬件插件当前支持的功能,列出了计划在未来版本中发布的功能,并概述了已停用的功能及其弃用原因。
支持的功能¶
| 功能 | 描述 | 参考 |
|---|---|---|
| 离线批处理推理 | 支持使用 vLLM Python API 中的 LLM 类进行离线推理。 | 快速入门, 示例 |
| 通过 OpenAI 兼容服务器进行在线推理 | 支持通过实现 OpenAI Chat 和 Completions API 的 HTTP 服务器进行在线推理。 | 文档, 示例 |
| HPU 自动检测 | 在 vLLM 启动时,为 HPU 用户启用自动目标平台检测。 | 不适用 |
| 为 Intel® Gaudi® 加速器启用了算法的 Paged KV 缓存 | 提供了针对 Intel® Gaudi® 设备优化的自定义分页注意力(Paged Attention)和缓存运算符实现。 | 不适用 |
| 自定义 Intel® Gaudi® 运算符实现 | 提供了优化后的运算符实现,例如预填充注意力(prefill attention)、均方根层归一化(Root Mean Square Layer Normalization)和旋转位置编码(Rotary Positional Encoding)。 | 不适用 |
| 张量并行推理 | 支持通过张量并行和多进程进行多 HPU 推理。 | 文档, HCCL 参考 |
| 管道并行推理 | 支持通过管道并行进行多 HPU 推理。 | 文档, 运行管道并行 |
| 使用 HPU Graph 进行推理 | 通过使用 HPU Graph 减少主机开销,HPU Graph 提前记录执行图并在推理期间重放它们。 | 文档 |
使用 torch.compile 进行推理 |
支持使用 torch.compile 进行推理,这是 HPU 的默认设置。 |
vLLM HPU 后端执行模式 |
| INC 量化 | 支持 FP8 模型、KV 缓存量化和使用 Intel Neural Compressor (INC) 进行校准。此功能与 torch.compile 执行模式不完全兼容。 |
文档 |
| AutoAWQ 量化 | 支持使用 AutoAWQ 库量化的模型的推理。 | 库 |
| AutoGPTQ 量化 | 支持使用 AutoGPTQ 库量化的模型的推理。 | 库 |
| LoRA/MultiLoRA 支持 | 支持兼容模型上的 LoRA 和 MultiLoRA。 | vLLM 支持的模型, 示例 |
| 完全异步模型执行器 | 允许模型运行器异步执行,并支持异步调度,重叠 CPU 操作(包括 prepare_inputs)和模型前向传播。它不支持推测性解码、PP 或引导式解码。预期速度提升为当前异步调度的 5-10%。 |
功能描述 |
| 自动前缀缓存 (APC) | 提高预填充效率。此功能默认启用。 | 文档 |
| 推测性解码 (功能发布) | 支持实验性推测性解码,这在某些情况下可以提高 token 之间的延迟。可以通过标准的 --speculative_model 和 --num_speculative_tokens 参数配置此功能。此功能与 torch.compile 执行模式不完全兼容。 |
文档, 示例 |
| 多进程后端 | vLLM 中的默认分布式运行时。 | 文档 |
| 多模态 | 支持多模态模型的推理。此功能与 t.compile 执行模式不完全兼容。 |
文档 |
| 引导式解码 | 支持引导式解码后端,用于生成结构化输出。 | 文档 |
| 指数分桶 | 支持指数分桶间隔而非线性间隔,自动化分桶机制的配置。此功能默认启用,可通过环境变量 VLLM_EXPONENTIAL_BUCKETING=false 禁用。 |
不适用 |
| 数据并行支持 | 将模型权重复制到多个实例或 GPU,以处理独立的请求批次。 | 文档, 示例 |
实验性功能¶
运行时比例缩放修补¶
由于量化模型层中不断变化的常量比例值会触发额外的图编译,FP8 模型的预热时间比 BF16 模型长得多。
您可以通过设置环境变量 RUNTIME_SCALE_PATCHING=1 并选择 INC JSON 配置 <json-options> 提供的硬件对齐的每张量 scale_method 来缩短 FP8 的预热时间。此功能推荐用于更大的模型,例如 70B 和 405B。当与 FP8 模型的 VLLM_EXPONENTIAL_BUCKETING 结合使用时,可以将预热时间缩短高达 90%。
注意
此功能可以缩短 FP8 的预热时间,但可能会降低模型吞吐量 5-20%。未来的版本将改进性能并扩展到更多选项。目前,该功能支持惰性模式 (PT_HPU_LAZY_MODE=1) 和 torch.compile。它支持使用 FP8 执行 Linear 和 FSDPA 层以及在 BF16 和 FP8 之间进行类型转换的 Llama 工作负载。MoE 和卷积选项尚不支持。
琐碎比例优化¶
PT_HPU_H2D_TRIVIAL_SCALES_MODE 标志控制在 RUNTIME_SCALE_PATCHING 模式下对琐碎比例(例如等于 1.0 的比例值)的优化。启用此优化可能会增加预热和编译时间,因为会生成额外的图,但通过减少乘法运算的数量可能会提高运行时性能。
支持以下值
0:无优化 (默认)。1:在cast_to_fp8_v2和cast_from_fp8中移除比例等于 1.0 的值,从而禁用相应的mult_fwd(乘法) 节点。2:应用与模式1相同的优化,并额外移除fp8_gemm_v2中的倒数比例。
计划中的功能¶
未来的插件版本计划支持以下 vLLM 功能
- 滑动窗口注意力
- P/D 分离支持
- 原地权重更新
- 带统一注意力的 MLA
- 多节点支持
已停用的功能¶
| 功能 | 描述 | 原因 |
|---|---|---|
| 多步调度 | 支持多步调度以减少主机开销。 | 已被异步调度取代,可通过 --async_scheduling 参数配置。 |
| 延迟采样 | 支持为异步执行进行延迟采样调度。 | 已被异步调度取代,可通过 --async_scheduling 参数配置。 |