【深度学习】12. VIT与GPT 模型与语言生成:从 GPT-1 到 GPT4

VIT与GPT 模型与语言生成:从 GPT-1 到 GPT4

本教程将介绍 GPT 系列模型的发展历程、结构原理、训练方式以及人类反馈强化学习(RLHF)对生成对齐的改进。内容涵盖 GPT-1、GPT-2、GPT-3、GPT-3.5(InstructGPT)、ChatGPT 与 GPT-4,并简要提及 Vision Transformer 的演化。

1. GPT 模型的原理

Transformer 架构中包含 Encoder 与 Decoder 两部分。

  • 如果我们只需要处理输入(如 BERT),可以去掉 Decoder;
  • 如果我们只生成输出(如 GPT),可以只保留 Decoder。

GPT 是一种只使用 Transformer Decoder 堆叠结构的模型,其训练目标是根据前文预测下一个词,即语言建模任务

给定前缀 { x 1 , x 2 , . . . , x t } \{x_1, x_2, ..., x_t\} {x1,x2,...,xt},模型预测 x t + 1 x_{t+1} xt+1

2. GPT 与 ELMo/BERT 的比较

模型参数量架构特点
ELMo94M双向 RNN上下文嵌入
BERT340MTransformer Encoder掩码语言模型 + 下一句预测
GPT可变(取决于版本)Transformer Decoder自回归语言模型

GPT 使用自回归机制,一个词一个词地生成结果,适合生成任务。

3. GPT-1:生成式预训练语言模型

GPT-1 的两大创新:

  1. 利用海量无标注文本进行预训练(语言建模);
  2. 对具体任务进行监督微调(分类、情感分析、蕴含等)。

这种预训练 + 微调范式,开启了 NLP 模型训练的新方向。

预训练目标是最大化:

log ⁡ P ( t 1 , t 2 , . . . , t n ) = ∑ i = 1 n log ⁡ P ( t i ∣ t 1 , . . . , t i − 1 ) \log P(t_1, t_2, ..., t_n) = \sum_{i=1}^{n} \log P(t_i | t_1, ..., t_{i-1}) logP(t1,t2,...,tn)=i=1nlogP(tit1,...,ti1)

微调目标是最大化:

log ⁡ P ( y ∣ x 1 , x 2 , . . . , x n ) \log P(y | x_1, x_2, ..., x_n) logP(yx1,x2,...,xn)

其中 y y y 是标签。

特定于任务的输入转换:为了在微调期间对模型的体系结构进行最小的更改,将特定下游任务的输入转换为有序序列

在这里插入图片描述

4. GPT-2:无监督多任务学习

GPT-2 扩展了 GPT-1:

  • 更大的数据集(从 6GB 增长至 40GB);
  • 更多的参数(117M → 1542M);
  • 任务无需专门微调结构,只需修改输入格式,即可处理不同任务。

这一版本提出了“语言模型是无监督的多任务学习者”这一重要观点。

5. GPT-3:大规模语言模型与 Few-shot 能力

GPT-3 使用了 1750 亿参数,训练数据量达 45TB,计算资源非常庞大(28.5 万 CPU,1 万 GPU)。

其突破包括:

  • 强大的 Few-shot / One-shot / Zero-shot 能力;
  • 不再依赖下游微调,输入任务示例即可生成高质量输出。

其架构仍为标准 Transformer Decoder,无重大结构创新。

6. GPT-3.5 / InstructGPT:人类对齐

InstructGPT 引入了 人类反馈强化学习(RLHF),旨在让模型更符合用户意图:

在这里插入图片描述

