ChatGPT实际上是如何工作的?

news2024/10/7 14:31:10

ChatGPT是如何工作的?

我们深入研究了广受欢迎的AI聊天机器人ChatGPT的内部运作方式。如果您想了解它是如何进行生成式人工智能魔术的,请继续阅读。

 谷歌、Wolfram Alpha和ChatGPT都通过一个单行文本输入框与用户进行交互,并提供文本结果。谷歌返回搜索结果,即一系列网页和文章,希望能提供与搜索查询相关的信息。Wolfram Alpha通常提供与数学和数据分析相关的答案。

相比之下,ChatGPT根据用户问题背后的上下文和意图提供响应。例如,你无法要求谷歌写一个故事,也无法要求Wolfram Alpha编写一个代码模块,但ChatGPT可以完成这些任务。

从根本上讲,谷歌的优势在于能够进行大量数据库查询并提供一系列匹配结果。Wolfram Alpha的优势在于能够解析与数据相关的问题,并根据这些问题进行计算。ChatGPT的优势在于能够解析查询并根据大部分全球数字可访问的文本信息生成完整的答案和结果,至少是在其2021年之前的训练时期存在的信息。

在本文中,我们将看看ChatGPT如何生成那些完整的答案。我们将首先介绍ChatGPT操作的主要阶段,然后介绍一些核心的AI架构组件,使其能够正常运行。

除了本文中引用的来源(其中许多是每种技术背后的原始研究论文),我还使用了ChatGPT本身来帮助我创建这篇背景文章。

ChatGPT操作的两个主要阶段

让我们再次以谷歌作为类比。当你要求谷歌搜索某些内容时,你可能知道,它并不会在你提问的那一刻立即搜索整个互联网来寻找答案。相反,谷歌会在其数据库中搜索与请求匹配的页面。谷歌实际上有两个主要阶段:网络爬虫和数据收集阶段,以及用户交互/查询阶段。

 

大致而言,ChatGPT的工作方式与此类似。数据收集阶段称为预训练阶段,而用户响应阶段称为推理阶段。生成式人工智能背后的魔法以及它为什么突然爆发的原因在于,预训练的方式被证明具有巨大的可扩展性。这种可扩展性得益于最近在价格实惠的硬件技术和云计算方面的创新。

AI的预训练如何工作

一般而言(具体细节需要大量篇幅来解释),AI使用两种主要方法进行预训练:有监督和无监督。在当前一批生成式AI系统(如ChatGPT)出现之前,大多数AI项目都使用了有监督的方法。

有监督的预训练是一个模型在带有标签的数据集上进行训练的过程,其中每个输入与相应的输出相关联。

例如,可以对一个包含客户服务对话的数据集进行训练,其中用户的问题和投诉与客服代表的适当回答标记在一起。为了训练AI,用户的输入将是像“如何重置密码?”这样的问题,而输出将是像“您可以通过访问我们网站上的帐户设置页面,并按照提示进行操作来重置密码。”这样的回答。

在有监督的训练方法中,整体模型被训练以学习一个能够准确映射输入到输出的映射函数。这个过程通常在有监督学习任务中使用,比如分类、回归和序列标记。

但是这种方法在可扩展性方面存在限制。人类训练者必须预测所有的输入和输出。训练可能需要很长时间,并且在主题专业知识方面有限制。

