跳到内容

常见问题

以下是使用 LLM Compressor 时最常遇到的问题。如果您的疑问未在此列出,请提交一个 issue:LLM Compressor Issues

1. 为什么压缩模型后运行速度没有提高?

这通常是因为您通过 transformers 加载模型,而不是通过支持 compressed-tensors 格式的模型推理服务器加载。通过 transformers 加载模型不会带来推理速度的提升,因为模型的前向传播是在模型解压后进行的。运行时没有对压缩推理的支持。相反,模型应该在 vLLM 或其他支持量化模型优化推理的推理服务器中运行。

2. 使用 LLM Compressor 压缩的模型是否支持 SGlang?

sglang 对 compressed-tensors 模型的支持非常有限,而且不受我们团队维护和测试。大部分集成依赖于 vLLM。为了获得最及时和经过测试的集成,建议使用 vLLM。

3. 如何选择正确的量化方案?

这需要了解您的硬件可用性和推理需求。请参考量化方案指南

4. 压缩所需的内存是多少?

请参考LLM Compressor 的内存要求

5. 应该量化模型的哪些层?

通常,所有线性层都会被量化,除了 lm_head 层。这是因为 lm_head 层是模型的最后一层,对量化很敏感,会影响模型的准确性。例如,这段代码片段展示了如何忽略 lm_head 层

专家混合 (MoE) 模型由于其先进的架构以及门控和路由层等一些组件,对量化也很敏感。例如,这段代码片段展示了如何忽略门控层

多模态模型(例如,视觉-语言模型)将语言模型与用于图像、音频或视频输入以及文本的其他组件配对。在这些情况下,非文本组件会从量化中排除,因为它们通常参数较少且更敏感。

有关更多信息,请参阅量化多模态音频模型量化多模态视觉-语言模型

6. 应该使用什么环境来安装 LLM Compressor?

vLLM 和 LLM Compressor 应该在不同的环境中安装,因为它们可能存在依赖冲突。

7. LLM Compressor 支持多 GPU 吗?

LLM Compressor 通过顺序加载来实现大模型的压缩,其中模型的层被联合加载到单个 GPU 上,进行优化,然后卸载回 CPU。因此,在大多数情况下,一次只使用一个 GPU。

在不需要校准数据的情况下,模型会被分发到所有 GPU,尽管一次只有一个 GPU 用于压缩。

多 GPU 并行优化目前正在开发中,相关信息请关注此issue

8. 在哪里可以了解更多关于 LLM Compressor 的信息?

YouTube 上有多个视频:LLM Compressor 深度解析 + 演练 vLLM 办公室时间 #23 - LLM Compressor 深度解析 vLLM 办公室时间 #31 - vLLM 和 LLM Compressor 更新 通过量化优化 vLLM 性能 | Ray Summit 2024