Transformer和文本分类项目

Transformer是一种基于自注意力机制(Self-Attention)的深度学习架构,它摒弃了传统的循环或卷积结构,能够高效并行处理序列数据,是现代大语言模型和人工智能发展的核心基石。

Transformer模型架构

  1. 输入部分
  2. 编码器部分
  3. 解码器部分
  4. 输出部分 根据你的要求,以下是保留所有模块中英文名称的整理压缩版:

编码器(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领域。

  1. BERT = Transformer Encoder + 双向预训练
  2. 两个经典预训练任务: MLM + NSP

详细文章:BERT 模型

预训练模型家族速览

  • 降参数, 如 ALBERT
  • 改训练策略, 如 RoBERTa
  • 修正 MLM 缺陷, 如 MacBERT
  • 改遮掩单位, 如 SpanBERT