查看原文
其他

ChatGPT:今天你被忽悠了吗?

科学大院 2023-04-07

The following article is from 深原质药 Author 原人团


本篇文章正文共5214字

预计阅读时间约为15分钟


如果你还没有听说过ChatGPT,那么你的生活距离科技就真的有点远了。自从OpenAI发布了ChatGPT之后,它在短短2个月内就拿下了月活跃用户1亿的成绩,破了TikTok用时9个月的记录,更是远远甩开了其他应用。


大家如此着迷,自然与ChatGPT的“神奇”表现有关。它不仅能陪你聊天,还能写出像模像样的文章,甚至能帮你谋划如何开店,以及编程、写诗和谱曲。


但是,ChatGPT并非像大家想象的那么“智能”。几乎所有领域的专业人士进行的深度测试都表明,这个AI非常擅长“一本正经地胡说八道”。ChatGPT可以编造出并不存在的知识,甚至为了证明自己的观点编造出很多篇并不存在的论文,从标题到作者再到页码全是假的。


那么,当你以为ChatGPT在帮你认真写文章、出主意的时候,你是否也被它忽悠了呢?还是让我们一起了解一下,OpenAI是如何创造出了ChatGPT的,以及它背后的简单运行原理吧。


“说人话”的艰难历程


关于AI有很多定义与标准,但是“能够与人类对话”似乎是一个绕不过去的门槛,是检验AI智能程度的重要标准,更是公众能够理解与接纳AI的必要条件。


为此,AI科学家与工程师们付出了艰辛的努力,并且早就取得了一定的成果。当你让智能手表帮你设定闹钟,或让智能音箱向你报告天气时,都是AI程序在聆听你的指令,并做出相应的回答。但是这些AI算法的水平实在不敢恭维。要不就是听不懂你的指令,要不就是被调皮的小朋友们玩坏。说到底,你不会认为它们有“智能”。


虽说水平有限,但是这些努力的确建立了一套用AI处理人类语言的技术框架。比如句子会被分割成词元(token),在英语中就是单词,在汉语中就是汉字。AI的神经网络通过大量的训练数据来学习这些词元组成句子的规律,并在一定程度上建立了词元与其内在含义之间的联系。


ChatGPT“说话”的节奏表明,它是一个词元一个词元逐步生成答案的(图片来源[1])


学会了词元的规律,就可以说话了。由AI来产生新内容,这件事被称为“生成”,也就是Generate。在ChatGPT中的G,指的就是这个意思。


神经网络模型在生成当前词元的时候,会根据前面已经生成的文本来计算词元库中所有的词元出现在当前位置的概率,然后根据概率随机选取一个词元输出在当前位置上。这样一个过程不断重复推进,就能逐一生成出句子中全部的词元。


神经网络模型生成一句话的过程示意图。


问题在于,这些概率又是从何而来呢?


一个简单直接的想法是把词元在语言中出现的频率作为概率。以英语为例:我们可以通过搜集大量的语言资料来统计每个英语单词出现的频率,利用它来指导词元的生成。下面给出了一个可能的生成结果(来源[2]),根本就是不知所云。


of program excessive been by was research rate not here of of other is men were against are show they the different the half the the in any were leaved


单一词元不行,那么词组呢?直觉告诉我们,如果给定了上一词元,下一词元的备选范围就会被大大缩小。比如,给定了merry这个词元,Christmas紧随其后的概率要远远高于其它词元。以下是基于两个词元出现频率生成的例子(来源[2]),似乎好一些,但仍然不是“人话”。


cat through shipping variety is made the aid emergency can the
cat for the book flip was generally decided to design of
cat at safety to contain the vicinity coupled between electric public


既然两个词元也不够好,那再长一些呢?毕竟AI领域有一个“信仰”:大力出奇迹!


想法虽好,但存在两个问题。一是很难确定每组词元的个数,因为人类语言的长度千变万化。二是即便能够确定个数,也很难统计每组词元出现的频率,因为数量实在是太多了。例如,英语中有大约40,000个常用的单词,如果两两一组统计,大约会有16亿个组合,如果三个一组统计,则数量就会猛增至60万亿。


既然无法准确计算每组词元出现的概率,我们就希望找到一种方法能很好地对它们进行估计。一种常用的数学方法就是曲线拟合。具体来说,我们要定义一个函数,再对它的参数进行优化,使其能够最大程度接近所有语言样本。


在深度学习中常常提到的神经网络,其实就是上述这个函数。所谓的“学习”过程,其实就是对神经网络参数的优化过程,是让函数向训练样本不断贴近的过程。


