GPT(书)

1. GPT发展历史

  • GPT-1 是最早的版本,用了自回归语言建模,在 BooksCorpus 数据上训练,模型小,效果有限,但它首次验证了“预训练+微调”的可行性。
  • GPT-2 模型更大了(从一亿到十五亿参数),训练数据也更多,首次展示了“只用预训练、不需要微调”也能完成很多任务,叫做 Zero-shot learning,震惊了整个 NLP 社区。
  • GPT-3 是爆火的版本,参数到了 一千七百五十亿,彻底实现了 few-shot 和 zero-shot 能力,并且通过 prompt 设计可以完成翻译、问答、代码生成等一堆任务。
  • GPT-4 更强大,加入了图像输入能力(多模态),推理能力更强,行为更稳定,还能进行工具调用、多轮对话、考试解题等等。

  • 受计算机视觉领域ImageNet启发,NLP领域开始采用大规模预训练+微调范式,提升模型表达力与泛化能力。

  • ELMo 开启动态词向量预训练,GPT 和 BERT(基于Transformer)则彻底推动NLP进入“预训练微调”新时代。

  • 利用丰富无监督/自监督数据+Transformer结构,模型学到通用的词汇、语法和语义表示,下游任务微调时无需针对每个任务细致设计结构,仅需“微调”即可获得显著性能提升。

  • OpenAI于2018年提出生成式预训练语言模型(GPT,Generative Pre-Training),是典型的单向自回归预训练语言模型,由多层Transformer堆叠组成。

  • 主要包括输入层、编码层(多层Transformer)、输出层

2.自监督预训练

  • 自监督机制

    • GPT采用生成式自监督预训练(语言建模),即只根据已知历史生成下一个token,单向预测(只能从左到右/右到左,不能双向)
    • Transformer的结构和解码策略保证了每个输入位置只能依赖过去时刻的信息。
  • 输入序列的嵌入

    • 给定词序列 w=w1,w2,...,wn,GPT首先为每个输入词 wi 提供其对应的嵌入 vi,计算公式如下:vi=vit+vip
      • 词向量 vit ,表示词 wi 的语义信息。
      • 位置向量 vip ,表示词 wi 在句子中的位置(即输入序列的位置编码)。
  • Transformer编码

    • Transformer块的处理:每个输入嵌入经过多层Transformer块进行处理,公式为:h(l)=Transformer-Block(l)(h(0))
      • l 层的隐藏表示 h(l)Rd×n,序列长度 n ,模型维度 d ,模型总层数 L
    • 多层Transformer 使得模型逐层提取输入的深层特征,能够更好地捕捉序列中的长期依赖。
  • 输出与条件概率建模

    • 预测输出:在Transformer的最后一层,GPT使用输出 h(L) 来预测每个位置的下一个词的条件概率:P(wi|w1,w2,...,wi1)=Softmax(Wehi(L)+bout)
      • We 是词表的嵌入矩阵,bout 是输出偏置,hi(L) 是最终的隐藏层表示。
      • Softmax:将模型的输出转换为每个词的概率分布,表示当前词在所有可能词表中的概率。
  • 训练目标函数

    • 最大化似然估计:模型训练时的目标是通过最大化每个词的条件概率来优化模型,最终目标是最大化整个序列的生成概率:LPT(w)=i=1nlogP(wi|w1,w2,...,wi1;θ)
      • 模型参数 θ,损失函数是每个词的负对数似然。
      • 训练时采用梯度下降法进行优化,模型根据数据学习预测每个词的概率。

3. 有监督下游任务微调

  • 下游任务微调的目标与步骤

    • 目标:使GPT模型在特定的下游任务(如分类、回归等)中,通过微调,学习任务特定的特征和标准。
    • 步骤
      • 通过自监督预训练(如语言建模)获得通用的语言表示能力。
      • 在下游任务微调过程中,模型会根据下游任务的标注数据调整模型参数。
  • 微调过程

    • 输入数据:输入的文本序列为 x1,x2,...,xn,每个输入文本都被标注。
    • GPT模型:将标注文本输入GPT,获取最后一层输出 h(L)
    • 预测过程:通过Softmax函数对每个词的条件概率进行计算,得到模型的预测结果:P(y|x1,x2,...,xn)=Softmax(hn(L)Wy)
      • Wy:用于输出的权重矩阵。
      • Softmax:将输出转换为概率分布,用于分类任务中的标签预测。
  • 目标函数

    • 下游任务的目标函数:通过最大化每个词的条件概率来优化模型,公式如下:
      • D 为训练数据集,(x,y)为输入文本和目标标签的对应对。
  • 微调损失与正则化

    • 在微调过程中,通常会采用正则化方法(如权重衰减)来避免模型的过拟合,防止灾难性遗忘问题。
    • 灾难性遗忘(Catastrophic Forgetting):微调过程中,模型可能会忘记预训练时学习的通用特征。
      • 为了避免灾难性遗忘,可以在微调损失函数中添加正则化项(LPT):L=LFT(D)+λLPT(D)
      • λ 是正则化系数,控制微调损失与预训练损失的平衡。

4. 总结

  • 微调目标:在保持通用语言能力的基础上,通过调整模型参数,让模型适应特定的下游任务(例如分类、回归)。
  • 预训练与微调的关系:预训练模型提供了基础的语言理解能力,微调则是根据下游任务的标注数据进一步优化模型,使其能专注于任务的细节。
  • 正则化与灾难性遗忘:为了避免微调过程中遗忘预训练所学到的知识,需要在损失函数中引入正则化项。

参考资料

  • 《大语言模型:从理论到实践(第二版)》-- 张奇、桂韬、郑锐、黄萱菁

“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

GPT(书)
http://neurowave.tech/2025/04/25/2-6-LLM-GPT/
作者
Artin Tan
发布于
2025年4月25日
更新于
2025年8月2日