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

【不背八股】18.GPT1:GPT系列的初代目

引言

上篇文章提到,BERT 保留了 Transformer 中 Encoder 模块,在大部分理解类问题上,实现了最优效果。

BERT是在2018年10月发表的,在此之前,2018年6月 GPT-1 这篇工作发布的更早,它保留的是 Transformer 中 Decoder 模块,以现在这个时间点会看,GPT 的影响力更高,后面衍生出 ChatGPT 这种出圈产品。

本文将时间拨回到7年前,看看 ChatGPT 的源头 GPT-1 是如何设计的。

论文标题:Improving Language Understanding
by Generative Pre-Training

论文地址:https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf

1. 背景

在 BERT 这项工作中,应用了大规模预训练+下游任务微调这套范式,其实,这套范式的思想最早起源于计算机视觉领域,GPT 比 BERT 更早采用了这套范式。

从 GPT 的标题就可以看出,GPT工作核心是通过生成式预训练来提升语言模型的理解力。

实现高水平的自然语言理解所面临的最大挑战是标注数据的稀缺

为缓解这一问题,研究者早期尝试利用无监督学习手段,从大规模无标注语料中学习通用的词向量表示。典型方法如 Word2VecGloVe,它们通过统计词语共现关系,获得了能够捕捉语义相似性的低维向量表示。这些词向量在下游任务中被广泛使用,大幅提升了模型的性能。

随后,ELMo 提出了基于上下文的词表示,使得同一个词在不同语境下拥有不同的向量,更进一步改善了自然语言处理的效果。

但这些方法大多停留在“词级别”的表示,缺乏对长距离依赖、句子结构和更高层次语义的建模能力。

于是一个核心问题被提出:能否借助大规模的无监督文本,直接预训练一个能够捕捉丰富语义和上下文信息的模型,从而更好地服务于各类自然语言理解任务

这就是 GPT 所要解决的问题。

2. 模型设计

GPT-1 的设计核心在于:采用 Transformer 解码器结构,并通过“预训练 + 微调”的流程,让模型既能学习通用的语言知识,又能高效适配下游任务。其整体设计可以分为三个部分:架构选择、预训练、微调。

2.1 模型架构

  • Transformer 解码器(Decoder-only)

    • GPT-1 采用了 Vaswani 等人在 Attention is All You Need 中提出的 Transformer 框架。
    • 不同于 BERT 的“编码器结构”,GPT-1 使用 单向的解码器堆叠,以便进行自回归语言建模。
  • 具体配置

    • 层数:12 层
    • 隐藏维度:768
    • 注意力头数:12
    • 总参数量:约 1.17 亿
  • 关键技术点

    • 使用多头自注意力(Multi-Head Self-Attention)捕捉长距离依赖
    • 采用 GELU 激活函数、残差连接与 LayerNorm 保持稳定训练
    • 使用字节对编码(BPE)词表(40,000 词元)提升表示能力

2.2 预训练阶段

  • 目标函数:语言建模(Language Modeling,预测下一个词)

    • 给定一个序列的前文,预测下一个 token 的概率:

      L=∑ilog⁡P(ui∣ui−k,…,ui−1;Θ) L = \sum_i \log P(u_i | u_{i-k}, \dots, u_{i-1}; \Theta) L=ilogP(uiuik,,ui1;Θ)

  • 训练数据:BooksCorpus(约 7,000 本书,7GB 文本)

    • 数据连续性强,能够让模型学习跨段落、跨句子的长程依赖
  • 训练策略

    • 批大小:64
    • 序列长度:512
    • 优化器:Adam,初始学习率 2.5e-4,带 warmup 和余弦退火
    • 正则化:Dropout 0.1,L2 权重衰减,BPE 分词

2.3 微调阶段

在完成预训练后,GPT-1 会将模型迁移到具体的下游任务(如自然语言推理、问答、文本分类、语义相似度等)。其关键思路是:在预训练模型的基础上,仅增加一个简单的线性输出层,然后在标注数据上进行监督训练

  • 基本方法

    • 输入文本经过预训练的 Transformer,得到最后一层的表示向量 hlmh^m_lhlm

    • 再接一个线性层 + softmax,用来预测下游任务的标签:

      P(y∣x1,…,xm)=softmax(hlmWy) P(y|x_1, \dots, x_m) = \text{softmax}(h^m_l W_y) P(yx1,,xm)=softmax(hlmWy)

    • 对应的监督学习目标函数为:

      L2(C)=∑(x,y)log⁡P(y∣x1,…,xm) L_2(C) = \sum_{(x,y)} \log P(y|x_1, \dots, x_m) L2(C)=(x,y)logP(yx1,,xm)

  • 辅助目标
    在微调过程中,作者发现如果在监督任务目标之外,同时保留一部分语言建模目标,能显著提高泛化性能并加速收敛。于是引入了联合损失函数:

    L3(C)=L2(C)+λ⋅L1(C) L_3(C) = L_2(C) + \lambda \cdot L_1(C) L3(C)=L2(C)+λL1(C)

    • L1(C)L_1(C)L1(C):语言建模目标(预测下一个词)
    • L2(C)L_2(C)L2(C):下游任务的监督目标
    • λ\lambdaλ:权重系数(实验中设为 0.5)
  • 任务输入转换:为了适配不同任务的输入,GPT-1 提供了简单而统一的方式:

    • 文本分类:直接输入句子
    • 自然语言推理(NLI):前提句 + 分隔符 + 假设句
    • 语义相似度:拼接两句话,或交换顺序再融合
    • 问答/常识推理:上下文 + 问题 + 分隔符 + 候选答案,每个候选单独计算概率,最后用 softmax 选择

