大模型性能优化指南:MLA机制与KV Cache技术解析
文章介绍了提升大模型训练效率和降低成本的方法,重点分析了DeepSeek-V2模型中的多头潜在注意力(MLA)机制,通过信息压缩技术显著降低计算复杂度和KV缓存占用,同时保持模型性能。此外,文章详细解释了KV Cache的工作原理、内存管理机制及优化策略,为提高大模型训练和推理效率提供了实用指导。大模型层出不穷,但是如何提升大模型训练效率,减少训练成本,提升模型效果(跑分),一直是大家的研究方向。
文章介绍了提升大模型训练效率和降低成本的方法,重点分析了DeepSeek-V2模型中的多头潜在注意力(MLA)机制,通过信息压缩技术显著降低计算复杂度和KV缓存占用,同时保持模型性能。此外,文章详细解释了KV Cache的工作原理、内存管理机制及优化策略,为提高大模型训练和推理效率提供了实用指导。
大模型层出不穷,但是如何提升大模型训练效率,减少训练成本,提升模型效果(跑分),一直是大家的研究方向。
近期有媒体报道,阿里巴巴、百度已开始采用内部自主设计的芯片训练 AI 大模型。阿里巴巴在最新一期财报交流会中提到,面对全球 AI 芯片供应及政策变化,公司准备 “后备方案”。而百度旗下 “昆仑芯 P800” 也同时在被内部和外部客户采用。9 月 16 日晚间,央视《新闻联播》节目报道了 “中国联通三江源绿电智算中心项目建设成效”,其中就披露了阿里旗下平头哥最新研发的面向人工智能的 PPU 芯片,其各项主要参数指标均超越了英伟达 A800,与 H20 相当。
百度阿里有这个底蕴可以自已做大模型芯片,软硬件结合。但是不是所有公司都能有这个实力,主流的方向还是从系统架构,算法设计上来提升。我们看看DeepSeek是怎么做的,虽然这个论文发表的比较早了,现在看看还是有学习意义。
DeepSeek-V2从DeepSeek LLM、DeepSeekMoE迭代而来,且用到了DeepSeekMath中的GRPO算法,
参数规模虽然达到了庞大的236B,但由于其MoE的结构,使得其中每个token激活仅21B的参数,且支持128K的上下文。
先复习一下传统的多头注意力:
再看下mla,MLA利用低秩键值联合压缩(low-rank key-value joint compression)来降低推理时的KV Cache开销——相当于low-rank joint compression for keys and values to reduce KV cache,且性能不输于MHA(论文中说的是性能比MHA还更好) 。
潜在注意力MLA
1. 先从注意力机制说起
想象一下,你正在阅读一篇文章。你的大脑并不会同时平等关注所有文字,而是会有重点地聚焦在关键词和重要句子上。这种"选择性关注"的能力,就是注意力机制的核心思想。
在人工智能领域,注意力机制让AI模型能够像人类一样,在处理信息时有选择地关注输入数据中最重要的部分。比如在阅读句子"那只黑色的猫坐在柔软的垫子上"时,AI需要理解"黑色的"修饰的是"猫",而不是"垫子"。
2. 传统注意力机制的问题
传统的多头注意力机制就像是一个过于认真的助理,它要把所有信息都完整地记住和处理。假设它有8个"思考通道"(8个头),每个通道都独立处理所有信息。
这种做法虽然效果好,但效率很低:
- 计算量大:序列长度增加时,计算量呈平方级增长
- 内存占用高:需要存储大量中间结果,占用大量显存
- 处理长内容困难:面对长文档或长视频时,速度会显著下降
3. MLA的创新解决方案
DeepSeek团队提出的多头潜在注意力(MLA)机制采用了一种更聪明的方法。它引入了一个"信息压缩器"——潜在变量(Latent Variables),作为信息的中间表示。
3.1 核心思想:信息压缩与中转站
想象一下大型物流公司的配送系统。如果每个包裹都要从总部直接发往每个客户,效率会很低。实际做法是:
- 总部先将包裹发往区域中转站
- 中转站对包裹进行整理和优化
- 从中转站发往最终客户
MLA中的潜在变量就类似于这些"区域中转站",它们:
- 压缩信息:提取关键信息,减少数据量
- 提高效率:减少直接计算,降低资源消耗
- 保持效果:保留重要信息,不影响最终效果
3.2 MLA的两阶段处理过程
MLA的工作过程可以分为两个阶段:
第一阶段:信息压缩
- 将输入的详细信息压缩到低维潜在空间,分别对q和kv进行压缩然后升维。
- 提取关键特征,忽略次要细节
第二阶段:智能处理
- 在压缩后的空间中进行注意力计算,需要对q、k做RoPE编码,并对其中的Key位置编码的部分进行Cache,从而在推理时不需要对Key进行位置编码的计算,提高了推理效率。
- 将结果映射回原始空间
4. MLA的实际效果和优势
通过这种创新设计,MLA实现了效率与效果的平衡:
- 大幅提升计算效率:计算复杂度从O(n²d)降至O(nkd),其中k远小于d
- 显著降低内存占用:KV缓存减少约75%,节省大量显存
- 保持模型性能:在多数任务中性能损失小于1%,有些任务甚至表现更好
- 支持长序列处理:能够高效处理长文档、高分辨率图像和视频数据
内存中的KV cache
我们本地部署大模型都对显卡和显存有要求,大模型跑在显存里面的,那么它是怎么利用显存的呢?
我们先看看GPU的内存是什么样的,下面这个图展示了cpu和gpu的不同。
HBM(High Bandwidth Memory,高带宽存储器)是一种基于3D堆叠工艺的高性能DRAM内存技术,由美国超微半导体(AMD)和韩国SK海力士共同发起,旨在实现高带宽数据传输,尤其满足人工智能、高性能计算和图形处理等领域对内存性能的苛刻需求。
在 vLLM 实例上,显存分配可通过 torch 框架管理分为两大类:torch 类显存、非 torch 类显存。torch 类显存是由 torch 相关 API 触发的,其内容包括:
-
权重(weights),与模型大小正相关,固定的 tensor 值;
-
激活值(activation),运算过程中 tensor 值;
-
KV Cache(KV cache),KV 的 blocks,由 torch 创建 tensor 组成;
-
其他显存(Others),用 torch 模块或者 API 创建的显存,比如 Sampler() 属于 torch.nn 模块;
本地启动大模型大家都知道会先把模型数据加载到内存中,然后根据用户的prompt进行推理计算,下面是一个Qwen2.5-7b模型加载到内存,可以看到kv cache占用内存超过了30%还多。当然这是推理过程,和训练大模型还不一样。
为什么要有kv cache技术呢,它是如何提升大模型性能的呢?
自回归模型
首先大家都知道,我们的大模型都是自回归模型,就是prompt来了之后,预测下一个字符,然后要把下一个字符放到输入里面,继续在预测下下个字符。
按照注意力的计算公式,每次计算注意力都要拿当前所有的Q和之前所有的k计算相似度,然后softmax变换之后和原来的值v相乘,得到注意力值,多头注意力就是同样的注意力计算步骤计算多次。
你可能已经发现,之前计算过的q再次计算了一遍。我们可以把q的矩阵拆解一下,最后一行单独拿出来计算,然后和之前缓存的kv计算值拼接就可以。
下图中第一行是没有cache的,需要重复计算Token1-2-3,第二行是有cache,只需计算最后一个。
KV Cache 在初始化完成后,可以认为是一个以 blocks 为单位的 tensor 区域,其使用与分配由 KV manager 负责,管理的基本原理是「paged-attention」。
KVcache内存管理
当然,内存也不是无限大的,所以kv cache有个内存管理的机制,类似于前端浏览器的引用计数法。
- 首先检查是否有足够的空间为新请求来开辟 block;从 cache block 检查是否可以复用,可以复用从 free 队列剔除,引用计数+1;若无复用数据从 free 队列中头中弹出一个 block 用于写数据,block 写了数据之后被 cached block 标记。
内存释放:request 使用完后,将 block 送回 free 队列里面,如果是 cached block,引用计数-1,最后的这个 block 最先放入队列中,它可能未被 cache;
淘汰策略:根据 LRU 策略淘汰队首的 block cache,并从 cached blocks 字典中去除记录。
KVcache内存优化
在实际部署中,为了进一步提升 KV Cache 的效率,还会采用以下优化策略:
- 分页KVCache(Paged KV Cache):借鉴内存分页机制,将连续的 KV 缓存分割成固定大小的块,提高内存利用率,代表实现有 vLLM。
- 动态缓存管理:根据输入序列长度动态调整缓存大小,在批量处理时优化内存分配。
- 量化缓存:使用 INT8 或 INT4 等低精度格式存储 KV 缓存,在牺牲少量精度的情况下大幅减少内存占用。
- 选择性缓存:对于一些不重要的层或注意力头,选择性地不进行缓存,平衡速度和内存。
如何系统学习掌握AI大模型?
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源
,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享
!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 大模型行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码
,免费领取【保证100%免费
】
更多推荐
所有评论(0)