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

article/2024/11/13 8:12:37

人人看得懂的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.02155.pdf. 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.02155.pdf. 红色文字由作者标注添加。

第三步:强化学习模型

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

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

该过程的第二、三步可以重复进行,尽管这并没有得到广泛实践证明。

作者截取的关于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.02155.pdf.

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

参考文献

1.  Softmax Function Definition | DeepAI

2.  ChatGPT: Optimizing Language Models for Dialogue

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

4.  How ChatGPT actually works

5.  https://towardsdatascience.com/proximal-policy-optimization-ppo-explained-abed1952457b

本文经原作者授权,由Baihai IDP编译。如需转载译文,请联系获取授权。

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


http://chatgpt.dhexx.cn/article/x9RhPP5v.shtml

相关文章

泰安柒柒:如何用ChatGPT回答国外问卷的开放题?

大家好,我们在做国外问卷的时候经常会遇到一些棘手的开放题,尤其是我们批量去做的时候,如果答案都一样,极有可能会导致不下卡。一般我们遇到开放题都是用百度谷歌等浏览器去搜题的。这种方式其实是比较繁琐的,不仅要搜…

笑疯!外国小哥用ChatGPT完成80%工作,同时打4份工

大家好!我是韩老师。 之前和大家聊了聊:未来,ChatGPT/Copilot 会让程序员失业吗? 但其实呢,ChatGPT 远远不只是影响程序员这一个行业,而是会改变很多的行业。 也许 ChatGPT 不能完全替代一个人,…

外贸版ChatGPT,每天节省5小时开发客户时间,可以用来干这些事情

最近很多外贸朋友跟我说订单下降了很多,外贸市场行情不好,客户越来越难谈,获客成本也越来越高了等等 但是我还是会经常提醒:有尝试过升级转型吗,比如启用高效开发客户方法、提高跟进技巧等等 最近火爆出圈的ChatGPT也是…

国外各大学和学院对于ChatGPT使用立场总结

ChatGPT和生成式AI的快速普及对教育这个专业领域带来了威胁——全国各地的大学和学院都召开了紧急会议,讨论如何应对学生利用AI作弊的风险。 一部分学校和教授担心这项技术会成为学生在论文或其他写作作业和考试中寻求捷径的工具。而这种生成内容的方式往往能够绕开…

国外ChatGPT横空出世,国内无代码开发一样惊人,旗鼓相当

ChatGPT火爆了,究竟是什么? 有些人以为ChatGPT,只是更先进的人工智能聊天工具罢了。它除了能学习与理解人类对话语言,还能结合下文“思考”,实现与人类正常交流。 这款由美国OpenAI研发的人工智能技术,202…

一个可以免费白嫖ChatGPT和AI绘画的网站

今天给大家分享一个可以免费白嫖ChatGPT的网站:https://www.aitest.me/ 不需要登录,完全免费,不需要魔法 2. 网站集成了200多个Prompt提示词 ​ 3. 支持GPT4和联网模式 ​ ​ 4. 可以进行英语口语训练 ​ 5. 可以解析文档 ​ 6. 傻瓜式AI绘

太香了!用chatGPT写正则

chatGPT热度一直持续不下,我们普通人能做什么? 当然是先用起来,和自己工作结合起来,提高效率。 日常工作中正则使用少不了,可以让gpt来写正则,再也不用去小度查了。 今天推荐下朋友开发的gpt 正则工具&…

使用 ChatGPT 在短短 5 分钟内创建您的个人简历网站(并免费托管)

在这篇博文中,我们将向您展示如何使用 ChatGPT 这种强大的语言模型,在短短 5 分钟内创建一个个人简历网站。我们还将向您展示如何在 ChatGPT 的帮助下免费托管您的网站! 在当今的数字时代,拥有强大的在线形象至关重要,…

高效使用ChatGPT进行学习

