一文详解 ChatGPT:背后的技术,数据,未来发展

article/2025/1/23 16:56:35

文章目录

  • 一文详解 ChatGPT
    • ChatGPT背后的技术
      • 基于 Transformer 的预训练语言模型
      • 提示学习与指令精调
      • 思维链(Chain of Thought,COT)
      • 基于人类反馈的强化学习(Reinforcement Learning with Human Feedback,RLHF)
    • ChatGPT 相关数据集
      • 预训练数据集
      • 人工标注数据规范及相关数据集
    • 如何看待ChatGPT的未来发展?
      • OpenAI 指出 ChatGPT 的现存
      • ChatGPT 的优势
      • ChatGPT 的劣势
      • ChatGPT 应用前景

一文详解 ChatGPT

从2022年11月30日ChatGPT出现至今,热议不断,ChatGPT在全世界点燃了新一轮AI革命,海内外关注度陡增,越来越多“关联”企业跟风而上,科技“狠话”、科技“狠活”真真假假,让人一时分不清到底谁是谁非。

ChatGPT 能表现出惊艳的语言理解、生成、知识推理能力,这得益于自然语言处理(NLP)的发展。而从NLP技术发展看,如下图1.1,可以发现:每一个技术阶段的发展时间,大概是上一个阶段的一半。

小规模专家知识发展了 40 年,浅层机器学习是 20 年,之后深度学习大概 10 年,预训练语言模型发展的时间是 5 年,那么以 ChatGPT 为代表的技术能持续多久呢?如果大胆预测,可能是 2 到 3 年,也就是到 2025 年大概又要更新换代了。

在这里插入图片描述

ChatGPT背后的技术

ChatGPT 核心技术主要包括其具有良好的自然语言生成能力的大模型 GPT-3.5 以及训练这一模型的钥匙——基于人工反馈的强化学习(RLHF)。

ChatGPT 的卓越表现得益于其背后多项核心算法的支持和配合,包括作为其实现基础的 Transformer 模型、激发出其所蕴含知识的 Prompt/Instruction Tuning 算法、其涌现出的思维链(COT)能力、以及确保其与人类意图对齐的基于人类反馈的强化学习(RLHF)算法。

基于 Transformer 的预训练语言模型

ChatGPT 强大的基础模型采用 Transformer 架构, Transformer 是一种基于自注意力机制的深度神经网络模型,可以高效并行地处理序列数据。原始的Transformer 模型包含两个关键组件:编码器和解码器。在原始 Transformer 模型基础上,相继衍生出了三类预训练语言模型:编码预训练语言模型、解码预训练语言模型和编解码预训练语言模型。

编码预训练语言模型(Encoder-only Pre-trained Models)解码预训练语言模型(Decoder-only Pre-trained Models)基于编解码架构的预训练语言模型(Encoder-decoder Pretrained Models)
模型特点这类模型在预训练过程中只利用原始 Transformer 模型中的编码器。相应的预训练任务通常选用掩码语言建模任务(Masked Language Modeling),即掩码住(用特殊字符 [MASK] 替换)输入句子中一定比例的单词后,要求模型根据上下文信息去预测被遮掩的单词。GPT (Generative Pre-trained Transformer) 是由 OpenAI 提出的只有解码器的预训练模型。相较于之前的模型,不再需要对于每个任务采取不同的模型架构,而是用一个取得了优异泛化能力的模型,去针对性地对下游任务进行微调。针对单一编码器或解码器出现的问题,一些模型采用序列到序列的架构来融合两种结构,即基于编解码架构的预训练语言模型,使用编码器提取出输入中有用的表示,来辅助并约束解码器的生成。
代表模型BERT,ALBERT,RoBERTaGPT-1,GPT-2 ,GPT-3BART,T5,Switch Transformers,
不足基于编码器的架构得益于双向编码的全局可见性,在语言理解的相关任务上性能卓越(在NLU表现更好),但是因为无法进行可变长度的生成,不能应用于生成任务。基于解码器的架构采用单向自回归模式,可以完成生成任务(在NLG表现更好),但是信息只能从左到右单向流动,模型只知“上文”而不知“下文”,缺乏双向交互。与单个编码器/解码器相比,编码器-解码器引入了更多的参数。虽可通过参数共享来缓解,但其参数效率仍然值得怀疑。编码器-解码器架构通常在自然语言理解(NLU)方面表现不佳。

在这里插入图片描述

提示学习与指令精调

提示学习(Prompt Learning)是一个NLP界最近兴起的学科,能够通过在输入中添加一个提示词(Prompt),使得预训练模型的性能大幅提高。Prompt Tuning和Fine Tuning都是对预训练模型进行微调的方法。

