小红书 算法一面 一 MHA、MQA 这些核心思想是什么## 一、MHAMulti-Head Attention多头注意力核心思想MHA是Transformer架构2017年Vaswani等人提出的**核心组件**其核心思想可概括为**通过多个并行的注意力头从不同特征子空间同时捕捉输入序列的多维度依赖关系最后融合各头信息获得更全面的上下文表示** 。### 1. 核心创新点- **多视角信息捕捉**突破单头注意力局限让模型像人一样从多个视角观察输入每个头专注于不同类型的关系如语法结构、语义关联、指代关系等- **子空间并行建模**将Q、K、V通过独立线性变换映射到多个低维子空间每个子空间独立计算注意力提升特征表达能力- **信息融合增强**各头输出拼接后再通过线性变换整合实现多维度信息的协同捕捉### 2. 工作流程1. **线性映射**输入向量通过三个独立线性层生成Q、K、V矩阵2. **头部分割**将Q、K、V各分割为h个并行头部如8头、16头每个头部维度为d_k d_model/h3. **独立计算**每个头部独立执行缩放点积注意力计算4. **结果合并**拼接所有头部输出通过最终线性层得到MHA输出### 3. 数学表达MultiHead(Q,K,V) Concat(head₁, head₂, ..., headₕ) · W^Owhere headᵢ Attention(Q·W^Qᵢ, K·W^Kᵢ, V·W^Vᵢ)W^Qᵢ, W^Kᵢ, W^Vᵢ为第i个头的独立投影矩阵W^O为最终输出投影矩阵## 二、MQAMulti-Query Attention多查询注意力核心思想MQA是2019年提出的MHA变体核心思想为**在保持多个查询头Multi-Query的同时让所有查询头共享同一组键K和值V以牺牲少量表达能力为代价大幅降低计算与内存开销提升推理速度** 。### 1. 核心创新点- **KV共享机制**所有Q头共享单组K和VK和V仅保留1个头而非h个头- **计算与内存优化**将KV缓存大小从O(h·L·d_k)降至O(L·d_k)L为序列长度显著减少推理时的内存访问与计算量- **生成效率提升**特别适合自回归生成任务如大模型文本生成能将decoder生成token速度提升2倍以上### 2. 工作流程1. **线性映射**Q通过h个独立线性层生成h个查询头K和V仅通过1个线性层生成1组键值对2. **注意力计算**每个Q头与同一组K、V计算注意力权重3. **结果合并**拼接所有Q头输出通过线性变换得到最终结果### 3. 数学表达MultiQueryAttention(Q,K,V) Concat(head₁, head₂, ..., headₕ) · W^Owhere headᵢ Attention(Q·W^Qᵢ, K·W^K, V·W^V) (∀i)W^K和W^V为所有头共享的投影矩阵## 三、MHA与MQA核心差异对比| 对比维度 | MHA | MQA ||---------|-----|-----|| **核心设计** | Q、K、V均有h个头相互独立 | Q有h个头K、V仅1个头所有Q头共享 || **表达能力** | 强能捕捉更丰富的多维度关系 | 略弱牺牲部分多子空间表达能力 || **计算复杂度** | O(h·L²·d_k) | O(L²·d_k)降低h倍 || **内存开销** | 高KV缓存随h线性增长 | 低KV缓存与h无关 || **推理速度** | 较慢 | 快尤其适合长序列生成任务 || **适用场景** | 对表达能力要求高的任务如机器翻译、文本理解 | 对推理速度要求高的生成任务如大模型部署、实时对话 |## 四、总结MHA的核心是**分而治之的多视角建模**通过多个独立注意力头捕捉输入中复杂的多维度关系是Transformer模型强大表达能力的基础MQA的核心是**共享高效的性能优化**通过KV共享机制在保持多查询头的同时大幅降低开销是大模型高效推理的关键技术之一。两者分别代表了注意力机制在表达能力与计算效率两个方向的设计权衡。MLA 又是什么在哪里降维为什么需要对剩下的部分做 rope?### 一、核心需求复述你想了解MLA多头线性注意力的核心概念明确在MLA架构中**降维操作具体发生的位置**以及为何要对MLA处理后剩余的特征部分应用RoPE旋转位置编码。我会从基础概念到具体细节结合和MHA/MQA的对比帮你理清这些问题。### 二、MLAMulti-Head Linear Attention多头线性注意力核心解析#### 1. MLA的核心思想MLA是标准MHA的**长序列优化变体**核心目标是解决MHA的O(L²)计算复杂度L为序列长度问题——MHA在长序列如L10000场景下计算量会爆炸式增长而MLA通过**核函数近似**将注意力复杂度降至O(L)同时保留“多头”设计的多视角建模能力。简单来说- MHA是“全局两两比对”每个token和所有token算注意力MLA是“全局投影求和”通过核映射将K/V投影到特征空间后求和避免两两比对- 保留“多头”设计让每个头独立执行线性注意力计算兼顾多视角建模和长序列效率。MLA的核心公式简化版# 线性注意力核心用核映射φ替换MHA的点积将注意力从两两比对转为求和LinearAttention(Q,K,V) φ(Q) · (φ(K)ᵀ · V) / Z# MLA则是对每个头独立计算后拼接MLA(Q,K,V) Concat(head₁, head₂, ..., headₕ) · W^Owhere headᵢ LinearAttention(Q·W^Qᵢ, K·W^Kᵢ, V·W^Vᵢ)#### 2. MLA中降维的具体位置MLA的降维操作主要发生在**两个关键阶段**核心目的是控制计算量、聚焦关键特征且降维逻辑和MHA一脉相承但适配了线性注意力的特性##### 阶段1多头拆分时的维度投影核心降维这是和MHA一致的基础降维步骤发生在注意力计算**之前**- 输入特征维度为d_model如768、4096先通过线性层将Q/K/V分别投影到h × d_k维度h为头数d_k为单头维度满足h × d_k d_model- 例如d_model768、h12时每个头的d_k64相当于将768维的全局特征拆分为12个64维的子空间特征——这一步是**最核心的降维**将高维特征拆分为低维子空间避免单头计算量过大。##### 阶段2线性注意力核映射时的可选降维优化降维这是MLA特有的降维步骤发生在核函数映射阶段- 线性注意力的核函数如ReLU、Softmax、正余弦核会将K/V从d_k维进一步投影到更低的d_r维d_r d_k如64→32- 目的是进一步降低φ(K)ᵀ · V的计算量从O(L·d_k²)降至O(L·d_k·d_r)同时过滤噪声聚焦核空间的关键特征。##### 总结降维位置输入(d_model)↓ 阶段1线性投影拆分核心降维Q/K/V(h × d_k)↓ 阶段2核映射可选降维MLA特有φ(Q)/φ(K)/φ(V)(h × d_r)↓ 线性注意力计算各头输出(h × d_r)↓ 拼接线性投影最终输出(d_model)#### 3. 为什么要对MLA剩余部分做RoPE先明确RoPERotary Position Embedding旋转位置编码的核心作用是**将位置信息融入注意力计算且能捕捉token间的相对位置关系**——这是解决Transformer“位置无关”问题的关键。对MLA剩余部分通常是注意力计算后的特征、或未参与核映射的Q/K部分加RoPE核心原因有3点##### 原因1MLA的线性近似会丢失位置信息标准MHA通过“两两token比对”天然能隐含位置关系不同位置的K/V和Q计算的注意力权重不同但MLA为了降低复杂度将注意力计算转为“全局求和”φ(K)ᵀ · V是对所有token的K/V求和**直接丢失了token的位置信息**——如果不加位置编码MLA无法区分“我吃饭”和“饭吃我”这类语序差异。##### 原因2降维会弱化位置表征RoPE可精准补全MLA的两次降维尤其是核映射降维会压缩特征空间即使原始输入加了绝对位置编码降维后位置信息也会被稀释而RoPE的优势是- 不额外增加特征维度通过旋转矩阵将位置信息融入Q/K的向量中适配MLA降维后的低维特征空间- 捕捉**相对位置**而非绝对位置更符合自然语言的语义逻辑比如“苹果”和“吃”的关系只和两者的相对距离有关和绝对位置无关这对长序列场景MLA的核心适用场景至关重要。##### 原因3RoPE与MLA的计算逻辑兼容MLA的核心是“线性计算”而RoPE的旋转操作也是线性变换矩阵乘法不会破坏MLA的O(L)复杂度优势如果用其他位置编码如绝对位置编码、ALiBi要么增加计算量要么无法适配长序列的相对位置需求。#### 补充RoPE在MLA中的典型应用方式RoPE通常加在**MLA降维后的Q/K上**即阶段1降维后、阶段2核映射前流程如下输入(d_model)↓ 线性投影拆分降维到h × d_kQ/K/V(h × d_k)↓ 对Q/K应用RoPE融入相对位置Q_rot/K_rot(h × d_k)↓ 核映射可选降维到h × d_rφ(Q_rot)/φ(K_rot)/φ(V)(h × d_r)↓ 线性注意力计算各头输出(h × d_r)↓ 拼接线性投影最终输出(d_model)### 三、总结1. **MLA核心**多头线性注意力通过核函数近似将MHA的O(L²)复杂度降至O(L)兼顾多头多视角建模和长序列计算效率是长文本处理的核心注意力变体2. **MLA降维位置**核心降维在“多头拆分时的线性投影”d_model→h×d_k可选降维在“核映射阶段”d_k→d_r均为控制计算量、聚焦关键特征3. **RoPE的作用**MLA的线性求和逻辑会丢失位置信息降维又会弱化位置表征RoPE能以线性复杂度融入相对位置信息且不破坏MLA的效率优势是MLA适配长序列任务的关键补充。

