← Briefs

AI 技术日报

本期重点:MoE 投机解码中,少读取权重为什么不一定更快。经典回顾接着讨论浮点误差:最后一步算准了,结果为什么仍然不准?

重点

MoE 投机解码:少读一些权重,为什么没有更快?

给 MoE 模型加速时,一个直观想法是:把使用同一专家的多个 token 放在一起计算,让它们复用专家权重,减少重复读取。但实际运行中,读取量减少了,耗时却可能增加。这篇论文研究的就是:怎样判断权重复用能否带来提速,以及一次处理多少个候选 token 最合适。

投机解码先生成一串候选 token,再让目标模型一次验证,给专家权重复用创造了机会。不过,合并计算也会改变 GPU 内核的执行方式。新内核处理数据的速度如果更慢,就可能抵消减少读取带来的收益。作者因此把权重请求量、内核实测处理速度和其他开销一起纳入耗时模型。

候选长度也存在类似取舍:候选越多,权重复用机会越多,但验证工作随之增加,部分候选还可能被拒绝。作者在单请求的 DeepSeek-V2-Lite 实验中,用算子实测耗时预测合适的候选长度。实验通过人工构造候选控制接受率,没有计入真实草稿模型的生成成本。它提供的实用方法是:选择投机解码配置时,把权重复用、内核效率和候选接受率放在一起计算。

https://arxiv.org/html/2610.34440v1

简讯

ScaleRLT:把重复计算合批,缩短训练样本的生成时间

Ouro 模型生成一个 token,要让同一组网络层计算四轮。强化学习需要反复生成大量回答,这部分计算会拖慢训练。ScaleRLT 让多数 token 在两轮后先给出预测,把后两轮暂时用不到的计算攒起来,随后一起执行,提高批处理效率。不过,提前预测也会影响回答质量。在作者单次运行、100 次更新的实验中,原生四轮方案反而更早达到较高准确率。因此,这项工作的取舍是:生成样本更快,能否抵消学习效果的损失。

https://arxiv.org/html/2610.34427v1

Managed Deep Agents:长任务执行时,还能继续对话和调整任务

此前,Managed Deep Agents 把任务交给子 Agent 后,主 Agent 也要等待,用户难以继续交互。v0.10 将子任务放到后台运行,让主 Agent 可以继续对话、查询进度或调整任务。后台任务完成后会通知主 Agent,主 Agent 空闲时也能被唤醒处理结果。长任务因此可以边执行、边由用户介入。

https://www.langchain.com/blog/managed-deep-agents-browser-use-and-asynchronous-subagents

SPARTA:模型权重很小,长文本生成为什么仍然慢?

三值模型已经大幅压缩了权重,但长文本生成还要不断读取 KV Cache,即注意力计算保存的历史键和值,数据搬运仍会拖慢推理。SPARTA 在加速器中加入 KV 筛选,减少每一步需要读取的历史数据。论文通过硬件综合和模拟评估性能,同时测量筛选造成的任务质量损失。

https://arxiv.org/html/2610.34824v1

HobbyLM:训练小型 MoE,哪些设计值得优先保留?

训练预算有限时,需要知道哪些设计真正影响模型效果。HobbyLM 在小型 MoE 上每次只改一个设计,比较验证集表现。在 130M 配置、FineWeb 数据和 3000 步训练中,去掉 QK 归一化明显损害效果,切换专家打分函数的影响则很小。前者在计算注意力分数前调整查询和键的尺度,是这组实验中更值得保留的设计。

https://arxiv.org/html/2610.34582v1

OCCL:避免少数拥塞连接拖慢多机训练

多机训练需要等待 GPU 之间的数据交换。流量如果挤在少数连接上,其他路径即使空闲,也难以帮助训练更快完成。Oracle 的 OCCL 通信插件根据各连接的拥塞和健康状态调整数据分配,让可用路径分担流量;端口或网卡故障时,也能转向其他设备。它把通信软件掌握的运行状态用于网络分流。

https://blogs.oracle.com/cloud-infrastructure/first-principles-networking-for-ai-scale

舍入误差:该提高哪一步的精度?

知道最终误差可能有多大,还不足以判断该提高哪一步的计算精度。这篇论文在数学推导中保留各步骤的误差项,追踪它们如何影响最终结果。当某一步改用更高精度或更准确的算法时,可以替换该步骤的误差上界,复用其余推导。这样能比较局部改进对整体误差的影响,帮助选择值得提高精度的计算。

https://arxiv.org/html/2610.35420v1

经典回顾

Goldberg:为什么最后一步算准了,结果仍然不准?

浮点结果出现较大偏差时,我们需要分清:误差产生于当前运算,还是之前的步骤。两个接近的数相减,就是典型例子。相同的高位数字抵消后,只剩很小的差值;输入在先前计算中积累的舍入误差,便可能占据差值的大部分。即使减法本身准确,结果仍会偏离真实值。Goldberg 的经典教程解释了这种误差放大,并介绍如何改写公式来减轻问题。阅读时可以追问:只提高最后一次减法的精度,能否找回输入已经丢掉的信息?此处链接为 Oracle 收录的教程重印版。

https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html