南洋理工大学AI提速新突破:语言模型并行预测技术,效率提升1.7倍

2026-05-15阅读 0热度 0
语言模型

如果你用过ChatGPT或者文心一言这类大语言模型,可能会注意到一个有趣的现象:它们生成文字时,总是一个字一个字地往外“蹦”,像打字员在谨慎地敲击键盘。这种看似“慢条斯理”的背后,其实是当前自回归生成的核心逻辑——模型每生成一个字,都需要完整地“思考”一次,无论这个字有多么显而易见。

想想看,当你问“2加2等于几?”,答案“4”几乎是呼之欲出的。但模型依然会为这个简单的数字,走完一整套复杂的计算流程。更典型的例子是,当模型输出“综上所述,答案是”这样的引导句时,后面跟着什么内容其实已经被前文高度决定了,但模型还是要为这几个近乎“废话”的字,分别付出等量的计算资源。这就像一位顶级厨师,无论是切一根葱还是处理一道复杂的主菜,都要把全套刀具重新摆开、磨一遍——效率上显然存在优化空间。

正是看到了这种潜在的“浪费”,来自南洋理工大学、新加坡管理大学和乌普萨拉大学的研究团队提出了一个直指核心的问题:能不能让模型在把握十足的时候,一口气预测出好几个字,而不是每次都只出一个?他们给出的答案,是一项名为 MARS(Mask AutoRegreSsion,掩码自回归) 的新技术。

南洋理工大学等高校联手研发:让AI语言模型一次

每个字都要单独“想一下”,这是一种浪费

一、老方法有哪些痛点,MARS又是什么思路

在MARS之前,让模型“一次多出字”并非没人尝试过。主流思路大致分两条路。

第一条路是“找个助手”,也就是推测解码(Speculative Decoding)。先用一个小而快的模型猜出后面几个字作为“草稿”,再让大模型来验证对错。这个方法有效,但代价是系统里需要同时运行两个模型,内存占用翻倍,架构复杂度也大幅提升,好比为了加速而专门雇了一位助手,但助手和主厨都需要各自的工作台。

第二条路是“给模型装额外脑子”,比如Medusa、EAGLE等方法。它们在原有模型上附加多个“预测头”,每个头负责预测未来某个特定位置的字。这个思路需要引入额外的参数并进行专门训练,相当于改变了模型的结构,部署和维护起来都更麻烦。

MARS选择了一条不同的路:不增加任何结构,不添加任何参数。它仅仅通过对现有模型进行继续训练,让模型自己“学会”在一次前向计算中同时预测多个字。最关键的是,训练完成后的模型,从结构上看和原版一模一样。你可以把它当作普通模型来用,让它一个字一个字地生成;也可以开启“加速模式”,允许它在有把握时一次吐出好几个字。用餐厅来比喻,这相当于把同一位厨师训练成既能精细处理单人套餐,也能在烹饪熟悉菜品时同时备好几道菜,而不是去招聘新帮厨或添置新设备。

二、为什么之前的“多字预测”方法总是搞砸,MARS找到了什么关键

在设计MARS之前,研究团队深入剖析了以往方法在数学推理、代码生成等严谨任务上表现不佳的原因。他们将问题归结为四个“裂缝”——即多字预测方案与原始自回归模型工作方式之间的差异。

第一处裂缝是本质性的:要同时预测多个未知字,就必须在那些位置放置“占位符”(如[MASK])。这是多字预测无法回避的代价。

然而,另外三处裂缝却是“自找的麻烦”,源于方案设计不必要地偏离了模型的本性:

  1. 注意力方向错位:原始模型采用严格的因果注意力,只能“向左看”已生成的内容。但一些方案允许同一批待预测字之间相互“偷看”,破坏了这一核心约束。
  2. 预测位置错位:标准模型中,位置n的输出是对位置n+1的预测,整体右移一格。若多字预测方案打乱了这个对齐规则,就像重新校准了精密仪表的刻度盘,原有能力必然受损。
  3. 生成顺序错位:原始模型严格从左到右生成。有些方法(如扩散类)会根据置信度跳着生成,打乱了顺序。

MARS的核心洞察在于:后三处裂缝是可以且必须消除的。只要填平它们,模型就能在保留原有强大能力的同时,学会处理第一处裂缝(使用占位符)带来的挑战。这好比修车时发现,四个关键零件中有三个完好无损,只需改装其中一个即可,而之前的方法却试图把四个全换掉,效果自然不理想。

三、MARS具体是怎么训练的——“双轨并行”的学习方式

基于以上分析,MARS的训练方案变得清晰。整个过程可以理解为一种“影子练习”:模型同时处理同一段文本的两个版本——一个完整版,一个被打码的遮盖版。

具体操作上,将一段文本按固定大小(如4个字)分块,然后把每一块内的所有字都替换为特殊的掩码符号,得到遮盖版本。训练时,模型接收的输入是这两个版本的拼接:前半部分是完整文本,后半部分是对应的遮盖文本。

