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