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

本文主要是介绍一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% | 最新快讯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

量子位公众号 QbitAI

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

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

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

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

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

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

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

  多 token 预测更适合编程

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  论文地址:

  https://arxiv.org/abs/2404.19737

来自: 网易科技

这篇关于一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% | 最新快讯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/961789

相关文章

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

Spring定时任务之fixedRateString的实现示例

《Spring定时任务之fixedRateString的实现示例》本文主要介绍了Spring定时任务之fixedRateString的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录从毫秒到 Duration:为何要改变?核心:Java.time.Duration.parse

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键