LMDeploy 大模型量化部署实践

大模型部署背景

模型部署

定义

  • 将训练好的模型在特定软硬件环境中启动的过程,使模型能够接收输入并返回预测结果
  • 为了满足性能和效率的需求,常常需要对模型进行优化,例如模型压缩和硬件加速
    产品形态
  • 云端、边缘计算端、移动端
    计算设备
  • CPU、GPU、NPU、TPU等

大模型特点

内存开销巨大

  • 庞大的参数量。7B模型仅权重就需要14+G内存
  • 采用自回归生成token,需要缓存Attention的k/v,带来巨大的内存开销
    动态shape
  • 请求数不固定
  • Token逐个生成,且数量不定
    相对视觉模型,LLM结构简单
  • Transformers结构,大部分是decoder-only

大模型挑战

设备

  • 如何应对巨大的存储问题?低存储设备(消费级显卡、手机等)T如何部署?
    推理
  • 如何加速token的生成速度如何解决动态shape,让推理可以不间断如何有效管理和利用内存
    服务
  • 如何提升系统整体吞吐量?对于个体用户,如何降低响应时间?

大模型部署方案

技术点

  • 模型并行
  • transformer计算和访存优化
  • 低比特量化
  • Continuous Batch
  • Page Attention

方案
huggingface transformers;专门的推理加速框架

  • 云端
    • Imdeploy
    • vllm
    • tensorrt-llm
    • deepspeed
  • 移动端
    • llama.cpp
    • mlc-llm

LMDeploy简介

LMDeploy 是LLM在英伟达设备上部署的全流程解决方案。包括模型轻量化、推理和服务。项目地址传送门
在这里插入图片描述
在这里插入图片描述

推理性能

静态推理性能

  • 固定 batch,输入/输出 token 数量
    在这里插入图片描述
    动态推理性能
  • 真实对话,不定长的输入/输出
    在这里插入图片描述

核心功能

量化

为什么要做量化

在这里插入图片描述

为什么做 weight only 的量化

两个基本

  • 概念计算密集(compute-bound):推理的绝大部分时间消耗在数值计算上;针对计算密集场景,可以通过使用更快的硬件计算单元来提升计算速度比如量化为W8A8使用INT8TensorCore来加速计算。
  • 访存密集(memory-bound):推理时,绝大部分时间消耗在数据读取上;针对访存密集型场景,一般是通过提高计算访存比来提升性能。

WeightOnly量化一举多得

  • 4bitWeightOnly量化,将FP16的模型权重量化为INT4,访存量直接降为FP16模型的1/4,大幅降低了访存成本,提高了Decoding的速度。
  • 加速的同时还节省了显存,同样的设备能够支持更大的模型以及更长的对话长度。

在这里插入图片描述
如何做WeightOnly 的量化?

  • LMDeploy使用MITHANLAB开源的AWQ算法,量化为4bit模型
  • 推理时,先把4bit权重,反量化回FP16(在Kernel内部进行,从GlobalMemory读取时仍是4bit),依l旧使用的是FP16计算
  • 相较于社区使用比较多的GPTQ算法,AWQ的推理速度更快,量化的时间更短
    在这里插入图片描述

推理引擎TurboMind

在这里插入图片描述
持续批处理
在这里插入图片描述
有状态的推理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

api-server

在这里插入图片描述
可以很方便的从openai切换过来

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值