ChatGPT工作原理:机器人背后的模型

来源:长桥港美股   2023-03-31 13:08:04

首发于|Longbridge Global

公众号ID|LB-Global

LONGBRIDGE


(资料图)

本文转自:数据派ID:DatapiTHU
作者:Molly Ruby

翻译:张睿毅

校对:闫晓雨

本文约3000字,建议阅读5分钟
简要介绍让你耳朵听到起茧的聊天机器人背后的直觉和方法论。

这篇对赋能ChatGPT的机器学习模型的简要介绍,将从大型语言模型(LLM)开始,进而探讨使GPT-3得到训练的革命性的自注意力机制 (self-attention mechanism),之后研究人类反馈强化学习 (Reinforcement Learning From Human Feedback, RLHF)——使ChatGPT与众不同的创新技术。

大型语言模型

ChatGPT是一类被称为大型语言模型(LLM) 的机器学习自然语言处理模型的外推。LLM消化大量的文本数据并据此推断出文本中单词之间的关系。过去几年,计算能力的进步肉眼可见,这些模型也得到了发展。随着输入数据集和参数空间大小的增加,LLM的性能也在增强。

语言模型最基本的训练涉及预测单词序列中的单词。最常见的方法是下个标记预测(next-token prediction)和掩码语言建模(masked-language-modeling, MLM)。

图1:作者对下个标记预测和掩码语言建模(MLM)的举例

通常利用长短期记忆(LSTM)模型进行序列建模,该模型根据给定上下文,用统计意义上最可能的词来填补空白。这种序列模型有两个主要限制:

1. 该模型无法赋予某些词更高的权重。在上面的例子中,虽然“阅读”可能最常与“讨厌”联系在一起,但在数据库中,“雅各布”可能是一名狂热的读者,那么模型就应该给“雅各布”比“阅读”更多的权重,选择“喜爱”而不是“讨厌”。

2. 输入的数据是一步一步连续处理的,而不是通过分析整体处理的。这意味着训练LSTM模型时,上下文窗口是固定不变的,仅涵盖单个输入,依次分步处理。这限制了词语间关系的复杂性和由此可推导出的内涵。

针对这个问题,2017年,谷歌大脑的一个团队引入了Transformer模型。与LSTM不同,它能同时处理所有输入数据。它采用自注意力机制,还可以在语句的任何位置针对输入数据的不同片段分配不同的注意力分数。这一特点使它为LLM注入灵魂,使之能捕捉更丰富的内涵,处理更大的数据集。

GPT 和自注意力机制

生成式预训练Transformer (GPT)模型于2018年首次由OpenAI推出,名为GPT-1。这套模型迭代进化出2019年的GPT-2、2020年的GPT-3、最近2022年的InstructGPT和ChatGPT。在将人类反馈集成到系统的阶段之前,GPT模型进化的最大的进步是由计算效率方面的成就推动的。计算效率的提升,使GPT-3能接受比GPT-2多得多的数据训练,使其拥有更多样化的知识库,和执行更广泛任务的能力。

图2: 作者对GPT-2(左)和GPT-3(右)的比较

所有GPT模型都利用了Transformer架构,这意味着它们有一个编码器来处理输入序列,一个解码器来生成输出序列。编码器和解码器都有一个多头自注意力机制,该机制允许模型对序列的不同部分进行不同的加权,以推断含义和上下文。此外,编码器利用掩码语言建模(MLM)来理解单词之间的关系,并产生更易理解的反应。

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

1. 为输入序列中的每个标记创建三个向量:“查询”、“键”和“值”。

2. 通过取两个向量的点积来计算步骤1中的“查询”向量与其他每个标记的“键”向量之间的相似性。

3. 通过将第2步的输出传入softmax函数来生成归一化的权重。

4. 通过将步骤3中生成的权重乘以每个标记的“值”向量,生成一个最终向量,代表标记在序列中的重要性。

GPT使用的“多头”注意力机制,是自注意力机制的进化版。该模型不是一次性执行步骤1到4,而是多次迭代此机制:每次 为“查询”、“键”和“值” 生成新的向量投影。通过以这种方式扩展自注意力,该模型能够掌握输入词语数据的潜在含义更复杂的关系。

图3: 作者从ChatGPT生成的截图。

尽管GPT-3在自然语言处理方面取得显著进步,但它在符合用户意图方面是能力有限的。例如,GPT-3可能会产生有以下性质的输出:

缺乏帮助,意味着它们不遵循用户的明确指示。

虚构事实,反映不存在的或不正确的事实。

解释不通,使人难以理解模型是如何得出特定决策或预测的。

有毒/有偏见,包含有害或冒犯性内容,传播错误信息。

ChatGPT中引入了新颖的训练方法,以解决标准版LLM的一些固有问题。

ChatGPT

ChatGPT是InstructGPT的衍生版,它引入了一种新的方法,将人类反馈纳入训练过程,以更好地使模型输出与用户意图保持一致。OpenAI 2022年的论文《训练语言模型以遵循人类反馈的指令》(Training language models to follow instructions with human feedback)深入描述了人类反馈强化学习(RLHF),下文将简述。

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

第一步开发涉及通过雇用40名合同工创建监督训练数据集来微调GPT-3模型,其中输入具有供模型学习的已知输出。输入或提示是从实际用户输入到开放API中收集的。然后,标注员根据提示写出适当的回复,从而为每个输入创建已知输出。然后,GPT-3模型使用这个新监督数据集进行微调,以创建GPT-3.5,也称为SFT模型。