在这个“双轨”输入中,模型需要完成两项任务:面对完整版部分,它进行标准的语言建模训练,预测下一个字;面对遮盖版部分,它需要根据前半部分完整上下文,一次性预测出每个掩码位置应有的字。通过精心设计的注意力掩码,确保遮盖版中的每个块只能看到它前面已生成的块,严格保持了“只向左看”的因果性。

这里有个精妙的技术细节:在同一掩码块内部,虽然允许位置上的注意力流通,但由于看到的都是掩码符号,实际传递的只有位置信息,没有内容信息。这就像做填空题时,你知道第三空在第二空后面,但并不知道第二空填了什么,从而保证了预测的独立性。

在损失函数设计上,MARS将两项任务的损失相加,各占一半权重。其中,“完整版损失”看似多余,实则是整个方案能扩展到更大块尺寸的关键。

四、为什么“完整版损失”那么重要——一个关于训练信号衰减的故事

当预测的块变大时,模型能在每个块中学到的“标准语言模型信号”会急剧减少。计算一下:在块大小为4时,只有第一个字能看到完全干净的上下文,第二个字面对1个占位符,第三个字面对2个……整个块中,只有25%的位置享受与标准训练完全相同的条件。块大小增至8,比例降至12.5%;增至16,则只剩6.25%。

这意味着,如果只训练掩码预测,随着块变大,模型越来越多地在“失真”的条件下学习,其标准的语言生成能力会逐渐被侵蚀,就像一个钢琴学生大部分时间练习变形的指法,正常指法自然会生疏。

加入完整版损失后,局面彻底改变。此时,整个训练信号中始终有一半来自完美的标准语言模型任务。计算表明,无论块大小如何,标准信号的比例都能稳定在50%以上(块大小为4时62.5%,16时53.1%)。模型得以同时学习“预测掩码”和“维持标准能力”,两者相辅相成。

实验数据印证了这一点:不加完整版损失,块大小从4增至16,模型综合得分从28.4暴跌至22.2;加入后,同样变化仅带来0.7分的轻微波动,数学推理得分甚至略有提升。

五、推理时如何工作——“滑动窗口”机制

训练好的MARS模型在生成文本时,采用一种“滑动窗口”机制。可以想象一个固定宽度的探照灯,每次照亮后方若干个位置。

生成开始时,模型在已有内容后追加若干个掩码占位符(数量等于块大小),然后一次性预测所有这些位置的字及其置信度。接着,从最左边的位置开始,逐一检查:如果某个字的最高概率超过设定阈值τ(如0.95),就接受它,并检查下一个。一旦某个位置置信度不足,就停止接受,无论后面的字置信度多高——严格保持从左到右的顺序。

被接受的字滑入已生成序列,同时在窗口右侧补上新掩码,保持窗口大小,然后进行下一轮预测。循环往复,直至生成结束。为确保可靠性,设计了一条保底规则:每次至少接受一个字。这意味着在最坏情况下,MARS会退化成标准逐字生成模式,绝不会卡死。

阈值τ是一个灵活的“加速旋钮”。将其调至最高(τ→1.0),模型每次只接受一个字,行为与普通模型无异,质量零损失;调低阈值,模型会在把握较大时接受更多字,从而加速,但可能伴随轻微质量下降。最妙的是,这个旋钮无需重新训练模型,可在运行时动态调整。服务器负载高时调低以提升吞吐,需要高质量输出时再调高,实现了动态的资源-质量权衡。

六、实验结果——数字背后的故事

研究团队在5亿和70亿参数规模的模型(基于Qwen2.5指令微调版)上验证了MARS。训练数据约200万条指令样本,先进行5轮标准训练,再进行5轮MARS训练。评测涵盖6个基准,包括指令遵循、逻辑推理、知识问答、数学和代码生成。

在“逐字生成”模式下,MARS模型不仅没有退步,反而全面超越了基线。小模型综合得分从28.7升至30.4,代码生成得分从35.4跃至40.2;大模型从56.6升至58.1,数学和代码能力均有显著提升。这表明,掩码预测训练本身就像一种数据增强,锻炼了模型的原有能力。

为排除“单纯多练了几轮”的干扰,团队训练了一个总轮数相同(10轮)但全程为标准训练的基线模型。结果该模型反而过拟合,得分从28.7降至26.4。这证明提升确实源于MARS独特的训练方式。

相比之下,采用双向注意力(允许块内互看)的Block Diffusion方案,在逻辑推理任务上得分从26.3崩塌至7.5,知识测试从11.9跌至2.0,近乎失效。这一对比强烈验证了MARS的分析:破坏因果注意力结构,对模型推理能力是毁灭性的。

七、速度与质量的天平——可调节的“加速旋钮”

开启多字接受功能(τ=0.95)后,MARS展现了良好的速度-质量平衡。小模型每次前向计算平均接受约1.46-1.49个字,综合精度仅下降约1.1分。大模型表现更佳,平均接受1.68个字,精度仅降1.3分,且仍比原始基线(56.6分)高出0.2分——也就是说,即便开了加速,大模型整体表现依然优于没加速的原始模型

