第二期书生浦语大模型训练营第五次笔记

模型部署


模型部署对于任何大模型来说是非常关键的一步。一旦模型经过训练并达到预期的性能指标,就需要将其部署到实际的生产环境中,为最终用户提供服务。但是在部署过程中,大型模型会面临一些独特的挑战。

面临的挑战

大模型在部署方面有一个难题,就是大模型的“大”,导致在很多设备环境很难部署,包括:

  1. 1.计算量巨大
  2. 2.内存开销大
  3. 3.访存瓶颈

这些问题使得在许多设备和环境中部署大型模型变得非常困难,甚至根本无法实现。因此,如何有效地解决这些挑战,成为了大模型部署中必须解决的关键问题。

部署问题的解决方案

为了应对上述挑战,研究人员和工程师提出了多种解决方案,包括知识蒸馏、模型剪枝和量化等技术。

知识蒸馏的思路是利用大型教师模型来指导小型学生模型的训练,使学生模型能够学习到教师模型的知识,从而在保持较好性能的同时大幅减小模型的规模。

模型剪枝则是通过剔除模型中不重要的参数和计算,来缩小模型的尺寸。

量化技术则是将原始的32位或16位浮点数参数压缩为8位或更低位宽的定点数表示,从而降低模型的内存占用和计算量。

量化模型LMDeploy

最关键的就是高效的推理能力。具体来说,包括以下几个方面:

  1. 高效的推理技术,如Continuous Batch、Blocked K/V Cache等,能够极大提高推理的速度和吞吐量。
  2. 内存优化,如通过IntermediateFileCache(LMDeploy)技术,大幅减少内存占用,支持在低配GPU(16GB/24GB)上高效部署大模型。
  3. 支持多种量化类型,如支持Attention的量化,以平衡推理速度和精度。
  4. 良好的工程能力,如端到端的部署流程、高效的并行计算等,提高了部署效率。

最后可以看到LMDeploy在性能的表现上非常优秀,速度提升明显。

部署LMDeploy并对话

配置LMDeploy运行环境

安装好环境,并成功激活

使用transformer运行大模型

使用LMDeploy模型量化(lite)

KV8量化W4A16量化。KV8量化是指将逐 Token(Decoding)生成过程中的上下文 K 和 V 中间结果进行 INT8 量化(计算时再反量化),以降低生成过程中的显存占用。W4A16 量化,将 FP16 的模型权重量化为 INT4,Kernel 计算时,访存量直接降为 FP16 模型的 1/4,大幅降低了访存成本。Weight Only 是指仅量化权重,数值计算依然采用 FP16(需要将 INT4 权重反量化)。

使用KV8量化

设置--cache-max-entry-count参数,控制KV缓存占用剩余显存的最大比例

上下进行对比,第一个设置为0.8,第二个设置为0.5,发现有明显的显存占用降低

使用W4A16量化

进行量化工作,保存新的HF模型。

KV Cache比例再次调为0.4,进行对话

可以发现推理生成的速度很快

LMDeploy服务(serve)


1 启动API服务器

2 命令行客户端连接API服务器

3 网页客户端连接API服务器

  • 33
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值