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

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

本文将讨论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.pswp.cn/diannao/91161.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91161.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/91161.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[笔记] 动态 SQL 查询技术解析:构建灵活高效的企业级数据访问层

文章目录一. 应用场景二. 使用示例示例1示例2示例3三. 实现1. 动态表查询构建器,模仿MyBatis-Plus2. mapper3. mapper.xml功能概述参数说明四. 动态 SQL 的优化与风险防控在企业级应用开发中,数据查询场景往往呈现出复杂多变的特点 —— 从简单的单表筛选…

.net天擎分钟降水数据统计

1.需求:计算滑动时间下的1小时、3小时、6小时、12小时、24小时降水数据,统计这个时间下的分钟级降水数据2.分析第一版本:降水分钟级数据保存时间不长,保存太多意义不大,以更新的形式来保存这些统计数据效果会比较好&am…

图片合并pdf

文章目录 背景目标实现下载 背景 整合: 将零散的图片集合成一个单一文件。有序化: 固定图片的排列顺序。标准化: 转换为通用、兼容性强的PDF格式。高效管理: 便于存储、查找、分享和传输。正式化/文档化: 满足提交、报…

【vue3+js】文件下载方法整理

前端文件下载方式 引言 在前端开发中,文件下载是一个常见的需求。后端可能以不同的方式返回文件数据,前端需要根据不同的返回类型采用相应的处理方式。本文将总结几种常见的后端返回类型及对应的前端处理方案,主要基于Vue3和JavaScript环境。 一、后端返回文件URL 场景描…

MicrobiomeStatPlots | 森林图教程Forest plot tutorial

视频讲解https://www.bilibili.com/video/BV1mA3yzEEnc/森林图简介什么是森林图?参考:https://mp.weixin.qq.com/s/vwNf_sFlmhp7DeSYaQ3NxQ森林图是以统计指标和统计分析方法为基础,用数值运算结果绘制出的图形。它在平面直角坐标系中&#x…

vscode 打开项目时候,有部分外部依赖包找不到定义或者声明,但是能使用cmake正常编译并且运行

解决:是依赖路径的问题,先看includePath对不对,但是有时候会依赖外部文件,这时候入股cmake编译能够听过, 说明编译器能够找到依赖路径, 但是vscode的 IntelliSense 找不到依赖路径 → 导致编辑器提示错误、…

nginx:SSL_CTX_use_PrivateKey failed

SSL_CTX_use_PrivateKey("/home/nginx-vue/cret/*.com.key") failed (SSL: error:0B080074:x509 certificate routines:x509_check_private_key:key values mismatch) Nginx 尝试加载私钥文件时失败,原因是:证书与私钥不匹配 问题本质 SSL 证…

Docker 基于 Cgroups 实现资源限制详解【实战+源码】

本文将带你深入理解 Docker 如何借助 Linux Cgroups 实现对内存、CPU 等系统资源的精细化控制,并提供完整演示与图解、Compose 配置模板和资源包下载,适合初学者与工程师深入学习与实战。 文章目录 一、什么是 Cgroups?为什么对容器如此关键…

Linux中的系统日志(Rsyslog)

一、实验环境主机名系统网络适配器IP地址serverarhel9NAT模式172.25.254.11/24serverbrhel9NAT模式172.25.254.22/24二、Rsyslog的基本参数(1)安装rsyslog(2)rsyslog的服务名称(3)rsyslog的主配置文件rsysl…

Spring Boot + Thymeleaf + RESTful API 前后端整合完整示例

关键词:Spring Boot、Thymeleaf、RESTful API、前后端整合、用户管理 ✅ 功能概述 本文将为你提供一个完整的 Spring Boot Thymeleaf RESTful API 的前后端整合项目,实现以下功能: 模块功能用户管理查看用户列表、新增用户、删除用户后端…

从零开始的MySQL学习

MySQL 从零开始的MySQL学习 第一节 数据库 重点:数据库通过SQL等标准语言进行动作,数据库的概念、分类,数据管理系统(操纵和管理数据库的大型软件) 数据库(Database) 是按照数据结构来组织、存储…

Docker 高级管理--Dockerfile镜像制作

二:Dockerfile 语法基础 1:基础指令 (1)FROM 指定基础镜像,所有的 Dockerfile 都必须以 FROM 指令开头,它定义了新镜像基于哪个基础镜像构建。 FRoM ubuntu:20.04 (2)MAINTAINER(已奔用,推荐使用LABEL) 用于指定镜像的维护者信息。不过在较…

LeetCode 692题解 | 前K个高频单词

前K个高频单词一、题目链接二、题目三、分析四、代码一、题目链接 692.前K个高频单词 二、题目 三、分析 本题目我们利用map统计出次数以后,返回的答案应该按单词出现频率由高到低排序,有一个特殊要求,如果不同的单词有相同出现频率&#…

C++ 中的 std::bind 用法

在现代 C++ 编程中,std::bind 是一个非常强大但常常被误解的工具。它允许我们将函数(包括成员函数)、参数进行绑定,并生成一个新的可调用对象。这在编写异步回调、事件处理、适配器模式等场景中非常有用。 🔧 一、std::bind 是什么? std::bind 是定义在 <functiona…

Spring Boot秒级冷启动方案:阿里云FC落地实战(含成本对比)

Spring Boot秒级冷启动方案&#xff1a;阿里云FC落地实战&#xff08;含成本对比&#xff09;一、冷启动痛点与FC核心优势1. 传统Spring Boot冷启动瓶颈2. 阿里云FC核心能力二、秒级冷启动架构设计1. 整体架构2. 关键组件选型三、5大核心优化策略1. 应用瘦身&#xff08;JAR包精…

搜索引擎vs向量数据库:LangChain混合检索架构实战解析

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。一、LangChain搜索工具实战&#xff1a;集成DuckDuckGo实现实时信息查询 核心场景&#xff1a;解决大模型知识滞后问题&#xff0c;通过搜索引擎获取实…

【算法】贪心算法:将数组和减半的最少操作次数C++

文章目录前言题目解析算法原理代码示例策略证明前言 题目的链接&#xff0c;大家可以先试着去做一下再来看一下思路。2208. 将数组和减半的最少操作次数 - 力扣&#xff08;LeetCode&#xff09; 题目解析 要认真去把题目看一遍&#xff0c;画出题目中的有用信息。 示例一定是…

git异常退出,应该是内存不足

这次下载代码&#xff1a; 公司虚拟机到了一定步骤&#xff0c;肯定退出。而家里的虚拟机则完全正常。我把家里的虚拟机复制到公司&#xff0c;还是崩溃。 差异在哪里&#xff1f;公司电脑虚拟机内存设置为10G&#xff0c;家里的16。因为家里电脑64G内存。 后来确认&#xff…

机器学习13——支持向量机下

支持向量机下 非线性支持向量机&#xff08;Non-linear SVMs&#xff09;详解 核心思想 当数据在原始空间线性不可分时&#xff0c;通过**核技巧&#xff08;Kernel Trick&#xff09;**将数据映射到高维特征空间&#xff0c;使其在该空间中线性可分。 比如以下的样本在一维空间…

GPT-4和Claude哪个好

选择GPT-4还是Claude?这就像在问“苹果还是橙子哪个更好”——‌答案完全取决于你的具体需求‌。两者都是顶尖大语言模型,但各有特色。 我为你做了详细对比,帮你快速定位哪个更适合你: 🧠 核心能力对比 特性GPT-4 (OpenAI)Claude (Anthropic)‌语言理解/推理‌顶尖水平,…