目录
一、深度学习与语言模型
二、ChatGPT训练三步走
三、情景学习与思维链
四、修改提示语优化结果
五、能力评估和注意问题
六.算法原理
简介:
ChatGPT的人工智能原理主要基于深度学习技术,特别是大规模的预训练语言模型和Transformer结构。ChatGPT通过接收用户输入并返回响应,逐渐学习对话生成的任务,其内部包含大量的参数和复杂的结构,能够进行高度复杂的语言理解、推理和生成。
一、深度学习与语言模型
深度学习就是用层数较多(深)的人工神经网络从数据中学习输入与输出之间映射关系的算法,而人工神经网络是受生物神经网络的结构和功能启发下设计的计算模型。
用深度学习训练得到的网络就叫深度神经网络,它可以简单的看成一个函数,能够完成任何输入到输出的转换。比如:我们可以用它玩成语补全的游戏,输入成语的前三个字,让网络输出最后一个字(见图1)。
图1. 成语补全的深度神经网络
语言模型可以看成是成语补全的扩展版,它能够给定任意上文的情况下,预测下一个字或词。比如:输入“床前明月光,疑是地”,模型会输出“上”,然后将“上”添加到原输入中变成“床前明月光,疑是地上”,再输入到模型中,则会输出“霜”。如此这般,可以生成出完整的唐诗《静夜思》。使用这样的语言模型就可以完成文本生成任务了,类似技术被称为生成式人工智能(当然也还要包括生成图像、声音和视频等等啦)。
能够依据多长的上文来预测下一个字或词对模型的性能影响较大,目前一般从几千到几万个字或词不等,能够处理的上文越长,模型越强大。很多情况下,相同的上文,可以有多个不同的下文,所以模型输出实际上是不同可选字或词的概率分布。基于这些概率分布,使用随机采样方法就可以为同一个上文生成不同的下文,这种能力对于ChatGPT这种聊天和对话模型非常有用,因为它可以带来回答的多样性。
二、ChatGPT训练三步走
第一步“学会说话”:我们用深度神经网络来训练语言模型,先收集包含各种语言(英文、中文、法文等)尽可能多的文本,每次随机抽一段上文,让模型学会接着往下“背诵”(见图2)。由于看过和背过的文字实在是太多了(实际训练使用了几乎所有能从各种渠道获得的文字和图书资源),模型就可以像模像样地说话了。训练时除了使用海量文本,还会包括大量的代码(就当普通文本一样对待)。一般认为代码有助于提高模型的“逻辑推理”能力,因为代码实现的算法就是对求解问题所需逻辑步骤的描述。
图2. 使用海量包含多种语言的文本训练语言模型
第二步“理解意图”:光会文字接龙肯定是不够的,最终目标是要用它来替我们干活的。所以这一步我们让模型统一以“给上文、补下文”方式来学习完成各种各样的任务。问答任务直接可以用“给上文(问题)、补下文(回答)”方式实现,但有些任务还需要在上文中加上提示(见图3)。以翻译为例,除了告诉模型需要翻译的内容外,还要指示模型翻译成哪种目标语言。这一步提示学习完成之后,模型即已“博览群书”(第一步)而“胸有成竹”,又能“领会意图”(第二步)而“对答如流”,已经处于基本可用的状态了。
图3. 多任务提示学习让模型学会各种任务(绿色字体为提示语)
第三步“反馈择优”:对于某些问题,模型可能会生成带有偏见、歧视或者令人不适的回答。另外,之前提到过,对于同一个问题,模型能够生成多个不同的回答。这一步中我们让人们对同一问题的不同回答进行排序,然后采用强化学习算法(从交互中得到反馈,迭代优化模型的生成策略)进一步调整模型,使输出回答更符合人们的期望,达到与人们期望对齐的效果(见图4)。
图4. 使用强化学习提高模型生成与人们期望相符回答的概率
经过以上学会说话、理解意图和反馈择优三个主要训练步骤,能够以自然语言对话方式完成各种任务的生成式大模型就构建出来了,之后当然还可用领域数据或强化学习进一步对模型进行迭代精调。一般而言,模型的规模越大,能够存储和融合的信息和知识就越多,性能也就越好。
希望详细了解构建和训练类ChatGPT模型完整过程可以参阅《如何构建和训练ChatGPT》(特别是强化学习部分)。
三、情景学习与思维链
使用ChatGPT时,情景学习(In-context Learning)方法能够显著提高其回答的质量,它的原理其实也非常简单。比如:问一位年幼的孩子4乘以5等于多少,他可能答不上来。但你先告诉他:“1乘以5等于5;2乘以5等于10;3乘以5等于15。”接着再问他:“4乘以5等于多少?”,他回答正确的可能性就增加了。同样,情景学习也是在提问前列举一些相似的例子作为输入喂给模型。
以影评的情感分析为例(见图5),先给出三个影评及其情感极性(好评、中性和差评),然后让模型分析“看完后让人感慨万分,久久不能忘怀。”的极性。
图5. 影评情感分析中使用情景学习的例子
一般来讲,使用情景学习时,所给出的例子越多越好。这里有一个有趣的现象值得一提,测试表明在所给出的例子中标签(即图5中的“差评”、“中性”和“好评”)是否正确与性能关系不大。比如:我们将“主演表情作作、略显浮夸。”的标签改成“好评”,又将“这部电影叙事紧凑、特技一流。”的标签改成“差评”,并不会影响模型对于“看完后让人感慨万分,久久不能忘怀。”影评的分析结果。但是例子呈现的格式(图5为一则影评后跟相应的情感标签,中间以空格分隔)要与提问的形式保持一致,并且文字内容要来自同一领域(图5中的例子不宜是餐馆或旅店评价的语句,因为问题是对电影评价的情感分析)。
我个人认为出现以上现象的原因是:ChatGPT是一种集成了语言运用、语义理解和世界知识的模型。模型其实已经具备了回答所需要的知识,少量的例子并不足于改变模型对于问题的判断和回答,难点是如何引导模型准确提取出与问题相关的知识来。所以情景学习中的例子要来自同一领域,这有利于模型检索出回答问题所需的相关信息和知识。同时,以统一的格式呈现例子和问题,则有利于模型按格式规定的顺序依次生成回答。
思维链(Chain-of-Thought)可以看成是情景学习的扩展,它不仅给出例子及相应结果,还给出得到该结果的计算或推理步骤(见图6)。本人猜想思维链有效的原因是给模型解题提供了一种模板或过程的指引,这种序列化的文本模板易于被生成模型所使用,它为生成较长内容的整体结构和中间步骤进行了预先的规划。这种模板也为模型在特定步骤上调取计算或推理所需知识提供了线索,从而引导模型得出正确的答案。
图6. 求解数学应用题时使用思维链的例子
四、修改提示语优化结果
提示语(本文第二节的第二步提到过)的好坏确实会影响ChatGPT的回答质量(情景学习和思维链都可以看成是特殊的提示),现在已经出现了提示工程(Prompt Engineering)这个研究方向和提示工程师这种职位。撰写好的提示语有两个基本原则:
-
指令清晰并且具体;
-
给模型思考的时间。
第1条原则比较好理解,一般不要担心指令写得过长。在没有冗余的情况下,宜长不宜短。第2条原则的意思是复杂问题不要让模型直接得出结论,而要详细指示所需步骤,然后让模型根据每一步得到的结果再给出最终的判断。比如:对于一道比较复杂的数学应用题,不要直接问某个答案是否正确。可以参考以下形式来写提示语:
-
第一步:先求解这道数学应用题;
-
第二步:将求解出的答案与给出的答案进行比较;
-
第三步:根据比较的结果,回答给出的答案是否正确。
如果以API方式批量调用ChatGPT的话,这里提醒一个小技巧。可以指示ChatGPT以JSON、HTML等结构化形式返回结果,以方便提取所需的内容。
五、能力评估和注意问题
2022年11月所推出的ChatGPT已经非常可怕了,OpenAI公司又于2023年3月推出比ChatGPT更为强大的GPT-4,并且还开始支持网页搜索、图片生成、计算器等插件(Plugins),使其能够在必要时调用插件来提高解决问题的能力。
ChatGPT在没有针对医学知识精调和强化的情况下,在美国医学执照考试的三个部分中达到或接近通过的门槛。Google公司对ChatGPT进行了程序员招聘面试,结果其编程能力可匹敌一位三级水平的软件工程师,每年可攒得18.3万美元薪资。ChatGPT还在MBA核心课程《运营管理》的期末考试中的基本运营管理和流程分析方面表现出色,不仅答案正确,而且能给出合理的解释。
我们近期借助认知心理学方面的理论对ChatGPT认知能力进行了评测,它在词汇的任务上表现相对出色,与英语母语的16岁左右高中生的认知能力相当,但逻辑推理和数字处理方面的能力相对较弱,相当于10岁左右的小学生水平,整体表现文强理弱。
ChatGPT和GPT-4等本质上是能够执行生成任务的机器学习模型,其天生会存在或衍生出以下一些问题:
-
“幻觉”问题,即生成看起来似乎合理,但不准确或编造的信息(天生什么话都会接);
-
容易生成带有偏见、歧视和不符合伦理内容(训练使用的数据集里就存在);
-
缺乏及时更新信息和知识的方法(使用网页搜索插件会有所缓解);
-
某些任务的返回结果受提示词的影响较大;
-
使用和交互时可能会泄露个人的隐私;
-
可能被某些人滥用来制造虚假信息和内容等
六.算法原理
ChatGPT的算法原理主要基于深度学习和自然语言处理技术,通过构建一个大型语言模型来实现。这个模型的核心在于它能够学习并理解大量的文本数据,包括网页、新闻、书籍等,以及网络上的热点话题和流行文化,从而了解最新的语言模式和表达方式。ChatGPT的工作流程大致如下:
-
数据收集与预处理:首先,ChatGPT会收集大量的文本数据,并对这些数据进行预处理,包括分词、去除停用词、翻译等,以帮助模型更好地理解输入的文本并提高生成的文本质量。
-
建立模型:在预处理的基础上,ChatGPT会构建一个深度学习模型,该模型包含了多个卷积层、循环神经网络和池化层等,这些层的协同工作能够使模型更好地捕捉语言的模式和语义。
-
生成文本:一旦建立了模型,ChatGPT就可以生成与人类语言相似的输出文本。它使用的是一种称为“Transformer”的深度学习架构,该架构能够学习从输入文本到输出文本的映射关系。
-
输出控制:生成的文本输出后,还需要进行一系列的输出控制,包括语法、语义、情感等方面,以确保生成的文本符合人类语言习惯。