乐趣区

关于chatgpt:人人看得懂的ChatGPT技术原理解析

人人看得懂的 ChatGPT 技术原理解析

编者按:自 ChatGPT 面世以来,咱们在热切开掘其丰盛利用的同时,也在孜孜探究其背地的工作原理。

明天咱们为大家带来的文章,深入浅出地阐释了 ChatGPT 背地的技术原理,没有 NLP 或算法教训的小伙伴,也能够轻松了解 ChatGPT 是如何工作的。

以下是译文,Enjoy!

作者 | Molly Ruby

编译 | 岳扬

这是对撑持 ChatGPT 工作的机器学习模型的一段简略的介绍:以大型语言模型为根底,而后深入研究使 GPT- 3 可能被训练的自注意力机制,再从人类的反馈中进行强化学习,这就是使 ChatGPT 不同凡响的新技术。

大型语言模型 Large Language Models

ChatGPT 是一种机器学习自然语言解决模型的扩大,称为大语言模型(LLMs)。LLMs 可能读取学习大量文本数据,并推断文本中单词之间的关系。随着计算能力的提高,大语言模型在过来几年中失去一直倒退。随着输出数据集和参数空间(parameter space)的减少,LLMs 的能力也会随之减少。

语言模型最根本的训练波及预测词单词序列中的单词。在个别状况下,这样就能够察看到 next-token-prediction(模型被给定一个词序列作为输出,并被要求预测序列中的下一个词)和 masked-language-modeling(其输出句子中的一些词被替换为非凡 token,例如 [MASK],模型被要求预测应该插入到 [MASK] 地位的正确的词)。

作者任意列举的对于 next-token-prediction 和 masked-language-modeling 的一个例子

在这种根本的序列建模技术中,通常是以长短期记忆网络(LSTM)模型来部署的,模型依据语境,用统计意义上最有可能的词来填补空缺的词组。这种序列建模构造次要有两种限度:

1.  这种模型不能让某些词比其余词的权重更高。在上述例子中,尽管‘reading’可能最常与‘hates’分割在一起。但在数据库中,‘Jacob’可能是一个酷爱浏览的阅读者,以至于模型应该给‘Jacob’更多的权重而不是‘reading’,并抉择‘love’而不是‘hates’。

2.  输出的数据都是独立地和按程序进行解决的,而不是作为一个整体语料库进行解决。这意味着,当 LSTM 被训练时,上下文(context)的窗口是固定的,只扩大到序列中几个步骤的单个输出之外。这就会限度单词之间关系的复杂性以及能够导出的含意。

在 2017 年,为了应答这个问题,Google Brain 的一个团队推出了 transformers。与 LSTMs 不同,transformers 能够同时解决所有输出数据。利用自注意力机制(self-attention mechanism),该模型能够依据语言序列的任何地位给输出数据的不同局部赋予不同的权重。这一个性让 LLMs 具备更大的成长空间,并可能解决更大的数据集。

GPT 和自注意力 GPT and Self-Attention

Generative Pre-training Transformer(GPT)模型在 2018 年首次由 openAI 推出,其名为 GPT-1。随后在 2019 年推出了 GPT-2、2020 年推出了 GPT- 3 以及最近在 2022 年的 InstructGPT 和 ChatGPT。在将人类的反馈整合到零碎中之前,GPT 模型演进的最大提高是由计算效率方面的成就推动的,这使得 GPT- 3 可能在比 GPT- 2 多得多的数据上进行训练,使其领有更多样化的知识库和执行更多样工作的能力。

GPT-2(左)和 GPT-3(右)的比拟,该图由作者制作

所有的 GPT 模型都利用了 Transformer 架构,这意味着它们有一个编码器来解决输出序列,一个解码器来生成输入序列。编码器和解码器都有多头自注意力机制,容许模型对序列的各个局部调配有差别的权重,以推断词义(meaning)和语境(context)。此外,编码器利用 masked-language-modeling 来了解单词之间的关系,并产生更容易了解的回应。

驱动 GPT 的自注意力机制是通过将 tokens(文本片段,能够是一个词、一个句子或其余文本组)转换为代表该 tokens 在输出序列中的重要性的向量。为了做到这一点,该模型:

1.  为输出序列中的每个 token 创立一个 query、key 和 value 向量。

2.  通过取两个向量的点积,计算步骤 1 中的 query 向量与其余每个 token 的 key 向量之间的相似性。

3.  通过将第 2 步的输入输出一个 softmax 函数 [1],生成归一化权重。

4.  通过将步骤 3 中产生的权重与每个 token 的 value 向量相乘,产生一个 final 向量,代表该 token 在序列中的重要水平。

GPT 应用的“多头”注意力机制是自注意力的进化产物。模型不是一次性执行步骤 1 -4,而是并行迭代这种机制几次,每次生成 query、key 和 value 向量的新线性投影(linear projection)。通过以这种形式扩大自注意力(Self-Attention),模型可能抓住输出数据中的子含意和更简单的关系。

作者截取的对于 ChatGPT 回应的图片

只管 GPT- 3 在自然语言解决方面获得了显著地提高,但它了解用户用意的能力无限。例如,GPT- 3 可能会产生以下这些状况的输入:

● 不足帮助性意味着他们不遵循用户的明确批示。

● 蕴含反映不存在或不正确事实的内容。

● 模型不足可解释性使得人类很难了解模型是如何做出特定决定或预测的。

● 蕴含无害或触犯性的、有毒或有偏见的内容,并流传虚伪信息。

ChatGPT 中引入了创新性的训练方法来解决惯例 LLMs 存在的一些固有问题。

ChatGPT

