书生·浦语大模型实战营-第五节
输入“/”快速插入
书生·浦语大模型实战营-第五节
飞书用户6850
2月16日创建
文档:
https://github.com/InternLM/tutorial/blob/main/lmdeploy/lmdeploy.md
视频:
大模型部署背景
模型部署
定义
•
将训练好的模型在特定软硬件环境中启动的过程,使模型能够接收输入并返回预测结果
•
为了满足性能和效率的需求,常常需要对模型进行优化,例如模型压缩和硬件加速
产品形态
云端、边缘计算端、移动端
计算设备
CPU, GPU, NPU, TPU等
大模型部署的特点
•
显存开销巨大
◦
庞大的参数量,7B 模型仅权重就需要 14GB+ 的显存(FP16类型,1个参数2个 Bytes,
7e9*2 个 => 14e9 Bytes = 14 GigaBytes
)
◦
自回归生成 token(token by token),需要缓存 Attention 的 K 和 V(中间结果,历史信息),带来巨大的显存开销
•
动态 shape
◦
请求数不固定(bs不固定)
◦
Token 逐个生成,且数量不定
•
LLM 结构简单(相对 LVM)
◦
Transformer 结构,大部分是 Decoder-Only
大模型部署的挑战
•
设备(性能不足设备
/
脱机保密设备)
◦
如何应对巨大的存储问题?低存储设备(消费级显卡、手机等)如何部署?
•
推理
◦
如何加速 token 的生成速度
◦
如何解决动态 shape,让推理可以不间断(1 个 token 的 completion 和 10000 个 tokens 的 completion 肯定不能作为 1 个 batch 在 generate 结束时同时返回)
◦
如何有效管理和利用显存(模型权重本身和历史信息)
•
服务(提供 API 的服务器)
◦
如何提升系统整体吞吐量?
◦
对于个体用户,如何降低响应时间?(RT, Response Time)
大模型部署的方案
技术点
•
模型并行
•
低比特量化
•
Page Attention
•
transformer 计算和访存优化
•
Continuous Batch(解决动态 shape)
•
...
方案
•
huggingface transformers
•
专门的推理加速框架
云端
•
Imdeploy