主要流程分为三阶段:

  1. 语言模型预训练(如 GPT-3);

    RLHF一般使用预训练的LMs作为起点(例如,使用GPT-3)

    这些预训练的模型可以根据额外的文本或条件进行微调,但这并不总是必要的。(人类增强文本可以用来调整人类的偏好)

  2. 奖励模型训练(由人工标注生成输出的排序);

    Gathering data and training a Reward Model (RM)

    • RLHF中的RM:接受文本序列并返回代表人类偏好的标量奖励
    • RM的训练集:通过对提示进行采样并将其传递给初始LM以生成新文本,然后由人工注释器对其进行排序。
    • 注意:标注对LM的输出进行排序,而不是直接给它们打分。
  3. 通过强化学习优化模型(使用 PPO 算法)。

    1. 示例提示

    2. 通过初始LM和RL策略(初始LM的副本)传递它

    3. 将策略的输出传递给RM来计算奖励,并使用初始LM和策略的输出来计算移位惩罚

    4. 采用奖惩结合的方式,通过PPO (Proximal policy)更新

结果是模型更加安全、有用且真实。

7. ChatGPT:对话能力与人类协作训练

ChatGPT 是 InstructGPT 的“对话版”,与用户进行多轮交流。

其训练包括:

  • 初始监督微调:AI 教练扮演用户和助手角色生成对话;
  • 奖励模型训练:对话中多个回复由 AI 教练排序评分;
  • 最终强化学习:使用 PPO 方法优化回复。

它与 GPT-3.5 共享核心技术,但训练数据格式专为对话优化。

ChatGPT 的训练概述

ChatGPT 是 InstructGPT 的“兄弟模型”,主要目标是理解提示并生成详细回复。两者使用相同的 RLHF 方法,但 数据构造方式略有不同

ChatGPT 的训练数据分两部分:

① 初始监督微调数据(Supervised Fine-tuning)
  • 训练师(AI Trainers)模拟对话角色

    “The trainers acted as both users and AI assistants…”

    即,训练师扮演用户助手两个角色,人工构造对话数据集。

  • 参考模型生成建议(model-written suggestions)**:
    帮助训练师撰写回复,提高效率。

  • InstructGPT 数据集也被转换为对话格式并混入**新数据集中。

② 奖励模型数据(Reward Model,比较排序数据)
  • 从 AI 训练师与模型的对话中提取**:

    “Took conversations that AI trainers had with the chatbot”

  • 随机抽取模型生成的回答**,训练师对多个候选答案进行排序打分,构成奖励数据。


总结:ChatGPT 相比 InstructGPT 的不同点

阶段InstructGPTChatGPT
微调数据任务式指令对多轮对话,训练师模拟双方
奖励数据人类写的参考回复人类对多轮对话排序打分

8. GPT-4:多模态与推理能力提升

GPT-4 相较于 GPT-3.5 主要提升:

  • 更强的创造力与推理能力;
  • 多模态输入(文本+图像);
  • 更长的上下文处理能力(约 25,000 字);
  • 在专业考试中达到人类水平。

其方法未完全公开,但大体基于 ChatGPT 和 InstructGPT 技术演进。

9. Emergent Ability 与 CoT

Emergent Ability(涌现能力) 是指模型规模达到一定程度后,出现新的、未显式训练出的能力。

突发能力是指模型从原始训练数据中自动学习和发现新的高级特征和模式的能力。

Chain of Thought(CoT) 是一种通过 prompt 引导模型“逐步推理”的技巧,可大幅提升逻辑与数学任务表现。

生成思维链(一系列中间推理步骤)可以显著提高llm执行复杂推理的能力

10. Prompt Engineering 简介

Prompt 工程是通过设计输入提示来提升 LLM 输出质量的方法。

一个好的 Prompt 通常包含:

  • 角色设定(如你是老师);
  • 场景背景(如我们在深度学习课堂);
  • 明确指令(解释 prompt engineering);
  • 响应风格(应通俗易懂)。

常见方法包括:

  • Chain of Thought;
  • Self-consistency;
  • Knowledge prompt 等。

11. GPT 系列演化总结

模型技术路线特点
GPT-1预训练 + 微调引入生成式语言模型思想
GPT-2更大模型Few-shot、多任务泛化能力
GPT-3巨量参数零样本/少样本迁移能力
GPT-3.5RLHF对齐人类意图
ChatGPT对话优化多轮对话、任务跟踪
GPT-4多模态 + 长上下文强逻辑推理、创造力

12. 未来方向:多模态与通用智能