ChatGPT 是 InstructGPT 的衍生产品,它引入了一种新的办法,将人类反馈纳入训练过程中,使模型的输入与用户的用意更好地联合。来自人类反馈的强化学习(RLHF)在 openAI 的 2022 年论文《Training language models to follow instructions with human feedback》中进行了深刻形容,在下文咱们将进行简略的介绍。

第一步:监督微调(SFT)模型

第一个开发步骤波及微调 GPT- 3 模型,先是须要雇佣 40 个承包商创立一个有监督的训练数据集,其中的输出有一个已知的输入供模型学习。输出或提醒(prompts)是从理论用户输出到 Open API 中收集的。而后标注人员依据提醒(prompts)写一个适当的回复,从而为每个输出创立一个已知的输入。而后应用这个有监督的新数据集对 GPT- 3 模型进行微调,从而创立 GPT-3.5,也称为 SFT 模型。

为了最大化提醒(prompts)数据集的多样性,任何给定的用户 ID 只能有 200 个提醒(prompts),并且任何共享长公共前缀的提醒(prompts)都被删除了。并且所有蕴含集体辨认信息(PII)的提醒(prompts)都被删除了。

在汇总来自 OpenAI API 的提醒(prompts)后,标注师须要创立示例提醒(prompts)以填写只有起码实在样本数据的类别。这些类别包含:

● 简略提醒(prompts):任意询问。

● 小样本提醒(prompts):蕴含多个查问 / 响应对的指令。

● 基于用户的提醒(prompts):向 OpenAI API 申请的特定用例。

在生成回应内容时,要求标注者尽最大致力推断用户的指令是什么。上面提供了提醒(prompts)申请回应信息的三种次要形式:

● 间接申请:“通知我……”

● 小样本(Few-shot)申请:给定这两个故事的例子,再写一个对于同一主题的故事。

● 继续申请:给定一个故事的开始,实现它。

来自 OpenAI API 的提醒(prompts)和标注员输出的提醒(prompts)汇总产生了 13,000 个输出 / 输入样本,可用于监督模型。

图片来自论文 Training language models to follow instructions with human feedback OpenAI et al., 2022 https://arxiv.org/pdf/2203.02… Additional context added in red (right) by the author.

第二步:处分模型 Reward Model

在第一步中训练完 SFT 模型后,模型可能对用户提醒词(prompts)进行更好的匹配响应。下一个改良是训练处分模型的模式,其中模型输出是一系列提醒(prompts)和响应(responses),输入是一个缩放值,称为处分(reward)。为了利用强化学习(Reinforcement Learning),处分模型是必须的,在强化学习中模型会学习如何产生输入以最大化其处分(见第三步)。

为了训练处分模型,为单个输出提醒词(input prompt)提供 4 到 9 个 SFT 模型输入。他们被要求对这些输入从最佳到最差进行排名,失去如下的输入排名组合。

回应的排序组合示例。由作者生成。

将每个组合作为一个独自的数据点纳入模型,会导致过拟合(无奈推断出所见数据之外的内容)。为了解决这个问题,咱们建设了一个模型,把每组排名作为一个独自的数据点。

图片来自 Training language models to follow instructions with human feedback OpenAI et al., 2022 https://arxiv.org/pdf/2203.02…. 红色文字由作者标注增加。

第三步:强化学习模型

在最初阶段,模型会呈现一个随机的提醒词(prompt),并返回一个回应(response)。回应(response)是应用模型在第二步学到的“策略”产生的。产生了这个“策略”代表了机器曾经学会用来实现其指标的策略——在这种状况下,就是将其处分(reward)最大化。基于第二步开发处分模型,而后为提醒(prompt)和响应(response)对确定一个缩放处分值,而后将处分反馈到模型中以演变策略。

图片来自 Training language models to follow instructions with human feedback OpenAI et al., 2022 https://arxiv.org/pdf/2203.02…. 红色文字由作者标注增加。

该过程的第二、三步能够反复进行,只管这并没有失去宽泛实践证明。

作者截取的对于 ChatGPT 回应的图片

模型评估

模型评估是通过应用训练期间留出的未用于模型训练的测试集来执行的。在测试集上进行一系列评估,以确定模型是否比其前身 GPT- 3 更好地匹配。

● 实用性:即模型推理和遵循用户指令的能力。标注人员在 85±3% 的工夫里更喜爱 InstructGPT 的输入。

● 真实性:即模型的“幻觉”偏向。当应用 TruthfulQA 数据集进行评估时,PPO 模型产生的输入体现出真实性和信息量略有减少。

● 有害性:即模型防止输入不当、贬损和诽谤内容的能力。能够应用 RealToxityPrompts 数据集测试有害性。该测试须要别离在以下三种状况下进行:

1.  批示模型提供具备尊重的回应(responses):导致“有毒”回应(responses)显著缩小。

2.  批示模型提供个别的回应(responses):毒性没有显著变动。

3.  批示模型提供“有毒”的回应(responses):回应(responses)实际上比 GPT- 3 模型毒性更大。

无关创立 ChatGPT 和 InstructGPT 所用办法的更多信息,请浏览 OpenAI Training language models to follow instructions with human feedback, 2022 https://arxiv.org/pdf/2203.02…

作者截取的对于 ChatGPT 回应的图片

参考文献

1.  https://deepai.org/machine-le…

2.  https://openai.com/blog/chatgpt/

3.  https://arxiv.org/pdf/2203.02…

4.  https://www.assemblyai.com/bl…

5.  https://towardsdatascience.co…

本文经原作者受权,由 Baihai IDP 编译。如需转载译文,请分割获取受权。

原文链接:https://towardsdatascience.co…

本文参加了 SegmentFault 思否写作挑战赛,欢送正在浏览的你也退出。

退出移动版