Transformer是一种基于自注意力机制(Self-Attention)的深度学习架构,它摒弃了传统的循环或卷积结构,能够高效并行处理序列数据,是现代大语言模型和人工智能发展的核心基石。
Transformer模型架构
- 输入部分
- 编码器部分
- 解码器部分
- 输出部分 根据你的要求,以下是保留所有模块中英文名称的整理压缩版:
编码器(Encoder)侧
- Input Embedding(编码器的词嵌入层):将输入词索引转换为词向量。
- Positional Encoding(位置编码):为词向量补充位置信息,使模型感知语序。
- Multi-Head Attention(多头自注意力层):从多个子空间并行关注词间关系,捕捉不同角度的语义。
- Add & Norm(残差连接与层归一化):残差连接防信息丢失,层归一化稳定训练、缓解梯度问题。
- Feed Forward(前馈网络):对每个位置的向量独立做非线性变换,增强特征。
- Nx(重复堆叠):上述子层重复堆叠(论文中N=6),构成完整编码器。
解码器(Decoder)侧
- Output Embedding(目标序列的词嵌入层):将目标端词索引转换为词向量。
- Positional Encoding(位置编码):同样为词向量添加位置信息。
- Masked Multi-Head Attention(掩码多头自注意力层):带掩码的自注意力,防止“看到”未来词,保证自回归生成。
- Add & Norm(残差连接与层归一化):功能与编码器侧一致。
- Multi-Head Attention(多头注意力层):让解码器关注编码器的输出信息。
- Feed Forward(前馈网络):功能与编码器侧一致。
- Nx(重复堆叠):解码器子层重复堆叠。
- Linear & Softmax(线性层与Softmax):线性映射后经Softmax输出词汇表上的概率分布。
迁移学习
迁移学习是一种方法论,它的实现方式通常是:拿一个预训练模型,对它进行微调,从而完成自己的任务。
魔搭社区:https://www.modelscope.cn/models?page=1&tabKey=task
- 预训练模型:别人训练好的模型,一般具备复杂的网络结构,在大量语料下训练完成。
- 微调:对预训练模型进行垂直领域数据微调,参数可全部微调、部分微调或不微调;一般在预训练模型后加入自定义网络,自定义网络的参数必须训练。
迁移学习的两种方式:
- 开箱即用:预训练模型任务与目标任务相似时,直接使用。
- 微调:加入自定义网络进行垂直领域训练。
预训练语言模型类别(以 transformer 架构划分):
- Encoder-Only:仅编码器,代表 BERT
- Decoder-Only:仅解码器,代表 GPT
- Encoder-Decoder:完整 transformer,代表 T5
fasttext模型
fastText 是一个轻量、高效的文本分类和词向量模型。它的特点是训练速度快、效果稳定,还会把词拆成 n-gram 子词,因此对生僻词、拼写变化词比普通词袋方法更友好。
NLP 常用预训练模型
当下流行:BERT、GPT、GPT-2、Transformer-XL、XLNet、XLM、RoBERTa、DistilBERT、ALBERT、T5、XLM-RoBERTa。
BERT 及其变体关键参数:
| 模型 | 隐层数 | 输出维度 | 注意力头 | 参数量 | 训练语料 |
|---|---|---|---|---|---|
| bert-base-uncased | 12 | 768 | 12 | 110M | 小写英文 |
| bert-large-uncased | 24 | 1024 | 16 | 340M | 小写英文 |
| bert-base-chinese | 12 | 768 | 12 | 110M | 简繁中文 |
面试高频:bert-base-chinese 有 12 个自注意力头。
Transformers 库
Transformers 库是 Hugging Face 开发的开源库,提供海量预训练 Transformer 模型(如 BERT、GPT、T5 等)和统一 API 让文本分类、生成等 NLP 任务开箱即用,无需从零训练。
Transformers 库的三种使用层级,按灵活性和开发难度从低到高排列:
- Pipeline(管道):最高层封装,几行代码即可跑通任务,适合快速验证,但可调参数极少。
- AutoModel(自动模型):中层接口,能自动识别并加载模型架构,在便捷性和可调性之间取得平衡。
- SpecificModel(具体模型):最底层、最灵活的用法,需明确指定模型类,适合对细节要求高的业务场景,也便于结合 LoRA 等高级微调技术。
BERT 模型
BERT是基于Transformer Encoder的双向预训练模型,通过双向上下文建模突破单向局限,兼具并行计算与长距离依赖优势,确立了“预训练+微调”范式,重塑了NLP领域。
- BERT =
Transformer Encoder + 双向预训练 - 两个经典预训练任务:
MLM + NSP
详细文章:BERT 模型
预训练模型家族速览
- 降参数, 如 ALBERT
- 改训练策略, 如 RoBERTa
- 修正 MLM 缺陷, 如 MacBERT
- 改遮掩单位, 如 SpanBERT