ChatGPT作为一款对话式内容生成模型,拥有优秀的自然语言理解和生成能力,还拥有丰富的知识库。相比较于传统搜索引擎,它给出的答案更符合人们阅读习惯,用好它能让我们学习事半功倍。 思维的转变 传统搜索的思路 当我们碰到一个问题…

如何用ChatGPT学Python

大家好! 关于ChatGPT的能力,大家想必都已听说,很多同学应该都亲自体验过了。其在自然语言处理方面的出色表现,绝对是颠覆了之前大众对人工智能的印象 但ChatGPT的能力还远不止对于语言文字的处理,它甚至可以对代码进行…

​使用ChatGPT进行文章降重​

#ChatGPTTOC 使用ChatGPT进行文章降重 在ChatGPT引领的技术爆炸时期,如何使用它对文章进行降重? 推荐一个实测简单有效的方法,只需两步: 简单来说就是先进行关键点提取再进行关键点扩写。 关键点提取 提炼出这段话的关键点和结论…

用chatgpt做ppt

step1:告诉它指令:接下来你回复的所有内容都放到markdown代码框中 step2:然后告诉它需求,待回复后点击copy code step3 使用www.mindshow.fun网站,登陆账号之后点击导入

如何使用ChatGPT开发Unity小游戏

写在前面 首先我们需要知道ChatGpt的语料学习机制,所以为了让它更加“精准扶贫”,钥匙君建议大家在提问之前先引导它进入你想要它成为的角色,ChatGpt在国外已经被“玩坏”,在游戏领域也切实提高了不少码农的工作效率,…

用chatGPT写chatGPT教学方案

最近从机器学习的原理、数学推理、主流模型架构、chatGPT的Prompt策略,也实际体验了各种AIGC工具,算是较为系统的学习了chatGPT的前世今身,想着有很多人应该跟我一样,没有编程基础、也没有成为chatGPT专家的希望,仅仅通…

如何用ChatGPT使开发效率提高50%以上?

简介 ChatGPT是一个大型语言模型,由OpenAI开发。它被训练用于进行对话式交互,能够理解和生成自然语言文本。ChatGPT可以用于多种任务和场景,包括但不限于:智能助手、创意生成、语言学习、编程辅助等。ChatGPT的优势在于它的广泛知…

如何使用ChatGPT

方式一:CSDN连接直接下载 ChatGPT插件下载地址 先解压文件,将.crx文件拖到至谷歌浏览器插件扩展程序中,然后打开新的谷歌浏览器选项卡就可以用使用OpenAI 方式二:通过安装谷歌WebTab插件来使用OpenAI WebTab官网地址 使用夸克下…

使用chatgpt实现微信自动回复

WechatAutoReply/微信自动回复 很早一段时间体验过github上的使用chatgpt实现微信自动回复的项目,但项目基于itchat,微信都被警告了。前段时间基于桌面端的微信写了个模拟键鼠操作的自动回复的代码。代码链接在这,有兴趣的朋友可以下载玩玩 …

如何用ChatGPT制作xmind

第一步:向ChatGPT提问内容Q:“去旅游要分几个步骤” 第二步:输出格式Q:转换markdown格式点击右上角 copy code注意:如果结果不是代码形式,补充一句提问“请用代码形式呈现” 第三步:复制到text&…

如何高效使用ChatGPT

随着ChatGPT的不断推广,许多人在使用时都会遇到一个问题:ChatGPT给出的回答不是我想要的答案。这也是我们早期接触ChatGPT时会遇到的状况——用得“不太好”。 在对ChatGPT不断地探索、尝试以及查阅官方资料后,我们找到了一个突破点。ChatGP…

我们如何使用好chat gpt?

要使用好CHAT GPT,您可以考虑以下几个方面: 1. 确定使用场景:CHAT GPT作为自然语言生成模型,在各个领域都有着广泛的应用,包括内容生成、对话交互、数据分析等。在使用CHAT GPT之前,您需要确定它的使用场景…