不同任务加速效果各异,这有其内在逻辑。在BBH逻辑推理任务上,大模型平均每次接受2.60个字,因为推理链中大量使用固定连接词和模板,模型把握很大。在IFEval指令遵循任务上,加速效果较小,质量下降较明显(约5分),因为该任务严格检验输出格式(如“恰好写三段”),多字接受可能跳过格式控制词导致错误。

从完整的阈值扫描曲线看,速度-质量关系非常平滑,没有“断崖式下跌”。从τ=1.0到τ=0.5,精度是逐渐降低的。这种平滑性让系统能根据实时负载进行精细调节。

八、让“一次预测多字”在服务器上真正提速——块级KV缓存

算法上“每次多出字”只是理论加速。在实际服务器推理中,还需攻克一个工程挑战:KV缓存。

标准模型每次只生成一个字,它可以将之前所有字的中间计算结果(KV缓存)保存起来,下次只需计算新字,开销很小。MARS每次处理多个掩码,如果每一步都重新计算整个序列,计算量将随序列长度平方增长,反而更慢。实验证实了这一点:无缓存优化时,批量大小从4增至16,MARS的吞吐量从每秒127字降至98字,越批越慢。

为此,团队设计了块级KV缓存策略,逻辑类似“分组结账”。具体而言:只有当一整块的字被批次内所有请求都确认接受后,才将这一块的计算结果统一缓存。在此之前,批次内各请求可能接受了不同数量的字,快的请求需要等待慢的。待最慢的请求也确认完该块后,所有请求同步将这块内容存入缓存,然后一起开始下一块的预测。

效果立竿见影。在批量大小为4时,最优配置(缓存粒度32字)将总耗时从276.2秒压缩至161.2秒,实现了1.71倍的实际挂钟时间加速。批量大小为8时加速比为1.60倍,16时为1.34倍。加速比随批量增大而减小,因为“等最慢请求”的同步开销占比变高,就像结账时人越多越容易有人拖慢整组速度。但即便如此,在所有测试配置下,MARS均快于标准逐字生成。

九、训练代价与适用边界

研究团队也坦诚指出了MARS的局限。训练时序列长度翻倍,计算量约为标准训练的两倍。小模型MARS训练需33个GPU小时(标准训练15小时),大模型需202小时(标准100小时)。考虑到这只是对已有指令数据的继续利用,而非从头预训练,代价尚可接受。

在质量边界上,当接受阈值调得过低(τ<0.7)时,精度下降会加剧,说明当前策略在激进模式下仍有改进空间。块级KV缓存需要在块边界同步,大批量推理时会产生等待开销。此外,研究仅在大模型上测试了块大小为4的情况,更大块尺寸的表现有待验证。

与无需训练的Jacobi解码对比也很有启发性。Jacobi直接在标准模型上运行,但由于模型从未学过“从掩码预测”,其每次前向平均仅接受1.07个字,远低于MARS的1.46个字。不过Jacobi有个优势:它一开始就初始化了所有输出位置,因此天然知道回答长度,在数学和代码生成(对长度敏感)任务上反而略有提升。

总结与展望

归根结底,MARS所做的可以概括为:让模型在“说废话”时少费心思,把省下的算力留给真正需要思考的地方。这不是革命性碘伏,而是一种务实的优化——用大约5个额外训练轮次,换来一个既能当普通模型用、又能在需要时获得1.5到1.7倍加速的新版本。

对于已大规模部署模型的企业,这意味着同等服务器资源能服务更多用户,或缓解高峰期的扩容压力。对终端用户而言,则可能带来更短的响应等待。

这项研究也留下了开放问题:未来能否实现无需块边界同步、各请求独立缓存的机制?能否根据输入复杂度动态选择块大小?能否将MARS与推测解码结合,叠加加速效果?这些都是值得探索的方向。

Q&A

Q1:MARS方法需要对语言模型做哪些结构上的改动?
A:不需要任何结构改动,也不增加额外参数。它仅使用指令数据对已有模型进行继续训练,训练后的模型与原始模型结构完全相同。这与Medusa、EAGLE等需要附加预测头的方法有根本区别。

Q2:MARS和推测解码有什么不同?
A:推测解码需要同时维护两个独立模型(草稿模型和验证模型),内存占用加倍,系统复杂。MARS只需一个模型,训练后既可逐字生成,也可在把握大时一次多字生成,无需辅助模型。

Q3:MARS的接受门槛τ是什么,调低它有什么风险?
A:τ是控制模型“有多大把握才接受预测字”的阈值(0到1之间)。τ调至最高时,模型行为与普通模型一致;调低后,模型会在把握不那么足时也接受预测,从而加速,但错误率可能上升。当τ低于0.7时,精度下降会比较明显,尤其对格式要求严格的任务影响更大。

这项由南洋理工大学、新加坡管理大学和乌普萨拉大学联合开展的研究,以预印本形式发布于2026年4月8日,论文编号为arXiv:2604.07023。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策