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

CANN DeepSeek Indexer注意力优化

custom_pypto.npu_sparse_attention_pto

【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer

产品支持情况

产品是否支持
Atlas A3 系列产品

功能说明

  • 算子功能:用于 DeepSeek-V3.2-Exp 的 Attention 计算

简介

我们对 DeepSeek-V3.2-Exp 进行了拆解,该模型采用了一种细粒度稀疏注意力机制,将基于 token 级别的细粒度sparse attention与Lightning Indexer相结合,并将其分解为四个模块:MLA Prolog, Indexer Prolog, Lightning Indexer and Sparse Flash Attention。

MLA Prolog

MLA Prolog 模块将hidden状态 $\bold{X}$ 转换为查询投影 $\bold{q}$、键投影 $\bold{k}$ 和值投影 $\bold{v}$,其结构与 DeepSeek V3 的架构一致。在解码阶段,采用了权重吸收技术。

Indexer Prolog

Indexer Prolog 模块将hidden状态 $\bold{X}$ 投影为查询索引 $\bold{q}{index, h}$ 和键索引 $\bold{k}{index}$ 的表示。该变换遵循如下公式:旋转位置嵌入(RoPE)仅应用于 $\bold{q}{index, h}$ 和 $\bold{k}{index}$ 的头维度的后半部分。

$$ \bold{q}{index, h} = \text{RoPE}\left(\left(\text{RMSNorm}(\bold{X} \cdot \bold{W}{qa})\right) \cdot \bold{W}_{qb}\right) $$

$$ \bold{k}_{index} = \text{RoPE}\left(\text{LayerNorm}\left(\bold{X}\cdot \bold{W}_k \right)\right) $$

Lightning Indexer

Lightning Indexer 模块采用一种类MLP的多查询注意力(Multi-Query Attention)机制来计算索引得分:

$$ I_{i, j} = \sum_h w_h^i \cdot \text{ReLU}(\bold{q}{index, h}^i \cdot \bold{k}{index}^j) $$

where $(w_1^i, \dots,w_{N_h}^i)^T = \bold{W}_{bias}\bold{x}_i$ represents query-dependent head-wise weights. In practice, we calculate $w_h^i$ in Indexer Prolog module.

Sparse Flash Attention

对于每个查询 token $\bold{x}i$,索引模块会为每个键值缓存项(表示键值对或 MLA 潜在表示)计算一个相关性得分 $I{i,j}$。然后,通过将注意力机制应用于查询 token $\bold{x}_i$ 以及得分最高的前 $k$ 个缓存项,来计算输出 $\bold{o}_i$:

$$ \bold{o}_i = \text{Attn}(\bold{x}_i, {\bold{c}j | j \in \text{Top-k}(\bold{I}{i, :})}) $$

函数原型

custom_pypto.npu_sparse_attention_pto(x, w_dq, w_uq_qr, w_uk, w_dkv_kr, gamma_cq, gamma_ckv, sin, cos, cache_index, kv_cache, kr_cache, block_table, act_seqs, w_idx_qb, w_idx_k, w_idx_proj, in_gamma_k, in_beta_k,index_k_cache) -> Tensor

参数说明