提出Prompt的动机是,语言模型(Language Models)越来越大,Fine-tune的成本也越来越高。Fine-tuning的本质是改变预训练模型的weights。LM有基于大量训练数据的天然的迁移学习能力,但要在新域上获得较好的性能,使用Fine-tuning,就要求重新多次训练预训练模型,导致吃内存。

提示学习(Prompt Learning)是指对输入文本信息按照特定模板进行处理,把任务重构成一个更能充分利用预训练语言模型处理的形式。

比如,假如我要判断“我喜欢这个电影" 这句话的情感(“正面" 或者 “负面”),原有的任务形式是把他看成一个分类问题
输入:我喜欢这个电影
输出:“正面" 或者 “负面”
而用Prompt Learning去解决的话,任务可以变成“完形填空",
输入:我喜欢这个电影,整体上来看,这是一个 __ 的电影
输出:“有趣的" 或者 “无聊的”

总结一下,使用Prompt的根本方法是:
自然语言指令(task description) + 任务demo(example) + 带"__"的任务。

Prompt Tuning的本质是改变任务格式,从而迎合大模型的性能。换句话说,Prompt Tuning的前提是预训练模型的性能已经非常好了,我们只需要在推断的时候进行任务格式转换即可获得很好的性能。下面这张图很好地表达了这个本质:
在这里插入图片描述

一句话总结,Fine-tuning,是调整语言模型,让任务和语言模型靠的更近;Prompt Tuning,是调整任务格式,让任务和语言模型靠的更近。

相较于提示学习(Prompt Learning), 指令精调(Instruction Tuning) 可以说是提示学习的加强版。

例如,给你2个任务:
1.我带女朋友去了一家餐厅,她吃的很开心,这家餐厅太 __ 了!
2.判断这句话的情感:我带女朋友去了一家餐厅,她吃的很开心。选项:A=好,B=一般,C=差

在这两个任务中,Prompt就是第一种模式,Instruction就是第二种。

两种学习方法的本质目标均是希望通过编辑输入来深挖模型自身所蕴含的潜在知识,进而更好的完成下游任务。

Instruction Tuning 和Prompt Learning的本质目标是一样的,通过编辑输入来深挖模型自身所蕴含的潜在知识,进而更好的完成下游任务。而他们的不同点就在于,Prompt是去激发语言模型的补全能力,比如给出上半句生成下半句、或者做完形填空,都还是像在做language model任务,它的模版是这样的:
在这里插入图片描述

而Instruction Tuning则是激发语言模型的理解能力,通过给出更明显的指令/指示,让模型去理解并做出正确的action。比如NLI/分类任务:
在这里插入图片描述

研究表明,当“指令”任务的种类达到一定量级后,大模型甚至可以在没有见过的零样本(Zero-shot)任务上有较好的处理能力。因此,指令学习可以帮助语言模型训练更深层次的语言理解能力,以及处理各种不同任务的零样本学习能力。 OpenAI提出的InstructGPT 模型使用的就是指令学习的思想, ChatGPT 沿袭了InstructGPT 的方法。

思维链(Chain of Thought,COT)

人类在解决数学应用题这类复杂推理任务的过程中,通常会将问题分解为多个中间步骤,并逐步求解,进而给出最终的答案。受此启发,谷歌研究人员 Jason Wei(现 OpenAI 员工)等提出了思维链(Chain of Thought,COT),通过在小样本提示学习的示例中插入一系列中间推理步骤,有效提升了大规模语言模型的推理能力,图 2.2展示模型通过产生思维链来正确求解数学应用题。

在这里插入图片描述

相较于一般的小样本提示学习,思维链提示学习有几个吸引人的性质:

  • 思维链的加持下,模型可以将需要进行多步推理的问题分解为一系列的中间步骤,这可以将额外的计算资源分配到需要推理的问题上。
  • 思维链为模型的推理行为提供了一个可解释的窗口,使通过调试推理路径来探测黑盒语言模型成为了可能。
  • 思维链推理应用广泛,不仅可以用于数学应用题求解、常识推理和符号操作等任务,而且可能适用任何需要通过语言解决的问题
  • 思维链使用方式非常简单,可以非常容易地融入语境学习(in-context learning),从而诱导大语言模型展现出推理能力。

基于人类反馈的强化学习(Reinforcement Learning with Human Feedback,RLHF)

RLHF 这一概念最早是在 2008 年 TAMER:Training an Agent Manually via Evaluative Reinforcement 一文中被提及的。