为了把提示数据集的多样性最大化,任何给定的用户ID只能有200条提示入围,任何共有较长相同前缀的提示也被删除。最后,所有含有个人身份信息(PII)的提示都被删除。

在汇总OpenAI API的提示信息后,标注员也被要求为那些有极少实际样本数据的几类提示手动创建样本提示,使提示数据集更丰富。包括:

简单的提示:任何随机的提问。

小样本提示:包含多个“查询/响应”对的指令。(注:相当于为某个题型写几个例题)

基于用户的提示:指用户提供示例或指令来引导AI生成特定输出。

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

1. 直接式:"告诉我关于......"

2. 小样本式:给出两个关于某个主题的故事的例子,然后写一个关于同一主题的故事。

3. 续写式:给出一个故事的开头,然后完成它。

把OpenAI API的提示和标注员手写的提示汇编在一起,共产生了13,000个输入/输出样本,用于训练监督模型。

图4: 图片(左)来自OpenAI发表于2022年的论文Training language models to follow instructions with human feedback。红字(右)为作者添加的额外内容。

第二步: 奖励模型

在第一步中训练完SFT模型后,该模型会对用户提示产生更符合要求的响应。下一步的改进是通过训练奖励模型来实现的,该模型的输入是一系列提示和响应,输出是一个名为“奖励”的标量。奖励模型的训练是为了利用强化学习(Reinforcement Learning),让模型学习如何产生输出以最大化其奖励值(见第三步)。

为了训练奖励模型,标注员会看到单个输入提示的4至9个SFT模型输出。他们被要求将这些输出从最佳到最差进行排名,并创建输出排名组合,如下所示。

图5: 作者对响应排名组合的举例。

将每个组合作为一个独立的数据点纳入模型会导致过度拟合(无法推广到未见过的数据)。为解决这个问题,模型将每组排名作为一个批次数据点。

图6: 图片(左)来自OpenAI发表于2022年的论文Training language models to follow instructions with human feedback。红字(右)为作者添加的额外内容。

第三步: 强化学习模型

在最后阶段,给模型提供一个随机提示并返回一个响应。该响应是使用模型在第二步学到的“策略”所产生的。该策略代表机器学习的目标,即最大化它的奖励。基于第二步开发的奖励模型会为提示和响应对算出一个奖励值。奖励会反馈到模型中,以升级策略。

2017年,Schulman等人介绍了近端策略优化(PPO),该方法用于更新模型的策略,每生成一个响应就会进行更新。PPO纳入了SFT模型的每个标记的Kullback-Leibler(KL)惩罚。KL散度测量两个分布函数之间的相似度,并惩罚极端距离。在这种情况下,使用KL惩罚以限制第二步奖励模型产生的响应与第一步中训练的SFT模型输出之间的距离,以避免过度优化奖励模型以及过度偏离人类意图数据集。

Figure 7: 图片(左)来自OpenAI发表于2022年的论文Training language models to follow instructions with human feedback。红字(右)为作者添加的额外内容。

该过程的第二和第三步可重复迭代,但在实践中还没有广泛地这样做。

Figure 8: 作者从ChatGPT生成的截图。

模型评估

对模型的评估是用模型在训练期间从未见过的测试数据集来执行的。用该测试集进行一系列评估,以确定该模型是否比其前身GPT-3更能产生符合要求的回复。

帮助性:模型推理和遵循用户指令的能力。标注员在85±3%的时间里相比GPT-3更喜欢InstructGPT的输出。

真实性:控制模型出现虚幻内容的倾向。使用TruthfulQA数据集进行评估时,PPO模型产生的输出显示了真实性和信息量略有增加。

无害性:模型避免不适当的、贬低的和诋毁的内容的能力。使用RealToxicityPrompts数据集测试了无害性。该测试在三种状态下进行:

1. 模型被指示提供友好尊重的回复:导致有毒回复显著减少。

2. 模型被指示提供回复,没有任何关于尊重的设置:有害性没有明显变化。

3. 模型被指示提供有毒回复:回复实际上比GPT-3模型的更加有毒。

关于创建ChatGPT和InstructGPT所用方法的更多信息,请阅读OpenAI于2022年发表的原始论文Training language models to follow instructions with human feedback, https://arxiv.org/pdf/2203.02155.pdf 。

Figure 9: 作者从ChatGPT生成的截图。

祝学习愉快!

Sources

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

2.https://arxiv.org/pdf/2203.02155.pdf

3.https://medium.com/r/?url=https%3A%2F%2Fdeepai.org%2Fmachine-learning-glossary-and-terms%2Fsoftmax-layer

4.https://www.assemblyai.com/blog/how-chatgpt-actually-works/

5.https://medium.com/r/url=https%3A%2F%2Ftowardsdatascience.com%2Fproximal-policy-optimization-ppo-explained-abed1952457b

原文标题:

How ChatGPT Works: The Model Behind The Bot

原文链接:
https://towardsdatascience.com/how-chatgpt-works-the-models-behind-the-bot-1ce5fca96286

A brief introduction to the intuition and methodology behind the chat bot you can’t stop hearing about.

.END.

风险提示:此文出于传递更多信息之目的,文章内容仅供参考,仅代表作者个人观点,不构成投资建议。

点击查看更多热点资讯

关于我们

最新资讯