【书生·浦语大模型实战营】第5节:LMDeploy量化部署实践(笔记及作业)

【书生·浦语大模型实战营】第5节:LMDeploy量化部署实践(笔记及作业)

笔记

视频:https://www.bilibili.com/video/BV1tr421x75B/?spm_id_from=333.788&vd_source=724260feabc8c4fa14ba533aaff72464

文档:Tutorial/lmdeploy/README.md at camp2 · InternLM/Tutorial (github.com)

主要介绍了大模型的部署背景、大模型部署方法,并且简单介绍了LMDeploy

个人感觉LMDeploy和XTuner都是非常实用的工具,不过LMDeploy更偏向应用层面

在这里插入图片描述

大模型部署大多都是把训练好的模型部署到本地或者服务器上,但是大模型部署一般对资源要求比较高

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

大模型部署方法分为模型剪枝、知识蒸馏、量化

LMDeploy简介

在这里插入图片描述

作业

配置LMDeploy运行环境

环境要求cunda12.2和0.3.0版本的imdeploy

studio-conda -t lmdeploy -o pytorch-2.1.2

安装LMDeploy

conda activate lmdeploy
pip install lmdeploy[all]==0.3.0

在这里插入图片描述

在这里插入图片描述

以命令行方式与InternLM2-Chat-1.8B模型对话

从开发机的共享目录获取模型

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

构建pipeline_transformer.py文件并运行

在这里插入图片描述

在这里插入图片描述

通过以下指令实现与模型的对话

lmdeploy chat /root/internlm2-chat-1_8b

在这里插入图片描述

很显然internlm2-chat-1_8b不喜欢抓蟑螂吓老头

设置KV Cache最大占用比例为0.4,开启W4A16量化,以命令行方式与模型对话。

量化模型

lmdeploy lite auto_awq \
   /root/internlm2-chat-1_8b \
  --calib-dataset 'ptb' \
  --calib-samples 128 \
  --calib-seqlen 1024 \
  --w-bits 4 \
  --w-group-size 128 \
  --work-dir /root/internlm2-chat-1_8b-4bit

在这里插入图片描述

运行

lmdeploy chat /root/internlm2-chat-1_8b-4bit --model-format awq --cache-max-entry-count 0.04

在这里插入图片描述

很显然internlm2-chat-1_8b-4bit也不太喜欢读研

显存占用

在这里插入图片描述

以API Server方式启动 lmdeploy,开启 W4A16量化,调整KV Cache的占用比例为0.4,分别使用命令行客户端与Gradio网页客户端与模型对话。

启动API Server

lmdeploy serve api_server \
    /root/internlm2-chat-1_8b-4bit \
    --model-format hf \
    --quant-policy 0 \
    --server-name 0.0.0.0 \
    --server-port 23333 \
    --tp 1 \
    --cache-max-entry-count 0.4

在这里插入图片描述

  • 命令行客户端对话

    在这里插入图片描述

  • 网页客户端对话

    在这里插入图片描述
    显然,internlm2-chat-1_8b也回答不上来是更喜欢爸爸还是更喜欢妈妈

使用W4A16量化,调整KV Cache的占用比例为0.4,使用Python代码集成的方式运行internlm2-chat-1.8b模型。

pipeline.py内容修改kv cache内存占比,并把模型改为w4a16量化后的模型

from lmdeploy import pipeline, TurbomindEngineConfig

# 调低 k/v cache内存占比调整为0.4
backend_config = TurbomindEngineConfig(cache_max_entry_count=0.4)

pipe = pipeline('internlm2-chat-1_8b-4bit',
                backend_config=backend_config)
response = pipe(['Hi, pls intro yourself', '上海是','蟑螂是'])
print(response)

运行

在这里插入图片描述

使用 LMDeploy 运行视觉多模态大模型 llava gradio demo。

运行结果1

在这里插入图片描述

运行结果2

在这里插入图片描述

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值