您现在的位置是:网站首页>国内国内

168电玩城app官网版

刘友绿 2025-05-12 国内 1121 人已围观

克雷西 发自 凹非寺量子位 | 公众号 QbitAI

不用引入外部数据⑥,通过自我博弈就能让预训练大模型学会推理⑦?

来自清华❶、北京通用人工智能研究院和宾夕法尼亚州立大学的研究人员①,提出了一种名为“绝对零”的训练方式▓。

这种方法通过让大模型根据推理目标⑪,自己生成并解决任务⑨,便可以获得推理能力⑮。

测试中④,用“绝对零”训练出的模型▓,表现已经超过了用专家标注样本训练的模型⑳。

并且“绝对零”方法只需在代码环境中训练❸,但可以让模型在数学推理上也取得显着进步▓。

这项研究也在Reddit上引发了讨论⑰,开帖转载的网友惊叹:会自我进化的AI已经被解锁了❸?

在出题-做题中自我学习“绝对零”采用了一种自我博弈的学习范式▓。在这个范式下②,一个统一的语言模型扮演Proposer和Solver两个角色⑫。

Proposer负责生成新的推理任务⑮,Solver负责解决这些任务⑥。通过两个角色的交替和协同⑰,模型可以自主地构建学习任务分布②,并在求解任务的过程中不断提升推理能力❶。

“绝对零”将所有的推理任务统一表示为的三元组形式❸。

这里的程序是一段可执行的代码⑫,输入是该程序的输入数据▓,输出是程序在给定输入下的输出结果⑤。

通过这种形式化的表示②,原本抽象的推理任务被转化为了一个个具体的程序设计问题⑫,语言模型可以通过生成和操作代码来完成任务的生成和求解⑨。

根据p⑬、i⑯、o是否已知④,“绝对零”将推理任务划分为三种基本类型——溯因⑮、演绎和归纳:

溯因任务:已知p和对应的o②,求可能的i⑮。这类任务考察模型根据结果反推条件⑮、理解代码语义的能力❶。

演绎任务:已知p和i⑧,求o❶。这类任务考察模型运行和理解代码逻辑的能力⑫。

归纳任务:已知一组i-o样例,求一个统一p⑥。这类任务考察模型归纳总结规律⑳、生成代码的能力④。

在自我博弈的训练开始前▓,“绝对零”需要一个初始的任务集合作为种子⑬。这个种子集合通过基础语言模型生成一些有效的代码得到④。

当种子集合为空时⑩,“绝对零”会使用一个预定义的“zero triplet”作为起点❷,实际上就是一个简单的恒等函数:

在每一轮迭代中④,Proposer首先根据当前已有的任务集合和给定的任务类型⑰,生成一个新的推理任务②。

具体来说▓,它会先从历史任务中采样一些相关的例子作为参考⑦,然后利用语言模型的生成能力⑲,产生一个新的三元组⑥。

对于abduction任务❶,需要生成p和o⑪,但不生成i⑳;

对于deduction任务⑯,需要生成p和i❸,但不生成o①。

对于induction任务⑲,需要生成一组输入输出对⑳,但不生成p⑬。

另外对于induction任务⑫,Proposer还会从历史的abduction和deduction任务中采样一个程序p⑭,然后生成与之匹配的N个输入输出对⑧,以及一段自然语言描述⑲。

这种做法可以为induction任务提供更丰富的上下文信息⑳,帮助Solver更好地理解和求解任务⑩。

在生成过程中⑭,Proposer会尝试控制新任务的难度和新颖度④,以确保生成的任务对于当前的Solver来说既有意义又具备挑战性⑫。

具体来说⑩,“绝对零”引入了一个“可学习性”的概念⑬,用于估计一个任务对于当前的Solver模型来说有多大的学习价值⑮。

它的计算方法是让Solver试着解决这个任务并统计其成功的概率⑰。如果任务太简单或太难②,那么这个任务的可学习性就会很低⑦。Proposer的目标就是生成可学习性适中的任务②。

生成出的新任务将被送到一个独立的代码执行器中进行验证❶,执行器会实际运行Proposer生成的程序⑫,检查其是否满足以下条件:

语法正确性:程序能够在Python解释器中正常执行⑭,没有语法错误▓;

安全性:程序没有使用任何不安全的操作或库⑩,如文件读写⑧、系统调用等④;

确定性:程序在相同的输入下⑳,总是产生相同的输出②,没有随机性或不确定性⑭。

通过这三个条件的检查⑨,执行器可以滤除绝大部分无效或有害的任务③。