相关新闻

最新新闻

Swift 变量详解:从基础到实战

Swift 变量详解:从基础到实战

1. 引言变量是 Swift 编程中最基础也最重要的概念之一。无论是存储用户输入、计算结果还是管理应用状态,都离不开变量的使用。本文将从变量的声明方式、命名规范、类型推断到实际应用场景,结合丰富的代码实例,帮助你全面掌握 Swift 变量。2. …

2026/8/16 22:50:13
智能体记忆系统设计:从向量数据库到个性化助手的工程实践

智能体记忆系统设计:从向量数据库到个性化助手的工程实践

1. 项目概述:从“金鱼脑”到“过目不忘”的智能体进化 在智能体(Agent)的开发与应用中,我们常常会遇到一个令人头疼的瓶颈:智能体表现得像个“金鱼”,对话一结束,上下文就清零,下次互…

2026/8/16 22:50:13
Unity Tile Palette 2D地图编辑:从基础绘制到Rule Tile智能生成

Unity Tile Palette 2D地图编辑:从基础绘制到Rule Tile智能生成

1. 从“手绘”到“拼图”:为什么我们需要瓦片调色板 如果你是从零开始接触Unity 2D游戏开发,或者是从其他引擎(比如GameMaker、Godot)转过来的,你可能会对Unity的2D工作流感到一丝困惑。尤其是在处理关卡、地图这些需要…

