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

【NLP】 22. NLP 现代教程:Transformer的训练与应用全景解读

🧠 NLP 现代教程:Transformer的训练与应用全景解读


一、Transformer的使用方式(Training and Use)

如何使用Transformer模型?

Transformer 模型最初的使用方式有两种主要方向:

  1. 类似 RNN 编码-解码器的架构(用于序列到序列任务)
    • 例如机器翻译、文本摘要任务。
    • Encoder 用于将输入句子编码为向量,Decoder 再将向量解码为目标语言或句子。
  2. 作为生成上下文词向量的预处理模块
    • Transformer也被用作词向量上下文建模器(contextualized word embeddings)
    • 这些向量可输入至下游模型,例如分类器、序列标注器等。

初期效果如何?

  • 准确率提升较小:初期在一些基准任务中仅带来轻微的精度提升
  • 效率提升显著:相比RNN,Transformer可并行计算,训练速度大幅提升

二、Transformer的统治地位崛起(Over Time: Transformers Became Dominant)

为什么Transformer最终成为主流?

  • Transformer 架构可以完全并行,解决了RNN“逐步处理”的效率问题。
  • 支持大规模模型训练,能够有效利用现代GPU/TPU资源。
  • 与“预训练+微调”范式结合,成为自然语言处理的统一框架

三、BERT:Transformer成功的代表

BERT由三部分构成:

  1. WordPiece分词(WordPiece Tokenisation)
    • 将生僻词拆解为已知子词。例如:“unhappiness” → “un”, “##happiness”
    • 避免OOV问题,提高表示能力。
  2. Transformer结构(Transformer Architecture)
    • 多头注意力机制 + 残差连接 + 层归一化
    • 采用“Encoder-only”结构
  3. 大量训练数据(Data)
    • 使用维基百科+BooksCorpus等海量文本进行预训练。

三者结合 → 极高性能:

BERT = WordPiece Tokenisation + Transformer Encoder + Pretraining on Large Corpus \text{BERT} = \text{WordPiece Tokenisation} + \text{Transformer Encoder} + \text{Pretraining on Large Corpus} BERT=WordPiece Tokenisation+Transformer Encoder+Pretraining on Large Corpus

BERT代表着“大模型+大数据”的范式首次登顶NLP任务榜单。


四、大模型时代的到来:训练成本问题

  • 训练BERT等模型需要巨大的算力存储资源
  • 这使得模型训练逐渐超出一般高校实验室的能力范围
  • 学术界被迫转向使用开源预训练模型进行微调(fine-tuning)

五、加速训练的意义

为什么加速训练如此重要?

  • 更快的训练速度 → 更大规模模型可行
  • 支持“迭代实验” → 快速调参、验证新想法

六、Transformer的发展轨迹

模型年份主要贡献
Transformer(原始论文)2017提出“Self-Attention”
GPT-12018首次使用Decoder-only结构进行语言建模
BERT2018Encoder-only + 双向掩码训练
GPT-22019扩展模型规模(15亿参数)
GPT-320201750亿参数,展示“大模型能力的涌现

七、Scaling Law:模型规模、数据和性能的关系

什么是 Scaling Laws(扩展定律)?

  • 经验法则:在给定训练预算下,模型的最佳参数数量、数据量、训练步骤数之间存在关系。
  • 使用这些法则可以估算最优模型大小
公式表达如下:

若性能度量为损失 L,参数量为 N,数据量为 D,计算量为C,有如下规律:

L ( N , D ) ≈ L ∞ + A N α + B D β L(N, D) \approx L_\infty + \frac{A}{N^\alpha} + \frac{B}{D^\beta} L(N,D)L+NαA+DβB

其中 α,β>0,表示“规模扩展的收益递减”。


八、注意力的复杂度问题(Attention is Quadratic)

标准注意力机制的复杂度:

给定输入序列长度为 n,标准多头注意力机制的复杂度为:

O ( n 2 ⋅ d ) O(n^2 \cdot d) O(n2d)

其中 d 为表示维度。这种 二次增长 导致长文本处理效率极低。


九、解决注意力复杂度问题的模型变种

为了解决效率问题,研究者提出了多种“稀疏/线性注意力”方法:

模型技术特点
Performer近似核函数将注意力简化为线性形式
Longformer局部+全局注意力局部窗口提升效率
Linformer投影降维减少注意力矩阵维度
BigBird稀疏注意力图保留图的可达性结构

🔟 更大的瓶颈:内存带宽(Memory Bandwidth)

注意力不是最大瓶颈,真正的瓶颈是:内存带宽!

为什么内存带宽是瓶颈?

  • 模型越大,每次训练所需数据吞吐越大。
  • 内存访问比计算慢很多,导致等待内存成为主要时间消耗

🔄 FlashAttention:显著提升训练速度的突破

  • FlashAttention 是一种高效显存优化注意力计算方式
  • 通过将计算重写为CUDA核函数,利用寄存器和共享内存提升计算速度。

效果:

  • 训练速度提升2-4倍
  • 减少显存使用(支持更长序列)

🔁 Feedforward层主导计算(随着模型增大)

在大模型中,前馈网络(FFN)层的计算量远超注意力层,因为:

  • 每层 FFN 通常为输入维度的 4 倍 → 计算密集
  • 例如 GPT 模型中,前馈层占比超过 2/3

📚 总结:Transformer大模型发展路径

  1. 初期用于生成上下文词向量或端到端训练(如翻译)
  2. BERT 等模型引入大规模预训练范式
  3. 模型尺寸、数据量不断扩展(GPT-3等)
  4. 提出 Scaling Law 进行建模
  5. 面临注意力复杂度挑战 → 各类变体出现
  6. 真正瓶颈为内存带宽 → FlashAttention 提升效率
  7. 模型中 FFN 成为主要计算耗点

相关文章:

  • 高速电路中的电阻、电容的选型及应用
  • SCP-Firmware安全通告:CVE-2024-11863和CVE-2024-11864
  • 数组中的第K个最大元素
  • 运行便携软件提示系统从服务器返回一个参照问题解决
  • CVE重要漏洞复现-Fastjson1.2.24-RCE漏洞
  • 一键部署ai画图环境foooocus colab
  • c++------模板进阶
  • 计算机组成原理 第 1 章 概 论
  • C++基础系列【36】异常处理
  • 系统设计模块之安全架构设计(身份认证与授权(OAuth2.0、JWT、RBAC/ABAC))
  • 使用WindSurf生成贪吃蛇小游戏:从零开始的开发之旅
  • websoket 学习笔记
  • 【LLM】A2A 与 MCP:剖析 AI Agent 互联时代的两种关键协议
  • 路由引入配置
  • JMeter的高并发和高频率和分布式
  • matplotlib练习
  • Spring Boot 使用 SMB 协议
  • Sentinel源码—1.使用演示和简介二
  • 【算法学习笔记】37:扩展中国剩余定理(EXCRT)求解任意线性同余方程组
  • 【微服务管理】注册中心:分布式系统的基石
  • 去年净流入人口达45万,居各省份第一:浙江带来哪些启示?
  • 吸引更多开发者,上海智元发布行业首款具身智能一站式开发平台
  • 30小时已过,俄罗斯复活节停火不再延长
  • 上海明天有雷雨、大风,下周气温在春日舒适区间
  • 中共中央办公厅、国务院办公厅印发《农村基层干部廉洁履行职责规定》
  • 上海古籍书店重新开卷,在这里淘旧书获新知