Self-attention
搜索文档
手撕大模型,KVCache 原理及代码解析
自动驾驶之心· 2025-10-20 14:30
KV Cache技术概述 - KV Cache是大型语言模型推理过程中的关键技术,通过缓存中间计算结果显著提升模型运行效率[1] - 该技术专门针对Transformer自回归推理场景,在文本生成等任务中发挥重要作用[1] KV Cache的工作原理 - 核心思想是缓存历史计算中的键(Key)和值(Value)矩阵,避免重复计算[4] - 生成新token时只需计算新的Q矩阵并与历史KV矩阵进行注意力计算[4][7] - 将时间复杂度从O(n²)降低到O(n),极大提升长序列生成效率[4][7] - 首次生成时计算并缓存所有输入token的K和V矩阵,后续生成只需计算新token的查询矩阵[7] KV Cache的技术实现细节 - 为每个注意力头维护独立缓存,结构为[batch_size, num_heads, seq_len, head_dim][11] - 缓存会随着生成过程动态增长,直到达到模型最大序列长度限制[11] - 采用滑动窗口机制处理超长序列,如Llama 2只保留最近N个token的KV缓存以控制内存占用[12] - 需要权衡最大缓存长度、批量大小和精度选择等参数[15] 内存与性能权衡 - KV Cache提升速度但需要额外内存存储缓存数据[11] - 以GPT-3 175B模型为例,每个token的KV缓存约占用20KB内存[12] - 生成1000个token时单个样本需要约20MB内存,批量处理时内存消耗线性增加[12] 代码实现机制 - 通过维护cache_k和cache_v变量实现历史KV值的存储和更新[14] - 使用缓存时会将新计算的K、V与历史缓存进行拼接[14] - 提供reset_cache方法用于新序列生成时重置缓存状态[14] 优化策略 - 分页KV Cache借鉴内存分页机制,将连续缓存分割成固定大小块提高内存利用率[22] - 动态缓存管理根据输入序列长度动态调整缓存大小[22] - 量化缓存使用INT8或INT4等低精度格式存储,大幅减少内存占用[22] - 选择性缓存对不重要层或注意力头不进行缓存,平衡速度和内存[22]
浙大提出Translution:统一Self-attention和Convolution,ViT、GPT架构迎来新一轮性能突破
AI科技大本营· 2025-10-14 16:17
核心技术突破 - 浙江大学与新加坡国立大学联合提出新型深度神经网络基础操作Translution 旨在融合Self-Attention的自适应建模优势与Convolution的相对位置建模能力 [1] - Translution的核心思想是将卷积操作中的固定权重核转变为由自注意力机制动态生成的自适应核 从而灵活捕获与数据本身内在结构相关且与绝对位置无关的表征 [5] - 该技术实现了Self-attention和Convolution两种操作的统一 被描述为合二为一的性能怪兽 [8] 性能表现 - 基于Translution构建的神经网络在ViT和GPT两大主流架构下均获得性能提升 展现出广阔应用前景 [3] - 在ImageNet数据集上 基于Translution构建的ViT取得明显优于Self-attention的效果 [4] - 在自然语言建模任务中 基于Translution构建的GPT模型在不同参数规模下均超越Self-attention 例如GPT-A-160架构下困惑度从60.40降至56.26 [4] 行业背景与影响 - 当前基于Self-Attention的Transformer是深度学习主流架构 但其Scaling Law红利正逐渐触顶 单纯增加参数和训练数据难以带来性能提升 [5] - Translution是对上述行业挑战的有力回应 被视为探索新型神经网络以持续推动深度学习繁荣的重要尝试 [5] - 该技术对算力特别是GPU显存提出更高要求 可能进一步加剧人工智能领域的资源差距 [6]