说明: 稀疏矩阵是机器学习中经常遇到的一种矩阵形式,特别是当矩阵行列比较多的时候,本着“节约”原则,必须要对其进行压缩。本节即演示一种常用的压缩方法,并说明其他压缩方式。 ★矩阵压缩的基本原则: 不重复存储相同元素 不存储零元素 下面详细介绍一种压缩稀疏行(Compressed Sparse Row,CSR)的矩阵压缩方法。 从而实现了对原有稀疏矩阵的压缩。从图2-6-3中,能够更直观地了解上述压缩过程和效果。 对分块稀疏矩阵按行压缩 coo_matrix 坐标格式的稀疏矩阵 csc_matrix 压缩系数矩阵 csr_matrix 按行压缩 dia_matrix 压缩对角线为非零元素的稀疏矩阵 dok_matrix [0, 0, 3, 0, 0, 0, 0, 0]], dtype=int64) 为了便于对照理解前述对稀疏矩阵 的压缩分析,下面的程序中就创建了该矩阵,并用 CSR 压缩。
稀疏注意力 一、稀疏注意力的特点 DeepSpeed有很多不错的功能:Training Overview and Features - DeepSpeed 其中有一个功能是注意力稀疏,我们重点展开说明 需要注意的是:稀疏注意力的实现并不仅限于DeepSpeed。虽然DeepSpeed提供了一种高效的稀疏注意力实现,但其他深度学习框架和库也可能提供稀疏注意力的支持。 二、稀疏注意力的示意图 “稀疏注意力”是一种与传统注意力机制不同的技术,它只关注序列中的部分元素以提高处理速度。 蓝色的单元格在图中代表了被计算的元素,也就是被注意力机制关注的部分,体现了这种选择性关注。 稀疏性:稀疏性是稀疏注意力机制的另一个重要特点。 在处理稀疏注意力内核时,DeepSpeed采用了块稀疏计算。 在训练阶段,可以使用稀疏注意力来优化模型。稀疏注意力通过减少注意力机制中需要计算的元素数量来提高训练效率。
上下文瓶颈(ContextBottleneck):长文本处理成本高昂→DSA稀疏注意力。 第四章:第三大突破——DSA稀疏注意力:百万Token上下文的智能压缩引擎4.1挑战:O(n²)复杂度的诅咒标准的自注意力机制(Self-Attention)的计算和内存复杂度均为O(L²),其中L是序列长度 4.2DSA的设计哲学:“先粗筛,再精算”DeepSeek-V4采用了其自研的压缩稀疏注意力(CompressedSparseAttention,CSA),这是DSA(DeepSeekSparseAttention 4.3技术实现:LightningIndexer与动态Top-KDSA/CSA的工作流程如下:Token维度压缩:将每m个连续的Token的Key-Value(KV)对,通过一个轻量级的压缩函数(如平均池化或小型 局部依赖保留:为了不丢失重要的局部信息(如语法结构),CSA还结合了滑动窗口注意力(SlidingWindowAttention)和AttentionSink机制,确保模型能捕捉到紧邻Token之间的依赖关系
3.3DSA稀疏注意力与LightningIndexer:百万上下文的“智能压缩引擎”3.3.1设计动机标准的自注意力机制计算复杂度为O(L²),其中L是序列长度。 3.3.2技术原理DeepSeek-V4采用了其自研的压缩稀疏注意力(CompressedSparseAttention,CSA),这是DSA(DeepSeekSparseAttention)机制的演进版 Token维度压缩:CSA首先将每m个连续的Token的Key-Value(KV)对压缩成一个单一的“超级条目”(SuperEntry),大幅减少了KV缓存的数量。 动态Top-K选择:基于LightningIndexer的分数,CSA只会选择Top-K个最相关的“超级条目”进行完整的注意力计算。 局部依赖保留:为了不丢失重要的局部信息,CSA还结合了滑动窗口注意力(SlidingWindowAttention)和AttentionSink机制。
稀疏矩阵的压缩存储与高效运算随着数据科学、图计算与机器学习的迅猛发展,稀疏矩阵已成为大规模数据处理中不可或缺的一种数据结构。 本文将系统地介绍稀疏矩阵的压缩存储方式,并结合代码实例,探讨其在高效运算中的应用策略。一、稀疏矩阵概述在实际工程和科研中,我们常会遇到这样一种矩阵:大多数元素为零,仅有极少数的非零元素。 这种矩阵称为稀疏矩阵(Sparse Matrix)。若使用常规二维数组存储,会浪费大量空间。因此我们需要一种压缩存储结构来只记录“有用信息”——即非零元素及其位置。 4.3 大型推荐系统用户-物品评分矩阵通常极度稀疏,使用压缩存储可以显著降低内存需求与运算成本。五、稀疏矩阵运算的优化建议预选择合适格式:如构建阶段用 COO,乘法运算用 CSR。 十、结语稀疏矩阵的压缩存储与高效运算,是连接数学、计算机体系结构与人工智能的桥梁。掌握稀疏矩阵不仅能提升算法性能,更为你打通处理大规模数据的新路径。
稀疏矩阵:指大部分元素为零的矩阵。传统的按行优先次序存储方法会浪费大量空间来存储零元素,因此采用压缩存储的方法更为合适。 稀疏矩阵的压缩存储——三元组表 【数据结构】数组和字符串(四):特殊矩阵的压缩存储:稀疏矩阵——三元组表 e. 压缩稀疏行(Compressed Sparse Row,CSR)矩阵 压缩稀疏行(Compressed Sparse Row,CSR)是一种常用的稀疏矩阵存储格式。 CSR存储格式通过压缩非零元素的行指针和列索引,以及存储非零元素的值,来有效地表示稀疏矩阵。 CSR存储格式的主要优点是有效地压缩了稀疏矩阵的存储空间,只存储非零元素及其对应的行和列信息。此外,CSR格式还支持高效的稀疏矩阵向量乘法和稀疏矩阵乘法等操作。
这一举措,配合其自研的双轴稀疏架构、DSA稀疏注意力以及对华为昇腾等国产芯片的深度适配,标志着大模型技术正式从少数巨头的“奢侈品”迈入普惠化、平民化的新纪元。 2.3DSA稀疏注意力与LightningIndexer:百万上下文的“智能压缩引擎”2.3.1挑战:O(n²)的诅咒标准自注意力机制的计算和内存复杂度均为O(L²),其中L是序列长度。 2.3.2解决方案:压缩稀疏注意力(CSA)DeepSeek-V4采用了其自研的压缩稀疏注意力(CompressedSparseAttention,CSA),这是DSA(DeepSeekSparseAttention Token维度压缩:CSA首先将每m个连续的Token的Key-Value(KV)对压缩成一个单一的“超级条目”(SuperEntry),将KV缓存的数量从L减少到L/m。 动态Top-K选择:基于LightningIndexer的分数,CSA只会选择Top-K个最相关的“超级条目”进行完整的注意力计算。
此外,还从理论上证明了稀疏注意力机制保持了二次型全 Transformer 的表达能力和灵活性。 BigBird 模型中的稀疏注意力包括三个主要部分: 一组注意输入序列的所有部分的全局标记 所有标记注意一组相邻的局部标记 所有标记注意一组随机标记 BigBird 稀疏注意力模型由(注意输入序列的所有部分的 全局标记作为信息流的管道,证明了使用全局标记的稀疏注意力机制可以和全注意模型一样强大。 稀疏注意力模型的高效实现 大规模采用稀疏注意力的一个主要障碍,是稀疏操作在现代硬件中效率相当低。 相反,将稀疏的局部注意力和随机注意力转换成密集的张量运算,以充分利用现代单指令、多数据(single instruction, multiple data,SIMD)硬件。 稀疏注意力机制的高效实现示意图。
稀疏矩阵:指大部分元素为零的矩阵。传统的按行优先次序存储方法会浪费大量空间来存储零元素,因此采用压缩存储的方法更为合适。 常见的压缩存储方法有:压缩稠密行(CSR)、压缩稠密列(CSC)、坐标列表(COO)等。 a. 对角矩阵的压缩存储 【数据结构】数组和字符串(二):特殊矩阵的压缩存储:对角矩阵——一维数组 b~c. 稀疏矩阵的压缩存储——三元组表 【数据结构】数组和字符串(四):特殊矩阵的压缩存储:稀疏矩阵——三元组表 e. 压缩稀疏行(Compressed Sparse Row,CSR)矩阵 【数据结构】数组和字符串(五):特殊矩阵的压缩存储:稀疏矩阵——压缩稀疏行(CSR) f. 压缩稀疏列(Compressed Sparse Column,CSC)矩阵 压缩稀疏列(Compressed Sparse Column,CSC)以列为主要组织方式,将矩阵按列进行存储。
2025年2月,中国AI公司DeepSeek推出原生稀疏注意力机制(Native Sparse Attention, NSA),通过算法与硬件的协同创新,为长文本建模提供了高效解决方案。 一、技术原理:动态分层稀疏与硬件优化 NSA的核心设计围绕动态分层稀疏策略展开,结合粗粒度令牌压缩与细粒度令牌选择,实现计算效率与模型性能的平衡。 1. 动态分层稀疏策略 粗粒度压缩:通过聚类或语义分割,将长序列划分为多个子块,仅保留关键块间的全局关联信息,减少冗余计算。 原生可训练性 传统稀疏注意力机制多采用固定模式(如局部窗口或随机采样),而NSA通过动态路由机制,允许稀疏模式在训练过程中自适应调整。 例如,已有团队基于NSA改进低秩注意力机制(MLA),进一步压缩KV缓存至原有规模的5%。 3.
第二章:架构革命——双轴稀疏架构的深度剖析DeepSeek-V4的卓越性能源于其独创的“双轴稀疏架构”。 该架构通过三大核心技术——Engram条件记忆、mHC流形约束超连接和DSA稀疏注意力——协同工作,从根本上解决了传统模型的效率瓶颈。 2.3DSA稀疏注意力与LightningIndexer:百万上下文的“智能压缩引擎”2.3.1挑战:O(n²)的诅咒标准自注意力机制的计算复杂度为O(L²),对于1MToken的上下文完全不可行。 2.3.2解决方案:压缩稀疏注意力(CSA)DeepSeek-V4采用了自研的压缩稀疏注意力(CSA)。Token维度压缩:将每m个连续Token的KV对压缩成一个“超级条目”。 3.2成本结构拆解算法效率:双轴稀疏架构和DSA注意力机制大幅降低了实际计算量和显存占用。硬件协同:深度适配华为昇腾910B,推理效率比在英伟达A100上高出数倍。
而sparsemax是2016年提出的softmax的改进版,他可以得到稀疏的结果,即让一些值为0,它和softmax具有相似的性能,但具有选择性、更紧凑、注意力集中。 如下如所示,sparsemax相比如softmax是更硬的,在过大过小的地方对应1和0,即可以得到稀疏解。 注意力机制如下,其中 K=V=\hat{C} ,但是 Q=f(\hat{C}W^Q+b^Q) ,其中f为relu函数。 ,e_t,e_s\} 就是稀疏自注意力机制的得到的输出。前t个是item的embedding,字后一个es是目标embedding。 针对第一个问题,作者采用学习target embedding的方式,而不是直接采用会话中最后一个点击的商品 针对第二个问题,作者采用α-entmax的激活函数,主要是通过该方法产生稀疏解,从而避免给一些不感兴趣的商品加权
深入浅出:什么是 DeepSeek 稀疏注意力 (DSA)?本文旨在揭开 DeepSeek 稀疏注意力(DeepSeek Sparse Attention, DSA)机制的神秘面纱。 在大型语言模型中,一个核心机制叫做“注意力”(Attention),它帮助模型理解单词之间的关系。在传统的注意力机制中,模型为了理解一个词,必须将其与前面出现过的每一个词进行关联和计算。 而 DeepSeek 稀疏注意力(DSA)正是为了解决这个效率难题而设计的创新方案。2. 解决方案:DeepSeek 稀疏注意力 (DSA) 登场DeepSeek 稀疏注意力(DSA)是由 DeepSeek-AI 开发的一种创新的注意力机制,旨在解决长文本处理的效率问题。 DeepSeek 稀疏注意力(DSA)是一项关键的架构创新,它通过智能的两步筛选机制,有效解决了大型语言模型在处理长文档时面临的效率和成本瓶颈。
第四章:双引擎协同——DSA稀疏注意力与1M上下文的实现拥有强大的“记忆”和“计算”引擎还不够,如何让它们在1MToken的超长上下文中高效协同工作,是另一大挑战。 4.1DSA:压缩稀疏注意力(CSA)DSA的核心思想是先粗筛,再精算。 4.1.1Token维度压缩CSA首先将每m个连续的Token的Key-Value(KV)对,通过一个轻量级的压缩函数(如平均池化或小型MLP),压缩成一个单一的“超级条目”(SuperEntry)。 这一步将原始长度为L的KV缓存,压缩到了L/m的规模。 4.1.3动态Top-K选择基于LightningIndexer的分数,CSA只会选择Top-K个最相关的“超级条目”。
稀疏注意力机制 4.1 稀疏注意力的基本思想 稀疏注意力机制通过限制注意力计算的范围,将标准注意力的 O(L2)O(L^2) 复杂度降低到 O(L⋅K)O(L \cdot K) 或 O(LlogL)O 核心思想: 局部注意力:只关注相邻的位置 固定模式注意力:使用预定义的稀疏模式 自适应稀疏注意力:根据内容动态确定关注的位置 结构化稀疏:利用特定结构(如块、带状等)进行稀疏化 4.2 代表性稀疏注意力模型 :保持稀疏矩阵结构 模式化剪枝:按照特定模式剪枝权重 动态稀疏训练:训练过程中逐步增加稀疏度 7.2.3 2025年剪枝最新技术 PagedAttention剪枝:保留注意力重要区域,剪枝次要区域 渐进式稀疏化 7.3.2 最新蒸馏方法 特征蒸馏:转移中间层特征表示 关系蒸馏:转移样本间的关系知识 自蒸馏:模型自我学习和压缩 压缩感知蒸馏:结合压缩感知理论的蒸馏方法 7.3.3 蒸馏实现示例 # 特征蒸馏实现 、循环机制和卷积的优势 自适应计算:根据输入动态调整计算资源分配 稀疏激活:进一步提高MoE模型的效率和性能 9.2.2 长序列建模突破 线性复杂度注意力:实现真正的O(n)复杂度 无限上下文长度:通过检索增强和压缩表示实现
SwinTransformer用作编码器,该解码器基于一种称为跨尺度注意力(CSA)的新型注意力机制和多尺度细化模块(MSR)。CSA和MSR模块都满足全局上下文属性,需要协同工作。 我们的解码器由两个基本模块组成:跨尺度注意力模块和多尺度细化模块(即图2中的CSA和MSR模块)。 3.2 跨尺度注意力 我们提出的CSA模块由两部分组成:一个线性层,用于将每个特征映射到相同数量的通道;一个基于注意力的融合模块,用于根据语义相似性从相邻尺度融合特征图。 由于3D传感器的局限性,近距离的深度数据密集,而远距离的深度数据非常稀疏。为了解决这个不平衡问题,我们采用了Song等人中引入的平方根损失函数。 跨尺度注意力。为了评估CSA模块的重要性,我们将其从总体架构中删除(表4中的第4行和第5行)。
deepseek-ai/DeepSeek-V3.2-Exp/blob/main/DeepSeek_V3_2.pdf这一次它最主要的是引入了一个新机制DeepSeek Sparse Attention(稀疏注意力 稀疏注意力的思路在很多新一代 Transformer 变体中都在被探索:即不是所有 token 间都做全连接的 self-attention,而是选一些关键 token 或局部连接,从而减少计算复杂度。 DeepSeek 在这个版本中尝试了一种“细粒度稀疏”的策略。具体就是用到了两个关键组件:Lightning Indexer和Top-k Token Selection。 接下来只在这些 top-k 上计算真正的注意力。经过两个组件之后,这样复杂度从 O(L^2)降低到O(LK),其中 k<<LDeepSeek-V3.2-Exp的优势是什么? (4)性能表现:尽管采用稀疏注意力,但整体能力与 V3.1-Terminus 基本持平,尤其在长上下文任务中展现出更优的性价比。
概述 在用python进行科学运算时,常常需要把一个稀疏的np.array压缩,这时候就用到scipy库中的sparse.csr_matrix(csr:Compressed Sparse Row indices, indptr), shape=(3, 3)).toarray() array([[1, 0, 4], [0, 0, 5], [2, 3, 6]]) # 按col列来压缩
谷歌最近又推出了一个重磅的稀疏注意力模型:Big Bird。 之前各种刷榜的BERT和它的各种衍生版本RoBERTa等,都是构建在Transformer基础上。 谷歌团队解决这个问题的方法,是引入一种全新的稀疏注意力机制:Big Bird。 谷歌「大鸟」:稀疏注意力机制更省内存 Big Bird相对于传统的全注意力机制来说变的更稀疏,作为更长序列上的Transformer,Big Bird不仅能注意到更长的上下文信息,还将计算的二次依赖降低到了线性 实验:三种注意力机制结合效果最好 只采用随机注意力机制、局部注意力机制,或者两者融合起来,都没有三者合体的效果好。 有网友说,最近爆火的GPT-3也用了稀疏注意力机制,但是因为OpenAI的blocksparse太久没更新了,所以不知道二者有没有内在的相似性。
十字链表法,十字链表压缩存储稀疏矩阵详解 对于压缩存储稀疏矩阵,无论是使用三元组顺序表,还是使用行逻辑链接的顺序表,归根结底是使用数组存储稀疏矩阵。 介于数组 "不利于插入和删除数据" 的特点,以上两种压缩存储方式都不适合解决类似 "向矩阵中添加或删除非 0 元素" 的问题。 对于此操作的实现,之前所学的压缩存储方法就显得力不从心。 本节将学习用十字链表存储稀疏矩阵,该存储方式采用的是 "链表+数组" 结构,如图 1 所示。 图 1 十字链表示意图 可以看到,使用十字链表压缩存储稀疏矩阵时,矩阵中的各行各列都各用一各链表存储,与此同时,所有行链表的表头存储到一个数组(rhead),所有列链表的表头存储到另一个数组(chead )的转置算法(C语言)详解 矩阵(包括稀疏矩阵)的转置,即互换矩阵中所有元素的行标和列标,如图 1 所示: 图 1 矩阵转置示意图 但如果想通过程序实现矩阵的转置,互换行标和列标只是第一步。