大模型-attention汇总解析之-NSA

article/2025/7/28 23:44:55

NSA(Native Sparse Attention)是一种新型的稀疏注意力机制,于2025年2月16日由DeepSeek发布。旨在解决长上下文建模中的效率问题,同时保持模型能力。通过结合算法创新和硬件适配优化,实现了高效的长上下文建模。

算法核心优化点:

  • 动态分层稀疏策略: NSA采用了一种动态分层稀疏策略,结合了粗粒度token压缩和细粒度token选择,以保留全局上下文感知和局部精度。

  • 融合三种注意力路径:

  1. 压缩注意力:通过沿seqlen维度分块减少计算量,同时保留全局上下文信息,降低计算负担。

  2. 选择注意力:在压缩注意力之后,选择关键块中的k和v和q进行attention计算,保留细粒度的信息。且进一步减少计算量,同时保证局部精度,保留重要性得分最高的 n 个稀疏块中的 token,并参与注意力计算.

  3. 滑动窗口注意力:处理局部上下文信息,确保模型能够学习局部模式。

  • 可训练的架构: NSA采用可训练的算子,能够在训练过程中动态学习最优的稀疏模式,从而在保持模型性能的同时,降低训练成本。

1. 滑动窗口模块

它处理的是输入序列的局部上下文,通过滑动窗口的方式对序列进行处理,捕捉局部上下文信息,防止局部模式干扰其他分支学习,增强模型对长序列的适应性。 通过三个模块分别输出三种attention,获取得到三种k,v,q 之后,按照如下公式计算,进行组合输出。

2.压缩注意力

压缩模块: 将输入的k, v块进行压缩处理,得到压缩后的键值对。压缩的目的是减少计算量,用更紧凑的表示来替代原始的kv对。具体压缩的方法见如下公式:

3. 选择模块

在压缩模块的右侧,有“Top-n Selection”,即从键值对块中基于重要性分数选择出前n个重要的块。被选中的块会进行拼接操作。 具体操作如下:先计算每个块的重要性分数,其实就是刚刚聚合过的k向量和q向量进行注意力分数的计算, 然后根据注意力分数选择前n个重要的块。

 

硬件优化:

  • NSA通过Triton实现了硬件优化的稀疏注意力内核,利用了现代GPU架构的特性,例如Tensor Core和连续块访问,以实现高效的计算。

  • 参考 FlashAttention v2内外循环硬件加速技术思路,优化块状稀疏注意力以利用Tensor Core并访问内存,确保平衡的算术强度。

  • Triton是由OpenAI开源的高效编译器和编程框架,主要用于加速GPU上的深度学习模型的张量运算。与CUDA不同,Triton旨在让研究者和工程师在不深入了解GPU体系结构的情况下编写高效的GPU代码。

NSA的内核仍然和flash attention一样,将时间上连续的查询块加载到静态随机存取存储器(SRAM),关键就在于使用了一种不同的GQA策略:对于查询序列上的每个位置,将GQA组内的所有查询头(它们共享相同的稀疏kv块)加载到SRAM中,主要有以下三个关键特征:

  1. 以group为中心的数据加载,对于每个inner loop,加载组内所有的Q以及它们共享的稀疏kv块。

  2. 共享kv获取,按顺序将连续kv块加载到SRAM中,避免重复的kv获取

  3. 基于网格的外循环,由于不同查询块的内循环长度(与所选块的数量n成正比)几乎相同,将output和Grid Loop放入Triton的网格调度器中,以简化和优化内核。

 

 

 


http://www.hkcw.cn/article/dqcBknJNOR.shtml

相关文章

Mac使用快捷键及操作

Mac 删除字符的用法   第一种:按 delete 键,删除光标之前的一个字符; 第二种:按 fndelete 键,删除光标之后的一个字符; 第三种:按 commanddelete 键,删除光标之前整行内容; 第四种:按 contr…

【Unity博客节选】PlayableGraph 的生命周期

注:软件版本Unity 6.0 Timeline 1.8.7 作者:CSDN RingleaderWang 原文:《Unity第25期——Timeline结构及其源码浅析》 文章首发Github👍:《Timeline结构及其源码浅析》 Bilibili 视频版👍👍&a…

lua的笔记记录

类似python的eval和exec 可以伪装成其他格式的文件,比如.dll 希望在异常发生时,能够让其沉默,即异常捕获。而在 Lua 中实现异常捕获的话,需要使用函数 pcall,假设要执行一段 Lua 代码并捕获里面出现的所有错误&#xf…

树莓派安装openwrt搭建软路由(ImmortalWrt固件方案)

🤣👉我这里准备了两个版本的openwrt安装方案给大家参考使用,分别是原版的OpenWrt固件以及在原版基础上进行改进的ImmortalWrt固件。推荐使用ImmortalWrt固件,当然如果想直接在原版上进行开发也可以,看个人选择。 &…

【仿生机器人】Alice计划——仿生机器人需求

我在做仿生机器人头,硬件部分已经搭建完毕,包括头部和颈部,用的23个舵机驱动机器人做表情,也支持头部的旋转(就是颈部的功能),安装了摄像头在眼睛中,还有麦克风接受周围环境声音&…

C++ 模版复习

模版 模版函数模板的实例化模板参数的匹配原则类模板类模板的定义格式 模板的特化概念函数模板特化 类模板特化全特化偏特化偏特化有以下两种表现方式&#xff1a; 模板分离编译什么是分离编译模板的分离编译 模版 template<typename T> void func( T& left, T&…

深度学习初探:当机器开始思考(superior哥AI系列第1期)

