Shortcuts

W8A8 LLM 模型部署

LMDeploy 提供了使用 8 bit 整数对神经网络模型进行量化和推理的功能。

在开始推理前,需要确保已经正确安装了 lmdeploy 和 openai/triton。可以通过以下命令进行安装:

pip install lmdeploy
pip install triton>=2.1.0

8bit 权重模型推理

如果你需要进行 8 bit 权重模型推理,可以直接从 LMDeploy 的 model zoo 下载已经量化好的 8bit 权重模型。以8bit 的 Internlm-chat-7B 模型为例,可以从 model zoo 直接下载:

git-lfs install
git clone https://huggingface.co/lmdeploy/internlm-chat-7b-w8 (coming soon)

你也可以参考”8bit 权重量化”章节的内容手动将原 16bit 权重量化为 8bit,并保存至 internlm-chat-7b-w8 目录下,操作命令如下:

lmdeploy lite smooth_quant internlm/internlm-chat-7b --work-dir ./internlm-chat-7b-w8

然后,执行以下命令,即可在终端与模型对话:

lmdeploy chat ./internlm-chat-7b-w8 --backend pytorch

启动 gradio 服务

Coming soon…

推理速度

Coming soon…

8bit 权重量化

进行 8bit 权重量化需要经历以下三步:

  1. 权重平滑:首先对语言模型的权重进行平滑处理,以便更好地进行量化。

  2. 模块替换:使用 QRSMNormQLinear 模块替换原模型 DecoderLayer 中的 RSMNorm 模块和 nn.Linear 模块。lmdeploy/pytorch/models/q_modules.py 文件中定义了这些量化模块。

  3. 保存量化模型:完成上述必要的替换后,我们即可保存新的量化模型。

我们在lmdeploy/lite/api/smooth_quantity.py脚本中已经实现了以上三个步骤。例如,可以通过以下命令得到量化后的 Internlm-chat-7B 模型的模型权重:

lmdeploy lite smooth_quant internlm/internlm-chat-7b --work-dir ./internlm-chat-7b-w8

保存之后,你就可以通过调用from_pretrained接口来实例化你的量化模型。

Read the Docs v: latest
Versions
latest
stable
v0.4.1
v0.4.0
v0.3.0
v0.2.6
v0.2.5
v0.2.4
v0.2.3
v0.2.2
v0.2.0
v0.1.0
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.