@hardmaru: 人脑极其高效,因为它只激活特定思维所需的神经元。现代LLM…

X AI KOLs Timeline 论文

摘要

本文介绍了TwELL和Hybrid稀疏格式,配合自定义CUDA内核,有效利用LLM中的非结构化稀疏性,在H100 GPU上实现了训练和推理速度提升超过20%,同时降低了能耗和内存使用。

人脑极其高效,因为它只激活特定思维所需的神经元。现代LLM自然也尝试这样做(对于任何给定单词,前馈层中超过95%的神经元保持静默),但我们的硬件却因此惩罚它们。 深度学习中最令人沮丧的矛盾之一:让模型做更少的数学运算反而使其运行更慢。为什么?因为非结构化稀疏性引入了不规则的内存访问,而GPU是为可预测的密集数学块而设计的。 我们与@NVIDIA合作,试图解决这一硬件不匹配问题。我们没有强迫GPU适应稀疏性,而是构建了一种“Hybrid”格式,重新塑造稀疏性以适配GPU。 我们的稀疏格式(TwELL)动态地将99%的高度稀疏token通过快速路径路由,并使用密集备份矩阵作为稀有沉重token的安全阀。 通过TwELL和一套用于LLM推理和训练的新自定义CUDA内核,我们将理论上的稀疏性转化为实际时间加速:在H100 GPU上训练和推理速度提升超过20%,同时降低了能耗和内存需求。 Paper: https://arxiv.org/abs/2603.23198 Blog: https://pub.sakana.ai/sparser-faster-llms/… Code: https://github.com/SakanaAI/sparser-faster-llms…
查看原文 导出为 Word 导出为 PDF
查看缓存全文

缓存时间: 2026/05/08 17:37

