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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/76837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 集成 RocketMQ 全流程指南:从依赖引入到消息收发

前言 在分布式系统中,消息中间件是解耦服务、实现异步通信的核心组件。RocketMQ 作为阿里巴巴开源的高性能分布式消息中间件,凭借其高吞吐、低延迟、高可靠等特性,成为企业级应用的首选。而 Spring Boot 通过其“约定优于配置”的设计理念&a…

HTTPS实现安全的关键方法及技术细节

HTTPS(HyperText Transfer Protocol Secure)通过多种技术手段实现数据传输的安全性,其核心机制基于SSL/TLS协议,并结合数字证书、加密算法等技术。 SSL:Secure Sockets Layer,安全套接字层 TLS:…

Java【多线程】(8)CAS与JUC组件

目录 1.前言 2.正文 2.1CAS概念 2.2CAS两种用途 2.2.1实现原子类 2.2.2实现自旋锁 2.3缺陷:ABA问题 2.4JUC组件 2.4.1Callable接口 2.4.2ReentrantLock(与synchronized对比) 2.4.3Semaphore信号量 2.4.4CountDownLatch 3.小结 1…

【Docker】离线安装Docker

背景 离线安装Docker的必要性,第一,在目前数据安全升级的情况下,很多外网已经基本不好访问了。第二,如果公司有对外部署的需求,那么难免会存在对方只有内网的情况,那么我们就要做到学会离线安装。 下载安…

MecAgent Copilot:机械设计师的AI助手,开启“氛围建模”新时代

MecAgent Copilot作为机械设计师的AI助手,正通过多项核心技术推动机械设计进入“氛围建模”新时代。以下从功能特性、技术支撑和应用场景三方面解析其创新价值: 一、核心功能特性 ​​智能草图生成与参数化建模​​ 支持自然语言输入生成设计草图和3D模型,如输入“剖面透视…

MCU屏和RGB屏

一、MCU屏 MCU屏‌:全称为单片机控制屏(Microcontroller Unit Screen),在显示屏背后集成了单片机控制器,因此,MCU屏里面有专用的驱动芯片。驱动芯片如:ILI9488、ILI9341、SSD1963等。驱动芯片里…

7.5 使用MobileNet v3进行图像的区分

MobileNet v3是Google在2019年提出的轻量级卷积神经网络结构,旨在提高在移动设备上的速度和准确性,广泛的用于轻量级网络。 MobileNet v3-Small的网络结构如下,它的输入是224x224的3通道彩色图片。 使用过程如下: 1.创建模型、修改最终分类数量 #1.创建mobilenet_v3_small…

构建面向大模型训练与部署的一体化架构:从文档解析到智能调度

作者:汪玉珠|算法架构师 标签:大模型训练、数据集构建、GRPO、自监督聚类、指令调度系统、Qwen、LLaMA3 🧭 背景与挑战 随着 Qwen、LLaMA3 等开源大模型不断进化,行业逐渐从“能跑通”迈向“如何高效训练与部署”的阶…

PostgreSQL技术大讲堂 - 第86讲:数据安全之--data_checksums天使与魔鬼

PostgreSQL技术大讲堂 - 第86讲,主题:数据安全之--data_checksums天使与魔鬼 1、data_checksums特性 2、避开DML规则,嫁接非法数据并合法化 3、避开约束规则,嫁接非法数据到表中 4、避开数据检查,读取坏块中的数据…

【机器学习】机器学习笔记

1 机器学习定义 计算机程序从经验E中学习,解决某一任务T,进行某一性能P,通过P测定在T上的表现因经验E而提高。 eg:跳棋程序 E: 程序自身下的上万盘棋局 T: 下跳棋 P: 与新对手下跳棋时赢的概率…

Ubuntu20.04 设置开机自启

参考: Ubuntu20.04 设置开机自启_ubuntu进bos系统-CSDN博客

数据库中存储过程的流程语句讲解

一、流程语句讲解 二、总结 一、流程语句讲解 1.1 if语句讲解 语法: IF condition THENstatements; ELSEIF condition THENstatements; ELSEstatements; END IF; 题目示例: # 判断成绩等级 # 输入学生的编号,取出学生的第一门课,然后判断…

kubernetes》》k8s》》ConfigMap 、Secret

configmap官网 ConfigMap是一种 API 对象,使用时, Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap将配置和Pod解耦,更易于配置文件的更改和管理。ConfigMap 并不提供保密或者加密功能。 如果你想存储的数据是机密的…

git在IDEA中使用技巧

git在IDEA中使用技巧 merge和rebase 参考:IDEA小技巧-Git的使用 git回滚、强推、代码找回 参考:https://www.bilibili.com/video/BV1Wa411a7Ek?spm_id_from333.788.videopod.sections&vd_source2f73252e51731cad48853e9c70337d8e cherry pick …

Spring 事务失效的原因及解决方案全解析,来复习了

Spring 事务失效是指在使用 Spring 声明式事务管理时,预期的事务行为(如事务的开启、提交、回滚等)未按预期执行,导致数据操作未满足 ACID 特性(原子性、一致性、隔离性、持久性),从而引发数据不…

「出海匠」借助CloudPilot AI实现AWS降本60%,支撑AI电商高速增长

🔎公司简介 「出海匠」(chuhaijiang.com)是「数绘星云」公司打造的社交内容电商服务平台,专注于为跨境生态参与者提供数据支持与智能化工作流。平台基于大数据与 AI 技术,帮助商家精准分析市场趋势、优化运营策略&…

python每日一练

题目一 输入10个整数,输出其中不同的数,即如果一个数出现了多次,只输出一次(要求按照每一个不同的数第一次出现的顺序输出)。 解题 错误题解 a list(map(int,input().split())) b [] b.append(a[i]) for i in range(2,11):if a[i] not in b:b.append(a[i]) print(b)但是会…

Docker实战:从零构建高可用的MySQL主从集群与Redis集群

在分布式系统架构中,数据库集群是保障数据高可用和性能的关键组件。本文将通过Docker技术,手把手教你搭建MySQL主从集群和Redis Cluster,并分享独创的优化技巧与运维实战经验。 一、为什么选择Docker部署集群? 传统数据库集群搭…

STM32电机库 电机控制特性

ST MC FW库提供FOC和六步法两种电机控制方式。这使得它能够驱动永磁同步电机 (PMSM) 和无刷直流电机 (BLDC)。FOC 更适合 PMSM,而六步法更适合 BLDC 电机。该固件可以驱动内嵌式PMSM 和标贴式PMSM。 ST Motor Control 固件库提供以下功能: FOC SVPWM 生成: 可配置的 PW…

Go:方法

方法声明 type point struct { X, Y float64 }// 普通函数 func Distance(p, q Point) float64 {return math.Hypot(q.x - p.x, q.y - p.Y) }// Point类型的方法 func (p Point) Distance(q Point) float64 {return math.Hypot(q.x - p.x, q.y - p.Y) }方法声明与普通函数声…