量子位公众号 QbitAI

  “预测下一个 token”被认为是大模型的基本范式,一次预测多个 tokens 又会怎样?

  Meta AI 法国团队推出“基于多 token 预测的更快&更好大模型”。

一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% | 最新快讯_人工智能

  多 token 预测模型,在编程类任务上表现尤其突出。

  与单 token 预测相比,13B 参数模型在 HumanEval 上多解决了 12% 的问题,在 MBPP 上多解决了 17%。

一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% | 最新快讯_最小化_02

  小型算法推理任务上,多 token 预测也在分布外泛化方面带来了令人印象深刻的收益。

一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% | 最新快讯_权重_03

  不过在自然语言任务上,多 token 预测方法并不能显著提高 7B 模型在数学选择题上的表现了。

一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% | 最新快讯_最小化_04

  另外一个好处是,即使 batch size 较大,使用4-token 预测训练的模型,推理速度也可提高 3 倍。

  多 token 预测更适合编程

  具体来说,团队设计了一种新的多 token 预测架构,通过n个独立的输出头并行预测n个未来 token。

  使用大量文本数据进行模型训练,包括代码和自然语言数据集。

  再通过实验比较多 token 预测和单 token 预测在多个下游任务上的性能。

一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% | 最新快讯_权重_05

  为啥多 token 预测在编程任务和小型算法推理任务上提升更明显?

  团队猜测可能有两个原因:

  第一,编程语言的逻辑结构更严谨,知识的内在联系更紧密。一个关键节点可能影响到后续整个代码块的走向。多 Token 预测能更好捕捉这种长距离依赖。

  第二,相比自然语言,编程语言的词汇量更小。因此即便每次预测多个 Token,难度也没那么大。反而能迫使模型从局部细节中抽身,着眼全局优化。

一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% | 最新快讯_权重_06

  除了在 token 层面的实验,团队还在更细粒度的字节级模型上做了尝试。

  他们发现,用 8 字节预测替代下一个字节预测后,模型在 MBPP 上的 Pass@1 指标暴增 67%,在 HumanEval 上也提升了 20%。

  而且推理速度还能再快 6 倍,简直不要太香。

一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% | 最新快讯_人工智能_07

  对于背后原理,团队认为多 token 预测缓解了训练时 Teacher Forcing 和推理时自回归生成之间的分布差异。

  也就是说,在训练的时候,模型看到的都是标准答案,生成的时候却得靠自己。好比人类在家做练习册时有答案,考试时却啥也没有,就会不适应。

  而多 token 预测相当于训练时就逼着模型多想几步,这样到了考场上,才能应对自如。

  从信息论的角度,团队还给出了一个更精确的论证。

  传统的下一个 Token 预测,目标是最小化当前位置的信息熵。而2-Token 预测实际上最小化的是当前和下一位置的信息熵之和。

  数学推导表明,后者其实隐含了更大的互信息权重,也就是更看重当前 Token 和未来 Token 的相关性。这就是为什么多 Token 预测更”有远见”。

  不过在这篇论文中,还有几个未解决的问题。

  比如没有探讨如何自动选择最佳的预测 token 数量n,作者提出,未来可以研究使用损失权重调整或动态调整n来解决最佳n的选择问题。

  此外最佳的词表大小也可能与单 token 预测时不同。

  总之,看过这篇论文之后,大家都更期待 Llama-4 了。

一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% | 最新快讯_权重_08

  论文地址:

  https://arxiv.org/abs/2404.19737