当前位置: 首页 > news >正文

chatgpt是怎么诞生的,详解GPT1到GPT4的演化之路及相关背景知识

人工智能革命正在发生,我们是何其幸运的一代,能亲眼见证人类/机器智能的大爆发。

仅仅作为这场革命的看客显然是有些遗憾的,如何进一步了解它?

本文将讨论chatgpt的诞生过程,串联起OpenAI发表的一系列重要论文,帮助读者更好的了解这场革命背后的原理。

革命源头——机器学习和深度学习

chatgpt相关的所有技术都起源于机器学习这门学科,我们首先简单讨论下相关背景。

机器学习是一种通过算法和模型使计算机从数据中自动学习并进行预测或决策的技术(百度百科)。

通常的做法是:

  1. 我们收集一些训练数据并给与标注(如收集一些图片,然后根据图片内容,将图片标注为不同的类别),然后将这些数据划分为训练集(用于训练模型)和测试集(用于测试模型效果)。
  2. 然后选择一个合适的机器学习模型,然后将训练集喂给它,让它学习从输入到标注的映射规律,这一学习过程被称为模型训练阶段,在这一过程中,模型的权重/参数会不断更新,并最终收敛不再变化。
  3. 随后我们会拿这个收敛的模型/训练好的模型去预测测试集中的数据,将测试集数据输入模型后,模型会计算出相应的预测输出。通过观察测试集上的效果,我们得以评估模型的好坏,这一过程被称为测试阶段。

自上世纪90年代起,机器学习一直处于蓬勃发展阶段,大量的算法被不断推出,它们在特定数据集/特定领域上表现良好,然而它们能力有限还无法部署到现实世界解决通用问题。

与此同时,一种特别适合大规模训练的机器学习算法——神经网络被发明出来,而利用神经网络模型进行学习的这一机器学习分支被称为深度学习。 2012年,在大规模图像分类数据集imagenet的催动下,深度学习爆发。在这一阶段,训练数据集和模型规模都比以前有了大幅度提高,模型可以部署到现实世界解决特定领域的问题而不仅仅在测试数据上表现良好,比如人脸识别,目标检测等领域,模型可以在真实世界解决这些问题。与此同时,AI工业界开始繁荣,一些专门的AI公司也开始出现,比如AI四小龙。

革命背景——自然语言处理

根据研究对象的不同,人们将人工智能分成了若干分支,比如自然语言处理,计算机视觉,语音识别等,其中自然语言处理是借助计算机技术研究怎样处理人类语言的学科。它的研究问题包括语言翻译、情感分析、文本摘要等任务,它使用的方法主要是机器学习方法。

一如前文所讲,自然语言处理也会面临无法在现实世界应用/只能解决特定问题的困境。

2017年,google的研究人员在研究机器翻译任务时提出了transformer神经网络,这是一种特别适合大规模计算的网络,可以将训练规模扩大到惊人之境。transformer的诞生催动了训练语言模型时代的到来。

2018年,借助transformer网络和预训练技术,OpenAI和google的研究人员分别提出了GPT和bert,这两种模型都可以解决大量任务而不是特定任务,这颠覆了以前的自然语言研究方法。训练语言模型解决通用语言任务的时代到来了。

革命导火索——GPT

OpenAI的研究人员借助transformer模型,提出了GPT,

GPT方法核心是提出了利用transofmer进行无监督预训练 + 判别式监督微调的训练范式。

简单来说,就是先让模型在大量没标过标签的文本(比如很多本书)上进行训练,学习语言的规律,这一步叫生成式预训练。之后,再针对具体的任务(比如文本分类、问答等),用有标签的数据对模型进行微调,让它适应具体任务,这一步是判别式微调。

这种方法的好处是,不需要为每个具体任务专门设计复杂的模型结构,通过对输入进行一些针对性的转换,就能让同一个基础模型在多种任务上发挥作用。实验显示,这种方法在 12 个任务中的 9 个都刷新了当时的最佳成绩,比如在常识推理任务上提升了 8.9%,问答任务上提升了 5.7% 等。

尤其令人惊喜的是,作者通过Zero-shot实验证明了transformer在预训练后学到的表示确实有利于零样本解决各类下游任务,有可能不需要专门针对每个具体任务训练,一个无监督预训练任务即可解决一切。

这一实验现象和想法催促了后续GPT模型的开发。

方法

单向自左向右语言建模架构

gpt1采用了transformer的Decoder部分,只有位置编码部分和原始实现不同,将固定位置编码换成可训练的位置编码。

预训练任务

  1. 预训练目标采用传统经典的语言模型目标函数,给定前文,最大化后一个词的概率。
  2. 文本处理方式:仅在原始文本中添加开始和结束标识。

微调阶段

1 目标函数是下游任务的目标函数+语言模型目标函数

(作者解释额外的语言模型目标函数可以提高下游任务性能,但在随后的实验中表明,对于小数据集,这个额外目标函数并没有用,对较大数据集有用。)

2 文本处理方式:任务特定的文本处理方式,添加分割符,根据不同任务类型拼接问题答案,句子对等
在这里插入图片描述

革命领路人——GPT2

