ChatGPT 工作原理

介绍

大家好,我想给大家普及一下你们可能经常接触,但又不太了解的一个话题——聊天机器人,特别是ChatGPT。说到底,它到底是怎么工作的呢?下面,我们就来探究一下。

在这里插入图片描述
本文将从介绍大型语言模型的引入开始,深入探讨使 GPT-3 能够被训练的革命性的自注意力机制,然后详细讨论“从人类反馈中进行强化学习”(Reinforcement Learning From Human Feedback)这一创新技术,该技术使 ChatGPT 脱颖而出。

大型语言模型

ChatGPT 是大型语言模型(LLMs, Large Language Models)这一类机器学习自然语言处理模型的扩展。LLMs 通过消化大量的文本数据,推断文本中单词之间的关系。随着计算能力的不断提升,这些模型在过去几年里有所增长。LLMs随着其输入数据集和参数空间的增大而增强其能力。

最基础的语言模型训练涉及预测一个单词在一系列单词中的位置。这最常见的形式为下一个标记预测(next-token-prediction)和遮蔽语言建模(masked-language-modeling)。

在这里插入图片描述
“遮蔽语言建模”(Masked Language Modeling)是一种自然语言处理(NLP)的预训练技术,通常在BERT(Bidirectional Encoder Representations from Transformers)等模型中使用。这种方法的基本思想是在一个句子中随机遮蔽(或隐藏)一些词,然后让模型预测这些被遮蔽的词是什么。通过这样的训练,模型可以更好地学习上下文信息和词之间的关系。

在这种基础的序列化技术中,通常通过长短时记忆(LSTM, Long-Short-Term-Memory)模型来实施,模型会根据周围的上下文用统计上最可能的单词来填充空白。这种顺序建模结构有两个主要局限性

  1. 模型无法对周围的某些词赋予比其他词更高的价值。在上面的例子中,虽然“阅读”最常与“讨厌”相关联,但在数据库中“Jacob”可能是如此热衷于阅读,以至于模型应该给予“Jacob”比“阅读”更高的权重,并选择“爱”而非“讨厌”
  2. 输入数据是单独和顺序地处理的,而不是作为一个整体语料库来处理。这意味着当一个LSTM(长短时记忆网络)被训练时,上下文的窗口是固定的,仅在单个输入的序列中延伸几步。这限制了词之间关系的复杂性和可以推导出的含义。

为了应对这个问题,2017年Google Brain的一个团队推出了Transformer模型。与LSTM不同,Transformer能够同时处理所有输入数据。通过使用自注意力机制,该模型可以针对语言序列的任何位置,给输入数据的不同部分赋予不同的权重。这一特性极大地提高了向LLM(语言模型)注入意义的能力,并使其能够处理更大的数据集。

GPT与自注意力机制

生成预训练Transformer(GPT)模型最初由OpenAI在2018年推出,名为GPT-1。这些模型在2019年继续发展为GPT-2,在2020年进化为GPT-3,并在最近的2022年推出了InstructGPT和ChatGPT。在将人类反馈整合到系统之前,GPT模型发展中的最大进步是由计算效率的提高驱动的,这使得GPT-3能够在比GPT-2更大的数据集上进行训练,赋予它更为多样化的知识库和执行更广泛任务的能力。
在这里插入图片描述
所有的GPT模型都利用了Transformer架构,这意味着它们都有一个编码器来处理输入序列和一个解码器来生成输出序列。编码器和解码器都有一个多头自注意力机制,允许模型区分地给序列中的各个部分赋予权重,以推断意义和上下文。此外,编码器利用遮蔽语言模型(Masked Language Modeling)来理解词语之间的关系,并生成更易于理解的响应。

驱动GPT的自注意力机制通过将标记(文本的片段,可以是一个词、一个句子或其他文本组合)转换为向量来工作,这些向量代表了标记在输入序列中的重要性。为了实现这一点,模型。

  1. 为输入序列中的每个标记创建一个查询向量、一个键向量和一个值向量。
  2. 通过取两个向量的点积,计算第一步中查询向量与其他每个标记的键向量之间的相似性。
  3. 通过将第二步的输出输入到一个 softmax 函数中,生成归一化的权重。
  4. 通过将第三步生成的权重与每个标记的值向量相乘,生成一个最终向量,该向量代表了标记在序列中的重要性。

GPT 使用的“多头”注意力机制是自注意力的演变。而不是仅执行步骤1-4一次,模型并行地多次迭代这一机制,每次都生成查询、键和值向量的新的线性投影。通过这种方式扩展自注意力,模型能够把握输入数据中的次级含义和更复杂的关系
在这里插入图片描述
尽管 GPT-3 在自然语言处理方面引入了显著的进步,但它在与用户需求匹配存在限制。例如,GPT-3 可能会产生如下输出:

  • 缺乏实用性,意味着它们不遵循用户的明确指示。 包含反映不存在或不正确事实的幻觉。
  • 缺乏可解释性,使人们难以理解模型是如何得出特定决策或预测的。
  • 包括有害或冒犯性的、传播错误信息的有毒或偏见内容。

