5-LMDeploy量化部署 LLM 实践


本实践采用lmdeploy进行大模型部署,并与transformer库部署大模型进行比较,同时对模型部署时进行了KV cache占用的调整,比较显存的占用。

模型部署与优化

模型部署

模型微调后,需要面临着部署的过程,模型的部署就是将训练好的深度学习模型在特定环境中运行的过程。
在这里插入图片描述
大模型部署面临着如下几个挑战:

  • 计算量巨大
  • 显存开销大
  • 数据交换量大
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

大模型部署的方法

针对以上大模型部署的问题,有一些方法,包括了:

  • 模型剪枝
  • 知识蒸馏
  • 量化

在这里插入图片描述在这里插入图片描述在这里插入图片描述

LMDeploy简介

在这里插入图片描述
在这里插入图片描述

LMDeploy实践

同样,在https://studio.intern-ai.org.cn/console/instance上做实验,使用50%的A100来实验。

环境安装

# 创建虚拟环境
studio-conda -t lmdeploy -o pytorch-2.1.2

# 激活环境
conda activate lmdeploy

# 安装lmdeploy
pip install lmdeploy[all]==0.3.0

创建虚拟环境
创建虚拟环境
创建环境完成
激活并安装lmdeploy
激活环境并安装lmdeploy

准备模型

这里直接使用本次实验共享的模型,采用软链接方式

cd ~

mkdir 5demo

cd 5demo/

ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/5demo

链接模型

使用transformer库运行模型

# 创建下空文件
touch /root/5demo/pipeline_transformer.py

直接将如下代码贴到上面创建的py文件中。

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("/root/5demo/internlm2-chat-1_8b", trust_remote_code=True)

# Set `torch_dtype=torch.float16` to load model in float16, otherwise it will be loaded as float32 and cause OOM Error.
model = AutoModelForCausalLM.from_pretrained("/root/5demo/internlm2-chat-1_8b", torch_dtype=torch.float16, trust_remote_code=True).cuda()
model = model.eval()

inp = "hello"
print("[INPUT]", inp)
response, history = model.chat(tokenizer, inp, history=[])
print("[OUTPUT]", response)

inp = "please provide three suggestions about time management"
print("[INPUT]", inp)
response, history = model.chat(tokenizer, inp, history=history)
print("[OUTPUT]", response)

使用Transformer库运行模型

python pipeline_transformer.py

transformer库运行大模型

使用lmdeploy运行模型

lmdeploy chat /root/5demo/internlm2-chat-1_8b

lmdeploy运行大模型
对话:
运行对话使用lmdeploy来部署同一个模型,明显比使用transformer库要快很多。

设置KV CACHE大小

lmdeploy chat /root/5demo/internlm2-chat-1_8b --cache-max-entry-count 0.4

在这里插入图片描述
显存在设置KV缓存大小后,占用大小明显差异:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wengad

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值