通过这种方式,GPT-1 在迁移过程中几乎不需要复杂的任务特定改造,只需在通用架构上加上一个输出层,就能适配多种自然语言理解任务。

3. 实验与结果

GPT-1 在 12 个不同数据集 上进行了实验,涵盖了推理、问答、语义相似和分类四大类任务。

  • 自然语言推理(Natural Language Inference, NLI)

    • 数据集:SNLI、MultiNLI、QNLI、SciTail、RTE
    • 任务目标:判断前提句与假设句的关系(蕴含、矛盾或中立)
  • 问答与常识推理(Question Answering & Commonsense Reasoning)

    • 数据集:RACE(英语阅读理解考试)、Story Cloze Test
    • 任务目标:根据文章或故事,选择正确答案或结尾
  • 语义相似度(Semantic Similarity)

    • 数据集:MRPC(微软释义语料)、QQP(Quora 相似问句)、STS-B(语义文本相似基准)
    • 任务目标:判断两句话是否表达相同含义,或计算语义相似度
  • 文本分类(Text Classification)

    • 数据集:SST-2(情感分类)、CoLA(语法可接受性)
    • 任务目标:句子情感判别,或判断句子是否语法正确

GPT-1 在 12 个数据集中有 9 个刷新了当时的最佳成绩。

4. 分析与发现

除了在标准任务上的性能评估,作者还进行了深入分析,以探讨 GPT-1 为什么能在多任务上取得显著提升,以及不同设计选择对结果的影响。

4.1 零样本能力(Zero-shot Behaviors)

  • 现象:在没有进行任务特定微调的情况下,预训练模型本身就展现出一定的“零样本”能力。

  • 示例

    • 在情感分析(SST-2)任务中,作者仅在输入句子后附加一个提示词(如“very”),限制输出为“positive”或“negative”,模型依然能给出合理预测。
    • 在问答(RACE)任务中,直接利用语言模型对候选答案计算条件概率,模型也能表现出超过随机水平的准确率。
  • 启示:预训练语言模型在学习预测下一个词的过程中,隐性地习得了很多通用语言知识和推理能力。

4.2 消融实验(Ablation Studies)

作者通过对比不同实验设置,验证了各个组件的重要性:

  1. 没有预训练

    • 如果直接在下游任务上训练 Transformer,性能显著下降(平均分降低约 14.8%),说明 预训练是性能提升的关键
  2. 没有辅助语言模型目标

    • 如果在微调过程中不保留语言建模目标,部分任务表现下降。
    • 结果表明:大数据集(如 NLI、QQP)更依赖这一辅助目标,而小数据集影响不大。
  3. 架构对比:Transformer vs. LSTM

    • 在相同框架下,用 LSTM 替换 Transformer,平均性能下降 5.6 分
    • 说明 Transformer 更擅长捕捉长程依赖,迁移能力更强。

4.3 层数转移的影响

  • 作者研究了微调时,迁移不同数量的预训练层对性能的影响。
  • 发现随着迁移层数增加,模型表现持续提升,在 MultiNLI 和 RACE 上最高可提升 9%。
  • 这说明:预训练的每一层都学到了可迁移的功能表示

总结

GPT-1 这篇工作思路很简单,一句话概括就是“预测下一个词+特定任务结构微调”。

总体来看,它更多是一种新结构的“试水”,GPT-1模型的参数量仅有1.17 亿参数(117M),预训练也仅仅采用了一个数据集 BooksCorpus。它把这条路探通了,后面系列就可以开始往数值膨胀的方向进一步拓展了。

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

相关文章:

  • 体系化能力
  • 小谈:AR/VR(增强/虚拟现实)技术
  • 服务器建网站seo外链推广平台
  • Android studio图像视图和相对布局知识点
  • 网站备案主体空壳上不了国外网站 怎么做贸易
  • 适合设计制作公司的网站asp远吗宁波网站建设培训学校
  • 【AI论文】Qwen3-Omni技术报告
  • 门业网站 源码杭州亚运会闭幕式
  • 中裕隆建设有限公司网站考研资料找微信hyhyk1推广可以
  • LeetCode 3132.找出与数组相加的整数 II
  • 手机网站设计推荐微信电影网站建设教程
  • 【AI八股文】03-监督学习方案面试篇
  • 机器学习第十六章 基于RNN和注意力机制的自然语言处理
  • 上海建设摩托车官方网站中国宣布入境最新消息2023
  • 商城系统网站建设开发赤水市建设局官方网站
  • 韶关微网站建设阜阳企业做网站
  • 加查网站建设seo网络优化是什么工作
  • 海丰县建设局官方网站自己网站
  • 区块链可投会议CCF B--SIGMETRICS 2026 截止10.14 附录用率
  • 自由贸易试验区网站建设方案网站建设工程师的职位要求
  • 【Coze】【视频】卡通风格历史故事工作流
  • 用dw 网站开发与设计报告苏州园科生态建设集团网站
  • 网站开发运营工作总结网站编程培训
  • opendds初入门之对其支持的tools进行梳理
  • 高通平台WiFi学习-- 详解WLAN进行问题调试时所需的日志及其配置方法
  • 静默期的跃迁:2025 年 AI 技术落地与产业重构路径
  • K8s学习----RBAC 基于角色的访问控制
  • 信阳建设企业网站免费行情网站大全下载
  • 阿里巴巴做实商网站的条件运城小程序开发公司
  • Python爬虫实战:获取豆瓣读书网读者评论信息与数据分析