人类大脑极其高效,因为它仅激活思考所需的特定神经元。现代大型语言模型(LLM)也试图这样做(在任一单词中,前馈层中超过95%的神经元保持静默),但我们的硬件却惩罚了这种行为。深度学习中最令人沮丧的矛盾之一:让模型做更少的数学运算往往会使其运行更慢。为什么?因为非结构化稀疏性引入了不规则的内存访问,而GPU是为可预测的密集数学块而构建的。我们与@NVIDIA合作,试图解决这种硬件不匹配问题。我们没有强迫GPU适应稀疏性,而是构建了一种“混合”格式,重塑稀疏性以适应GPU。我们的稀疏格式(TwELL)动态地将99%的高度稀疏令牌路由到快速路径,并使用密集备份矩阵作为安全阀处理罕见的密集令牌。通过TwELL以及一套新的自定义CUDA内核(用于LLM推理和训练),我们将理论上的稀疏性转化为实际耗时加速:在H100 GPU上实现训练和推理速度提升超过20%,同时降低了能耗和内存需求。论文:https://arxiv.org/abs/2603.23198 博客:https://pub.sakana.ai/sparser-faster-llms/… 代码:https://github.com/SakanaAI/sparser-faster-llms… — # 更稀疏、更快、更轻量的Transformer语言模型 来源:https://arxiv.org/html/2603.23198 \通讯作者 Edoardo Cetin ([email protected]), Emilio Castillo ([email protected]) Stefano Peluchetti*Sakana AIEmilio Castillo*NVIDIA *主要贡献者Akira NaruseNVIDIA *主要贡献者Mana MurakamiNVIDIA *主要贡献者Llion JonesSakana AI ###### 摘要 扩展自回归大型语言模型(LLM)带来了前所未有的进展,但也伴随着巨大的计算成本。在本工作中,我们通过利用LLM前馈层(占模型大部分参数和执行FLOPs的组件)内的非结构化稀疏性来应对这些成本。为此,我们引入了一种新的稀疏打包格式和一组CUDA内核,旨在与现代GPU的优化执行流水线无缝集成,在LLM推理和训练期间实现高效稀疏计算。为了证实我们的收益,我们提供了对LLM稀疏性的定量研究,表明简单的L1正则化可以诱导超过99%的稀疏性,而对下游性能的影响可忽略不计。当与我们的内核结合使用时,我们展示了这些稀疏性水平转化为实时的吞吐量、能效和内存使用优势,且随模型规模扩大而增加。我们将以开源许可发布所有代码和内核,以促进采用并加速研究,从而将稀疏性确立为改进现代基础模型效率和可扩展性的实用轴心。 ## 1引言 参考图注:图1:针对LLM推理和训练设计的ELL、我们的新TwELL和Hybrid稀疏格式对比。大型语言模型(LLM)彻底改变了自然语言处理,在文本生成、推理和知识检索方面展示了前所未有的能力(openai2023gpt4;gemini)。推动这些进步的核心组件是对经典Transformer架构的大规模计算投入,当前LLM已达到数千亿参数(vaswani2017attention;gpt2;gpt3)。然而,随着模型越来越大,需要大量计算资源进行推理和训练,迫切需要根本性的效率提升,以确保该领域当前和未来的可持续性(schwartz2020green;luccioni2023bloom)。提高机器学习模型效率的一个开创性途径是稀疏性(lecun1989optimal;han2015learning;hoefler2021sparsity)。对于现代过度参数化的LLM,最近的研究甚至发现稀疏性在其前馈层中自然出现,对于任何给定的令牌,只有一小部分隐藏神经元被激活(zhang-etal-2022-moefication;li2023lazyneuronphenomenonemergence)。因此,由于前馈计算占较大模型参数的三分之二以上和总FLOPs的80%以上(llms-flops-params),稀疏性似乎为实际计算节省提供了自然机会。然而,一个令人沮丧的矛盾阻碍了进展:尽管执行的理论计算少得多,但实现稀疏操作的官方内核在现代GPU上通常比密集操作运行得更慢。罪魁祸首是非结构化稀疏性与GPU架构之间的根本不匹配,后者的硬件和软件栈已针对密集计算模式进行了高度优化(BLAS-library;nvidia-cublas;nvidia-cublasdx;nvidia-cutlass)。相比之下,异构工作负载加上物化和管理稀疏索引的开销一直是阻碍全面计算节省的关键挑战。由于这些挑战,之前实现效率提升的尝试依赖于对现代训练配方的重大偏离,且尚未得到实际采用(dejavu_contectual_sparsity_related;q_sparse_top_k_related)。在本工作中,我们引入了为现代NVIDIA GPU设计的新内核,以弥合这一差距并利用非结构化稀疏性,在LLM推理和训练期间带来显著加速,同时减少内存需求和能耗。我们的内核构建于瓦片式ELLPACK(TwELL)之上,这是一种稀疏数据的新打包格式,可以自然地物化于高度优化的矩阵乘法内核的尾声阶段,消除了先前打包方案的一个典型瓶颈。从TwELL出发,我们的推理内核将多个矩阵乘法融合到一个优化流水线中,以最小化计算;而我们的训练内核进一步将稀疏表示简化为混合格式,从而降低了中间激活的存储成本。为了证实我们的收益,我们对跨模型规模的LLM稀疏性进行了定量研究,表明适度的L1正则化可以实现超过99%的稀疏性,而对下游性能的影响可忽略不计。通过我们的新内核,我们展示了这些稀疏性水平在更大参数数量下转化为处理吞吐量、节能和内存需求方面的递增优势——在数十亿参数的模型上,前向执行和训练分别实现了高达20.5%和21.9%的加速。我们分析了这些优势如何具体来自于网络层和自然语言数据之间的计算不均匀性,这在稀疏模型中可被固有地利用。通过清晰展示其实际优势,我们希望这项工作有助于将稀疏性确立为改进现代基础模型可扩展性和性能的新轴心。总之,我们的主要贡献有三方面: 1. 1.我们介绍并共享了用于推理和训练的新CUDA内核,具有多项关键创新,使稀疏LLM在现代GPU上更便宜、更快、更轻量。 2. 2.我们提供了定量分析,表明使用适度的L1正则化可以实现高度的非结构化稀疏性,且对性能影响可忽略不计。 3. 3.我们展示并分析了我们的内核如何在数十亿参数的LLM中利用这种稀疏性,在更大规模下带来显著且递增的优势。 ## 2大型语言模型、前馈块与稀疏性 虽然原始Transformer使用了简单的2层前馈块,但该模块自诞生以来经历了相当大的演变(vaswani2017attention)。最近的架构在很大程度上收敛到一种3层门控设计,该设计在大规模评估时已持续显示经验优越性(shazeer2020glu)。虽然在本工作中我们发布了适用于原始和门控块的内核,但我们将正文重点放在较新的设计上,并将进一步讨论、结果和与旧变体的比较推迟到附录C(https://arxiv.org/html/2603.23198#A3)。 ### 2.1前馈模块作为稀疏知识存储 现代门控前馈块(shazeer2020glu)由三个权重矩阵参数化:Wg∈RK×NW_g∈R^{K×N}、Wu∈RK×NW_u∈R^{K×N}和Wd∈RN×KW_d∈R^{N×K},分别表示门控、上行和下行投影矩阵。在我们的符号中,我们用MM表示前馈块在所有批处理序列和位置上的有效批量大小,KK表示其输入/输出维度,NN表示其隐藏扩展维度。门控和上行投影矩阵都处理块的输入批次x∈RM×Kx∈R^{M×K},并产生上行和门控激活hgh_g和hu∈RM×Nh_u∈R^{M×N},其中两者之间的对称性通过非线性激活函数σσ打破。然后,这些投影通过逐元素乘法组合成统一的隐藏表示h∈RM×Nh∈R^{M×N},然后使用下行投影权重WdW_d投影回原始维度,以计算块的输出y∈RM×Ky∈R^{M×K}: hu=xWu, hg=σ(xWg), h=hu⊙hg, y=hWd。h_u=xW_u, h_g=σ(xW_g), h=h_u⊙h_g, y=hW_d。(1)由于隐藏维度NN通常远大于KK,前馈块通常占模型参数和FLOPs的大部分。我们注意到,这些架构组件的一个常见概念化是动态键值存储器(geva-etal-2021-transformer;dai-etal-2022-knowledge)。在这种心理模型中,xx与WgW_g和WuW_u列之间的内积产生“键”hh,而WdW_d的行被视为“值”,充当可根据输入动态检索的记忆槽。 ### 2.2训练稀疏LLM的简单配料 我们采用简单的配方来在前馈激活中诱导不同程度的稀疏性,对既定架构和训练目标进行最小偏离。首先,我们在门控投影之后使用ReLU作为激活函数。其次,我们在标准交叉熵中添加一个简单的L1损失,带有一个可调系数L1L_1以促进模型LL层上的稀疏性: L1×1L∑l=1L1MN∑m=1M∑n=1N|hl[m,n]|。L_1×1L∑{l=1}^L 1MN∑{m=1}^M∑_{n=1}^N|h^l[m,n]|。(2)我们注意到,许多最近的LLM架构已偏离使用ReLU,转而使用更平滑的激活函数(如SiLU),带来了微小但一致的益处(shazeer2020glu;llama2;qwen2)。在附录C(https://arxiv.org/html/2603.23198#A3)中,我们提供了这些选择之间的直接经验比较,并参考了近期文献中的正交研究,表明特定领域的性能差异可以通过有针对性的训练技术来弥合(mirzadeh2023relu_apple_finetune;lomeli2025stochasticactivations)。 ## 3让稀疏LLM更快 我们引入了用于推理和训练的新CUDA内核,利用非结构化稀疏性有效重新构建LLM前馈块中的计算。我们内核背后的算法基于TwELL,这是一种专门为无缝内核融合设计的新稀疏格式,以最小的开销实现稀疏性的固有吞吐量和内存优势。在本节中,我们通过算法描述来描述我们新内核的核心组件和优势,这些算法在单个协作线程数组(CTA)级别总结了其逻辑。关于H100 GPU的线程级CUDA实现的代码清单和更详细的设计讨论,请参考附录A(https://arxiv.org/html/2603.23198#A1)。 算法1使用TwELL存储的门控投影的matmul内核算法描述 1:参数: 瓦片大小 Tn,TmT_n,T_m, 压缩比 C 2:输入: 密集 x∈RM×Kx∈R^{M×K}, Wg∈RK×NW_g∈R^{K×N}, 3:输出: 稀疏 hv∈RM×N/Ch_v∈R^{M×N/C}, hI∈NM×N/Ch_I∈N^{M×N/C}, hnz∈NM×NTh_nz∈N^{M×N_T} 4:对于所有起始于 (m0,n0)(m_0,n_0)的瓦片,在CTA之间并行执行 5: S←x[m0:m0+Tm,:]Wg[:,n0:n0+Tn]S←x[m_0:m_0+T_m,:] W_g[:,n_0:n_0+T_n] 6:对于 r←0r←0 … Tm−1T_m-1 执行 7: m←m0+rm←m_0+r {全局行索引} 8: z←0z←0 {瓦片中非零的运行计数} 9:对于 c←0c←0 … Tn−1T_n-1 执行 10: 如果 (S[r,c]>0)(S[r,c]>0) 则 11: n←n0/C+zn←n_0/C+z {全局TwELL列索引} 12: hI[m,n]←n0+ch_I[m,n]←n_0+c {存储非零索引} 13: hv[m,n]←S[r,c]h_v[m,n]←S[r,c] {存储非零值} 14: z←z+1z←z+1 {递增非零计数} 15: 结束如果 16: 结束循环 17: hnz[m,n0/Tn]←zh_nz[m,n_0/T_n]←z {存储非零的最终计数} 18: 结束循环 19:结束循环 算法2从TwELL格式的门控激活执行融合的上行和下行投影的算法描述 1:参数: 瓦片大小 TnT_n, 压缩比 C 2:输入: 稀疏 hv∈RM×N/Ch_v∈R^{M×N/C}, hI∈NM×N/Ch_I∈N^{M×N/C}, hnz∈NM×NTh_nz∈N^{M×N_T}; 密集 x∈RM×Kx∈R^{M×K}, Wu∈RK×NW_u∈R^{K×N}, Wd∈RN×KW_d∈R^{N×K} 3:输出: 密集 y∈RM×Ky∈R^{M×K} 4:对于所有 m∈π(0..M−1)m∈π(0..M-1),在CTA之间并行执行 5: xm←x[m,:]x_m←x[m,:]; ym←0y_m←0 6:对于 t←0t←0 … NT−1N_T-1 执行 7: z←hnz[m,t]z←h_nz[m,t] 8:对于 c←0c←0 … z−1z-1 执行 9: n←hI[m,t×Tn/C+c]n←h_I[m,t×T_n/C+c] {非零列索引} 10: wu=Wu[:,n]w_u=W_u[:,n] {WuW_u的第n列} 11: u←(xm⋅wu)u←(x_m·w_u) {稀疏hu[m,n]h_u[m,n]元素} 12: wd←Wd[n,:]w_d←W_d[n,:] {WdW_d的第n行} 13: ym←ym+(hv[m,t×Tn/C+c]×u)wdy_m←y_m+(h_v[m,t×T_n/C+c]×u) w_d 14: 结束循环 15: 结束循环 16: y[m,:]←ymy[m,:]←y_m 17:结束循环 ### 3.1稀疏格式与内核 ELLPACK格式(ELL)被认为是快速高效稀疏矩阵乘法的现有最优格式(ellpack_original)。该格式被用于一些最早的GPU稀疏代数实现中(first_sparse_gpu_impl),最近的工作集中于开发打包和排序变体以获得更好的性能(sell_c_standard_on_gpus_sem;sell_c_standard_on_gpus_impl)。如图1a(https://arxiv.org/html/2603.23198#S1.F1)所示,ELL格式中一个M×NM×N矩阵hh被存储为两个填充矩阵hvh_v和hIh_I,大小为M×NnzM×N_nz,其非零值及其列索引打包在每行开头。这种格式优先考虑下游可用性而非存储,将行填充到最大非零元素数NnzN_nz以便高效检索。大多数执行y=hWy=hW与ELL的matmul内核的主要逻辑是启动不同的并行

相似文章

跨异构任务的自演化LLM记忆抽取

Hugging Face Daily Papers

研究者推出BEHEMOTH基准与CluE聚类提示优化,使LLM能从多样化任务中抽取并保留异构记忆,相比既往自演化框架提升9%。

Block-sparse GPU kernels

OpenAI Blog

OpenAI 发布 block-sparse GPU kernels,这是一款用于在 GPU 上进行高效稀疏矩阵乘法的工具,可以减少神经网络操作的计算量和内存占用。