gpt1论文中初步探索了语言模型进行零样本学习的潜力:只依靠无监督预训练,不使用监督数据训练便有望解决各类下游任务,但整体论文架构还是基于预训练-微调的范式。

后继者gpt2(Language Models are Unsupervised Multitask Learners)不再基于预训练-微调,去掉微调阶段,完全专注探讨纯无监督预训练能否解决各类下游任务。这是一个雄心勃勃的想法。

研究人员观察到以前的研究包括GPT1往往在单领域/单任务数据集(如GP1是在一个较大图书数据集上进行训练)训练,导致模型缺乏足够的泛化能力。

如果用领域更丰富,任务更丰富的数据进行训练会是怎样?

研究人员随后构建了一个很大的互联网网页构成的数据集—— WebText 语料库,规模为40GB,这个规模远超以前的研究,然后利用和GPT1相似的架构在该数据集上进行了训练。

研究人员利用训练好的模型做了若干实验,以评估模型的能力。研究人员主要做了两大类实验

  • 一类是语言建模实验,给定上文评估模型下文的预测能力,在 8 个语言建模数据集里,有 7 个它在零样本设置下都取得了最先进的结果,这表明GPT2建模文本,预测下文文本,续写文本的能力非常强大.

  • 在这里插入图片描述

  • 一类是标准自然语言处理任务,如阅读理解,翻译,摘要,问答,研究人员采用了零样本设定,仅输入适当提示来让GPT2完成这些任务,实验表明GPT2有潜力解决这些任务,但和SOTA相比还有显著差距,这也促使了GPT-3的诞生。
    在这里插入图片描述

革命曙光——GPT3

纯粹依靠无监督训练的gpt2(GPT2——通用语言模型的探路者)在阅读理解翻译,问答,摘要等任务下的有限表现促使作者进步进一探索如何更好的解决各类任务。他们结合少样本学习,推出了gpt3(Language Models are Few-Shot Learners).

gpt3对gpt2的主要改进包括:

  • 推理/预测时使用更多的上下文,GPT3推理时的输入包括任务示例:问它前可以给一些例子,GPT3能根据示例提示进行举一反三,给出更好的回答。
  • 更大的模型 (gpt3系列 最大175B,gpt2系列 最大1.5B,参数量增大100倍)
  • 更多的训练数据(10倍以上)

实验表明GPT3就能在很多自然语言处理任务中表现出色。无需进行微调只需要给适当的任务示例即可很好的解决下游任务,比如翻译、问答、填空,还有一些需要即时推理或适应新领域的任务,像解字谜、用新单词造句、做三位数算术等,它都能较好地完成。
在这里插入图片描述

另外,GPT-3 生成的新闻文章,人类评估者很难区分是机器写的还是人类写的,研究人员也讨论了这一发现以及 GPT-3 带来的更广泛的社会影响。

革命奠基石——InstructGPT

无监督训练的gpt3(GPT3——少样本示例推动下的通用语言模型雏形) 虽然具有强大的能力,但是在遵循用户意图/指令方面存在不足,如生成虚假、有毒或无用内容,依赖少样本提示等方法的引导。

这是因为其无监督训练目标与 “遵循用户指令并保障安全有益” 的目标不一致。也许无监督训练更多的是让语言模型具备了海量知识,但对于怎么遵循用户指令给出有益回答,语言模型还需要进一步学习。openai随后推出的 InstructGPT(Training language models to follow instructions with human fdeeedback) ,通过人类反馈微调(fine-tuning with human feedback) gpt3, 让语言模型做到这点。

方法

作者结合监督学习和人类反馈强化学习微调 GPT-3。
在这里插入图片描述

  1. 先收集标注员撰写的提示和 OpenAI API 提交的提示,标注回复,形成示范数据集,用监督学习微调 GPT-3,得到SFT-GPT3;
  2. 接着收集不同模型输出的比较数据(对于每个输入,多个模型给出输出,标注员按照评估标准,标注出这些输出的排名),训练奖励模型RM;
  3. 最后以SFT-GPT3 为起点,用近端策略优化算法(PPO)基于奖励模型优化策略,得到InstructGPT”

通过监督微调(SFT)和基于人类反馈的强化学习(RLHF),GPT3得以进化为InstructGPT,显著提升了遵循用户意图和指令的能力,同时改善了输出内容的安全性和实用性。

这一工作开启了基于人类反馈微调的大模型新范式。

InstructGPT 的成功为 ChatGPT 的诞生奠定了关键技术基础。不到一年后, 2022 年 11 月 30 日ChatGPT 由 OpenAI 正式推出。

InstructGPT 之后OpenAI不再发表核心技术论文。本文后面部分我们会进行一些推断而不再基于其论文。

革命高潮——chatGPT,GPT4

从 InstructGPT 到 ChatGPT:语言模型开始改变世界

InstructGPT 标志着大语言模型开始以“服务人类意图”为核心目标,这一技术路线在 InstructGPT 基础上继续发展,最终催生了 ChatGPT 的第一个版本 —— GPT-3.5。