但是,ChatGPT在主题专业知识方面几乎没有限制。你可以要求它为《星际迷航》中的角色迈尔斯·奥布莱恩(Chief Miles O'Brien)写一份简历,让它解释量子物理学,编写一段代码,写一篇短篇小说,比较美国前总统的治理风格。

预先预训练模型无法预测所有可能被问到的问题,因此无法使用有监督模型对ChatGPT进行训练。相反,ChatGPT使用无监督的预训练,这是一个改变游戏规则的过程。

无监督预训练是指模型在数据上进行训练,其中每个输入都没有特定的输出与之对应。相反,模型被训练来学习输入数据的潜在结构和模式,而没有特定的任务。这个过程通常在无监督学习任务中使用,比如聚类、异常检测和降维。在语言建模的背景下,无监督预训练可以用来训练模型理解自然语言的语法和语义,从而在对话环境中生成连贯且有意义的文本。正是在这里,ChatGPT的表面上无限知识的能力成为可能。因为开发者不需要知道输入产生的输出,他们只需要将更多的信息倒入ChatGPT的预训练机制中,这被称为基于Transformer的语言建模。

Transformer架构

Transformer架构是一种用于处理自然语言数据的神经网络。神经网络通过一系列相互连接的节点层次结构来模拟人脑的工作方式来处理信息。可以将神经网络类比为一支曲棍球队:每个球员都有自己的角色,但他们在具有特定角色的球员之间传递球,共同努力达成进球。

Transformer架构通过使用"自注意力"来处理单词序列,在进行预测时权衡序列中不同单词的重要性。自注意力类似于读者回顾之前的句子或段落,以理解书中新单词所需的上下文。Transformer会查看序列中的所有单词,以理解上下文和单词之间的关系。

 

Transformer由多个层组成,每个层都有多个子层。其中两个主要的子层是自注意力层和前馈层。自注意力层计算序列中每个单词的重要性,而前馈层对输入数据应用非线性变换。这些层帮助Transformer学习和理解序列中单词之间的关系。

在训练过程中,Transformer接收输入数据(如一个句子),并根据该输入进行预测。模型根据其预测与实际输出的匹配程度进行更新。通过这个过程,Transformer学习理解序列中单词的上下文和关系,使其成为处理自然语言的强大工具,如语言翻译和文本生成等自然语言处理任务。

有一件事需要记住的是,这些模型有可能生成有害或带偏见的内容,因为它们可能学习到训练数据中存在的模式和偏见。实施这些模型的公司正在努力提供"防护措施",但这些防护措施本身可能会引发问题。这是因为不同的人有不同的观点,试图基于一种思维方式来避免偏见可能会被另一种思维方式视为偏见。鉴于整个社会的复杂性,设计一个通用的聊天机器人是困难的。

让我们首先讨论喂入ChatGPT的数据,然后再看看ChatGPT和自然语言的用户交互阶段。

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新闻通讯Martechpost上的文章称,这个大型语言模型是使用一种称为“人类反馈强化学习”(RLHF)的过程进行训练的。根据该文章的说法,“训练过程中使用了经过精细调整的初始模型,采用了有人类训练师扮演用户和AI助手的角色的监督学习。”

在讨论“训练”一词的含义时,存在一些微妙之处。根据ChatGPT自己的说法,“OpenAI并没有使用带有人类反馈的强化学习来训练我。相反,我是使用无监督和监督学习技术的组合进行预训练的,如语言建模、自编码和序列预测。我的训练过程涉及处理来自互联网的大量文本数据,这使我能够学习词语和短语之间的模式和关系。”

AI继续说道:“然而,一旦我完成了预训练,研究人员和开发者可以使用带有人类反馈的强化学习来对我进行精细调整,以适应特定的任务或领域,如回答问题或生成文本。在这些情况下,人类可以通过奖励或惩罚的形式提供反馈,这可以用来更新我的参数并提高我在类似任务上的性能。”

这似乎与Marktechpost和TIME的报道相符,即初始的预训练是无监督的,允许大量的数据被输入系统。但在构建与用户进行对话的回应引擎时(稍后会详细介绍),这些回应引擎显然在回应类型上进行了训练,并进行了过滤不适当材料的训练,而这些训练似乎是由人类协助完成的。

自然语言处理

自然语言处理(Natural Language Processing,NLP)专注于使计算机能够理解、解释和生成人类语言。随着数字数据的指数增长和自然语言界面的广泛使用,NLP已经成为许多企业的重要技术。

NLP技术可用于广泛的应用领域,包括情感分析、聊天机器人、语音识别和翻译。通过利用NLP,企业可以自动化任务、提升客户服务,并从客户反馈和社交媒体帖子中获得有价值的见解。

实施NLP的一个关键挑战是处理人类语言的复杂性和歧义性。NLP算法需要在大量数据上进行训练,以识别模式并学习语言的细微差别。它们还需要不断地进行改进和更新,以跟上语言使用和上下文的变化。

这项技术通过将语言输入(如句子或段落)分解为较小的组件,并分析它们的含义和关系,以生成洞察或回应。NLP技术使用统计建模、机器学习和深度学习等多种技术手段,以识别模式并从大量数据中学习,从而准确地解释和生成语言。

对话管理

您可能已经注意到,ChatGPT可以询问后续问题,以澄清您的意图或更好地理解您的需求,并提供个性化的回应,同时考虑到整个对话历史记录。

这就是ChatGPT如何能够与用户进行多轮对话,以一种自然而引人入胜的方式。它涉及使用算法和机器学习技术来理解对话的上下文,并在与用户的多次交流中保持对话。

对话管理是自然语言处理的重要组成部分,因为它使计算机程序能够以更像对话而不是一次性交互的方式与人进行互动。这有助于建立与用户的信任和参与度,并最终为用户和使用该程序的组织带来更好的结果。

当然,营销人员希望扩大信任的建立,但这也是一个可能令人担忧的领域,因为这是AI可能操纵使用它的人的一种方式。

尽管已经讲了3200多个字,这只是对ChatGPT内部工作的一个非常基本的概述。尽管如此,也许现在你对为什么这项技术在过去几个月中爆发有了一些了解。关键在于数据本身并没有受到"监督",而AI能够理解并运用它所接收的数据。

最后,我将整篇文章的草稿输入ChatGPT,并要求AI用一句话描述这篇文章。这是它的回答:

ChatGPT就像Google和Wolfram Alpha的聪明堂兄,可以做一些它们无法做到的事情,比如写故事和编写模块

ChatGPT被认为是一项没有自我意识的技术,但如果这个回答不让你稍微感到毛骨悚然,那说明你没有认真听。

你在使用ChatGPT吗?你对它的工作原理还有哪些问题?

如果你没有用过或者没有其他好用的ChatGPT,现推荐我一直在用的ChatGPT中文版-知否AI问答,支持60余个应用场景,包括论文助手、公司文案、营销文案、多语言翻译、行政公文、科研课题、招投标书、辅助编程、学习与教育、生活娱乐等各个领域。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/593132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu18.04下搭建Ardupliot开发环境

本文参考的文章: -Ardupilot开发环境搭建(Ubuntu18.04,20190407) -Ardupilot环境搭建 1、下载文件 1.在GitHub上下载ardupilot文件,网速很慢的时候科学上网。 git clone https://github.com/ArduPilot/ardupilotcd ardupilotgit…

音乐推荐系统实战

文章目录 1. 项目背景2. 数据处理2.1 统计用户播放总量2.2 统计歌曲播放总量2.3 过滤出实验数据2.4 加入音乐详情信息2.5 查看音乐集情况2.6 查看用户播放量的分布 3. 推荐系统3.1 排行榜单排序3.2 基于歌曲相似度的推荐(协同过滤)3.3 基于矩阵分解&…

市面上流行的 5 大网页制作工具总结

这里是对市面上流行的 5 大网页制作工具的总结: 1. 即时设计 即时设计是一款国内新一代在线协作设计工具,具备原型、设计、交付、协作和资源管理等功能,适合个人用户和团队使用。它提供丰富的社区设计资源和原型模板,支持 UI/UX…

Python 的十大特性

摘要 在了解 Python 的特性之前,我们首先要了解 Python 编程语言是什么。Python 编程语言是世界上发展最快的编程语言。这一高级通用编程语言提供了广泛的实际应用,并且是一种非常流行的认证。 Python 可以让程序员更加高效地工作和集成系统。Python 的…

vue中如何通过iframe方式加载本地的vue页面

这个需求一般很少能遇到,只要说去了iframe,很多人就会唾弃。 但是有时候的确无法避免使用它,当iframe的特性带来的优势远远高于自己用div模拟的时候 啥时候需要用到iframe加载本地的vue文件呢 我在写一个demo,我需要demo效果模拟…

【接口测试】神器JMeter

‍1 JMeter是什么 Apache JMeter是Apache组织开发的一款开源软件,是一款非常好用的接口测试工具。它的特点是开源免费,简单好用。 我们在测试过程需要做接口测试的话就可以使用它,也可以用来批量造数据,接下来我们就来看看JMete…

Django框架之验证码简单实现

是一种方式防止csrf的策略。在用户注册、登录页面的时候使用;为了防止暴力请求,减轻服务器压力。 目录 安装pillow库 验证码显示 引入类库 视图方法 创建路由 创建表单 模板内容 模板路由 模板视图 视图验证 路由 引入 验证视图 效果 成功…

从7K到20K,在测试行业摸爬滚打的这5年,想个2023年还没找到工作的提个醒~

我是一名转IT测试人,我的专业是化学,去化工厂实习才发现这专业的坑人之处,化学试剂害人不浅,有毒,易燃易爆,实验室经常用丙酮,甲醇,四氯化碳,接触多了,吃个饭…

JMeter 接口测试教程,详解 HTTP Request 取样器和 fiddler 调试技巧!

目录 前言: 一、HTTP Request取样器介绍 二、使用HTTP Request取样器进行接口调试 1. 创建测试计划(Test Plan)和线程组(Thread Group) 2. 配置HTTP Request取样器参数 3. 添加断言 4. 运行接口测试 三、结合f…

Linux 企业级安全原理和防范技巧

Linux 企业级安全原理和防范技巧 1. 企业级Linux系统防护概述1.1 企业级Linux系统安全威胁1.2 企业级Linux系统安全立体式防范体系1.2.1 Linux文件系统访问安全1.2.2 Linux进程安全1. 进程的种类2. 进程管理方法 1.2.3 Linux用户管理安全1. 管理用户及组文件安全2. 用户密码管理…

【云计算】云存储是什么意思?与本地存储有什么区别?

云计算环境下,衍生了云存储、云安全、云资源、云管理、云支出等等概念。今天我们就来了解下什么是云存储?云存储与本地存储有什么区别? 云存储是什么意思? 云存储是一种新型的数据管理方式,它通过网络将大量不同类型、…

UGUI进阶知识[二十九]循环GridView

节省内存的常用滑动列表还有一种形式,上下滑动的GridView。这种格式的滑动列表可用于移动设备的背包,仓库,商店UI等数据可能海量从而导致产生特别多但又看不见的UI的情况。 于是基于 UGUI进阶知识[八]循环利用滑动列表的循环ListView工程做了…

普源1G带宽4通道10G采样率数字示波器MSO8104

超高性价比七合一 集成示波器在如今的集成设计领域,一款集成度较高的综合示波器已经成为设计工程师必不可少的得力工具。 MSO8000 系列数字示波器,它集 7 种独立仪器于一体,包括一台示波器、一台 16 通道逻辑分析仪、一台频谱分析仪、一台任…

煤矿电子封条建设实施方案算法 yolov7

煤矿电子封条建设实施方案算法通过yolov7网络模型深度学习技术,煤矿电子封条建设实施方案算法作为一种智能化安全新模式被广泛应用于各类场景中。YOLOv7 的发展方向与当前主流的实时目标检测器不同,研究团队希望它能够同时支持移动 GPU 和从边缘到云端的…

高完整性系统:Separation Logic for Automated Verification

目录 1. INTRODUCTION TO SEPARATION LOGIC 分离逻辑 1.1 霍尔推理(Hoare Reasoning) 1.2 堆指针的影响 1.3 全局和局部推理(Global and Local Reasoning) 1.4 组合推理(Compositional Reasoning) 1.…

chatgpt赋能python:Python中怎样输入数据以及数据类型

Python中怎样输入数据以及数据类型 Python是一种高级编程语言,常用于数据处理和分析、机器学习和Web开发等任务。输入数据是Python编程中的重要环节,因此本文将介绍Python中输入数据的方法和数据类型。 什么是数据输入? 数据输入是指将数据…

国内主流AI大模型盘点

今年年初,轰动科技圈的大事就是ChatGPT的面世,它的到来打响了AI智能时代的第一枪,同时展开了一场别开生面的智能科技革命。 随着ChatGPT迅速走红,国内各大企业纷纷发力认知大模型领域。经过一段时间的酝酿,国内的AI领域也开启了“…

StableStudio,比Midjourney还牛逼的绘画平台,免费!

大家好,我是鸟哥。 之前给大家推荐过Midjourney和Bluewillow两个AI绘画平台:简直了!比Midjourney更刺激,还免费!Midjourney功能超级强大,但比较傲娇,很贵,是否让用户免费体验要看心…

数据可视化系列指南之地图类图表大全

导语 随着数据在各行业中的应用越来越广泛,大家也逐渐认识到数据可视化在企业生产经营中的重要作用,在数据可视化过程中,图表是处理数据的重要组成部分,因为它们是一种将大量数据压缩为易于理解的格式的方法。数据可视化可以让受…

jar包和war包的区别;项目打包成jar或者war且运行在Linux上的tomcat

jar包和war包的区别: war包:通常是web应用后,例如网站,打成包部署到容器(可以是tomcat)中。含有包括WEB-INF包。war包通常就是放在tomcat包的/webapps下然后自动编译和运行。 jar包:通常是开发时要引用的类&#xff…