未来的发展趋势将包括:

  • 更强的多模态处理能力(语言 + 图像 + 音频);
  • 更长文本记忆;
  • 与人类交互更自然的代理;
  • 融合强化学习、知识图谱等异构技术;
  • 向通用人工智能(AGI)迈进。

GPT 是这一进化路线上的关键步骤。

13. Vision Transformer 的动机与背景

传统 CNN 利用局部感受野和共享权重处理图像,但难以建模全局依赖。

Transformer 本是为 NLP 设计,但其强大的全局建模能力被引入图像领域,催生了 Vision Transformer (ViT)

核心观点:将图像切成 Patch,类比 NLP 中的 token,再用 Transformer 编码序列。

ViT 不再依赖卷积结构,是一种纯基于 Transformer 的视觉模型。

ViT: Vision Transformer. Transformers for image recognition at… | by  Shivani Junawane | Machine Intelligence and Deep Learning | Medium

14. Vision Transformer 的核心构成(图像 → patch → 向量序列)

ViT 输入处理流程如下:

  1. 输入图像大小为 H × W × C H \times W \times C H×W×C
  2. 将图像划分为 N N N 个 Patch,每个 Patch 为 P × P P \times P P×P
  3. 展平每个 Patch 为长度为 P 2 ⋅ C P^2 \cdot C P2C 的向量;
  4. 每个 Patch 映射为 D D D 维表示(通过全连接);
  5. 加入可学习的位置编码;
  6. 在序列前添加一个 [CLS] token,作为图像的全局表示;
  7. 输入标准 Transformer Encoder。

最终分类结果由 [CLS] token 表示。

15. 多头注意力在 ViT 中的作用

与 NLP 中一样,ViT 中每个 token 都会计算 Query、Key、Value:

Q = X W Q , K = X W K , V = X W V Q = XW_Q,\quad K = XW_K,\quad V = XW_V Q=XWQ,K=XWK,V=XWV

然后进行多头注意力(Multi-Head Attention):

Attention ( Q , K , V ) = softmax ( Q K T d ) V \text{Attention}(Q, K, V) = \text{softmax}\left( \frac{QK^T}{\sqrt{d}} \right) V Attention(Q,K,V)=softmax(d QKT)V

多个头并行计算后拼接,再映射到原始维度:

MultiHead ( X ) = Concat ( head 1 , . . . , head h ) W O \text{MultiHead}(X) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W_O MultiHead(X)=Concat(head1,...,headh)WO

注意力机制使模型可以捕捉图像各区域之间的长距离依赖。

16. 位置编码在 ViT 中的关键性

因为 Transformer 本身对输入顺序不敏感,ViT 必须引入 位置编码(Positional Encoding) 以告知 patch 的相对或绝对位置信息。

在 ViT 原始论文中,位置编码是 可学习的向量,维度与 patch 向量一致。

ViT 输入为:

z 0 = [ x class ; x p 1 ; x p 2 ; … ; x p N ] + E pos z_0 = [x_{\text{class}}; x_p^1; x_p^2; \dots; x_p^N] + E_{\text{pos}} z0=[xclass;xp1;xp2;;xpN]+Epos

其中 x p i x_p^i xpi 表示第 i i i 个 patch 的向量表示, E pos E_{\text{pos}} Epos 是位置嵌入。

17. 类比 NLP 模型:ViT 与 BERT 输入结构对照

ViT 完全借鉴了 BERT 的编码形式:

  • 使用 [CLS] token 获取图像全局信息;
  • patch 类比为 token;
  • 添加位置编码。
模型输入单位[CLS]位置编码Transformer 层
BERTtokenEncoder Stack
ViTpatchEncoder Stack

因此,ViT 可视为一种图像版本的 BERT。

18. ViT 应用于图像分类任务(Encoder-only 模型)

ViT 的应用以图像分类为代表性任务。

其完整流程:

  1. 图像 → Patch → 向量序列;
  2. 加入位置编码;
  3. 输入多层 Transformer Encoder;
  4. 提取 [CLS] 输出向量;
  5. 使用全连接层进行分类预测。

ViT 是 Encoder-only 模型,不包含 Decoder,与 BERT 类似。

19. ViT 模型的训练策略与挑战