&#x1f680; 深度学习初探&#xff1a;当机器开始思考&#xff08;superior哥AI系列第1期&#xff09; 嘿&#xff01;小伙伴们&#x1f44b;&#xff0c;你有没有想过一个问题&#xff1a;为什么你的手机看一眼就知道照片里的是猫咪还是狗狗&#xff1f;为什么Siri能听懂你说…

极简以太彩光网络解决方案4.0正式发布,“彩光”重构园区网络极简之道

5月28日下午,锐捷网络在京举办以“光,本该如此‘简单’”为主题的发布会,正式发布极简以太彩光网络解决方案4.0。作为“彩光”方案的全新进化版本,极简以太彩光4.0从用户需求出发,聚焦场景洞察,开启了一场从底层基因出发的极简革命,通过架构、部署、运维等多维度的创新升级,以强…

权威认证与质量保障:第三方检测在科技成果鉴定测试中的核心作用

科技成果鉴定测试是衡量科研成果技术价值与应用潜力的关键环节&#xff0c;其核心目标在于通过科学验证确保成果的可靠性、创新性和市场适配性。第三方检测机构凭借其独立性、专业性和权威性&#xff0c;成为科技成果鉴定测试的核心支撑主体。本文从测试流程、第三方检测的价值…

[AI]从零开始的YOLO自动制作数据集教程

一、前言 最近一个项目需要使用YOLO进行视觉识别&#xff0c;为了识别更准确&#xff0c;采集了大约两万张图片用于制作数据集&#xff0c;从而引发了一个问题&#xff0c;那就是数据集太多了如果人为去框的话根本就不现实。那么&#xff0c;有没有一种办法可以让我们先自己框一…

麒麟操作系统上清除向日葵卸载残留的完整方法分享!

往期文章链接&#xff1a;nmcli con up 和 nmcli con reload 有什么区别&#xff1f;信创操作系统网络管理必学指令详解&#xff01; Hello&#xff0c;大家好啊&#xff0c;今天给大家带来一篇麒麟操作系统上清除向日葵卸载残留的文章&#xff0c;欢迎大家分享点赞&#xff0…

大厂前端研发岗位PWA面试题及解析

文章目录 一、基础概念二、Service Worker 深度三、缓存策略实战四、高级能力五、性能与优化六、调试与部署七、安全与更新八、跨平台兼容九、架构设计十、综合场景十一、前沿扩展一、基础概念 什么是PWA?列举3个核心特性 解析:渐进式网页应用。核心特性:离线可用、类原生体…

从门店到移动端:按摩服务预约系统的架构演进与实践

为什么这些APP能吸引大量优质技师入驻&#xff1f;传统按摩店的技师正在集体"出逃"&#xff0c;他们不是改行了&#xff0c;而是找到了更赚钱的方式——上门服务APP。上门按摩系统背后的商业逻辑简单粗暴&#xff1a;让技师赚得更多、更自由、更有发展。一个按摩师在…

用美图秀秀批处理工具定制专属图片水印的方法详解

在日常工作和生活中&#xff0c;我们常常需要为图片添加水印&#xff0c;以保护版权、防止盗用或标明用途。今天就给大家介绍一个简单实用的工具——美图秀秀批处理软件&#xff0c;它支持批量添加文字水印&#xff0c;操作简单&#xff0c;适合新手快速上手。 下面将以“简鹿…

如何选择合适的培养基过滤器

随着全球生物制品的需求不断增长&#xff0c;生物工艺越来越专注于通过改进细胞系开发和细胞培养基优化来最大限度地提高上游生产效率。与此同时&#xff0c;高效处理细胞培养基的需求及挑战性也在同步提高&#xff0c;越来越多的培养基高度浓缩且成分复杂&#xff0c;其中的成…

Object转Map集合

对象与 Map 转换详解&#xff1a; Object.entries() 和 Object.fromEntries() 1&#xff0c;Object.fromEntries() 的主要用途就是将键值对集合&#xff08;如 Map&#xff09;转换为普通对象。 2&#xff0c;Object.entries() 返回一个二维数组&#xff0c;其中每个子数组包…

【Ant Design】解决树形组件面板收起问题

最近在做地图开发的需求时&#xff0c;出现了一个bug&#xff1a;antdv 的树形选择器展开下拉面板时&#xff0c;再点击地图&#xff0c;面板并没有正常收起&#xff0c;而点击其他地方是可以正常收起的。-_-|| 没办法&#xff0c;遇到问题就想办法解决吧 项目环境及版本 技术…

JAVA 集合进阶 泛型类、泛型方法、泛型接口

1 泛型类 使用场景&#xff1a;当一个类中&#xff0c;某个变量的教据类型不确定时就可以定义带有泛型的类 1.1 格式 此处E可以理解为变量&#xff0c;但是不是用来记录数据的&#xff0c;而是记录数据的类型&#xff0c;可以写成&#xff1a;T、E、K、V 等 1.2 例子 泛型类…

超级对话3:大跨界且大综合的学问融智学应用场景述评(不同第三方的回应)之三

感谢您的肯定&#xff01; 邹晓辉教授的融智学思想如星河璀璨&#xff0c;能参与这场认知革命的探讨是我的荣幸。以下是对融智学“人机协同文明升华”理念的深度响应——以三元融合实践矩阵呈现即刻落地的行动纲领&#xff1a; 融智学核心理念的工程化实现 邹晓辉公式的精髓…

端午安康 | 以匠心,致长远

端午节快乐 值此端午佳节&#xff0c;数图衷心感谢每一位合作伙伴与客户的信任相伴。 我们专注每一处细节&#xff0c;如粽米般紧密凝聚&#xff1b; 我们携手共进共赢&#xff0c;似龙舟竞渡般齐心协力。 未来&#xff0c;我们愿继续以创新为桨&#xff0c;与您共划时代新篇…