18 - NLP 与 Transformer 详解¶
⚠️ 时效性说明:本章涉及前沿模型/价格/榜单等信息,可能随版本快速变化;请以论文原文、官方发布页和 API 文档为准。
📌 导航提示:本章从机器学习视角概述 NLP 与 Transformer 。详细 NLP 教程请参考
自然语言处理/目录; Transformer 架构详解请参考深度学习/04-Transformer/;大模型相关内容请参考LLM学习/目录。
🗺️ NLP 任务在 ML 中的分类¶
从机器学习角度看, NLP 任务本质上是将自然语言映射为不同类型的预测问题:
| ML 任务类型 | NLP 任务示例 | 输入→输出 |
|---|---|---|
| 分类 | 情感分析、主题分类、垃圾检测 | 文本 → 类别标签 |
| 序列标注 | 命名实体识别(NER)、词性标注 | 每个 token → 标签 |
| 序列到序列 | 机器翻译、文本摘要 | 序列 → 序列 |
| 生成 | 对话、文本续写 | 上下文 → 文本 |
| 匹配/检索 | 语义相似度、问答 | 文本对 → 相似度/答案 |
📈 NLP 技术演进¶
| 阶段 | 代表方法 | 特征方式 | 局限 |
|---|---|---|---|
| 传统 ML | TF-IDF + SVM/NB | 手工特征(词袋、 n-gram ) | 丢失语序、语义 |
| 词嵌入 | Word2Vec/GloVe | 分布式表示(静态向量) | 一词一义,无上下文 |
| 序列模型 | LSTM/GRU | 循环编码上下文 | 串行慢、长距离衰减 |
| Transformer | 自注意力机制 | 全局并行上下文建模 | 当前主流范式 |
⚡ Transformer 核心创新¶
Transformer ( 2017 )取代了 RNN 成为 NLP 基础架构,其核心创新点:
| 创新点 | 核心思想 | 解决的问题 |
|---|---|---|
| 自注意力 (Self-Attention) | 每个位置与所有位置计算相关性,动态加权聚合信息 | 长距离依赖、并行计算 |
| 多头注意力 | 多组独立注意力头捕获不同层面的关系 | 丰富特征表示 |
| 位置编码 | 用正弦/余弦函数编码 token 位置信息 | Transformer 无循环结构,需显式注入位置信息 |
| 残差连接 + LayerNorm | 每个子层都有跳跃连接和归一化 | 稳定深层训练 |
自注意力公式核心:\(\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\)
🏛️ 预训练范式综述¶
基于 Transformer 衍生出三大预训练范式:
| 维度 | BERT (Encoder) | GPT (Decoder) | T5 (Encoder-Decoder) |
|---|---|---|---|
| 架构 | 仅编码器 | 仅解码器 | 编码器-解码器 |
| 注意力 | 双向 | 单向(因果掩码) | 编码器双向 + 解码器单向 |
| 预训练目标 | 掩码语言模型(MLM) | 下一词预测(CLM) | 文本到文本(Span Corruption) |
| 擅长任务 | 理解(分类、 NER 、匹配) | 生成(文本续写、对话) | 理解+生成通用 |
| 代表模型 | BERT, RoBERTa, DeBERTa | GPT-⅔/4, LLaMA | T5, BART, Flan-T5 |
| 微调方式 | +分类头微调 | Prompt/少样本/微调 | 统一文本到文本格式 |
| 当前地位 | NLU 任务仍广泛使用 | LLM 时代主流架构 | 特定任务表现优异 |
🔗 与 ML 知识体系的关联¶
- 特征工程的终结:预训练模型取代了传统 NLP 中的手工特征工程( TF-IDF 、词袋等)
- 迁移学习的典范:大规模预训练 + 下游任务微调,是 ML 中迁移学习思想在 NLP 的核心应用
- Scaling Law:模型规模、数据量、计算量的增长带来持续的性能提升,催生了 LLM 时代
📋 面试要点¶
- Transformer 相比 RNN 的核心优势? → 并行计算(非串行)、全局感受野(非局部)、自注意力捕获长距离依赖
- BERT 和 GPT 的核心区别? → BERT 双向编码器+MLM ,适合理解; GPT 单向解码器+CLM ,适合生成
- 自注意力的计算复杂度及优化? → O(n²d),优化方向:稀疏注意力、线性注意力、 Flash Attention
- 为什么位置编码是必要的? → Transformer 的注意力机制是排列不变的( permutation invariant ),需要位置编码注入顺序信息
- 预训练+微调范式为什么有效? → 大规模无标注数据学习通用语言表示,少量标注数据适配下游任务
✏️ 练习¶
- 范式对比:选择一个文本分类任务,分别用 TF-IDF+SVM (传统 ML )和 BERT 微调(预训练范式)实现,对比效果和开发成本,体会 NLP 技术的演进。
- 架构选型:给定 5 个 NLP 任务(情感分析、机器翻译、文本续写、命名实体识别、语义搜索),分析每个任务最适合的预训练范式( BERT/GPT/T5 ),并说明理由。
📖 下一步学习:19-生成模型深度解析.md | NLP 详细教程 →
自然语言处理/| Transformer 详解 →深度学习/04-Transformer/