RLHF 是 ChatGPT/InstrcutGPT 实现与人类意图对齐,即按照人类指令尽可能生成无负面影响结果的重要技术。该算法在强化学习框架下实现,大体可分为以下两个阶段:奖励模型训练,生成策略优化。

根据OpenAI的思路,RLHF分为三步:1.预训练一个语言模型LM;2.收集数据并训练一个奖励模型;3.利用强化学习微调语言模型LM。

在这里插入图片描述

简单来说,这三步:

  1. 花钱招人给问题(prompt)写回答(demonstration),然后finetune一个GPT3。这一步可以多训几个版本,第二步会用到。
    在这里插入图片描述

图注:第一步,预训练一个语言模型LM

  1. 用多个模型(可以是初始模型、finetune模型和人工等等)给出问题的多个回答,然后人工给这些问答对按一些标准(可读性、无害、正确性blabla)进行排序,训练一个奖励模型/偏好模型来打分(reward model)。
    在这里插入图片描述

  2. 用强化学习训练上面那个finetune后的GPT3模型。用强化学习做LM训练的一种思路是用Policy Gradient做,这一块OpenAI用的是他们在17年提出的PPO算法,即Proximal Policy Optimization。
    在这里插入图片描述

ChatGPT 相关数据集

算法、数据、算力是大模型时代的三方面重要因素。根据 OpenAI 前期论文和博客介绍, ChatGPT 中数据集的规模和构建质量均高于以往的人工标注数据集。

预训练数据集

ChatGPT 之所以展现出非常优秀的文本理解能力,其中重要的因素是其拥有一个强大的基座模型。为了获得这样基座模型,需要在大规模无标注文本数据上进行预训练,目前被广泛使用的预训练数据集主要包括 BooksCorpus、 Wikipedia、 Common Crawl、 ROOT 等,表 4.1概览了目前常用的预训练数据集,具体情况如下所示:
在这里插入图片描述

在对大模型做大规模评价之后,发现训练数据中含有代码的模型具有很强的语言推理能力。在对 OpenAI 的各个模型测试中,也发现代码预训练与 COT 表现息息相关。因此,在预训练时使用代码数据成为越来越多研究者的共识。代码预训练数据可以根据程序语言和自然语言是否同时出现分成单语数据和对齐数据。表格 4.2展示了一些常见数据集的基本信息。
在这里插入图片描述

人工标注数据规范及相关数据集

指令微调数据集通常建立在自然语言处理经典数据集基础上。 Google 研究院及 Hugging Face 等机构提出的指令微调训练任务采用的自然语言处理数据集如表4.4所示。表4.5为 InstructGPT 模型训练的部分测试集以及对模型能力提升的分析。
在这里插入图片描述

如何看待ChatGPT的未来发展?

虽然 ChatGPT 目前已经取得了非常喜人的成果,但是未来仍然有诸多可以研究的方向。

OpenAI 指出 ChatGPT 的现存

序号ChatGPT现存问题产生原因
1ChatGPT 有时候会生成一些似是而非、毫无意义的答案。(1)强化学习训练过程中没有明确的正确答案;(2)训练过程中一些谨慎的训练策略导致模型无法产生本应产生的正确回复;(3)监督学习训练过程中错误的引导导致模型更倾向于生成标注人员所知道的内容而不是模型真实知道的。
2ChatGPT 对于输入措辞比较敏感,例如:给定一个特定的问题,模型声称不知道答案,但只要稍微改变措辞就可以生成正确答案。
3ChatGPT 生成的回复通常过于冗长,并且存在过度使用某些短语的问题,例如:重申是由 OpenAI 训练的语言模型。这样的问题主要来自于训练数据的偏差和过拟合问题。
4虽然 OpenAI 已经努力让模型拒绝不恰当和有害的请求,但是仍然无法避免对有害请求作出回复或对问题表现出偏见。
5ChatGPT 虽然很强大,但是其模型过于庞大使用成本过高,如何对模型进行瘦身。目前主流的模型压缩方法有量化、剪枝、蒸馏和稀疏化等。

ChatGPT 的优势

相较于不同产品和范式,ChatGPT的优势有哪些?