训练 ViT 时的挑战:

  • 数据依赖性强,若使用小数据集(如 CIFAR-10),效果不如 CNN;

    在JFT大数据集上才能略微强过ResNet

  • 训练时间长,对正则化要求高;

  • 无归纳偏置(不像 CNN 有平移不变性等先验),导致训练初期收敛慢。

解决方法包括:

  • 使用 大规模预训练(如 ImageNet-21k)
  • 引入 混合训练策略(如 Token Labeling、MixToken);
  • 结合 CNN 结构(Hybrid ViT)。

20. 总结:ViT 与 GPT 的共同趋势

ViT 和 GPT 虽应用领域不同,但都体现了 Transformer 的优势:

  • 使用统一的序列建模结构;
  • 可用于多种下游任务(分类、生成、匹配);
  • 都展现出随着模型规模扩大,性能提升的趋势;
  • 需要大量数据与计算支持;
  • 都引发了通用 AI 架构探索的热潮。

ViT 的出现标志着 Transformer 正式从 NLP 扩展至视觉领域,推动了多模态融合的发展。

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

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

相关文章

项目更改权限后都被git标记为改变,怎么去除

❗问题描述: 当你修改了项目中的文件权限(如使用 chmod 改了可执行权限),Git 会把这些文件标记为“已更改”,即使内容并没有发生任何改变。 ✅ 解决方法: ✅ 方法一:告诉 Git 忽略权限变化&am…

openfeignFeign 客户端禁用 SSL

要针对特定的 Feign 客户端禁用 SSL 验证,可以通过自定义配置类实现。以下是完整解决方案: 1. 创建自定义配置类(禁用 SSL 验证) import feign.Client; import feign.httpclient.ApacheHttpClient; import org.apache.http.conn…

移动端 UI自动化测试学习之Appium框架(包含adb调试工具介绍)

