目录
一、深度学习与语言模型
二、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)。本人猜想思维链有效的原因是给模型解题提供了一种模板或过程的指引,这种序列化的文本模板易于被生成模型所使用,它为生成较长内容的整体结构和中间步骤进行了预先的规划。这种模板也为模型在特定步骤上调取计算或推理所需知识提供了线索,从而引导模型得出正确的答案。
