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

【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 成为主要计算耗点

相关文章:

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

🧠 NLP 现代教程:Transformer的训练与应用全景解读 一、Transformer的使用方式(Training and Use) 如何使用Transformer模型? Transformer 模型最初的使用方式有两种主要方向: 类似 RNN 编码-解码器的架…...

jenkins凭据管理(配置github密钥)

凭据分类 Jenkins可以保存下面几种凭证: Secret text:例如 API Token(例如GitHub的个人access token)。Username with password:指的是登录GitHub的用户名和密码,可以作为单独的组件处理,也可以…...

数据结构|排序算法(三)选择排序 堆排序 归并排序

一、选择排序 1.算法思想 选择排序(Selection Sort)是一种简单直观的排序算法,其基本思想是:每次都从待排序部分中选出最小的一个数据和待排序的第一个数据交换。 将待排序序列分为已排序和未排序两部分,初始时已排…...

MAC Mini M4 上测试Detectron2 图像识别库

断断续续地做图像识别的应用,使用过各种图像识别算法,一开始使用openCV 做教室学生计数的程序。以后又使用YOLO 做医学伤口检测程序。最近,开始使用meta 公司的Detectron2.打算做OCR 文档结构分析 Detectron2 的开发者是 Meta 的 Facebook AI…...

OpenCv高阶(四)——角点检测

一、角点检测 在计算机视觉中,角点检测是识别图像中局部区域(角点)的关键技术,这些区域通常是两条或多条边缘的交点,具有丰富的结构信息,常用于图像匹配、跟踪、三维重建等任务。 Harris角点检测算法是一…...

TOA与AOA联合定位的高精度算法,三维、4个基站的情况,MATLAB例程,附完整代码

本代码实现了三维空间内目标的高精度定位,结合到达角(AOA) 和到达时间(TOA) 两种测量方法,通过4个基站的协同观测,利用最小二乘法解算目标位置。代码支持噪声模拟、误差分析及三维可视化,适用于无人机导航、室内定位等场景。订阅专栏后可获得完整代码 文章目录 运行结果…...

如何在 Ubuntu 22.04 上安装、配置、使用 Nginx

如何在 Ubuntu 22.04 上安装、配置、使用 Nginx?-阿里云开发者社区 更新应用 sudo apt updatesudo apt upgrade检查必要依赖并安装 sudo apt install -y curl gnupg2 ca-certificates lsb-release安装nginx sudo apt install -y nginx# 启动nginx sudo systemct…...

揭秘大数据 | 23、软件定义网络

软件定义网络将网络的边缘从硬件交换机推进到了服务器里面,将服务器和虚拟机的所有部署、管理的职能从原来的系统管理员网络管理员的模式变成了纯系统管理员的模式,让服务器的业务部署变得简单,不再依赖于形态和功能各异的硬件交换机&#xf…...

Elastic 9.0/8.18:BBQ、EDOT 和 LLM 可观察性、攻击发现、自动导入以及 ES|QL JOIN

作者:来自 Elastic Brian Bergholm 今天,我们很高兴地宣布 Elastic 9.0 和 8.18 的正式发布! 如果你觉得 8.x 版本系列已经很令人印象深刻,包含了 ANN、TSDB、ELSER、ES|QL、LTR、BBQ、logsdb 索引模式等功能,那你一定…...

当 AI 有了 “万能插头” 和 “通用语言”:MCP 与 A2A 如何重构智能体生态

目录 一、MCP:让 AI 拥有 “万能工具插头” 1.1 从 “手工对接” 到 “即插即用” 1.2 架构解密:AI 如何 “指挥” 工具干活 1.3 安全优势:数据不出门,操作可追溯 二、A2A:让智能体学会 “跨语言协作” 2.1 从 “…...

中间件--ClickHouse-3--列式存储和行式存储理解

在数据库存储中,列式存储(Columnar Storage)与行式存储(Row-based Storage)是两种不同的数据组织方式,它们各自适用于不同类型的应用场景。 1、行式存储(MySQL) 存储方式&#xff…...

【golang/jsonrpc】go-ethereum中json rpc初步使用(websocket版本)

