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

article/2025/9/6 6:47:15

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.hkcw.cn/article/ZSoSiutneD.shtml

相关文章

笔试模拟 day14

观前提醒: 笔试所有系列文章均是记录本人的笔试题思路与代码,从中得到的启发和从别人题解的学习到的地方,所以关于题目的解答,只是以本人能读懂为目标,如果大家觉得看不懂,那是正常的。如果对本文的某些知…

基于照片环境信息的AI定位技术:从原理到实战的深度解析

基于照片环境信息的AI定位技术:从原理到实战的深度解析 摘要 本文聚焦基于照片环境信息的AI定位技术,系统梳理其核心原理、技术实现路径及行业应用场景。结合多模态融合、深度学习优化等前沿技术,分析如何通过AI训练提升定位精度&#xff0c…

NumPy 2.x 完全指南【二十二】数组标量

文章目录 1. 标量(Scalar )2. 数组标量(Array Scalar)3. 标量类型3.1 基类3.1.1 generic3.1.2 number3.1.3 flexible 3.2 整数类型3.2.1 有符号整数3.2.2 无符号整数 3.3 不精确类型3.3.1 浮点数3.3.2 复数 3.4 其他类型3.4.1 布尔…

外地车在北京进京证用完后该如何行驶

外地车在北京进京证用完后该如何行驶 这个问题想必非京籍的车友都有这样的困惑吧 作为一名资深外地车主,已在北京漂泊了13年之久,12次进京证的办理根本不够用,也有网友支招说和家人来回过户200搞定,多出12次,奈何这种…

可靠数据传输原理

目录 构造可靠数据传输协议 一、rdt1.0:理想信道下的可靠传输 核心假设与功能 二、rdt 2.0:带差错检测的停等协议 核心假设与功能 三、rdt 2.1:修复 ACK/NAK 不可靠性 核心改进 四、rdt 2.2:纯 ACK 实现的可靠传输 核心改…

JAVA重症监护系统源码 ICU重症监护系统源码 智慧医院重症监护系统源码

智慧医院重症监护系统源码 ICU重症监护系统源码 开发语言:JavaVUE ICU护理记录:实现病人数据的自动采集,实时记录监护过程数据。支持主流厂家的监护仪、呼吸机等床旁数字化设备的数据采集。对接检验检查系统,实现自动化录入。喜…

新版LangChain向量数据库VectorStore设计详解

导读:在大型语言模型与知识库集成的实践中,向量数据库的选择和架构设计往往成为项目成败的关键因素。本文深入剖析了LangChain框架中VectorStore的核心设计理念,为开发者提供了系统性的技术指导和实践方案。 文章揭示了LangChain如何通过抽象…

Transformer架构核心流程解析

Transformer的核心流程 Tokenizer→Embedding→Attention→FFN 1. 文本预处理与分词阶段(Tokenizer) 分词方式演进 基于单词的分词器:通过空格、标点符号拆分,但词汇表庞大且易出现未知词(UNK)基于字符…

【五模型时间序列预测对比】Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN

【五模型时间序列预测对比】Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN 目录 【五模型时间序列预测对比】Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Transformer-LSTM、Transformer、CNN-LSTM、LSTM、…

美国华盛顿州一公园发生枪击事件 7人受伤

美国华盛顿州一公园在5月28日晚间发生枪击事件,导致7人受伤,其中3人伤势严重。警方表示,目前尚不清楚有多少嫌疑人参与了这起事件,并且截至事发当日,还没有任何人被逮捕。责任编辑:zx0176

RabbitMQ项目实战

先参考文章:(必看) 06-MQ基础_mq服务-CSDN博客 07-MQ高级(幂等性)-CSDN博客 https://cloud.iocoder.cn/message-queue/rabbitmq/#_2-0-%E5%BC%95%E5%85%A5%E4%BE%9D%E8%B5%96%E4%B8%8E%E9%85%8D%E7%BD%AE 1、Rabbi…

自动化测试实例:Web登录功能性测试(无验证码)

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是自动化测试 把人为驱动的测试行为转化为机器执行的一种过程称为自动化测试。(来自百度百科)本质上来说,自动化测试对比起手工测试除了需…

用 Python 模拟下雨效果

用 Python 模拟下雨效果 雨天别有一番浪漫情怀:淅淅沥沥的雨滴、湿润的空气、朦胧的光影……在屏幕上也能感受下雨的美妙。本文将带你用一份简单的 Python 脚本,手把手实现「下雨效果」动画。文章深入浅出,零基础也能快速上手,完…

[PyTest-案例]

接口对象封装 1.requests和pymysql实现ihrm登录接口缺点 : 代码冗余度高,耦合度高,维护成本大 核心思想 : 代码分层 按代码功能划分 : 接口对象层 : 负责发送http请求,访问待测接口,返回响应数据测试用例层 : 调用接口,按照响应数据,断言完成测试 封装tpshop商城 普通方式…

25 字符数组与字符串及多维数组详解:定义与初始化、访问与遍历、%s 格式符、内存剖析、编程实战

1 字符数组与字符串 1.1 字符数组 字符数组是 C 语言中用于存储一系列字符的基本数据结构。其定义方式与其他类型的数组类似,使用 char 类型来指定数组的元素类型。例如: char arr[10]; // 定义一个可存储 10 个字符的数组 此数组 arr 能够存储 10 个字…

IEEE旗下2区所有SCI汇总!

本期小编统计了【IEEE旗下】2区所有期刊的最新影响因子,分区、年发文量以及投稿经验,供大家参考! 1 IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing 【影响因子】4.7 【期刊分区】JCR1区,中…

论文略读: STREAMLINING REDUNDANT LAYERS TO COMPRESS LARGE LANGUAGE MODELS

2025 ICLR 判断模型层的重要性->剪去不重要的层(用轻量网络代替) 这种方法只减少了层数量,所以可以用常用的方法加载模型 层剪枝阶段 通过输入与输出的余弦相似度来判断各个层的重要性 具有高余弦相似度的层倾向于聚集在一起&#xff0c…

Geoserver修行记--点击geoserver服务的WMTS能力(GetCapabilities)文档显示400 null

项目场景 在进行geoserver的项目部署过程中再次遇到的问题,这里再记录一下: 我在前端调用WMTS服务的时候,我需要查看图层的能力文档,点击下图出现如下所示的情况: 点击以后出现 400:null,如下…

Codeforces Round 1027 (Div. 3)(A-E)

题面链接&#xff1a;Dashboard - Codeforces Round 1027 (Div. 3) - Codeforces A. Square Year 思路 先看数字能否被开方&#xff0c;如果能输出0 即可 代码 #include<bits/stdc.h> using namespace std;#define vcoistnt ios_base::sync_with_stdio(false); ci…

在MDK中自动部署LVGL,在stm32f407ZGT6移植LVGL-8.3,运行demo,显示label

在MDK中自动部署LVGL&#xff0c;在stm32f407ZGT6移植LVGL-8.3 一、硬件平台二、实现功能三、移植步骤1、下载LVGL-8.42、MDK中安装LVGL-8.43、配置RTE4、配置头文件 lv_conf_cmsis.h5、配置lv_port_disp_template 四、添加心跳相关文件1、在STM32CubeMX中配置TIM7的参数2、使能…