优势比较ChatGPT VS普通聊天机器人ChatGPT VS 其它大规模语言模型ChatGPT VS微调小模型
ChatGPT特点ChatGPT 的回答更准确,答案更流畅,能进行更细致的推理,能完成更多的任务。ChatGPT使用了更多的多轮对话数据进行指令微调,这使其拥有了建模对话历史的能力,能持续和用户交互。ChatGPT通过大量指令激发的泛化能力在零样本和少样本场景下具有显著优势,在未见过的任务上也可以有所表现。
ChatGPT优势(1)强大的底座能力;(2)惊艳的思维链推理能力;(3)实用的零样本能力。(1)在Instruction Tuning阶段通过基于人类反馈的强化学习调整模型的输出偏好,使其能输出更符合人类预期的结果。(2)RLHF利用真实的用户反馈不断进行 AI 正循环,持续增强自身和人类的这种对齐能力,输出更安全的回复。(1)大规模语言模型的天然优势使 ChatGPT 在创作型任务上的表现尤为突出。

ChatGPT 的劣势

比较方面ChatGPT的劣势
大规模语言模型(1)可信性无法保证;(2)时效性差;(3)成本高昂;(4)在特定的专业领域上表现欠佳;(5)语言模型每次的生成结果是 beam search 或者采样的产物,每次都会有细微的不同。ChatGPT 对输入敏感,回答不够稳定。
数据(1)ChatGPT 的基础大规模语言模型是基于现实世界的语言数据预训练而成,因为数据的偏见性,很可能生成有害内容。(2)ChatGPT 为 OpenAI 部署,用户数据都为 OpenAI 所掌握,长期大规模使用可能存在数据泄漏风险。
标注策略ChatGPT 通过基于人类反馈的强化学习使模型的生成结果更符合人类预期,然而这也导致了模型的行为和偏好一定程度上反映的是标注人员的偏好,在标注人员分布不均的情况下,可能会引入新的偏见问题。
使用场景在目前微调小模型已经达到较好效果的前提下,ChatGPT的训练和部署更困难,有些任务场景下不太适用,性价比稍低。

ChatGPT 应用前景

ChatGPT 作为掀起新一轮 AIGC 热潮的新引擎,无论在人工智能行业还是其他行业都带来了广泛的讨论和影响。

领域/行业ChatGPT应用影响公司
人工智能行业1.代码开发;2.ChatGPT 和具体任务相结合;3.ChatGPT 当作冷启动收集相关语料的工具。
搜索引擎搜索引擎谷歌:Bard,微软:文心一言,微软:新Bing
泛娱乐行业游戏虚拟人,虚拟主播,虚拟数字人
自媒体行业内容创作Buzzfeed
教育行业作业,论文,考试
日常办公邮件,演讲稿,文案,报告微软
其他专业领域具体影响不大,无法对专业知识进行细致分析,生成的回答专业度不足且可信性难以保证

公众号回复「ChatGPT报告」获得90+页哈工大NLP内部《ChatGPT调研报告》。

参考:
https://new.qq.com/rain/a/20230311A06DWI00
https://huggingface.co/blog/rlhf

欢迎各位关注我的个人公众号:HsuDan,我将分享更多自己的学习心得、避坑总结、面试经验、AI最新技术资讯。


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

相关文章

“提效”|教你用ChatGPT玩数据

ChatGPT与数据分析(二) 上文给简单聊了一下为什么ChatGPT不能取代数据分析师,本文我们来深入感受一下如何让GPT帮助数据分析师“提效”。 场景一:SQL取数 背景:多数数据分析师都要用SQL语言从数据库中提取数据&#x…

ChatGPT在数据分析中的应用

最近,机器学习和人工智能技术在数据分析领域中发挥着越来越大的作用。而chatgpt正是这个领域最受欢迎的仿人聊天 AI 。但是,对于许多数据科学家和分析师来说,chatgpt并不是他们首选的工具。相反,pandas、sk-learn是数据科学家的最…

chatGPT成功之道-数据

chatGPT之所以能成功,数据和模型都起了很关键的作用,这里重点说说他的数据怎么玩的,主要参考IntructGPT论文数据 prompt分类 InstructGPT论文中将prompt分为10类:生成任务、开放式QA任务、封闭式QA任务、头脑风暴、聊天、改写任…

4个公式8个案例学会与chatGPT对话

一、什么是Prompt? (1)Prompt的概念 我们在使用GPT的时候,给GPT发送的消息就是Prompt. 例如,当我们问ChatGPT"WPS是什么软件?"时: 其中,"WPS是什么软件?"这句话就是Prompt. (2)为什么要学习Prompt? Prompt是我们和GPT交流的方式,我们需要让GPT了解…

和ChatGPT聊天,一定试试这些提问技巧

在和ChatGPT聊天时,要使用清晰简洁的语言,尽量避免使用含糊不清或模糊的词语和语句。 一、首次提问时,用这些方法提问更高效: 1. 用通俗易懂的语言: 尽可能使用通俗易懂的语言提问,不要使用过于专业或难…

日常和 ChatGPT 对话,0403-2

