说难听点就是,大力出奇迹了,量变产生了质变,并没有谁提前预料到了这个结果。
小主,
而另一个关键因素【代码训练】,则是大模型产生了【思维链】的一大主要原因。
GPT3的训练阶段,数据中没有包含任何代码,它基本不具备【思维链】能力。
谷歌的PaLM,含有大约百分之5左右的代码数据,最终得出的模型具备【思维链】的能力。
达芬奇系列分出两支,其中一个对代码做了特训之后,发觉这一系列和后续变体,都获得了【思维链推理】的能力。
2022年,有人就对市面上的大模型都进行了广泛的评估,发现所有针对代码进行过学习的语言模型,都具备很强的语言推理能力。
这一发现,同样暂时没有得到比较合理的解释。
前世大模型火了之后,孟繁岐原本的项目直接被砍,因而读这类的技术和论文很多。
但读来读去,并没有读到任何确凿的证据和理论可以证明又或者是解释,代码就是大模型能够形成思维链又或者是进行复杂推理的原因。
大家也只是发现了这样的观察结果,这两者之间存在相关性,不过未必就是因果关系。
“目前我还没有看到谁将各种代码也加入到模型训练当中...”孟繁岐极大地加速了AI技术的发展,等到他推出350亿参数的ChatGPT之后,有这个能力入场玩一玩的公司就不剩下多少了。
对大多数人来说,光是把这个大小的模型塞进自己的服务器里,运行在显卡上,就已经是要了老命的事情了。
如此大的模型规模,大家连训练比较常用的数据都难以负担,恐怕很难能够想到要把将代码也加入到文本当中来。
这个小秘密,可能要等孟繁岐推出专门的代码大模型之后,才会有人注意到。
“所以到底为什么让模型学习代码会有助于它的逻辑推理能力,以至于它在处理人类语言的时候也会有这么大的提升呢?”孟繁岐并不知道答案,这件事情在2023年也是未解之谜。
“按理来说,代码是一种中间产物,属于人类语言和机器语言的中间地带。它跟人类语言的差距是非常大的,几乎没有什么相似之处。”CloseAI内部曾经对这个问题进行过讨论,但没有什么特别有意义的结果。
大家断断续续讨论了一两周,都猜测,也许是因为编程过程与人类逐步解决任务的过程非常类似。
很多难题都不是可以一步到位的,问题也比较复杂,并不能简单进行答复。
很可能需要分多个层次进行分析,讨论各种可能性。
这就和编程当中的if语句有些类似。
模型很可能从代码的方式中触类旁通,学会了对不同的假设场景给与不同的应对策略。
而比较整体的代码项目,又会将一个相对复杂的任务,拆解为数个简单任务,做成不同的功能。
这一点很可能是大量代码对大语言模型有很强效果的一大原因。
总得来说,孟繁岐觉得这件事情还是非常有趣的。
这些代码别说普通人了,他自己都有很多根本看不懂。
因为收集代码数据集,涉及的各种不同语言太多,光是比较知名的就有十来种。
大部分程序员能写个三四种语言,就已经相当不得了了。
并且,即便一位懂得某个语言,他的实力也未必就能看得懂具体的项目。
孟繁岐非常怀疑大模型是否真的理解了每个项目的具体意义,但唯一肯定的是,大量代码对模型的效果帮助的确很大。
而等到【指令微调】和【代码训练】都做完之后,孟繁岐就需要做一种基于人类反馈的强化学习(RLHF)了。
ChatGPT与此前各种测试版本的达芬奇3.5模型相比,一个很大的区别就是它经过了RLHF。
ChatGPT后来很多新的能力,那些显得非常智能的能力,都是基于人类反馈而诞生的功能。
比如相对详实的回应,ChatGPT相比原始的大语言模型显得有些啰嗦,它会倾向于给出更为全面的回答。
并且,对于涉及多方利益的事情,它很喜欢端水,以免显得过于偏向某一方,显得是在【站队】。