聊天机器人,这些迷人的对话伙伴,使用自然语言理解(NLU)来理解输入。NLU是自然语言处理(NLP)的一个子集,它使机器能够理解自然语言(文本/音频)。NLU在大多数NLP应用中是一个关键组件,如机器翻译、语音识别、构建聊天机器人等。NLU的基础是语言模型。本文将讨论OpenAI的最新语言模型GPT及其变体,以及它如何引领ChatGPT的突破。本文涵盖的要点包括:了解ChatGPT及其模型训练过程;理解GPT架构的简史——GPT 1、GPT 2、GPT 3和InstructGPT;深入了解人类反馈强化学习(RHLF)。让开始吧!
GPT家族概述
最先进的语言模型架构是变换器(transformers)。变换器的工作不亚于魔法。OpenAI提出了这样一个变换器,即生成预训练变换器模型,俗称GPT。GPT以自监督的方式开发。模型在庞大的数据集上进行训练,以预测序列中的下一个词。这被称为因果语言建模。然后,这个语言模型在监督数据集上进行微调,以进行下游任务。OpenAI发布了三个不同版本的GPT,即GPT-1、GPT-2和GPT-3,以生成类似人类的对话。GPT的三个版本在规模上有所不同。每个新版本都是通过扩大数据和参数进行训练的。GPT-3被称为自回归模型,它被训练仅通过查看过去的值来做出预测。GPT-3可以用来开发像搜索引擎、内容创作等大型应用。但是为什么GPT-3没有实现类似人类的对话呢?让找出答案。
为什么是InstructGPT?
GPT-3未能实现类似人类对话有两个主要原因。GPT-3的一个问题是模型输出与用户指令/提示不一致。简而言之,GPT-3不能生成用户首选的响应。例如,给定提示“用几句话向6岁的孩子解释登月”,GPT-3生成了下图所示的不需要的响应。这种响应背后的主要原因是模型被训练为预测句子中的下一个词。GPT-3没有被训练为生成人类首选的响应。另一个问题是它可以生成不安全和有害的评论,因为它无法控制文本。为了解决这两个问题——对齐和有害评论,训练了一个新的语言模型,可以应对这些挑战。将在下一节中了解更多。
InstructGPT是什么?
InstructGPT是一个语言模型,它生成用户首选的响应,意图进行安全通信。因此,它被称为与以下指令对齐的语言模型。它使用一种名为人类反馈强化学习(RLHF)的学习算法来生成更安全的响应。人类反馈强化学习是一种深度强化学习技术,它考虑了人类反馈以进行学习。人类专家通过从模型生成的响应列表中提供最可能的人类响应来控制学习算法。这样,代理模仿安全和真实的响应。但是为什么要人类反馈强化学习?为什么不使用传统的强化学习系统?传统的强化学习系统需要定义奖励函数,以了解代理是否朝着正确的方向移动,并旨在最大化累积奖励。但是,在现代强化学习环境中,向代理传达奖励函数是非常具有挑战性的。因此,不是为代理定义奖励函数,而是训练代理根据人类反馈学习奖励函数。这样,代理可以学习奖励函数并理解环境的复杂行为。
ChatGPT简介
ChatGPT现在是数据科学领域的热门话题。ChatGPT只是一个模仿人类对话的聊天机器人。它可以回答给它的任何问题,并记住之前发生的对话。例如,给定提示“决策树代码”,ChatGPT以下图所示的Python实现决策树作为回应。这就是ChatGPT的力量。将在最后看到更多有趣的例子。根据OpenAI,ChatGPT是InstructGPT的兄弟模型,被训练以遵循提示中的指令并提供详细的回应。它是InstructGPT的修改版本,模型训练过程有所变化。它可以记住之前发生的对话,然后相应地做出回应。现在让看看InstructGPT和ChatGPT有什么不同。尽管纳入了人类反馈强化学习,InstructGPT并没有完全对齐,因此仍然是有毒的。因此,这导致了ChatGPT的突破,数据收集设置发生了变化。
ChatGPT是如何构建的?
模型训练步骤
1. 微调GPT-3模型
2. 学习奖励函数
3. 使用PPO算法优化策略