ChatGPT 的强大之处在于能够解析查询并根据世界上大多数可通过数字方式访问的文本信息(至少是截至 2023 年 12 月之前训练时存在的信息)生成完整的答案和结果。但是它如何工作的,很多人都不知道,现在我们简单了解下 ChatGPT 如何生成这些完整的答案。
我们将首先介绍 ChatGPT 的主要阶段,然后介绍使其正常运行的 一些核心AI架构组件。除了本文引用的资料来源(其中许多是每种技术背后的原始研究论文)之外,我还使用了 ChatGPT 来帮助我创建这个背景资料,我问了很多问题。一些答案是在本次讨论的总体背景下进行解释的。
ChatGPT 的两个主要阶段
让我们用 Baidu 来打比方。当您要求 Baidu 查找某些内容时,您可能知道它不会在您提出要求的那一刻就去搜索整个网络以寻找答案。相反,Baidu 会在其数据库中搜索与该请求相匹配的页面。Baidu 有两个主要阶段:爬取和数据收集阶段,以及用户交互/查找阶段。
粗略地说,ChatGPT 的工作方式也是一样的。数据收集阶段称为预训练,而用户响应阶段称为推理。生成式人工智能背后的魔力以及它爆发的原因在于,预训练的工作方式已被证明具有极大的可扩展性。这种可扩展性得益于最近在经济实惠的硬件技术和云计算方面的创新。
预训练是什么
一般来说,AI 使用两种主要方法进行预训练:监督式和非监督式,大多数 AI 项目都使用了监督式方法。
监督预训练是一个在标记数据集上训练模型的过程,其中每个输入都与相应的输出相关联。
例如,人工智能可以在客户服务对话数据集上进行训练,其中用户的问题和投诉会用客户服务代表的适当回复进行标记。为了训练人工智能,像“我如何重置密码?”这样的问题将作为用户输入,而像“您可以通过访问我们网站上的帐户设置页面并按照提示重置密码”这样的答案将作为输出。
在监督训练方法中,整个模型被训练来学习一个映射函数,该函数可以准确地将输入映射到输出。这个过程通常用于监督学习任务,例如分类、回归和序列标记。
你可能想到,这种技术的扩展是有限制的。人类训练师必须非常深入地预测所有的输入和输出。训练可能需要很长时间,而且专业知识有限。
但正如我们逐渐意识到的,ChatGPT 在主题专业知识方面几乎没有限制。你可以让它为《星际迷航》中的角色 Miles O’Brien 酋长写一份简历,让它解释量子物理学,编写一段代码,创作一篇短篇小说。
预测所有会被问到的问题是不可能的,所以 ChatGPT 不可能用监督模型进行训练。相反,ChatGPT 使用非监督预训练——这改变了传统AI的游戏规则
非监督预训练是指在数据上训练模型的过程,其中每个输入没有特定的输出。相反,模型被训练来学习输入数据中的底层结构和模式,而无需考虑任何任务。此过程通常用于无监督学习任务,例如聚类、异常检测和降维。在语言建模中,非监督预训练可以训练模型理解自然语言的语法和语义,以便模型可以在对话环境中生成连贯且有意义的文本。
正是在这里,ChatGPT 看似无限的知识才成为可能。由于开发人员不需要知道输入产生的输出,他们所要做的就是将越来越多的信息转储到 ChatGPT 预训练机制中,该机制称为基于转换器的语言建模。
Transformer 架构
我们还需要简单了解下,预训练的架构,Transformer 架构是一种用于处理自然语言数据的神经网络。神经网络通过多层互连节点处理信息,模拟人类大脑的工作方式。你可以将神经网络想象成一支球队。每个球员都有自己的角色,但他们会在特定位置的球员之间来回传球,共同努力进球。
Transformer 架构使用“自我注意力”来处理单词序列,在进行预测时衡量序列中不同单词的重要性。自我注意力类似于读者回顾上一个句子或段落以了解理解书中新单词所需的上下文的方式。Transformer 查看序列中的所有单词以了解上下文及其之间的关系。
Transformer由多个层组成,每个层都有多个子层。两个主要子层是自注意力层和前馈层。自注意力层计算序列中每个单词的重要性,而前馈层对输入数据应用非线性变换。这些层帮助 Transformer 学习和理解序列中单词之间的关系。
在训练期间,Transformer 会获得输入数据(例如一个句子),并被要求根据该输入做出预测。模型会根据其预测与实际输出的匹配程度进行更新。通过这个过程,Transformer 学会理解序列中单词之间的上下文和关系,使其成为语言翻译和文本生成等自然语言处理任务的强大工具。
当然,这些模型可能会生成有害或有偏见的内容,因为它们可能会学习训练数据中存在的模式和偏见。实施这些模型的公司正在尝试提供“护栏”,但这些护栏本身可能会引起问题。这些担忧是因为不同的人有不同的观点。基于一种思想流派试图防止偏见的行为可能会被另一种思想流派视为偏见。这种情况使得通用聊天机器人的设计变得困难,因为社会是复杂的。
预训练说完了,我们简单说下输入 ChatGPT 的数据,然后再聊下 ChatGPT 和自然语言的用户交互。
ChatGPT 的训练数据集
用于训练 ChatGPT 的数据集非常庞大。ChatGPT 基于GPT-3(生成式预训练 Transformer 3)架构。ChatGPT 的免费版本是在 GPT-3 上训练的,最近更新为功能更强大的 GPT-4o。
GPT-3 是在一个名为WebText2的数据集上进行训练的,该数据集包含超过 45 TB 的文本数据。什么概念?当你能买 了16 TB 的硬盘时,觉得45 TB 的语料库可能看起来并不大,但你知道,这可是纯文本,文本占用的存储空间比图片或视频要小得太多了。
如此海量的数据使得 ChatGPT 能够以前所未有的规模学习自然语言中单词和短语之间的模式和关系,这也是它能够如此有效地对用户查询生成连贯且上下文相关的响应的原因之一。
虽然 ChatGPT 基于 GPT-3 和 GPT-4o 架构,但它已针对不同的数据集进行了微调,并针对对话用例进行了优化。这一过程使其能够为通过聊天界面与该技术交互的用户提供更加个性化和引人入胜的体验。
例如,OpenAI发布了一个名为Persona-Chat的数据集 ,该数据集专门用于训练 ChatGPT 等对话式 AI 模型。该数据集包含两个人类参与者之间的 160,000 多段对话,每个参与者都被分配了一个独特的角色,描述他们的背景、兴趣和个性。这一过程使 ChatGPT 能够学习如何生成针对特定对话上下文个性化的响应。
除了 Persona-Chat 之外,还使用了许多其他对话数据集来微调 ChatGPT。以下是一些示例:
• 电影对话语料库: 包含电影剧本中人物对话的数据集。它包括 10,000 多个电影人物对之间的 200,000 多段对话,涵盖了不同的主题和类型。
• Ubuntu 对话语料库: 寻求技术支持的用户与 Ubuntu 社区支持团队之间的多轮对话的集合。它包含超过一百万个对话,是对话系统研究最大的公开数据集之一。
• DailyDialog: 人与人之间关于多个主题的对话的集合,从日常生活对话到关于社会问题的讨论。数据集中的每个对话都由几个回合组成,并标有一组情绪、情感和主题信息。
除了这些数据集之外,ChatGPT 还利用互联网上大量非结构化数据进行训练,包括网站、书籍和其他文本来源。这使得 ChatGPT 能够更广泛地了解语言的结构和模式,然后可以针对对话管理或情绪分析等特定应用进行微调。
总体而言,用于微调 ChatGPT 的训练数据通常是对话式的,并且经过特别挑选以包含人类之间的对话,从而使 ChatGPT 能够学习如何以对话形式生成自然且引人入胜的响应。
我们可以这样看待 ChatGPT 的无监督训练:它被输入大量数据,然后自行寻找模式并理解所有数据。这种机制使得新的生成式 AI 系统能够如此快速地扩展。
虽然预训练过程为 ChatGPT 的生成式人工智能承担了重任,但该技术还必须理解问题并从数据中构建答案。这部分工作由推理阶段完成,推理阶段包括自然语言处理和对话管理。
训练过程有么有人类参与?
尽管非监督预训练已经很牛了,但有证据表明,在 ChatGPT 供公众使用的准备过程中可能涉及人工协助。
《时代》杂志的一篇文章揭露了这一重大秘密,文章讨论了肯尼亚的人工“数据标注员”每小时收入在 1.32 美元至 2 美元之间。根据《时代》杂志的报道,这些工作人员的职责是扫描恐怖和色情的互联网内容,并将其标记为 ChatGPT 培训内容。
另一篇发表在人工智能通讯 Martechpost 上的文章指出,大型语言模型是使用一种名为“从人类反馈中强化学习”(RLHF)的过程进行训练的:“训练过程涉及使用监督学习对初始模型进行微调,人类训练师同时扮演用户和人工智能助手的角色。”
“训练”一词的含义有些微妙。根据 ChatGPT 本身的说法,“OpenAI 没有使用强化学习和人类反馈来训练我。相反,我使用无监督和监督学习技术的组合进行了预训练,例如语言建模、自动编码和序列预测。我的训练涉及处理来自互联网的大量文本数据,这使我能够学习单词和短语之间的模式和关系。”
人工智能继续说道:“然而,一旦我完成了预先训练,研究人员和开发人员就可以使用强化学习和人类反馈来对我进行微调,以完成特定任务或领域,例如回答问题或生成文本。在这些情况下,人类可以以奖励或惩罚的形式提供反馈,这些反馈可用于更新我的参数并提高我将来在类似任务上的表现。”
这个答案与 Marktechpost 和 TIME 的报告相符,因为最初的预训练是非监督的,允许将大量数据输入系统。但在构建与用户沟通的对话响应时,响应引擎显然既接受了响应类型的训练,也接受了过滤不适当材料的训练——这个训练有可能是人工辅助的。
自然语言处理
聊完数据集,再聊下AI和自然语言的交互。自然语言处理(NLP) 专注于使计算机能够理解、解释和生成人类语言。随着数字数据的指数级增长和自然语言界面的使用日益增多,NLP 已成为许多企业的关键技术。
NLP 技术可用于许多应用,包括情感分析、聊天机器人、语音识别和翻译。通过利用 NLP,企业可以自动执行任务、改善客户服务并从客户反馈和社交媒体帖子中获得宝贵的见解。
实施 NLP 的关键挑战之一是处理人类语言的复杂性和模糊性。NLP 算法需要对大量数据进行训练,以识别模式并学习语言的细微差别。它们还需要不断完善和更新,以跟上语言使用和上下文的变化。
该技术的工作原理是将语言输入(例如句子或段落)分解为更小的部分,并分析其含义和关系以产生见解或回应。NLP 技术使用多种技术,包括统计建模、机器学习和深度学习,来识别模式并从大量数据中学习,以准确地理解和生成语言,与人类进行交互对话。
了解运行 ChatGPT 的硬件
以上就把软件大概说完了,关于硬件和硬件架构,微软最近发布了一段视频,通俗地讲解了如何使用 Azure 创建网络来运行 ChatGPT 所需的所有计算和存储。视频非常牛x,它讨论了 Azure 以及如何在实际硬件中构建 AI。
好了,GPT的工作原理,我们就从软件和硬件层面有了个初步的了解,最后,我将整篇文章的草稿输入 ChatGPT,并要求 AI 用一句话描述这篇文章:
ChatGPT 就像 Baidu 的表亲,可以做他们做不到的事情,例如编写故事和编写代码。