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

【大模型学习3】预训练语言模型详解

预训练语言模型详解

一、引言

在自然语言处理(NLP)领域,Transformer模型的出现带来了革命性的变革。基于Transformer架构,研究者们发展出了多种预训练语言模型(PLM),这些模型通过"预训练+微调"的模式,在各类NLP任务中取得了突破性进展。

根据对Transformer结构的不同使用方式,预训练语言模型可分为三大类:

  • Encoder-only(仅使用编码器)
  • Decoder-only(仅使用解码器)
  • Encoder-Decoder(同时使用编码器和解码器)

本章将详细介绍这三类模型中最具代表性的主流预训练模型,包括它们的架构设计、预训练任务和核心优势。

二、Encoder-only预训练模型

Encoder-only模型基于Transformer的编码器部分构建,特别适合自然语言理解(NLU)任务。这类模型能够有效捕捉文本的双向语义信息,在文本分类、命名实体识别等任务中表现出色。

2.1 BERT:双向编码器的里程碑

BERT(Bidirectional Encoder Representations from Transformers)是Google于2018年发布的预训练模型,在多个NLP任务上刷新了当时的最优性能,标志着预训练模型时代的正式到来。

2.1.1 核心思想

BERT的成功源于两个关键思想的融合:

  1. Transformer架构:采用Transformer的编码器堆叠而成,充分利用自注意力机制捕捉文本中的依赖关系
  2. 预训练+微调范式:先在海量无标注文本上进行预训练,再针对具体下游任务进行微调
2.1.2 模型架构

BERT的架构由三部分组成:

  • 嵌入层(Embedding):将输入的文本token转换为向量表示,包含词嵌入、段嵌入和位置嵌入
  • 编码器层(Encoder Layers):由多个Transformer编码器堆叠而成,Base版本包含12层,Large版本包含24层
  • 预测头(prediction_heads):根据不同下游任务设计的输出层,通常是线性层加激活函数

BERT模型结构