说在前面 操作系统:win11 wsl2go-ethereum版本:1.15.8 关于json-rpc 官网 server 定义方法type CalculatorService struct{}func (s *CalculatorService) Add(a, b int) int {return a b }func (s *CalculatorService) Div(a, b int) (int, error) {…...

逻辑回归 (Logistic Regression)

文章目录 逻辑回归 (Logistic Regression)问题的引出Sigmoid function逻辑回归的解释决策边界 (Decision boundary)逻辑回归的代价函数机器学习中代价函数的设计1. 代价函数的来源(1)从概率模型推导而来(统计学习视角)&#xff08…...

燕山大学计算机网络之Java实现TCP数据包结构设计与收发

觉得博主写的好,给博主点点免费的关注吧! 目录 摘要.................................................................................................................... 4 前言.............................................................…...

如何使用SpringApplicationRunListener在Spring Boot 应用的不同生命周期阶段插入自定义逻辑

目录 一、引言二、核心方法概述三、加载机制四、使用场景五、扩展 - 如何在测试的不同阶段插入逻辑5.1 TestExecutionListener & AbstractTestExecutionListener5.1.1 主要功能5.1.2 生命周期方法 5.2 如何集成TestExecutionListener5.3 总结 一、引言 SpringApplicationR…...

P10413 [蓝桥杯 2023 国 A] 圆上的连线

题意: 给定一个圆,圆上有 n2023 个点从 1 到 n 依次编号。 问有多少种不同的连线方式,使得完全没有连线相交。当两个方案连线的数量不同或任何一个点连接的点在另一个方案中编号不同时,两个方案视为不同。 答案可能很大&#x…...

JavaEE——线程安全

目录 前言1.线程安全的定义2.线程安全问题产生的原因2.1 多个线程修改一个变量2.2 修改操作不是原子的2.3 内存可见性引起的线程安全问题 3.解决线程安全问题的方法3.1 通过synchronized关键字加锁3.2 使用volatile关键字 总结 前言 在使用多线程的时候,难免会出现…...

Redis Hash 介绍

Redis Hash 介绍 从基础命令、内部编码和使用场景三个维度分析如下: 一、基础命令 Redis Hash 提供了丰富的操作命令,适用于字段(field)级别的增删改查: 设置与修改 HSET:设置单个字段值(HSET…...

[redis进阶一]redis的持久化(2)AOF篇章

目录 一 为什么有了RDB持久化机制还要有AOF呢 板书介绍具体原因: ​编辑二 详细讲解AOF机制 (1)AOF的基本使用 1)板书如下 2)开启AOF机制: 3) AOF工作流程 (2)AOF是否会影响到redis性能 ​编辑 (3)AOF缓冲区刷新策略 (4)AOF的重写机制 板书如下: 为什么要有这个重写机…...

【Linux我做主】探秘gcc/g++和动静态库

TOC Linux编译器gcc/g的使用 github地址 有梦想的电信狗 前言 在软件开发的世界中,编译器如同匠人的工具,将人类可读的代码转化为机器执行的指令。 对于Linux开发者而言,gcc和g是构建C/C程序的核心工具链,掌握它们的原理和使…...

Linux `init 0` 相关命令的完整使用指南

Linux init 0 相关命令的完整使用指南—目录 一、init 系统简介二、init 0 的含义与作用三、不同 Init 系统下的 init 0 行为1. SysVinit(如 CentOS 6、Debian 7)2. systemd(如 CentOS 7、Ubuntu 16.04)3. Upstart(如 …...

【英语语法】基本句型

目录 前言一:主谓二:主谓宾三:主系表四:主谓双宾五:主谓宾补 前言 英语基本句型是语法体系的基石,以下是英语五大基本句型。 一:主谓 结构:主语 不及物动词 例句: T…...

Vue3中发送请求时,如何解决重复请求发送问题?

文章目录 前言一、问题演示二、使用步骤1.One组件2.Two组件封装工具函数处理请求 总结 前言 在开发过程中,重复请求发送问题可能会导致数据不一致、服务器压力增加或用户操作异常。以下是解决重复请求问题的常见方法和最佳实践: 一、问题演示 我们看着…...

信息学奥赛一本通 1622:Goldbach’s Conjecture | 洛谷 UVA543 Goldbach‘s Conjecture

【题目链接】 ybt 1622:Goldbach’s Conjecture 洛谷 UVA543 Goldbach’s Conjecture 【题目考点】 1. 筛法求质数表 埃筛线性筛(欧拉筛) 知识点讲解见信息学奥赛一本通 2040:【例5.7】筛选法找质数 【解题思路】 首先使用埃…...

在极狐GitLab 身份验证中如何使用 OIDC?

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 使用 OpenID Connect 作为认证提供者 (BASIC SELF) 您可以使用极狐GitLab 作为客户端应用程序,与 OpenID Connec…...

计算机视觉与深度学习 | 基于YOLOv8与光流法的目标检测与跟踪(Python代码)

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 目标检测与跟踪 关键实现逻辑检测-跟踪协作机制‌特征点选择策略‌运动…...

解决 VSCode 中 NVM 配置后无法识别 Node 和 NPM 的问题

在开发中,我们经常需要使用 Node.js 和 NPM 来管理 JavaScript 项目依赖,而 NVM(Node Version Manager)是开发者在本地环境中管理多个 Node.js 版本的得力工具。不过,有时候在 VSCode 中配置完 NVM 后,可能…...

观察者模式:从博客订阅到消息队列的解耦实践

观察者模式:从博客订阅到消息队列的解耦实践 一、模式核心:用事件驱动实现对象间松耦合 在新闻 APP 中,当热点事件发生时需要实时通知所有订阅用户;在电商系统中,库存变化需触发价格监控模块重新计算。这类场景的核心…...

ReportLab 导出 PDF(页面布局)

ReportLab 导出 PDF(文档创建) ReportLab 导出 PDF(页面布局) ReportLab 导出 PDF(图文表格) PLATYPUS - 页面布局和排版 1. 设计目标2. 开始3. Flowables3.1. Flowable.draw()3.2. Flowable.drawOn(canvas,x,y)3.3. F…...

qt与html通信

**Cef视图(CefView)**是指在使用Chromium Embedded Framework(CEF)时,嵌入到应用程序中的浏览器视图。CEF是一个开源项目,它基于Google的Chromium浏览器,允许开发者将Web浏览器功能嵌入到自己的…...