华中科技大学联手字节跳动Seed团队,搞出了个叫MoDA的新玩意儿,专门用来提升AI模型的表现。现在的大语言模型虽然发展飞快,但层数越加多,以前的重要信息就越容易在传递过程中像传话游戏一样失真。为了解决这个难题,这两个团队把序列注意力和深度注意力捏到了一起,弄出了个混合的机制。这样一来,模型每个注意力头都能同时处理当前的信息和之前的关键特征,就好像给它配了个智能记忆系统。实验结果挺不错,在1.5B参数的模型里,用了MoDA后平均性能涨了2.11%,算起来也就多花了3.7%的算力。 具体做法是把当前层的信息和之前的深度信息一起处理。为了保证因果性不变,查询的时候只能看对应的历史数据。写的时候也挺巧妙,用轻量级的投影把前馈网络的东西也纳进去,形成了一个全乎的记忆库。这样不仅信息完整了,参数也没激增到没法收拾。为了配合硬件干活儿,研究人员还搞了好几招优化。通过把内存访问改造成连续块操作,在64K长的序列里效率居然能跑到FlashAttention-2的97.3%。再加上块感知布局和组感知计算,深度利用率直接干到了理论极限的80%以上。 这么折腾下来,MoDA不仅理论上讲得通,工程上也能落地。不管是700M还是1.5B的模型,用它都能看到好处。700M那个模型训练时的困惑度低了0.41,下游任务好了1.17%;1.5B那个在10个基准测试上平均困惑度也降了0.2。可视化一看就知道,模型在中间层和后面几层一直没闲着,一直在找以前的东西看。这就让它既能管局部的依赖,又能顾全局的关系。 除了优化算法,团队还在搞有界缓存的技术。用固定大小的槽缓冲区来存历史信息,把内存开销从依赖深度变成了依赖槽位。在48层的模型里试过,后归一化比预归一化厉害10倍多。现在这些代码全开源了,不管是朴素版还是优化版都有。开发者拿去就能直接用了,特别是那些硬件感知的策略,给现有AI基础设施升级特别方便。要是CUDA再把工程做得细致点,MoDA说不定能成为下一波大型语言模型的核心组件之一。