2026/8/16 22:50:13
智能体环路工程实战:从理论到生产的Agent核心循环构建

智能体环路工程实战:从理论到生产的Agent核心循环构建

1. 项目概述:从概念到落地的鸿沟“智能体环路工程”,听起来是不是有点玄乎?我第一次听到这个词,是在一个技术分享会上,主讲人滔滔不绝地讲着Agent如何感知、决策、行动,再通过环境反馈形成闭环。理论很完美…

2026/8/16 22:50:13
Callback参数安全漏洞深度解析:从JSONP机制到XSS攻击实战

Callback参数安全漏洞深度解析:从JSONP机制到XSS攻击实战

1. 项目概述:从Callback到XSS的业务安全攻防实战 最近在复盘一些企业级渗透测试的案例,发现一个挺有意思的现象:很多开发团队对传统的SQL注入、XSS跨站脚本这些“经典”漏洞的防护已经做得比较到位了,常规的扫描器也很难再扫出什么…

2026/8/16 22:50:13
手把手教你学 Simulink—— 群体无人机协同覆盖路径生成

手把手教你学 Simulink—— 群体无人机协同覆盖路径生成

目录 一、为什么群体覆盖要进 Simulink?难点在哪? 1.1 纯算法视角(Python/C++ 脚本) 1.2 纯控制视角(Simulink 原生) 1.3 覆盖规划 + Simulink 互补(核心思想) 二、仿真总体架构 三、关键参数(教学默认) 四、Simulink 建模 Step‑by‑Step Step ① —— 构建…

2026/8/16 22:45:13