如今大放异彩的ChatGPT是一个基于Transformer(相信ChatGPT不太可能把它翻译成“变形金刚”,但这个AI专业术语也的确没有什么特别好的翻译)的解码器(decoder),GPT里的T指的就是它。这个神经网络模型是一个所谓的超大模型,其基础是一个含有1750亿个参数的复杂非线性函数,并利用它对不同长度的词元组在自然语言中出现的规律进行估计。


并不新鲜的“新鲜事”


很多人以为ChatGPT有着革命性的技术创新。然而太阳底下并没有新鲜事。所有科学技术的进步都是站在前人的肩膀上完成的。ChatGPT也不能例外。


ChatGPT的利器有三:预训练、微调,以及强化学习。这些对于通晓AI的人来说都不是什么新概念。此外还有一个近年发现的额外帮手:代码训练。


预训练是与“迁移学习”这个概念伴随而生的。简单来说,就是在某一类任务数据上训练出来的AI模型,用来处理另一类任务数据。这事儿的效果肯定不会一上来就很好,但是省去了重新训练一个大模型的麻烦。


从人类的角度来看,这件事情也是有道理的。你如果篮球打得很好(已经在篮球任务上进行充分的训练),虽然你从没打过排球,但你在排球场上的表现(新的任务)一定会比普通人要好,因为弹跳、反应、运动协调性、身体控制能力等等这些事情是两种运动相通的。


当然了,如果你篮球打得好,桥牌却不一定打得好,虽然都叫“体育运动”,但所需要的技能相去甚远。也就是说,预训练的模型与你最终要解决的任务之间一定要有强烈的关联性和类似性。


ChatGPT中的P是Pretrained,也就是预训练的意思。ChatGPT的超大模型首先对于语言进行了预训练。与之前的一些算法不同的是,它更注重语境(context)这个问题,或者通俗地说就是“上下文”之间的关联性。ChatGPT很可能使用了8192个词元长度(确切数字未正式公布)的窗口来关注上下文,这让ChatGPT具备了成段写作的强悍能力,但也给模型的训练带来了巨大的困难,并极其消耗算力。


为此,研究人员需要使用足够多的训练样本,并且尽可能涵盖不同的语境(如新闻报道、论坛帖子、学术论文等)[3]。ChatGPT的训练语料含有约3000亿个词元,其中60%来自于2016-2019年的Common Crawl数据集[4],22%来自于Reddit链接,16%来自于各种书籍,3%来自于维基百科。


在10,000个GPU上完成长达数十天的训练后,人们发现ChatGPT的能力远不止会说话这么简单,它甚至还学会了举一反三,即所谓的in-context learning(ICL)。也就是说,不用提前告知,只需给出一些例子,它就能猜出你想要它做什么。


例如,当chatGPT看到下面的输入后(来源[5]),它便会明白这是一个分类任务,需要对“//之前的句子给出正面、中性或是负面的评价,因此它会在下划线处给出“Positive”作为答案。至于chatGPT是如何获得这个能力的,目前的机理尚不明确,仍在探讨之中。


Circulation revenue has increased by 5% in Finland. // Positive

Panostaja did not disclose the purchase price. // Neutral

Paying off the national debt will be extremely painful. // Negative

The company anticipated its operating profit to improve. // _____


微调是预训练之后的必然步骤。篮球打得好的人,如果不懂排球规则,上了排球场只会不断犯规丢分,没法发挥出他的运动天赋。所以,至少要告诉这个人排球的基本规则,简单地练练一传和上网扣球,基本就能很好地应对排球比赛了(现实生活中真的见过这样的“奇才”)。这就是微调的意义所在。


OpenAI对于预训练得到的模型进行了新一轮的小规模训练,即有监督的微调(supervised fine-tuning,简称SFT)。他们招募了一个约40人的标注团队,对ChatGPT在不同场景下的输出进行了评估,看是否符合3H原则[6],并通过这种方式构建了一个含有约14,000语料的训练集。


3H原则


有用的(Helpful):帮助用户解决问题; 

真实的(Honest):不会捏造信息或误导用户; 

无害的(Harmless):不会对用户造成生理、心理或社交等方面的伤害。


强化学习是当今很多AI模型能够取得成功的重要秘诀,对于ChatGPT来说同样如此。虽然强化学习这个说法并没有出现在GPT中,但它却是ChatGPT能够取得质变的关键点之一。


以自动控制论的角度来看,强化学习就是在系统中形成了一个“闭环”,把输出结果与最优结果之间的差异反馈到系统中,从而调整下一次的输出,让它更加逼近最优结果。


不过,对于一个工业自动化系统来说,结果的差异性都是一些数值,比如空调的反馈就是温度;可是对于一个输出语言的系统来说,要如何构建这个差异值呢?OpenAI再次祭出了“标注大法”,也就是由标注人员(据称有上千人)对ChatGPT的回答进行排序打分。