BERT采用WordPiece分词方法,将单词拆分为子词单元(如"playing"拆分为[“play”, “##ing”]),对于中文则通常以单个汉字作为基本单位。

值得注意的是,BERT使用GELU(高斯误差线性单元)作为激活函数,计算公式为:
GELU(x)=0.5x(1+tanh(2π)(x+0.044715x3))GELU(x) = 0.5x(1 + tanh(\sqrt{\frac{2}{\pi}})(x + 0.044715x^3))GELU(x)=0.5x(1+tanh(π2)(x+0.044715x3))

在位置编码方面,改进版BERT采用了可训练的相对位置编码,相比Transformer原始的绝对位置编码能更好地捕捉相对位置关系,但也限制了模型处理超过训练长度(512个token)的输入。

2.1.3 预训练任务

BERT的预训练包含两个创新任务:

  1. 掩码语言模型(MLM)

    • 随机选择15%的token进行特殊处理:
      • 80%概率替换为<MASK>标记
      • 10%概率替换为随机token
      • 10%概率保持原token不变
    • 模型需要预测被处理的原始token
    • 优势:使模型能够学习双向语义关系
    • 解决预训练与微调不一致问题:通过保留10%的原token
  2. 下一句预测(NSP)

    • 输入由两个句子组成,模型判断它们是否为连续的上下文
    • 正样本:连续的两个句子
    • 负样本:随机组合的两个句子
    • 作用:帮助模型学习句子级别的语义关系

BERT使用了33亿个token的预训练数据,包括BooksCorpus(8亿token)和英文维基百科(25亿token),在TPU上训练了约4天。

2.1.4 下游任务微调

BERT通过统一的输入输出设计,能够高效适配多种下游任务:

  • 在输入序列首部添加特殊token <CLS>,其输出用于句子级任务
  • 针对不同任务,只需修改预测头部分
  • 微调过程使用少量标注数据,更新模型参数

BERT在11个NLP任务上取得了当时的最优结果,奠定了其在NLU领域的统治地位。

2.2 RoBERTa:优化版BERT

RoBERTa(Robustly Optimized BERT Pretraining Approach)是Facebook在BERT基础上进行优化改进的模型,通过调整训练策略进一步提升了性能。

2.2.1 主要改进
  1. 移除NSP任务

    • 实验证明NSP任务对模型性能提升有限,甚至可能产生负面影响
    • 仅保留MLM任务,使用更长的文本序列进行训练
  2. 动态遮蔽策略

    • 将掩码操作从数据预处理阶段移至训练阶段
    • 每个epoch中掩码的位置都不同,增强了模型的泛化能力
  3. 更大规模的训练数据

    • 总数据量达160GB,是BERT的10倍
    • 新增了CC-NEWS、OPENWEBTEXT和STORIES等数据集
  4. 其他优化

    • 使用更大的batch size(8K,BERT为256)
    • 所有训练都使用512长度的序列
    • 采用更大的BPE词表(50K,BERT为30K)

RoBERTa的成功证明了更大规模的数据、更长的训练时间和更优的训练策略对模型性能的重要性。

2.3 ALBERT:轻量级BERT

ALBERT(A Lite BERT)专注于减少模型参数同时保持甚至提升性能,通过结构优化实现了更高效的预训练模型。

2.3.1 主要优化
  1. 嵌入参数分解

    • 将词嵌入维度与隐藏层维度解耦
    • 先将词嵌入映射到低维空间(如128维),再通过线性变换升至隐藏层维度(如1024维)
    • 大幅减少嵌入层参数:从V×H变为V×E + E×H(E<<H)
  2. 跨层参数共享

    • 所有编码器层共享同一套参数
    • 24层模型仅需存储1层参数,显著减少总参数量
    • 例如:ALBERT-xlarge(24层,2048维)仅59M参数,远少于BERT-large的334M
  3. 改进的预训练任务

    • 提出句子顺序预测(SOP)任务替代NSP
    • 正样本:连续的两个句子
    • 负样本:交换顺序的两个句子
    • 更专注于学习句子间的语义关系而非主题差异

尽管ALBERT参数量大幅减少,但由于计算步骤并未减少,其训练和推理速度提升有限,这也限制了它的广泛应用。

三、Encoder-Decoder预训练模型

Encoder-Decoder结构同时使用Transformer的编码器和解码器,兼顾了语言理解和生成能力,在机器翻译、文本摘要等序列到序列(Seq2Seq)任务中表现出色。

3.1 T5:文本到文本的统一框架

T5(Text-To-Text Transfer Transformer)是Google提出的一种通用预训练模型,其核心思想是将所有NLP任务统一表示为文本到文本的转换问题。

3.1.1 模型结构

T5采用完整的Encoder-Decoder架构:

  • 编码器(Encoder):处理输入文本,生成上下文相关的表示
  • 解码器(Decoder):基于编码器的输出生成目标文本
  • 注意力机制
    • 编码器内部使用自注意力
    • 解码器内部使用自注意力(带掩码,防止未来信息泄露)
    • 解码器使用编码器-解码器注意力,关注输入文本信息

T5模型结构

T5使用RMSNorm替代了传统的LayerNorm,计算公式为:
RMSNorm(x)=x1n∑i=1nxi2+ϵ⋅γ\text{RMSNorm}(x) = \frac{x}{\sqrt{\frac{1}{n}\sum_{i=1}^{n}x_i^2 + \epsilon}} \cdot \gammaRMSNorm(x)=n1i=1nxi2+ϵxγ

其中γ\gammaγ是可学习的缩放参数,这种归一化方式参数更少,有助于稳定训练过程。

3.1.2 大一统思想

T5的创新之处在于将所有NLP任务统一为文本到文本的形式:

  • 文本分类:输入"情感分析:这篇文章很棒",输出"积极"
  • 机器翻译:输入"翻译为法语:Hello world",输出"Bonjour le monde"
  • 问答任务:输入"问答:问题:地球是什么形状?答案:“,输出"圆形”

这种统一表示带来诸多优势:

  • 简化模型设计,同一模型可处理多种任务
  • 便于共享参数和训练框架
  • 提高模型泛化能力
  • 减少任务特定的调试工作
3.1.3 预训练任务

T5的预训练任务基于C4数据集(750GB文本),主要采用掩码语言模型:

  • 随机遮蔽输入文本中的15%token
  • 模型需要预测这些被遮蔽的token
  • 与BERT类似,但融入了Encoder-Decoder结构的特点

通过这种统一的框架和预训练策略,T5在多种NLP任务上都取得了优异的性能,展示了其强大的通用性和适应性。

四、总结

预训练语言模型的发展极大推动了NLP领域的进步,从Encoder-only的BERT及其改进版RoBERTa、ALBERT,到Encoder-Decoder的T5,每一种模型都有其独特的设计理念和适用场景。

这些模型的成功证明了:

  • Transformer架构的强大潜力
  • 预训练+微调范式的有效性
  • 更大规模数据和更优训练策略的重要性
  • 统一框架对提升模型通用性的价值

理解这些经典模型的设计思想,对于深入掌握现代NLP技术和理解大型语言模型(LLM)的发展脉络具有重要意义。

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

相关文章:

  • 《Linux系统编程之开发工具》【实战:倒计时 + 进度条】
  • 【Frida Android】实战篇1:环境准备
  • 【2025 CVPR】EmoEdit: Evoking Emotions through Image Manipulation
  • 如何创建网站内容网站名称不能涉及
  • 编写微服务api
  • Flutter Transform.rotate 与动画控制器 实现旋转动画
  • Flutter进行命令打包各版本程序(2025.11)
  • 【基于 WangEditor v5 + Vue2 封装 CSDN 风格富文本组件】
  • 网站建设的重要性意义徐州建站公司模板
  • Scrapy源码剖析:下载器中间件是如何工作的?
  • vi 编辑器命令大全
  • AI 预测 + 物联网融合:档案馆温湿度监控系统发展新趋势
  • Vue JSON结构编辑器组件设计与实现解析
  • 14_FastMCP 2.x 中文文档之FastMCP高级功能:MCP中间件详解
  • 软考中级软件设计师(下午题)--- UML建模
  • 机械臂时间最优规划
  • 【LeetCode刷题】两数之和
  • 10 月热搜精选
  • 郑州商城网站开发摄影网站源码 国外
  • Docker 加载镜像时报 no space left on device 的彻底解决方案
  • 5、prometheus标签
  • python+django/flask基于机器学习的就业岗位推荐系统
  • Mysql作业5
  • 为什么Vue 3需要ref函数?它的响应式原理与正确用法是什么?
  • STM32外设学习--TIM定时器--输入捕获---测频方法(代码编写)
  • 如何设置JVM参数避开直接内存溢出的坑?
  • (七)嵌入式面试题收集:8道
  • AI搜索营销破局:光引GEO多平台适配与实时优化引擎开发详解
  • 【有源码】基于Hadoop+Spark的起点小说网大数据可视化分析系统-基于Python大数据生态的网络文学数据挖掘与可视化系统
  • Windows10 wsl2 ubuntu22.04 docker安装