预训练模型
预训练模型
早期自然语言处理方法通常针对每个具体任务单独训练模型,且严重依赖大量人工标注数据。虽然在部分场景下效果客观,但也暴露出显著局限:
语言知识难以复用:每个模型都需要从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的设计更侧重于自然语言理解类任务,广泛应用于文本分类、序列标注、句子匹配等场景




