预训练模型

早期自然语言处理方法通常针对每个具体任务单独训练模型,且严重依赖大量人工标注数据。虽然在部分场景下效果客观,但也暴露出显著局限:

  • 语言知识难以复用:每个模型都需要从0开始训练,导致训练成本高、效率低

  • 依赖高质量标注:在医疗、法律等专业领域,标注数据获得困难且代价高昂

为了解决这些问题,研究者提出了新的建模范式——“预训练+微调”:

预训练阶段:在大规模未标注语料训练模型,学习词汇、句法和上下文等通用语言规律

微调阶段:将预训练模型迁移至具体任务,仅需要少量标注数据即可完成任务适配

预训练语言模型几乎都建立在Transformer架构之上。相较于传统的RNN,具有以下优势:

  • 并行计算效率高,适合大规模训练
  • 上下文建模能力强。可捕捉距离依赖
  • 结构通用灵活,可适配多任务类型

根据Transformer的使用方式不同,预训练模型大致可以分为三类

  • 解码器(Decoder-only)模型:仅使用transformer解码器,代表模型为GPT(Generative Pre-trained Transformer),生成式预训练
  • 编码器(Encoder-only)模型:仅使用transformer编码器,代表模型BERT(Bidirectional Encoder Representations from Transformer)
  • 编码器-解码器(Encoder-Decoder)模型:同时使用Transformer编码器和解码器,代表模型(Text-to-Text Transfer Transformer)

GPT

GPT是第一个系统性提出”预训练+微调“范式的语言模型

其核心思想是通过大规模无监督语料进行生成式语言建模预训练,即训练模型根据左侧上下文预测下一个词,从而让模型学习自然语言的通用语法、语义和上下文依赖能力。完成预训练后,再通过微调适应具体的下游任务

输入嵌入层(Text&Position Embedding)

与原始Transformer一样,每个输入token的表示也由两部分组成

  • Text Embedding:将词或子词映射为向量
  • Position Embedding:提供词在序列中的位置信息

GPT不同于原始Transformer的一点在于:位置编码采用的是可学习的位置嵌入。这意味着每个位置对应一个可训练的向量,模型可以在训练过程中自动优化这些向量,而非使用不可训练的三角函数编码

每个token的最终表示是词嵌入与位置嵌入的向量和,向量维度维768

解码器

解码器部分由12个结构相同的解码器堆叠而成,每个解码器层只包含如下两个子层:

  • 掩码多头自注意力
  • 前馈网络

输出层

根据任务不同,GPT模型的输出可以接入不同的任务头

  • Text Prediction(文本预测):由下一个词的生成,输出是词表大小的概率分布,经过softmax获得,预训练阶段使用的便是该任务头
  • Task Classifier(任务分类器):该任务头多用于模型微调阶段,以适配具体的下游任务。通过提取特定位置的表示(如最后一个token)对整个输入文本进行分类(如情感分析、话题识别等)

预训练

GPT的预训练阶段采用生成式语言建模(Generative Language Modeling,根据上文预测小文)作为训练目标,在大规模无监督文本上进行自监督学习。具体而言,模型的任务是基于以观察到的前文上下文,预测当前词的位置应出现的词,从而学习自然语言的统计规律与上下文依赖关系。这种自回归语言建模方式不依赖人工标注

BERT

其核心技术创新在于采用Transformer的编码器(Encoder)结构。

通过双向自注意力机制,在模型每个token表示时同时整合左右两个方向的上下文信息。

BERT的设计更侧重于自然语言理解类任务,广泛应用于文本分类、序列标注、句子匹配等场景