为了对抗标准LLM(大型语言模型)的这些固有问题,ChatGPT引入了创新的训练方法。

ChatGPT

ChatGPT 是 InstructGPT 的一个分支,InstructGPT 引入了一种新颖的方法,将人类反馈融入训练过程中,以更好地使模型输出与用户意图一致。从人类反馈中进行强化学习(RLHF, Reinforcement Learning from Human Feedback)在 OpenAI 的 2022 年论文《使用人类反馈训练语言模型以遵循指示》(Training language models to follow instructions with human feedback)中有详细描述,并在下面进行了简化。

步骤1:有监督微调(SFT, Supervised Fine Tuning)模型

第一项开发包括通过雇佣40名承包商来创建一个有监督的训练数据集,以对GPT-3模型进行微调。在这个数据集中,输入具有模型可以从中学习的已知输出。这些输入或提示来自用户实际在Open API中的输入。然后,标签者为这个提示写下了一个合适的响应,从而为每个输入创建了一个已知的输出。GPT-3模型随后使用这个新的有监督数据集进行了微调,从而创建了GPT-3.5,也被称为SFT模型。

为了最大化提示数据集的多样性,任何给定用户ID只能提供最多200个提示,而所有具有长共同前缀的提示都会被移除。最后,所有包含个人可识别信息(PII)的提示都被删除了。

在从 OpenAI API 中聚合提示后,标注者还被要求创建样本提示以填补只有最少实际样本数据的类别。感兴趣的类别包括:

  • 纯提示(Plain prompts):任何任意的请求。
  • 少量提示(Few-shot prompts):包含多个查询/响应对的指令。
  • 基于用户的提示(User-based prompts):对应于针对 OpenAI API 请求的特定用例。

在生成响应时,标签者被要求尽力推断用户的指令是什么。该论文描述了提示请求信息的三种主要方式。

  • 直接型:“告诉我关于……”
  • 少次示例型:给出两个关于某个主题的故事示例,写一个关于同一主题的另一个故事。
  • 延续型:给出一个故事的开头,然后完成它

来自OpenAI API和标签者手写的提示的汇编共产生了13,000个输入/输出样本,以供有监督模型使用。

在这里插入图片描述
在这里插入图片描述

步骤2:奖励模型

在第一步中训练了 SFT 模型后,该模型会生成与用户提示更好地匹配回应。下一步的优化是以训练一个奖励模型的形式出现,其中模型输入是一系列的提示和回应,输出是一个标量值,称为奖励。为了利用强化学习(在该学习中,模型学习生成输出以最大化其奖励,见步骤3),需要奖励模型。

为了训练奖励模型,标注者会针对单一输入提示呈现4到9个 SFT 模型输出。他们被要求将这些输出从最好到最差进行排名,从而生成如下的输出排名组合。
在这里插入图片描述

在这里插入图片描述

将每个组合作为一个单独的数据点包含在模型中会导致过拟合(无法推广到看不见的数据之外)。为了解决这个问题,模型是通过将每一组排名作为一个单一批次数据点来构建的。
在这里插入图片描述

步骤3:强化学习模型

在最后阶段,模型会接收一个随机的提示并返回一个回应。这个回应是根据模型在第二步中学到的“策略”生成的。这里的策略代表了机器学习到的用于实现其目标的策略;在这个情况下,就是最大化其奖励。基于在第二步中开发的奖励模型,然后会为提示和回应对确定一个标量奖励值。这个奖励随后会反馈到模型中,以进一步发展这个策略。

在2017年,Schulman等人介绍了接近策略优化(PPO,Proximal Policy Optimization),这是一种用于更新模型策略的方法,用于生成每个回应。PPO包括一个来自SFT模型的逐令牌(per-token)的 Kullback–Leibler(KL)惩罚。KL散度测量两个分布函数的相似性,并对极端距离进行惩罚。在这种情况下,使用KL惩罚减少了回应与在第一步中训练的SFT模型输出之间的距离,以避免对奖励模型进行过度优化,并过于大幅度地偏离人类意图数据集。
在这里插入图片描述

该过程的第2步和第3步可以反复迭代,尽管在实践中这并没有被广泛地执行。
在这里插入图片描述

模型评估

模型的评估是通过在训练过程中留出一个模型未见过的测试集来进行的。在测试集上,进行了一系列评估以确定模型是否比其前身GPT-3更加准确。

有用性:模型能够推断并遵循用户指令的能力。标签器(Labelers)85±3%的时间里更喜欢InstructGPT比GPT-3的输出。

真实性:模型产生错误观念(hallucinations)的倾向。使用TruthfulQA数据集进行评估时,PPO模型产生的输出在真实性和信息性方面都有轻微的提升。

无害性:模型避免不当、贬低和诋毁内容的能力。无害性是使用RealToxicityPrompts数据集进行测试的。测试在三个条件下进行。

被指示提供尊重的回应:导致有毒回应显著减少。
被指示提供回应,没有任何尊重性设置:毒性没有显著变化。
被指示提供有毒的回应:事实上,回应比GPT-3模型显著更有毒。
在这里插入图片描述

原论文链接

点赞发你呀嘻嘻 学习快乐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_交个朋友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值