323. ChatGPT核心技术(合)(1 / 2)
在前世openAI得到Gpt3之后,为了发展出chatGpt级别的智能,他们曾经做过两种不同路线的尝试。
openAI将一批模型命名为达芬奇,分为代码版达芬奇和文本版达芬奇两种,顾名思义,一种用于代码,一种用于文本语言。
这两兄弟可以算作是第一版的Gpt3.5,也就是chatGpt的原始版。
对比原本有点笨笨的Gpt3,两兄弟已经开始展现出不少关键能力。
比如合理的响应人类的指令。
他们针对人类的输入内容,回应会显得非常合理,给人感觉像是在进行对话和思索。而此前的Gpt3,会经常复读相关,但是根本没用也不是回答的句子。
比如可以对从未见过的任务和知识内容进行应对,这一点是至关重要的。
如果模型只能对训练集内有的文本进行理解和回答,那么上线以后是完全没法用的。
广大民众的想象力是无限的,分分钟就会发现智能的漏洞所在,进而对这款智能失去兴趣,这也是为什么Gpt3在人工智能领域外几乎没有什么水花。
最重要的一点,是模型具备了【思维链】,能够对比较长的句子和事件的因果关系进行相当复杂的推理。
这一点也是Gpt3几乎不具备的。
思维链的能力至关重要,它不仅使得模型能够更加聪明的理解人类用户的输入,更加关键的地方在于强化了多轮对话的前后文理解能力。
它使得语言模型仿佛具有了相当的记忆力,用户每次输入内容和进行对话的时候,几乎不需要过多的提及之前的内容,模型就仍旧能够串起前文,理解用户的意图。
这些新的能力,是使得Gpt3.5完全蜕变,成为全世界目光焦点的关键所在。
而与Gpt3相比,模型的参数和训练的数据变化其实很小。
所以孟繁岐才会认为,数据和模型规模固然重要,但还不够产出chatGpt这样聪慧的智能。
在此基础之上,还需要另做文章,并且工程量不小。
这些操作和技巧,就是openAI最成功产品,chatGpt的核心科技。
“首先要做的两件事是【指令微调】和【代码训练】。”孟繁岐如今手下已经有了好几十人,既然付工资,该让他们做的事情当然不用客气。
指令微调到底是否改变了模型的性能,这个问题其实并不好说。
不过前世有很多研究证明,指令微调的确可以使得模型的输出更加符合人类的风格,符合人类的偏好。
或许,微调前的模型其实已经理解了内容,掌握了对应知识,但它表达的方式和风格并不是人类的风格,又或者说,它不知道应该如何表达。
这也就导致了人类对它们的回应评价不高。
“大家不要小看指令微调,如果说随机参数生成的大模型就像是人类婴儿,经过首轮训练的Gpt就像是刚刚完成九年义务教育的中学生。他们有基础的知识和写作能力,但如果想让他们在特定任务上独当一面,还需要进行专门的实习锻炼。”
“指令微调就像是一种引导,让大模型在少量的训练调整中,大概理解什么样的问题需要检索什么样的知识,如何回答才是更好的方式。”
“这种模式,我们之前在做AI医生的时候,已经有过非常详尽的流程和模版了,不熟悉的同事可以先去学习一下。”孟繁岐知晓这件事的重要性,因而从两年前开始收集数据的时候,早就规定了收集数据需要的格式。
一步到位,为后面省了不少事情。
上一次AI医生,之所以能用数亿的参数量做到那么好的效果,指令微调策略是贡献很大的。
他使得AI模型能够显得非常自信专业,很像是具备特定领域专业知识的老医生。
并且时刻知道自己的身份,会提醒患者去医院确认情况,不会过于自信。
“这一次的主要挑战在于我们要打造一个通用的语言大模型智能,因此多个方面和领域都需要微调,任务种类可能达到数千的级别。”
“我留给大家的时间并不多,可能只允许你们失败一次。有任何问题及时跟我联络协调,不要硬着头皮耗,到最后耽误了整体的进度,奖金扣光!”
孟繁岐平时对于薪水发放很好说话,但关键时刻也不会容许有人掉链子。
想做chatGpt这样的通用模型,这一整套流程需要大家齐心协力完成,单只靠几个已经熟悉了这个过程的小团体就显得不够了。
【指令微调】需要用量来堆,前世大家的总结是,【对没有见过的指令也能做出正确反馈】这种奇特的智能能力,是在模型训练的指令数量超过一定程度之后,自动出现的。
很多家机构和模型,都在自己的训练过程中,发现了这样的现象。
说难听点就是,大力出奇迹了,量变产生了质变,并没有谁提前预料到了这个结果。
而另一个关键因素【代码训练】,则是大模型产生了【思维链】的一大主要原因。
Gpt3的训练阶段,数据中没有包含任何代码,它基本不具备【思维链】能力。
谷歌的paLm,含有大约百分之5左右的代码数据,最终得出的模型具备【思维链】的能力。
达芬奇系列分出两支,其中一个对代码做了特训之后,发觉这一系列和后续变体,都获得了【思维链推理】的能力。
2022年,有人就对市面上的大模型都进行了广泛的评估,发现所有针对代码进行过学习的语言模型,都具备很强的语言推理能力。
这一发现,同样暂时没有得到比较合理的解释。
前世大模型火了之后,孟繁岐原本的项目直接被砍,因而读这类的技术和论文很多。
但读来读去,并没有读到任何确凿的证据和理论可以证明又或者是解释,代码就是大模型能够形成思维链又或者是进行复杂推理的原因。
大家也只是发现了这样的观察结果,这两者之间存在相关性,不过未必就是因果关系。
“目前我还没有看到谁将各种代码也加入到模型训练当中”孟繁岐极大地加速了AI技术的发展,等到他推出350亿参数的chatGpt之后,有这个能力入场玩一玩的公司就不剩下多少了。
对大多数人来说,光是把这个大小的模型塞进自己的服务器里,运行在显卡上,就已经是要了老命的事情了。
如此大的模型规模,大家连训练比较常用的数据都难以负担,恐怕很难能够想到要把将代码也加入到文本当中来。
这个小秘密,可能要等孟繁岐推出专门的代码大模型之后,才会有人注意到。
“所以到底为什么让模型学习代码会有助于它的逻辑推理能力,以至于它在处理人类语言的时候也会有这么大的提升呢?”孟繁岐并不知道答案,这件事情在2023年也是未解之谜。
“按理来说,代码是一种中间产物,属于人类语言和机器语言的中间地带。它跟人类语言的差距是非常大的,几乎没有什么相似之处。”closeAI内部曾经对这个问题进行过讨论,但没有什么特别有意义的结果。