Transformer

一、为什么需要Transformer?先看传统模型的痛点​

1. ​​传统模型:RNN与CNN的短板​
  • ​RNN(循环神经网络)​​:逐个处理单词,像流水线作业。

    • ​问题​​:速度慢(无法并行),且长距离词语关系容易丢失(“梯度消失”)。
    • ​例子​​:句子“The cat, which ate the fish, was happy.”中,RNN可能无法关联“cat”和“was”。

  • ​CNN(卷积神经网络)​​:用滑动窗口提取局部特征。

    • ​问题​​:窗口大小固定,难以捕捉长距离依赖。
2. ​​Transformer的革新​
  • ​并行处理整个句子​​:所有词同时计算,速度快。
  • ​自注意力机制​​:直接建模任意两个词的关系,无论距离多远。

​二、Transformer的骨架:编码器-解码器架构​

1. ​​整体结构图​

  • ​编码器(Encoder)​​:理解输入内容(如一句英文)。
  • ​解码器(Decoder)​​:生成输出内容(如对应的中文翻译)。
  • ​核心模块​​:自注意力(Self-Attention)和前馈神经网络(FFN)。

​三、从输入开始:词如何变成向量?​

1. ​​词嵌入(Word Embedding)​
  • ​目标​​:将单词转换为计算机能理解的数值(向量)。
  • ​例子​​:
    • “猫” → [0.2, -0.5, 1.3, ...](一个高维向量)。
    • 语义相近的词(如“猫”和“狗”)向量距离较近。
2. ​​位置编码(Positional Encoding)​
  • ​问题​​:Transformer没有RNN的时序信息,需告诉模型词的位置。
  • ​解决方案​​:为每个位置生成独特的编码向量,加到词嵌入上。
    • ​公式​​:用正弦和余弦函数生成位置编码。
    • ​直观理解​​:给每个词打上“位置标签”,比如第一个词标记为1,第二个为2,依此类推。

​四、核心机制:自注意力(Self-Attention)​

1. ​​什么是注意力?​
  • ​类比​​:读一句话时,大脑会重点关注某些词。
    • 例如:“我吃了披萨,它很美味。”中,“它”指向“披萨”。
2. ​​自注意力如何工作?​

  • ​步骤拆解​​:

    1. ​生成Q, K, V矩阵​​:每个词通过线性变换得到三个向量:

      • ​Query(查询)​​:当前词想“问”的问题。
      • ​Key(键)​​:其他词提供的“答案线索”。
      • ​Value(值)​​:实际传递的信息。
    2. ​计算注意力分数​​:

      • ​Query与Key点积​​:衡量两个词的相关性。
      • ​缩放​​:除以向量维度的平方根(防止数值过大)。
      • ​Softmax归一化​​:将分数转化为概率分布(权重)。
    3. ​加权求和Value​​:根据权重聚合所有词的信息。

  • ​公式​​:

\mathrm{Attention}(Q,K,V)=\mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V

3. ​​自注意力的直观例子​
  • ​句子​​:“The animal didn't cross the street because it was too tired.”
  • ​模型如何关联“it”和“animal”?​
    • “it”的Query与“animal”的Key匹配度高 → 权重高 → 聚合“animal”的Value。


​五、多头注意力(Multi-Head Attention)​

1. ​​为什么需要多头?​
  • ​单一注意力头的局限​​:可能只关注一种类型的关系(如语法)。
  • ​多头并行的优势​​:捕捉多种关系(如语法、语义、指代)。

2. ​​如何实现?​
  • ​步骤​​:

    1. 将Q、K、V切分为多个头(例如8头)。
    2. 每个头独立计算注意力。
    3. 合并所有头的输出,通过线性变换得到最终结果。

  • ​公式​​:

\mathrm{MultiHead}(Q,K,V)=\mathrm{Concat}(\mathrm{head}_{1},\mathrm{head}_{2},...,\mathrm{head}_{h})W^{O}

3. ​​多头注意力的直观理解​
  • ​类比​​:多人从不同角度分析同一句话,再综合意见。
    • 头1:关注主谓一致(“cat”是单数,“was”正确)。
    • 头2:关注指代关系(“it”指代“animal”)。

​六、前馈神经网络(FFN)​

1. ​​作用​​:对自注意力的输出进行非线性变换,增强模型表达能力。
2. ​​结构​​:两层全连接层 + 激活函数(如ReLU)。
  • ​公式​​:

\mathrm{FFN}(x)=\operatorname{ReLU}(xW_{1}+b_{1})W_{2}+b_{2}

3. ​​直观理解​​:将注意力提取的“粗信息”加工为“细信息”。

​七、残差连接(Residual Connection)与层归一化(Layer Normalization)​

1. ​​残差连接​​:将输入直接加到输出上(防止深层网络梯度消失)。
  • ​公式​​:

\text { Output = LayerNorm(x + Sublayer(x)) }

2. ​​层归一化​​:对每层的输出做标准化(均值为0,方差为1),加速训练。

3. ​​直观理解​​:
  • ​残差连接​​:像“学习残差”而不是完整映射,让模型更容易优化。

  • ​层归一化​​:确保每层的数据分布稳定,避免数值爆炸。


​八、训练Transformer:预训练与微调​

1. ​​预训练(Pre-training)​​:
  • ​目标​​:在大规模文本上学习通用语言表示。
  • ​方法​​:
    • ​掩码语言模型(MLM)​​:随机遮盖部分词,让模型预测(如BERT)。
    • ​自回归模型​​:根据上文预测下一个词(如GPT)。
2. ​​微调(Fine-tuning)​​:
  • ​目标​​:在特定任务(如翻译、分类)上优化模型。
  • ​方法​​:在预训练模型后接任务特定层,用少量数据训练。


​九、Transformer的局限与优化​

1. ​​计算复杂度高​
  • ​问题​​:注意力计算随序列长度平方增长(O(n²))。
  • ​解决方案​​:
    • ​稀疏注意力​​:只计算部分词对的关系(如Longformer)。
    • ​分块处理​​:将长文本分为块处理(如Reformer)。
2. ​​需要大量数据​
  • ​问题​​:训练Transformer需海量文本(如GPT-3用了45TB数据)。
  • ​解决方案​​:
    • ​知识蒸馏​​:用大模型训练小模型(如DistilBERT)。

​十、总结:Transformer如何改变AI?​

1. ​​核心贡献​​:
  • ​并行计算​​:大幅提升训练速度。
  • ​全局依赖建模​​:任意距离词语直接关联。
2. ​​影响​​:
  • ​NLP革命​​:BERT、GPT、T5等模型横扫各类任务。
  • ​跨界应用​​:Vision Transformer(ViT)在图像识别中超越CNN。
3. ​​未来方向​​:
  • ​更高效的注意力机制​​:降低计算成本。
  • ​多模态融合​​:同时处理文本、图像、语音(如CLIP、DALL-E)。

​附:学习路线图​

  1. 理解词嵌入和位置编码 → 2. 掌握自注意力计算 → 3. 拆解多头注意力 → 4. 研究残差与归一化 → 5. 动手实现小规模Transformer。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值