第一部分:LMDeploy知识
从大模型部署的背景、部署方法、以及实际部署中面临的挑战,包括计算量、内存开销、仿存瓶颈和用户请求不确定性等问题入手,通过LMDeploy环境部署、LMDeploy模型对话(chat)、LMDeploy模型量化(lite)、LMDeploy服务(serve)、Python代码集成、LMDeploy运行视觉多模态大模型llava、定量比较LMDeploy与Transformer库的推理速度差异了解实践量化部署大模型。
明了易懂的量化部署实践:
LMDeploy模型量化:
主要包括 KV8量化和W4A16量化。
- 计算密集(compute-bound): 指推理过程中,绝大部分时间消耗在数值计算上;针对计算密集型场景,可以通过使用更快的硬件计算单元来提升计算速度。
- 访存密集(memory-bound): 指推理过程中,绝大部分时间消耗在数据读取上;针对访存密集型场景,一般通过减少访存次数、提高计算访存比或降低访存量来优化
设置最大KV Cache缓存大小
KV Cache是一种缓存技术,通过存储键值对的形式来复用计算结果,以达到提高性能和降低内存消耗的目的。
W4A16量化
LMDeploy使用AWQ算法,实现模型4bit权重量化。
LMDeploy服务架构图
第二部分:基础作业
1.配置LMDeploy运行环境
1.1创建开发机
1.2创建conda环境
1.3安装LMDeploy
2.LMDeploy模型对话(chat)
2.1Huggingface与TurboMind
HuggingFace社区的模型通常采用HuggingFace格式存储,简写为HF格式.
TurboMind推理引擎仅支持推理TurboMind格式的模型。因此,TurboMind在推理HF格式的模型时,会首先自动将HF格式模型转换为TurboMind格式的模型。