文章目录 前言adb调试工具adb组成常用命令获取程序的包名和界面名文件传输发送文件到手机从手机中拉取文件 获取app启动时间获取手机日志其他命令 Appium 简介工作原理图 环境搭建安装客户端库(appium lib)安装Appium Server安装JDK(自行下载…

【论文解读】DETR: 用Transformer实现真正的End2End目标检测

1st authors: About me - Nicolas Carion‪Francisco Massa‬ - ‪Google Scholar‬ paper: [2005.12872] End-to-End Object Detection with Transformers ECCV 2020 code: facebookresearch/detr: End-to-End Object Detection with Transformers 1. 背景 目标检测&#…

性能测试-jmeter实战1

课程:B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter实战1 为什么需要性能测试呢?性能测试的作用?性能测试体系性能测试基础性能测试工具性能监控…

HTML、XML、JSON 是什么?有什么区别?又是做什么的?

在学习前端开发或者理解互联网工作原理的过程中,我们经常会遇到三个非常重要的概念:HTML、XML 和 JSON。它们看起来有点像,但其实干的事情完全不同。 🏁 一、他们是谁?什么时候诞生的? 名称全称诞生时间谁…

HTML5 全面知识点总结

一、HTML 基础概念 HTML:超文本标记语言,用于创建网页和 Web 应用的结构。 超文本:可以包含文字、图片、音频、视频、链接等多种媒体。 标记语言:通过标签标记网页的各个部分。 二、HTML5 的新特性(区别于 HTML4&am…

记录一个难崩的bug

1.后端配置了 Filter 过滤器,如果再配置了Configuration ,那么会出现冲突吗? 过滤器与Configuration类本身无直接冲突,但需注意注册机制、执行顺序和依赖管理。通过显式控制过滤器的注册方式和优先级,结合Spring Security的链式配…

RabbitMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 选型指南(二)

四、三者性能大比拼 4.1 吞吐量 吞吐量是衡量消息队列处理能力的重要指标,它反映了在单位时间内消息队列能够处理的消息数量。在这方面,Kafka 表现最为出色,其独特的设计使其能够轻松处理每秒数百万条消息 。Kafka 采用分布式架构和分区机制…

【C】箭头运算符

在C语言中,p_tone->power_off 是一种通过指针访问结构体成员的方法,称为箭头运算符(->)。它主要用于以下场景: 1. 语法解释 p_tone:是一个指向结构体(或联合体)的指针。powe…

【Unity】 HTFramework框架(六十六)缺省的运行时组件检视器

更新日期:2025年5月29日。 Github 仓库:https://github.com/SaiTingHu/HTFramework Gitee 仓库:https://gitee.com/SaiTingHu/HTFramework 索引 一、缺省的运行时组件检视器1.自定义运行时组件检视器 二、使用缺省的运行时组件检视器1.定义组…

AI和大数据:是工具,还是操控人心的“隐形之手”?

AI和大数据:是工具,还是操控人心的“隐形之手”? 开场白:聊点现实的 在这个数据至上的时代,我们的生活被AI和大数据悄然改变。从电商推荐、短视频算法,到招聘筛选、智慧城市,它们像一个贴心的…

k8s部署ELK补充篇:kubernetes-event-exporter收集Kubernetes集群中的事件

k8s部署ELK补充篇:kubernetes-event-exporter收集Kubernetes集群中的事件 文章目录 k8s部署ELK补充篇:kubernetes-event-exporter收集Kubernetes集群中的事件一、kubernetes-event-exporter简介二、kubernetes-event-exporter实战部署1. 创建Namespace&a…

Apache 高级配置实战:从连接保持到日志分析的完整指南

Apache 高级配置实战:从连接保持到日志分析的完整指南 前言 最近在深入学习 Apache 服务器配置时,发现很多朋友对 Apache 的高级功能还不够了解。作为一个在运维路上摸爬滚打的技术人,我想把这些实用的配置技巧分享给大家。今天这篇文章会带…

【Stable Diffusion 1.5 】在 Unet 中每个 Cross Attention 块中的张量变化过程

系列文章目录 文章目录 系列文章目录前言特征图和注意力图的尺寸差异原因在Break-a-Scene中的具体实现总结 前言 特征图 (Latent) 尺寸和注意力图(attention map)尺寸在扩散模型中有差异,是由于模型架构和注意力机制的特性决定的。 特征图和注意力图的尺寸差异原…

【监控】Prometheus+Grafana 构建可视化监控

在云原生和微服务架构盛行的今天,监控系统已成为保障业务稳定性的核心基础设施。作为监控领域的标杆工具,Prometheus和Grafana凭借其高效的数据采集、灵活的可视化能力,成为运维和开发团队的“标配”。 一、Prometheus Prometheus诞生于2012…

替代 WPS 的新思路?快速将 Word 转为图片 PDF

在这个数字化办公日益普及的时代,越来越多的人开始关注文档处理工具的功能与体验。当我们习惯了某些便捷操作时,却发现一些常用功能正逐渐变为付费项目——比如 WPS 中的一项实用功能也开始收费了。 这款工具最特别的地方在于,可以直接把 W…

CodeTop之数组中的第K个最大的元素

题目链接 215. 数组中的第K个最大元素 - 力扣(LeetCode) 题目解析 算法原理 解法一: 直接理由java内部的排序函数,Arrays.sort()进行排序, 然后我们直接返回第k个最大的元素 nums[nums.length-k] 解法二: 使用堆 我们先把所有元素丢到大根堆里面…

AI任务相关解决方案1-基于NLP的3种模型实现实体识别,以及对比分析(包括基于规则的方法、CRF模型和BERT微调模型)

大家好,我是微学AI,今天给大家介绍一下AI任务相关解决方案1-基于NLP的3种模型实现实体识别,以及对比分析。本文将深入探讨三种不同的命名实体识别(NER)方法,包括基于规则的方法、CRF模型和BERT微调模型,用于识别文本中的地名(LOC)、机构名称(ORG)和人名(PER)实体。通过系统…

IP动态伪装开关

IP动态伪装开关 在OpenWrt系统中,IP动态伪装(IP Masquerading)是一种网络地址转换(NAT)技术,用于在私有网络和公共网络之间转换IP地址。它通常用于允许多个设备共享单个公共IP地址访问互联网。以下是关于O…