说明:

  • xTensor):表示hidden状态,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • w_dqTensor):表示计算 query 的下投影权重,必选参数,不支持非连续的 Tensor,数据格式支持 NZ,数据类型支持bfloat16

  • w_uq_qrTensor):表示计算 query 的上投影权重,必选参数,不支持非连续的 Tensor,数据格式支持 NZ,数据类型支持bfloat16

  • w_ukTensor):表示权重吸收中计算 query 的权重,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • w_dkv_krTensor):表示权重吸收中计算 ckv 的权重,必选参数,不支持非连续的 Tensor,数据格式支持 NZ,数据类型支持bfloat16

  • gamma_cq(Tensor): 表示 query 的 rmsnorm 缩放,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • gamma_ckvTensor):表示 ckv 的 rmsnorm 缩放,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • sinTensor):表示用于 RoPE 的 sin,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • cosTensor):表示用于 RoPE 的 cos,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • cache_indexTensor):表示更新 kvCache,krCache 和 idxKCache 的位置,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • kv_cacheTensor):kv cache,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • kr_cacheTensor):kr cache,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • block_tableTensor):表示 PagedAttention 中 KV 存储使用的 block 映射表,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • act_seqsTensor):表示不同 Batch 中keyvalue的有效 seqlen,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • w_idx_qbTensor):表示 Indexer 计算 query 的权重,必选参数,不支持非连续的 Tensor,数据格式支持 NZ,数据类型支持bfloat16

  • w_idx_kTensor):表示 Indexer 计算 key 的权重,必选参数,不支持非连续的 Tensor,数据格式支持 NZ,数据类型支持bfloat16

  • w_idx_projTensor):表示 Indexer 计算 weights 的权重,必选参数,不支持非连续的 Tensor,数据格式支持 NZ,数据类型支持bfloat16

  • ln_gamma_kTensor):表示 Indexer 计算 key 的 layernorm 缩放,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • ln_beta_kTensor):表示 Indexer 计算 key 的 layernorm 偏移,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

  • index_k_cacheTensor):表示 Indexer 中 key 的缓存,必选参数,不支持非连续的 Tensor,数据格式支持 ND,数据类型支持bfloat16

返回值说明

  • outTensor):公式中的输出,数据格式支持 ND,数据类型支持bfloat16

约束说明

  • 该接口支持推理场景下使用。
  • 该接口支持图模式(PyTorch 2.1版本)。
  • 该接口与PyTorch配合使用时,需要保证CANN相关包与PyTorch相关包的版本匹配。

算子代码执行示例

  • 算子源码执行参考test_deepseek_indexer_attention.py

【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/783219/

相关文章:

  • 实测2家热门京东e卡回收正规平台,京回收vs猎卡回收,避坑不亏! - 京回收小程序
  • 爱马仕(Hermes)AI智能体框架完整指南:从入门到部署
  • 可解释AI如何适配人类决策模式:从理性模型到快速节俭启发式
  • 天津佳艺空间装饰:靠谱家装服务的核心实力解析 - 奔跑123
  • CANN/ops-math PadV3Grad算子
  • 2026年自贡全案整装怎么选?一站式家装与智能家居避坑完全指南 - 优质企业观察收录
  • CANN/ops-nn ELU反向梯度算子
  • 中国AI CRM厂商测评:谁能真正扛起企业智能化增长的大旗? - 资讯焦点
  • 2026年水切割常规故障处理方案:成都水刀配件厂家技术支持能力横评 - 企业名录优选推荐
  • 更简易的事件分发器
  • GWAI:一站式AI平台如何革新引力波数据分析
  • 从等保测评到威胁情报:一文读懂2026年安卓安全监测的技术内幕
  • CANN/pyasc数据块归约API
  • 多模态大模型如何重塑科学教育:从认知减负到自适应学习
  • 法律AI的确定性追求:规则引擎与形式化方法的技术实践与边界
  • 国标新标杆,护眼新高度——独语A8重塑学生读写光环境 - 资讯焦点
  • 无需专程前往金店 孝感一区三市三县全城上门收金 山区乡镇均可接单 - 金掌柜黄金回收
  • 国内高锰酸盐指数水质在线监测仪十大品牌排名 - 仪表人小余
  • CANN/pypto hypot函数
  • RimSort终极指南:三步告别环世界MOD加载混乱的免费智能管理器
  • 2026年成都水刀配件厂家全景对标:从易损件痛点到源头采购一站式解决方案 - 企业名录优选推荐
  • CANN/pyasc复制函数文档
  • GWAI:深度学习与模块化架构重塑引力波数据分析
  • 2026年邯郸美术集训画室排行榜出炉!世骅学本稳居榜首,实力口碑双标杆 - damaigeo
  • 2026年广州印刷厂TOP5|丽彩印刷凭 “全链创新 + 硬核品质” 登顶,政企首选 - damaigeo
  • AI赋能无人机通信与导航:端到端智能优化与关键技术解析
  • 有没有专门整合全城少儿兴趣体验课的平台? - 资讯焦点
  • CANN/ops-cv一维线性上采样算子
  • 杭州临安浩雪制冷电器:杭州空调 中央空调回收推荐哪几家 - LYL仔仔
  • 如何判断App隐私合规服务商是否靠谱?资深采购的避坑指南