我们深入研究了广受欢迎的AI聊天机器人ChatGPT的内部运作方式。如果您想了解它是如何进行生成式人工智能魔术的,请继续阅读。
谷歌、Wolfram Alpha和ChatGPT都通过一个单行文本输入框与用户进行交互,并提供文本结果。谷歌返回搜索结果,即一系列网页和文章,希望能提供与搜索查询相关的信息。Wolfram Alpha通常提供与数学和数据分析相关的答案。
相比之下,ChatGPT根据用户问题背后的上下文和意图提供响应。例如,你无法要求谷歌写一个故事,也无法要求Wolfram Alpha编写一个代码模块,但ChatGPT可以完成这些任务。
从根本上讲,谷歌的优势在于能够进行大量数据库查询并提供一系列匹配结果。Wolfram Alpha的优势在于能够解析与数据相关的问题,并根据这些问题进行计算。ChatGPT的优势在于能够解析查询并根据大部分全球数字可访问的文本信息生成完整的答案和结果,至少是在其2021年之前的训练时期存在的信息。
在本文中,我们将看看ChatGPT如何生成那些完整的答案。我们将首先介绍ChatGPT操作的主要阶段,然后介绍一些核心的AI架构组件,使其能够正常运行。
除了本文中引用的来源(其中许多是每种技术背后的原始研究论文),我还使用了ChatGPT-知否AI问答本身来帮助我创建这篇背景文章。
01
—
ChatGPT操作的两个主要阶段
让我们再次以谷歌作为类比。当你要求谷歌搜索某些内容时,你可能知道,它并不会在你提问的那一刻立即搜索整个互联网来寻找答案。相反,谷歌会在其数据库中搜索与请求匹配的页面。谷歌实际上有两个主要阶段:网络爬虫和数据收集阶段,以及用户交互/查询阶段。
大致而言,ChatGPT的工作方式与此类似。数据收集阶段称为预训练阶段,而用户响应阶段称为推理阶段。生成式人工智能背后的魔法以及它为什么突然爆发的原因在于,预训练的方式被证明具有巨大的可扩展性。这种可扩展性得益于最近在价格实惠的硬件技术和云计算方面的创新。
02
—
AI的预训练如何工作
一般而言(具体细节需要大量篇幅来解释),AI使用两种主要方法进行预训练:有监督和无监督。在当前一批生成式AI系统(如ChatGPT-知否AI问答)出现之前,大多数AI项目都使用了有监督的方法。
有监督的预训练是一个模型在带有标签的数据集上进行训练的过程,其中每个输入与相应的输出相关联。
例如,可以对一个包含客户服务对话的数据集进行训练,其中用户的问题和投诉与客服代表的适当回答标记在一起。为了训练AI,用户的输入将是像“如何重置密码?”这样的问题,而输出将是像“您可以通过访问我们网站上的帐户设置页面,并按照提示进行操作来重置密码。”这样的回答。
在有监督的训练方法中,整体模型被训练以学习一个能够准确映射输入到输出的映射函数。这个过程通常在有监督学习任务中使用,比如分类、回归和序列标记。
但是这种方法在可扩展性方面存在限制。人类训练者必须预测所有的输入和输出。训练可能需要很长时间,并且在主题专业知识方面有限制。
但是,ChatGPT在主题专业知识方面几乎没有限制。你可以要求它为《星际迷航》中的角色迈尔斯·奥布莱恩写一份简历,让它解释量子物理学,编写一段代码,写一篇短篇小说,比较美国前总统的治理风格。
预先预训练模型无法预测所有可能被问到的问题,因此无法使用有监督模型对ChatGPT进行训练。相反,ChatGPT使用无监督的预训练,这是一个改变游戏规则的过程。
无监督预训练是指模型在数据上进行训练,其中每个输入都没有特定的输出与之对应。相反,模型被训练来学习输入数据的潜在结构和模式,而没有特定的任务。这个过程通常在无监督学习任务中使用,比如聚类、异常检测和降维。在语言建模的背景下,无监督预训练可以用来训练模型理解自然语言的语法和语义,从而在对话环境中生成连贯且有意义的文本。
正是在这里,ChatGPT的表面上无限知识的能力成为可能。因为开发者不需要知道输入产生的输出,他们只需要将更多的信息倒入ChatGPT的预训练机制中,这被称为基于Transformer的语言建模。
03
—
Transformer架构
Transformer架构是一种用于处理自然语言数据的神经网络。神经网络通过一系列相互连接的节点层次结构来模拟人脑的工作方式来处理信息。可以将神经网络类比为一支曲棍球队:每个球员都有自己的角色,但他们在具有特定角色的球员之间传递球,共同努力达成进球。
Transformer架构通过使用”自注意力”来处理单词序列,在进行预测时权衡序列中不同单词的重要性。自注意力类似于读者回顾之前的句子或段落,以理解书中新单词所需的上下文。Transformer会查看序列中的所有单词,以理解上下文和单词之间的关系。
Transformer由多个层组成,每个层都有多个子层。其中两个主要的子层是自注意力层和前馈层。自注意力层计算序列中每个单词的重要性,而前馈层对输入数据应用非线性变换。这些层帮助Transformer学习和理解序列中单词之间的关系。
在训练过程中,Transformer接收输入数据(如一个句子),并根据该输入进行预测。模型根据其预测与实际输出的匹配程度进行更新。通过这个过程,Transformer学习理解序列中单词的上下文和关系,使其成为处理自然语言的强大工具,如语言翻译和文本生成等自然语言处理任务。
有一件事需要记住的是,这些模型有可能生成有害或带偏见的内容,因为它们可能学习到训练数据中存在的模式和偏见。实施这些模型的公司正在努力提供”防护措施”,但这些防护措施本身可能会引发问题。这是因为不同的人有不同的观点,试图基于一种思维方式来避免偏见可能会被另一种思维方式视为偏见。鉴于整个社会的复杂性,设计一个通用的聊天机器人是困难的。
让我们首先讨论喂入ChatGPT的数据,然后再看看ChatGPT和自然语言的用户交互阶段。
04
—
ChatGPT的训练数据集
用于训练ChatGPT的数据集非常庞大。ChatGPT基于GPT-3(Generative Pre-trained Transformer 3)架构。现在,GPT的缩写有意义了,不是吗?它是生成型的,意味着它能生成结果;它是预训练的,意味着它基于吸收的所有数据;它使用了权衡文本输入以理解上下文的Transformer架构。
GPT-3是在一个名为WebText2的数据集上进行训练的,这是一个超过45TB的文本数据库。当你可以用不到300美元购买一个16TB的硬盘时,45TB的数据集可能看起来并不那么庞大。但与图片或视频相比,文本占用的存储空间要少得多。
这么庞大的数据量使得ChatGPT能够以前所未有的规模学习自然语言中的词语和短语之间的模式和关系,这也是为什么它在生成连贯且与上下文相关的回答方面如此有效的原因之一。
虽然ChatGPT基于GPT-3架构,但它已经在不同的数据集上进行了微调,并针对对话式使用场景进行了优化。这使得它能够为通过聊天界面与其互动的用户提供更加个性化和引人入胜的体验。
例如,OpenAI(ChatGPT的开发者)发布了一个名为Persona-Chat的数据集,专门用于训练像ChatGPT这样的对话式AI模型。该数据集包含超过16万个由两个人参与的对话,每个参与者都被分配一个独特的角色,描述其背景、兴趣和个性。这使得ChatGPT能够学习如何生成与对话的具体上下文相关的个性化和相关的回应。
此外,还有许多其他用于微调ChatGPT的对话式数据集。以下是一些示例:
– Cornell电影对话语料库:包含电影剧本中角色之间的对话。它包括超过20万个对话交流,涵盖了超过1万个角色对,涉及多种主题和流派。
– Ubuntu对话语料库:由用户寻求技术支持和Ubuntu社区支持团队之间的多轮对话组成。它包含超过100万个对话,是研究对话系统的最大公开数据集之一。
– DailyDialog:包含各种主题的人对人对话,从日常生活对话到社会问题讨论。数据集中的每个对话由几个轮次组成,并标有一组情感、情绪和主题信息。
除了这些数据集,ChatGPT还在互联网上的大量非结构化数据上进行了训练,包括网站、书籍和其他文本来源。这使得ChatGPT能够更加普遍地学习语言的结构和模式,然后可以对特定应用(如对话管理或情感分析)进行微调。
ChatGPT是一个独特的模型,使用了与GPT系列类似的训练方法,但在架构和训练数据方面存在一些差异。ChatGPT有15亿个参数,比GPT-3的1750亿个参数要少。
总体而言,用于微调ChatGPT的训练数据通常是对话式的,并经过专门策划以包含人类之间的对话,这使得ChatGPT能够学习如何以对话的形式生成自然而引人入胜的回应。
想象一下ChatGPT的无监督训练方式:它被提供了大量数据,并被放任自流地寻找模式和理解其中的含义。正是这种机制使得这些新的生成式AI系统能够如此迅速地扩展起来。
虽然ChatGPT的生成式AI主要通过预训练来完成,但它还必须能够理解问题并从所有的数据中构建答案。这是通过自然语言处理和对话管理组成的推理阶段来实现的。
那么在预训练中人类的参与如何?
尽管非监督式预训练具有内在的可扩展性,但有证据表明在ChatGPT准备用于公众使用时可能涉及了人类的协助。
《时代》杂志上的一篇文章揭示了这一情况,该文章讨论了肯尼亚的人类“数据标注员”参与其中,他们每小时赚取1.32至2美元。根据《时代》的报道,这些工人的责任是浏览令人恐惧和性露骨的互联网内容,并为ChatGPT的训练标记出来。
另一篇发布在AI news通讯Martechpost上的文章称,这个大型语言模型是使用一种称为“人类反馈强化学习”(RLHF)的过程进行训练的。根据该文章的说法,“训练过程中使用了经过精细调整的初始模型,采用了有人类训练师扮演用户和AI助手的角色的监督学习。”
在讨论“训练”一词的含义时,存在一些微妙之处。根据ChatGPT自己的说法,“OpenAI并没有使用带有人类反馈的强化学习来训练我。相反,我是使用无监督和监督学习技术的组合进行预训练的,如语言建模、自编码和序列预测。我的训练过程涉及处理来自互联网的大量文本数据,这使我能够学习词语和短语之间的模式和关系。”
AI继续说道:“然而,一旦我完成了预训练,研究人员和开发者可以使用带有人类反馈的强化学习来对我进行精细调整,以适应特定的任务或领域,如回答问题或生成文本。在这些情况下,人类可以通过奖励或惩罚的形式提供反馈,这可以用来更新我的参数并提高我在类似任务上的性能。”
这似乎与Marktechpost和TIME的报道相符,即初始的预训练是无监督的,允许大量的数据被输入系统。但在构建与用户进行对话的回应引擎时(稍后会详细介绍),这些回应引擎显然在回应类型上进行了训练,并进行了过滤不适当材料的训练,而这些训练似乎是由人类协助完成的。
05
—
自然语言处理
自然语言处理(Natural Language Processing,NLP)专注于使计算机能够理解、解释和生成人类语言。随着数字数据的指数增长和自然语言界面的广泛使用,NLP已经成为许多企业的重要技术。
NLP技术可用于广泛的应用领域,包括情感分析、聊天机器人、语音识别和翻译。通过利用NLP,企业可以自动化任务、提升客户服务,并从客户反馈和社交媒体帖子中获得有价值的见解。
实施NLP的一个关键挑战是处理人类语言的复杂性和歧义性。NLP算法需要在大量数据上进行训练,以识别模式并学习语言的细微差别。它们还需要不断地进行改进和更新,以跟上语言使用和上下文的变化。
这项技术通过将语言输入(如句子或段落)分解为较小的组件,并分析它们的含义和关系,以生成洞察或回应。NLP技术使用统计建模、机器学习和深度学习等多种技术手段,以识别模式并从大量数据中学习,从而准确地解释和生成语言。
06
—
对话管理
您可能已经注意到,ChatGPT可以询问后续问题,以澄清您的意图或更好地理解您的需求,并提供个性化的回应,同时考虑到整个对话历史记录。
这就是ChatGPT如何能够与用户进行多轮对话,以一种自然而引人入胜的方式。它涉及使用算法和机器学习技术来理解对话的上下文,并在与用户的多次交流中保持对话。
对话管理是自然语言处理的重要组成部分,因为它使计算机程序能够以更像对话而不是一次性交互的方式与人进行互动。这有助于建立与用户的信任和参与度,并最终为用户和使用该程序的组织带来更好的结果。
当然,营销人员希望扩大信任的建立,但这也是一个可能令人担忧的领域,因为这是AI可能操纵使用它的人的一种方式。
尽管已经讲了3200多个字,这只是对ChatGPT内部工作的一个非常基本的概述。尽管如此,也许现在你对为什么这项技术在过去几个月中爆发有了一些了解。关键在于数据本身并没有受到”监督”,而AI能够理解并运用它所接收的数据。
此外:ChatGPT和Bard:我们是否正在错误的地方寻找答案?
真的很棒。
最后,我将整篇文章的草稿输入ChatGPT-知否AI问答,并要求AI用一句话描述这篇文章。这是它的回答:
ChatGPT就像Google和Wolfram Alpha的聪明堂兄,可以做一些它们无法做到的事情,比如写故事和编写模块。
ChatGPT被认为是一项没有自我意识的技术,但如果这个回答不让你稍微感到毛骨悚然,那说明你没有认真听。
你在使用ChatGPT吗?你对它的工作原理还有哪些问题?
如果你没有用过或者没有其他好用的ChatGPT,现推荐我一直在用的ChatGPT-知否AI问答,支持60余个应用场景,包括论文助手、公司文案、营销文案、多语言翻译、行政公文、科研课题、招投标书、辅助编程、学习与教育、生活娱乐等各个领域。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
Python3.5 版本引入了类型提示(Type Hints),它允许开发者在代码中显式地声明变量、函数、方法等的类型信息。这种类型声明不会影响 Python 解释器的运行,但可以让 IDE 和静态分析工具更好地理解代码,同时提高代码的可读性和可维护性。然而,…