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

LLM优化技术——Paged Attention

在Transformer decoding的过程中,需要存储过去tokens的所有Keys和Values,以完成self attention的计算,称之为KV cache。

(1)KV cache的大小

可以计算存储KV cache所需的内存大小:

batch * layers * kv-heads * n_emd * length * 2(K & V) * bytes

对于Llama-2-70B(MHA),KV cache需要的内存大小为:

batch * 80 * 64 * 128 * N * 2 * 2(FP16) = 2.5 MB * BS * N

(2)KV cache中存在内存浪费

  • 内部碎片化 (Internal Fragmentation): 由于输出长度未知而过度分配内存。

  • 预留 (Reservation): 当前步骤未使用,但未来步骤需要的内存。

  • 外部碎片化 (External Fragmentation): 由于不同请求序列长度不同导致的内存空隙。

(3)Paged Attention

在不连续的内存空间中存储连续的keys和values

http://www.dtcms.com/a/224787.html

相关文章:

  • VC++: identifer “M_PI“ is undefined
  • C++11新特性lambda的使用详解
  • 2025-05-31 Python深度学习10——模型训练流程
  • 【Dv3Admin】工具请求配置文件解析
  • 计算晶体结构和电子能带的软件
  • Linux命令之ausearch命令
  • 【HW系列】—日志介绍
  • Linux531rsync定时同步 再回忆
  • 一文认识并学会c++模板初阶
  • 随机响应噪声-极大似然估计
  • 每日算法-250531
  • resubmit v1.2.0 新特性支持类级别防止重复提交
  • 深入剖析Java类加载机制:双亲委派模型的突破与实战应用
  • tmux基本原理
  • Mybatis:灵活掌控SQL艺术
  • 探索DeepSeek提示词:关键策略与实用场景
  • ServletComponentScan 注解的作用
  • 某乎x-zse-96 破解(补环境版本)
  • win32相关(临界区)
  • 使用curlconverter网站快速生成requests请求包
  • day28 python训练营 类的定义与方法
  • 「 扑翼飞行器 」悬停飞行的信号串联滤波器设计
  • Typescript学习教程,从入门到精通,TypeScript 配置管理与编译器详解(19)
  • docker安装和镜像源替换
  • Python打卡训练营Day41
  • LCS 问题解释
  • CppCon 2014 学习:Practical Functional Programming
  • MCP架构深度解析:从基础原理到核心设计
  • ROS2与Unitree机器人集成指南
  • 【Java基础05】面向对象01