【大模型】图解Transformers Encoder

文摘   2024-09-24 15:47   辽宁  

前面图解了Transformer整体架构,今天图解编码器。

先来个整体视角:

再逐步分解开来:

1️⃣ 𝗪𝗛𝗔𝗧'𝗦 𝗧𝗛𝗘 𝗘𝗡𝗖𝗢𝗗𝗘𝗥? 🧠

编码器负责通过自注意力机制和前馈层处理输入的 token,从而生成具有上下文感知的表示。

👉 它是 NLP 模型中理解序列的核心动力。

𝗦𝗧𝗘𝗣 1.1: 𝗜𝗡𝗣𝗨𝗧 𝗘𝗠𝗕𝗘𝗗𝗗𝗜𝗡𝗚🔎

编码器的第一步是将每个输入的单词嵌入为一个大小为 512 的向量。

⚠️ 这种嵌入过程只发生在最底层的编码器中。

可以把它想象成把单词翻译成模型能够理解的语言!🌐

𝗦𝗧𝗘𝗣 1.2: 𝗣𝗢𝗦𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗘𝗡𝗖𝗢𝗗𝗜𝗡𝗚🧭

Transformer 缺乏循环结构,因此它们使用位置编码来表示 token 的位置。

怎么实现的?

通过正弦和余弦函数的组合,模型能够理解句子中单词的顺序!📏

𝗦𝗧𝗘𝗣 2: 𝗦𝗧𝗔𝗖𝗞 𝗢𝗙 𝗘𝗡𝗖𝗢𝗗𝗘𝗥 𝗟𝗔𝗬𝗘𝗥𝗦 🏗️

编码器是层叠的,每一层都会接收前一层的输入,并通过多轮自注意力机制和前馈层进一步优化输入。

这有助于更好地理解输入的上下文!

𝗦𝗧𝗘𝗣 2.1: 𝗠𝗨𝗟𝗧𝗜-𝗛𝗘𝗔𝗗𝗘𝗗 𝗦𝗘𝗟𝗙-𝗔𝗧𝗧𝗘𝗡𝗧𝗜𝗢𝗡 🔗

自注意力机制让模型能够将输入中的每个词与其他词相互关联。

注意力得分基于以下三个部分:

查询(Query)

键(Key)

值(Value)

这个过程会重复多次,以便从多个角度进行理解!👀

𝗦𝗧𝗘𝗣 2.2: 𝗠𝗔𝗧𝗥𝗜𝗫 𝗠𝗨𝗟𝗧𝗜𝗣𝗟𝗜𝗖𝗔𝗧𝗜𝗢𝗡 🔢

通过将查询(Query)和键(Key)向量相乘,给每对单词分配一个得分。

这为序列中的每个词分配了一个相对的重要性得分,类似于根据词与词之间的相关性对它们进行排序!

𝗦𝗧𝗘𝗣 2.3: 𝗦𝗖𝗔𝗟𝗜𝗡𝗚 𝗧𝗛𝗘 𝗔𝗧𝗧𝗘𝗡𝗧𝗜𝗢𝗡 𝗦𝗖𝗢𝗥𝗘𝗦 📈

这些得分会通过除以查询(Query)和键(Key)向量维度的平方根进行缩放,以确保梯度的稳定性。

这样可以防止较大的值对结果产生偏差。📊

𝗦𝗧𝗘𝗣 2.4: 𝗔𝗣𝗣𝗟𝗬𝗜𝗡𝗚 𝗦𝗢𝗙𝗧𝗠𝗔𝗫 🔀

应用 softmax 函数以获得注意力权重,强调重要的单词,同时减弱不太相关的单词。

这有助于集中注意力于输入的关键部分!🔍

𝗦𝗧𝗘𝗣 2.5: 𝗖𝗢𝗠𝗕𝗜𝗡𝗜𝗡𝗚 𝗦𝗢𝗙𝗧𝗠𝗔𝗫 𝗥𝗘𝗦𝗨𝗟𝗧𝗦 🍹

注意力权重与值(Value)向量相乘,生成的输出是值的加权和。

这样就将上下文信息整合到了输出表示中!🎯

𝗦𝗧𝗘𝗣 2.6: 𝗡𝗢𝗥𝗠𝗔𝗟𝗜𝗭𝗔𝗧𝗜𝗢𝗡 𝗔𝗡𝗗 𝗥𝗘𝗦𝗜𝗗𝗨𝗔𝗟𝗦 🔄

编码器中的每个子层之后都会有一个归一化步骤和残差连接。

这样可以帮助缓解梯度消失问题,并确保模型在计算过程中保持平衡,为下一步做好准备!⚖️

𝗦𝗧𝗘𝗣 2.7: 𝗙𝗘𝗘𝗗-𝗙𝗢𝗥𝗪𝗔𝗥𝗗 𝗡𝗘𝗨𝗥𝗔𝗟 𝗡𝗘𝗧𝗪𝗢𝗥𝗞 🧠

归一化之后,前馈网络会处理输出,对上下文进行进一步的精细化调整。

这是在将信息发送到下一层之前的最后一步!🚀

𝗦𝗧𝗘𝗣 3: 𝗢𝗨𝗧𝗣𝗨𝗧 🎯

编码器的最终输出是一组向量,每个向量都捕捉了输入序列的丰富上下文理解。

这些输出已准备好被解码,并用于各种 NLP 任务!🎉


人工智能大讲堂
专注人工智能数学原理和应用
 最新文章