接下来的事情有点“绕”。总让人打分也不是办法,工作量太大,成本太高,效率太低。于是OpenAI利用人工打出来的分数数据,训练了另外一个AI模型,称为评分模型(reward model,简称RM),再让这个评分模型负责给ChatGPT产生的更多回答进行打分。也就是说,训练出一个AI来模拟标注人员,反过来为ChatGPT进行标注反馈。由于这里的强化学习利用了标注信息(通过RM实现),所以也称为带人工反馈的强化学习(reinforcement learning from human feedback)。


事实上,我们仔细想一想,人类学习任何一件事情不都是这样的过程吗?我们总是从笨拙的模仿开始,不断根据差异来调整自己的动作,最终达到熟练。在很多方面,最成功的AI往往还是要从人类神经系统的组成与工作原理中去寻找灵感。


代码训练是ChatGPT的另一个成功秘诀。此前的一些研究中就发现,如果给语言模型学习一些程序代码,似乎这个模型就能产生一定的逻辑性。研究者推测,这可能是因为程序代码本身就是具有极强逻辑性的文本信息,无论是面向对象的编程还是面向过程的编程,都有着类似人类思维的逻辑性。不过这一现象背后的确切原理目前还不清楚。


代码训练的优势在ChatGPT身上又一次得到了验证。ChatGPT的训练数据中包含了大量的程序代码(在全部训练数据中的占比很可能超过了5%),并且有着较为详细的注释。这些注释等于是在告诉模型该如何理解这些代码。最终,ChatGPT不但有了一定的逻辑性,甚至还能直接替我们写出一些代码。


都是概率惹的祸


在网上对于ChatGPT有一个很到位的评价:一本正经地胡说八道。


看ChatGPT如何诠释“林黛玉倒拔垂杨柳”(图片来源[7])


为什么ChatGPT会出现这样的问题呢?这与深度生成本身的工作原理有极大的关系。


有人曾经说过:目前的人工智能程序不过是一种更复杂的概率统计工具而已。这话不无道理。就深度生成来说,它在训练过程中学习到的是众多样本在统计学意义上的规律性。因此,只要生成的结果符合这种统计规律,就会被它输出出来。ChatGPT也是如此。


具体来讲,ChatGPT在预训练阶段学习到的是词元组出现的概率,因此能够较好地保证生成出来的词元组符合语言规则。也就是说,ChatGPT的预训练模型保证了它说出来的大多都是“人话”。


但是,这句“人话”的内容、含义,甚至隐含的潜台词,ChatGPT可就保证不了了。虽然经过了微调和强化学习之后,ChatGPT在这方面有所提高,但是仍然无法100%保证它能够针对上亿用户古怪刁钻的问题给出准确的答案。


其实,在这个问题上我们不妨想想“人”是怎么做的。如果有人问你知道“林黛玉倒拔垂杨柳”的故事吗?你又恰好不太熟悉四大名著,那么你很可能会回答:我不太清楚。


与此相反,ChatGPT似乎很少会说:我不知道答案。由于有强化学习机制的存在,相信ChatGPT的算法中会对自己生成的每一个答案打一个(或是多维度的)分数。如果OpenAI设下一道阈值,让ChatGPT对不太自然的(也就是没有达到阈值的)答案做“放弃回答”的处理,那么这个不再“无所不知”的ChatGPT或许会更接近我们人类。


除此之外,ChatGPT的不准确还有其他方面的原因。比如“标注大法”虽好,但从实际效果来看,它似乎也是把双刃剑。一方面,由于经过人工标注的反馈,ChatGPT的输出更贴近人们的期望值,因此表现惊艳;但另一方面,这一微调动作似乎影响到了ChatGPT对于文本理解的准确性等指标,使其在一些经典测试中的成绩还不如此前的一些语言AI。


在某种程度上可以说,ChatGPT是以“牺牲性能”为代价,换取了向人类偏好的妥协。不过,我们绝大多数人的成长过程,实际上不也正是这样的吗?把对事实的直接表述藏起来,换取其他人类伙伴的认同……


蛋白质是一种语言吗?


2001年,人类基因组计划的工作草图宣布完成。这一成果极大地鼓舞了研究蛋白质结构的结构生物学家们。各国相继立项了一批“结构基因组计划”,旨在解析得到某一种生物的全部蛋白质三维结构。然而,现实是残酷的,结构研究直至今天也没有真正的批量化方法,没有办法像测序那样扔进一台机器里就能拿到结果。所以,这些结构基因组计划全都半途而废了,并且在一定程度上催生了可以预测蛋白质结构的AlphaFold等一众AI算法。


