LMDeploy 大模型量化部署实践

LMDeploy 大模型量化部署实践

视频地址:https://www.bilibili.com/video/BV1iW4y1A77P
文档:https://github.com/InternLM/tutorial/blob/vansin-patch-4/lmdeploy/lmdeploy.md
LMDeploy Repo: https://github.com/InternLM/lmdeploy.git

主要内容

包括三个部分,1. 背景,2. LMDeploy 简介,3. 动手实践
在这里插入图片描述

大模型部署背景

在这里插入图片描述
7B 模型参数内存:7 * 1B * 2 (fp16) = 7 * 1G * 2 Byte = 14G Byte
在这里插入图片描述

LMDeploy 简介

在这里插入图片描述
下图中,左边主要对比 LMDeploy 自身在量化前后的性能;右边主要对比 vLLM 和 LMDeploy 的性能对比。
在这里插入图片描述
量化后,显存占用量显著减少,其中包括权重和 KV Cache。
在这里插入图片描述
由于 GPU 的计算需要将权重从 GPU 主存 -> GPU 共享内存,因此量化显著减少了数据的传输量,提高了整体效率。
在这里插入图片描述
AWQ 算法全称:Activation-aware Weight Quantization
GPTQ 算法全称:Accurate Post-Tra

<think>嗯,用户问的是如何使用LMDeploy部署大模型的具体步骤。首先,我需要回忆一下之前学过的关于LMDeploy的知识。记得引用里的内容提到过环境配置、服务部署、模型转换这些步骤。特别是引用[1]里详细说明了安装步骤和模型部署的方式,可能用户需要的是分步骤的指南。 首先,环境配置肯定是第一步。用户可能需要安装Python、LMDeploy库,可能还需要配置Conda环境。引用[1]提到要明确操作系统和安装步骤,所以应该先让用户安装Miniconda,然后创建环境,安装PyTorch和LMDeploy。这部分需要检查是否要包括CUDA的支持,因为大模型通常需要GPU加速。 接下来是模型下载。InternLM-Chat-7B这样的模型可能需要从Hugging Face或者ModelScope获取。这里需要确保用户知道如何下载模型,可能需要git lfs或者其他工具,但引用里没有详细说明下载步骤,可能需要提醒用户参考官方文档。 然后是模型转换部分,包括在线和离线转换。引用[3]提到使用不同模型进行量化,但用户可能用的是7B的模型,所以需要说明如何将HF格式转换为TurboMind格式。这里要提到lmdeploy convert命令,参数设置如model_name和model_format。 服务部署阶段,用户可能有不同的需求,比如本地对话、Gradio网页或者API服务。引用[1]和[4]提到多种部署方式,所以需要分别说明每个步骤。比如,启动API服务需要指定模型路径和端口,同时可能需要调整TP参数,根据GPU数量来设置。 模型量化部分,用户可能关心如何减小模型大小和提升速度。引用[3]提到量化需要较长时间,所以建议用户使用较小的模型进行测试。需要解释不同的量化方法,比如KV8和W4,以及如何执行这些量化命令。 最后,验证部署是否成功,可能需要运行测试脚本或者使用curl命令调用API,确保模型能正确响应。同时,用户可能遇到环境依赖问题,比如CUDA版本不匹配,或者显存不足,需要给出常见问题解答。 在思考过程中,还要注意用户可能的实际场景,比如是否在本地机器还是云服务器上部署,是否有足够的GPU资源。此外,引用[5]提到AutoDL平台,可能用户是在类似平台上操作,需要适配相关步骤。需要确保步骤清晰,命令准确,避免遗漏关键参数或配置。</think>### LMDeploy部署大模型详细步骤指南 #### 一、环境配置 1. **安装Miniconda**(推荐Python 3.10环境) ```bash wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh ``` 2. **创建虚拟环境** ```bash conda create -n lmdeploy python=3.10 -y conda activate lmdeploy ``` 3. **安装PyTorch与LMDeploy** ```bash pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118 pip install lmdeploy[all] ``` #### 二、模型下载 以InternLM-Chat-7B为例: ```bash git clone https://www.modelscope.cn/Shanghai_AI_Laboratory/internlm2-chat-7b.git ``` #### 三、模型转换 1. **在线转换**(动态加载) ```bash lmdeploy chat /path/to/internlm2-chat-7b ``` 2. **离线转换**(生成TurboMind格式) ```bash lmdeploy convert internlm2-chat-7b --model-name internlm2-7b --model-format hf ``` #### 四、服务部署 1. **本地对话模式** ```bash lmdeploy chat ./workspace ``` 2. **网页Gradio部署** ```bash lmdeploy serve gradio ./workspace --server_name 0.0.0.0 --server_port 7860 ``` 3. **API服务部署** ```bash lmdeploy serve api_server ./workspace --server_name 0.0.0.0 --server_port 23333 --tp 1 ``` #### 五、模型量化(以W4A16为例) ```bash lmdeploy lite auto_awq /path/to/internlm2-chat-7b --calib-dataset ptb --calib-samples 128 --calib-seqlen 2048 --w-bits 4 --w-group-size 128 ``` #### 六、验证部署 ```python from lmdeploy import pipeline pipe = pipeline('./workspace') response = pipe(['你好']) print(response[0].text) ``` ### 关键参数说明 1. `--tp`:张量并行度,需与GPU数量匹配 2. `--cache-max-entry-count`:KV缓存比例,建议0.5-0.8 3. `--quant-policy`:量化策略,可选0(FP16)或4(INT4) ### 常见问题 1. **CUDA版本不匹配**:需确保CUDA版本与PyTorch对应(建议11.8+) 2. **显存不足**:可尝试量化或减小`--cache-max-entry-count` 3. **API调用示例**: ```bash curl http://localhost:23333/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "internlm2-7b", "messages": [{"role": "user", "content": "你好"}]}' ``` [^1][^3][^4]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值