2022 年 11 月 30 日,OpenAI 正式推出 ChatGPT。在此之前ai研究者基本还是发论文,提出新算法为主,没想到这次他们改变世界了。

ChatGPT 不再局限于对单轮输入做出回答,它支持多轮对话,能持续理解用户的意图,并在上下文中保持连贯。其关键技术包括:

  • 对话式微调(Chat Fine-tuning):构建大规模人类对话数据集(如用户与助手的对话记录),训练模型习惯于以聊天风格进行响应。
  • 多轮上下文建模机制:保留历史输入,使模型能理解上下文中的话题变化和指代关系。
  • 更广泛的训练数据 ,包括github代码,arxiv论文等数据集,可参考llama论文。

GPT4:迈向通用智能的坚实一步

2023 年 3 月,OpenAI 发布了更强大的语言模型 —— GPT4,这一代模型被称为“多模态大模型的初步实现”,具备更高的理解能力、推理能力与稳健性,比如在美国法律考试中达到前10%,而GPT3.5为后10%。

GPT4 的进步主要体现在以下几个维度:

1. 多模态能力

GPT-4 不仅能处理文本,还支持图像输入(如读取图片中的文字、描述图片内容等),是 OpenAI 在图文融合上的重大突破。可参考Flamingo论文。

2. 更强的推理与稳健性

GPT-4 在推理任务(如数学、逻辑题)中表现出更高准确率,在 MMLU、Big-Bench Hard、HumanEval 等评测中均优于 GPT-3.5,表明其具备更强的泛化能力与“慢思考”能力,可参考CoT论文和OpenAI过程奖励强化学习论文。

3. 更长的上下文窗口

GPT-4 支持高达 32k(甚至部分版本支持 128k)上下文窗口,使其能处理更长文档与更复杂的多轮对话。

4. 更细致的 RLHF 微调

GPT-4 在 RLHF 阶段加入更多多样化的偏好数据,引入多个奖励模型打分(可参考llama2论文), 进一步提升其回答的安全性、准确性、信息量和人类偏好对齐度。

革命仍在进行——GPT5

尽管GPT5尚未发布,但是我们可以观察到GPT4o,GPT4.1等模型更多的往全能方向发展(图片理解,代码生成,自主执行等),GPT5可能也不例外,未来的语言模型不再是仅有对话能力,而是全能战士。

最后我们总结和估计GPT-1到GPT-5的进化之路:

模型发布时间参数量关键特征核心贡献智能增长量预估
GPT-12018117MTransformer decoder + 微调范式提出预训练-微调框架
GPT-220191.5B无监督预训练+零样本推理无需微调即可解决各种任务10倍
GPT-32020175B少样本示例提示 + 超大规模数据训练通用语言能力大爆发10倍
InstructGPT2022基于GPT3RLHF + SFT开始学会“听懂人话”10倍
GPT-3.5 / ChatGPT2022.11微调增强版多轮对话、代码理解更强大模型走入普通人生活,改变世界
GPT-42023未公布多模态、推理强、上下文32K+接近通用人工智能10倍
GPT-52025未发布未发布10倍

本文从 GPT-1 到 GPT-4 回顾了 ChatGPT 技术路线的演化路线。后续还会有更多相关文章。

http://www.dtcms.com/a/273019.html

相关文章:

  • dexie 前端数据库封装
  • 使用快捷键迅速校准多个通道 | IPEmotion
  • 软件技术:柯里化
  • 《PyQt6-3D应用开发技术文档》
  • 仿豆包智能输入框实现
  • python基础25_某大网校(下)处理json数据以及保存题库
  • 安全访问云端内部应用:用frp的stcp功能解决SSH转发的痛点
  • Linux驱动开发(platform 设备驱动)
  • 老题新解|矩阵转置
  • AI驱动的业务系统智能化转型:从非结构化到结构化的智能转换
  • 【STM32 学习笔记】FLASH闪存
  • pytorch学习-12循环神经网络(基础篇)
  • 机器视觉之激光码检测系统
  • 【世纪龙科技】学测-汽车信息化综合实训考核平台(机电方向)
  • 数字孪生系统如何助力汽车零部件企业实现虚拟智控
  • RedisJSON 内存占用剖析与调优
  • Lua嵌入式爬虫实现步骤
  • 【Linux系统】冯诺依曼体系结构 | 初识操作系统
  • 生产者、消费者问题(C语言、POSIX)
  • 测试覆盖标准-条件覆盖-短路求值
  • 全新开源AI知识库系统!PandaWiki一键构建智能文档,支持AI问答、创作与搜索!
  • [特殊字符] 05_Jenkins 部署前端项目实现自动化部署
  • rv1106使用笔记
  • 【RL-VLM-F】算法框架图绘图学习笔记
  • ubuntu server配置静态IP
  • ​​​​​​​微软PowerBI PL-300认证考试报名入口及费用
  • 【PTA数据结构 | C语言版】顺序队列的3个操作
  • 完美卸载 Ubuntu 双系统:从规划到实施的完整指南
  • 乐鑫代理商飞睿科技,ESP32模组重塑AIoT体验的四大技术支柱
  • C++类型萃取(Type Traits):深入解析std::enable_if与std::is_same