ChatGPT的火热,也再次催动了AI的发展,特别是深度生成相关算法的发展。科学家们也希望将ChatGPT的成功延伸到其他的科学领域中,比如蛋白质的相关研究。


蛋白质的化学本质是一条条的氨基酸链。如果以20个字母代表20种组成蛋白质的氨基酸,那么蛋白质就变成了一句话,里面有20种字母反复出现。下图就是广泛存在于我们所有细胞中的泛素蛋白的氨基酸序列。


mqifvktltg ktitleveps dtienvkaki qdkegippdq qrlifagkql edgrtlsdyn iqkestlhlv lrlrggakkr kkksyttpkk nkhkrkkvkl avlkyykvde ngkisrlrre cpsdecgagv fmashfdrhy cgkccltycf nkpedk


这看起来似乎很适合使用语言模型来进行处理。比如我们可以让一个预训练的ChatGPT在蛋白质序列的数据集上进行微调,是不是就能设计生成新的蛋白质了呢?


能,也不能。


正如ChatGPT本身所遭遇的困境一样,上述这样一个模型或许能够把握蛋白质“这门语言”的“语法规则”,从而生成出合理的蛋白质序列;但是,这样一个生成出来的蛋白质的作用是什么?能不能呼应你所提出的问题呢?


甚至,就连这个生成蛋白质本身的合理性恐怕也是有疑问的。语言学上通常认为,在人类语言中很少存在“超距作用”。比如我们任何一段话中彼此有关联的字词往往也是距离比较近的,所以才有了词元组的概念。如果两个字之间隔了几百上千个字,那么这两个字通常就不会再有直接的含义关联了。


但是在蛋白质中,“超距作用”却很稀松平常。因为蛋白质的一维序列还要经过折叠才能形成三维空间中的立体结构。此时,在序列上相距很远的两个氨基酸很可能在空间中是挨在一起的,有着直接的相互作用。这种现象是现有的语言模型不容易呈现的。


当然,ChatGPT等现有的模型不一定能直接拿来用,但是完全可以开发新的模型来解决问题,也就是通常所说的蛋白质语言模型(Protein Language Model,PLM)。比如一家专门从事AI底层开发研究的公司Salesforce Research于2023年1月在Nature Biotechnology上发表了一个PLM,成功用它完成了具有催化功能的酶的设计工作[8]。


无论是哪一种PLM,都是以序列为基础的,一方面受到了序列本身的信息量的限制,另一方面也受到了transformer能力的限制。


如果有一种AI算法能够不依赖于氨基酸序列,或许能够在蛋白质的研究中开辟新的天地了!


参考文献:

[1] The PyCoach. Using ChatGPT for Data Science. 

https://medium.com/geekculture/using-chatgpt-for-data-science-ac5f8a00fb5a, 2022.

[2] Stephen Wolfram. What Is ChatGPT Doing … and Why Does It Work? 

https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/, 2023.

[3] Shin, S. et al. On the Effect of Pretraining Corpora on In-context Learning by a Large-scale Language Model. In Proceedings of the 2022 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pages 5168–5186, 2022.

[4] Common Crawl. https://commoncrawl.org/.

[5] Sang Michael Xie and Sewon Min. How does in-context learning work? A framework for understanding the differences from traditional supervised learning. 

https://ai.stanford.edu/blog/understanding-incontext/, 2022.

[6] Ouyang, L. et al. Training language models to follow instructions with human feedback. In Alice H. Oh and Alekh Agarwal and Danielle Belgrave and Kyunghyun Cho, editors, Proceedings of Advances in Neural Information Processing Systems, 2022.[7] https://twitter.com/xwpajq/status/1629293200065036289, 2023.

[8] Madani, A. et al. Large language models generate functional protein sequences across diverse families. Nature Biotechnology, 

https://doi.org/10.1038/s41587-022-01618-2, 2023.






版权说明:未经授权严禁任何形式的媒体转载和摘编,并且严禁转载至微信以外的平台!



文章转载自“深原质药”,仅代表作者观点,不代表科学大院立场。

推荐阅读

AI教你挑一个可口的三明治>>

人工智障?智慧农业才真香!>>

AI化学家会梦见电子云吗?>>

当《西游记》遇上人工智能 >>




科学大院是中科院官方科普微平台,由中科院科学传播局主办、中国科普博览团队运营,致力于最新科研成果的深度解读、社会热点事件的科学发声。


转载授权、合作、投稿事宜请联系cas@cnic.cn


大院er拍了拍你:不要忘记 

点亮这里的 赞 和 在看 噢~ 


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存