当前位置: 首页 > news >正文

LMDeploy笔记

随谈模型部署

模型部署包含的内容很多,来聊聊。

访存bottleneck

首先,基于transformer的计算是访存密集型任务。

so?

过去,我们表达模型的性能,通常会用ops,macs这些指标,也计算量来衡量模型的推理时间,这很容易理解,计算的次数越多,花的时间更久。但是对于基于transformer的大模型,由于kqv映射矩阵的每一个元素都要参与计算(脑补一下卷积的过程作对比),会带来巨大的内存访问量。下列两张图用数字更量化的展示了这个问题。

你可能会说,我用的是A100,80G显存,我兵强马壮。但实际上,GPU的架构包含了sRAM和dRAM,和CPU的sRAM和dRAM一样,sram小但是快(d 192KB, 19TB/s),dram/HBM大但是慢(40-80GB with bandwidth 1.5-2.0TB/s)。在计算时,模型的权重需要dram转移到sram,这部分的耗时有可能成为模型推理时间的瓶颈,因此,Flash attention,group atention等一系列优化就孕育而生。

 

剪枝(pruning)

剪枝是一个很出名的概念,因为它翻译的很好,你可以想象树上的枝叶被剪掉的场景,就像linar曾映射的时候,很多权重消失了.

如果它们“消失”了,可以想象的是,我们可以存储更少的权重,需要更小的运算量。

想想当然激动,但是你细想一下,怎么定义“消失”的权重,从数学上,如果一个数值为0,我们可以把它当作消失,但是,实际上,我们表达模型的时候,通常都是用矩阵来表示权重,如果这些权重为0,其实并不能减少计算量,也不能减少模型大小。这就是剪枝这种方法雷声大雨点小的原因,基于非稀疏的矩阵存储形式,很难执行,但是,硬件厂商可以去支持,通过支持稀疏矩阵的推理来实现它。

蒸馏

知识蒸馏KD是AI GodFather Hinton团队首先提出来的,简单来说,让student来学习teacher model,怎么学,有很多研究。

量化

是深度学习加速中最常用的一种技术,早期主要是QAT,PTQ。但是随着大模型的兴起,这一领域蓬勃发展。2 bit量化不是梦。。。

LMDeploy

核心功能

模型高效推理:TurboMind包括:LLaMa结构模型的支持,continuous batch推理模式和可扩展的KV缓存管理器

模型量化压缩:W4A16量化(AWQ)将FP16的模型权重量化为INT4。Weight Only是指仅量化权重,数值计算依然采用FP16

服务化部署:将LLM封装为HTTP API,支持Triton拓展

 

http://www.lryc.cn/news/345282.html

相关文章:

  • Unity 状态机
  • 一毛钱不到的FH8208C单节锂离子和锂聚合物电池一体保护芯片
  • python数据可视化:显示两个变量间的关系散点图scatterplot()
  • 【QT教程】QT6硬件高级编程入门 QT硬件高级编程
  • Android 蓝牙实战——蓝牙电话通话状态同步(二十四)
  • docker 指定根目录 迁移根目录
  • React 项目报错解决办法收录
  • Linux专题-Makefile(1)
  • 机器学习算法应用——CART决策树
  • Sqli-labs第五,六关
  • 上海AI Lab开源首个可替代GPT-4V的多模态大模型
  • Python教程:一文了解PageObject模式
  • SpringBoot 启动时查询数据库数据,并赋值给全局变量
  • 【Python】selenium爬虫常见用法和配置,以及常见错误和解决方法
  • minio上传文件失败如何解决
  • Java自动化测试框架--TestNG详解
  • 【分布式 | 第五篇】何为分布式?分布式锁?和微服务关系?
  • JavaScript百炼成仙自学笔记——13
  • 【skill】小米10让app永驻后台
  • 《架构风清扬-Java面试系列第29讲》聊聊DelayQueue的使用场景
  • 说说SpringBoot自动配置原理
  • bash: docker-compose: 未找到命令
  • linux 权限和权限的设置
  • 基于Springboot的旅游管理系统(有报告)。Javaee项目,springboot项目。
  • springboot3项目练习详细步骤(第一部分:用户业务模块)
  • 推荐算法顶会论文博客笔记合集
  • DRM/RESP无法连接linux上redis的原因
  • vim怎么选中多行后在头部插入#(随手记)
  • Objective-C的对象复制与拷贝选项
  • HTML5 中的离线缓存机制,即应用缓存(Application Cache 或 AppCache)已被废弃并正在被逐步移除