hello Hello! How can I assist you today? Please response me in Chinese. 你好!有什么我可以帮助你的吗? just fine 好的,如果你需要任何帮助,请随时告诉我。 nice to meet you 很高兴认识你!我是ChatGPT&a…

与ChatGPT的一次技术对话

文章目录 前言 - 向引领前沿技术的伟大工作者致敬提问:请给我推荐几个最先进的目标检测AI模型提问:YOLOv4是什么原理,有什么创新提问:请问你知道yolov5吗提问: 那yolov5又有什么创新呢提问:你刚刚的回答正确…

ChatGPT入门案例|商务智能对话客服(一)

ChatGPT是人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,使用了Transformer神经网络架构,也是GPT-3.5架构,这是一种用于处理序列数据的模型,拥有语言理解和文本生成能力,尤其是它会通过连接大量的语料库来训练模型,这些语料库包含了真实世界中…

最近火爆了的对话ChatGPT

前言 相信最近小伙伴们已经被ChatGPT的惊艳效果刷屏了,之前笔者也介绍过一些对话方向的工作,感兴趣的小伙伴可以穿梭: 对话系统最新综述II https://zhuanlan.zhihu.com/p/446760658 在对话系统中建模意图、情感: https://zhuanlan.zhihu.com/…

ChatGPT对话数据备份

ChatGPT对话数据备份 文章目录 ChatGPT对话数据备份1. 背景2. 其他(失败的)方法2.1 右键另存为2.2 直接copy html代码 3. 编写Javascript脚本3.1 思路过程3.2 安装教程3.3 使用说明3.4 最终效果 1. 背景 之前在ChatGPT更新时有好几天都无法查看过往对话…

ChatGPT教程之 01 什么是ChatGPT革命性的对话生成新工具

今天,我想揭开 ChatGPT 的神秘面纱——GANs*(生成对抗网络)的一个迷人的新应用程序,它在 AI 社区中引起了很大的轰动。 对于那些不熟悉 GAN 的人来说,它们是一种神经网络,它使用两个相互竞争的网络——一个生成器和一个鉴别器——来创建逼真的输出。生成器创建假输出,而…

ChatGPT API实现多轮对话的实战代码

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

聊聊ChatGPT是如何组织对话的

为什么要组织对话? 总所周知,ChatGPT的训练大致可分为下图中展示的几个阶段,其中,在Pretraining阶段,模型的训练数据是纯文本,目标是根据上文预测下一个token,而在后面的几个阶段中&#xff0c…

和ChatGPT的一番对话

试用了一下ChatGPT,问了几个问题,虽然对人工智能充满信心,但是ChatGPT给我的感觉还没有形成气候。TA的很多回答是基于一些网络信息进行的糅合,甚至只是简单的复制。不过,毕竟还是处在发展的初级阶段,存在一…

chatgpt这么火?前端如何实现类似chatgpt的对话页面

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言📝…

实现chatgpt自然对话

1.概述 ChatGPT是当前自然语言处理领域的重要进展之一,通过预训练和微调的方式,ChatGPT可以生成高质量的文本,可应用于多种场景,如智能客服、聊天机器人、语音助手等。本文将详细介绍ChatGPT的原理、实战演练和流程图&#xff0c…

ChatGPT时代:ChatGPT全能应用一本通

引言 随着人工智能技术的不断发展和进步,我们进入了ChatGPT时代。ChatGPT是基于GPT架构的大型语言模型,它具备强大的自然语言处理和生成能力,使得我们能够进行更加自由、流畅的对话。作为ChatGPT的全能应用,它可以被视为一本通&a…

企业软件怎样利用ChatGPT?

文/明道云创始人任向晖 作为商业和科技话题的博主,不评论一下ChatGPT似乎是不应该的。毫无疑问,ChatGPT的出现已经远远超过了科技商业要闻的标准,它的革命性已经被飙速增长的用户所直接证明,以至于留给我们的问题只有两个&#xf…

ChatGPT有哪些应用场景?

📖 作者简介:在职Java架构师,分享Java、架构相关知识 📖 多年工作总结:Java学习路线总结,逆袭Java架构师 📖 技术交流:定期更新Java硬核干货,不定期送书活动、助你实现技…

【分享】Github上有趣的ChatGPT应用源码与好用的ChatGPT插件

哈喽,大家好,我是木易巷! 今天给大家分享几个Github上有趣的ChatGPT应用源码与好用的ChatGPT插件,一起来看看吧! 一、Github上有趣的ChatGPT应用源码 1. ChatGPT 源码地址:https://github.com/lencx/Ch…