华中科技大学和字节跳动的Seed团队一起搞了个新的大动作,推出了一种深度混合注意力机制MoDA,给AI发展注入了新鲜血液。现在的大语言模型在变得越来越大的时候,信息会慢慢消失,这就是咱们常说的“传话游戏”。传统方法像残差连接虽然能减缓信息流失,但把历史信息压缩成单线索后,重要特征就被稀释了;密集连接倒是能把信息全留住,可计算量太大,没法用在特别大的模型上。MoDA就不一样了,它把序列注意力和深度注意力合在一块儿,让每个注意力头既能看当前层的信息,又能自动去找历史层里的关键点。这么一来,模型就像是有了个智能记忆系统,干活更麻利了。 实验数据显示,在1.5亿参数的模型里用MoDA,下游任务平均提升了2.11%,计算开销才涨了3.7%。技术上,MoDA建了个扩展的键值序列结构,把现在的信息和过去的深度信息混在一起处理。为了保证不乱套,还得用掩码来约束因果关系。在写数据的时候,模型用了轻量级的键值投影技术,把前馈网络的信息也加进去变成一个完整的记忆库。这么做既保住了信息的全乎劲儿,参数复杂度还控制在线性增长的范围里。 硬件方面也没落下手。研究团队搞了一套优化算法,用Flash兼容的布局把内存访问变成连续块操作。这么一来,64K长的序列处理效率能达到FlashAttention-2的97.3%。他们还弄出了块感知布局和组感知计算策略,通过局部访问和共享索引技术把深度利用率提到了80%以上。这下子MoDA既有理论优势又能落地干活。 实际测试发现,不管是700M还是1.5B参数的模型,性能都稳中有升。比如在700M模型上训练困惑度降了0.41,下游任务提升1.17%;1.5B模型在10个基准测试中平均困惑度下降0.2。看注意力分布图也能看出门道来,模型确实在跨层信息上分配了更多权重,特别是中间层和后面的层一直在搜历史数据。这种机制让模型既能处理近处的依赖关系,又能顾及全局的深度联系。 为了让超大规模模型也能训得动,他们还弄了个有界缓存技术。通过固定大小的深度键值槽缓冲区来动态管理存储开销。这就把内存开销从深度依赖变成了槽位依赖。初步实验看出来,在48层模型里用后归一化配置比预归一化配置效果好10倍呢。现在他们把完整代码都开源了,既有简单版也有高效优化版。这些工具链可以帮开发者从验证到部署一条龙服务。 随着CUDA工程的优化不断深入,MoDA很有希望变成下一代大语言模型的核心部件之一。这是咱们国内高校和大公司联手搞出来的成果,相信以后还会有更多好东西等着大家呢!