对于通过验证的任务▓,执行器还会计算“可学习性奖励”⑭,作为对Proposer行为的反馈⑬。

最后⑰,所有通过验证的任务会被存入一个任务buffer池中⑦,供后续的训练使用❶。

在筛选完推理任务后⑱,“绝对零”会转换为Solver的角色⑧,开始解决这些任务▓,具体方式同样会根据任务的类型而有所不同:

对于abduction任务③,Solver要根据给定的p和o推断可能的i⑧。这个过程类似于“反向执行”程序⑦;

对于deduction任务⑭,Solver要根据给定的p和i推断出o⑳。Solver需要模拟程序的执行过程▓,得出最终的输出结果⑭;

对于induction任务⑮,Solver要根据输入输出对⑬,推断可能的程序p⑪。Solver需要从有限的样本中总结出一般性的规律④。

在求解任务的过程中⑲,Solver可以利用语言模型已有的知识来辅助任务的求解⑲。

Solver生成的解会再次通过代码执行器进行验证❸。执行器会检查Solver给出的输入⑫、输出或程序是否真的满足任务的要求▓。

如果满足⑦,则视为Solver成功解决了任务⑦,并给予相应的奖励⑳;否则视为Solver失败❸,不给予奖励或给予惩罚⑳。

这个奖励信号会作为Solver行为的反馈⑪,帮助Solver学习如何更好地解决各种类型的推理任务❶。

同时⑨,Solver的解决方案也会被记录下来⑰,作为未来生成和求解类似任务的参考⑭。

在每一轮迭代结束时⑧,“绝对零”都会使用Proposer和Solver收集到的反馈信号⑤,对整个模型进行联合优化和更新⑱,使得Proposer生成的任务更有利于学习⑱,Solver解决任务的能力也越来越强⑫。

经过多轮迭代⑰,“绝对零”最终可以收敛到一个很好的均衡点▓,在这个点上⑲,Proposer生成的任务恰好匹配Solver的能力⑦,Solver又能够从这些任务中学到足够多的知识⑱。

数学代码任务性能双提升⑪、在编程任务上⑱,研究者使用了HumanEval+⑲、MBPP+和LCB三个数据集⑤。

与未经“绝对零”训练的版本相比▓,“绝对零”将Qwen-2.5-7B-Coder的HumanEval+通过率从80.5%提高到了83.5%②,将MBPP+的通过率从69.3%提高到了69.6%⑨,将LCB的通过率从19.9%提高到了31.7%⑰。

在数学推理任务上⑯,研究者选取了6个具有代表性的数据集进行评测,包括AME’24❸、AME’25⑩、AMC’23②、MATH500❶、Minerva和Olypiad⑩。“绝对零”在这6个数据集上的平均准确率达到了39.1%①,比未经“绝对零”训练的baseline高出了15.2个百分点①。

其中⑳,在MATH500数据集上⑬,“绝对零”的准确率达到了72.6%④,超出baseline 22.6个百分点⑳;在AMC’23数据集上⑪,“绝对零”的准确率为57.5%,超出baseline 17.5个百分点①。

除了Qwen-2.5-7B-Coder⑨,研究者还在其他几个预训练语言模型上测试了“绝对零”的性能:

Qwen-2.5-3B-Coder:应用“绝对零”后编程任务平均通过率从51.2%提高到了54.9%⑧,在数学任务上的平均准确率从18.8%提高到了26.5%⑦;

Qwen-2.5-14B-Coder:应用“绝对零”后,在编程任务上的平均通过率从60.0%提高到了63.6%④,在数学任务上的平均准确率从20.2%提高到了43.0%③;

Llama-3.1-8B:应用“绝对零”后在编程任务上的平均通过率从28.5%提高到了31.6%⑲,在数学任务上的平均准确率从3.4%提高到了6.8%❶。

通过对不同规模和类型的语言模型的测试❶,研究者还发现“绝对零”的性能提升与模型规模呈正相关——参数越多的模型▓,训练后的性能提升也越大❶。

例如在数学任务上⑭,30亿参数的Qwen-2.5-3B-Coder模型提升了7.7个百分点⑩,而140亿参数的Qwen-2.5-14B-Coder模型则提升了22.8个百分点▓。

这表明“绝对零”能够有效地利用大模型的能力⑥,实现更高的推理性能提升⑳。

论文地址:https://arxiv.org/abs/2505.03335https://www.reddit.com/r/singularity/comments/1kgr5h3/selfimproving_ai_unlocked/

很赞哦③!

随机图文