news 2026/7/18 4:39:42

笔记二:深入理解Transformer核心组件——嵌入、注意力与位置编码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
笔记二:深入理解Transformer核心组件——嵌入、注意力与位置编码

摘要:本文从嵌入层出发,梳理各向异性痛点、自注意力公式及位置编码本质,重点通过“我爱你”三字示例逐层推演矩阵形状演变,直观展示 Q/K/V 的动态扩展、n×n 注意力分数的计算过程,并对比绝对位置与 RoPE 在长文本下的行为差异,帮助读者理解权重矩阵与序列长度的解耦关系,以及 RoPE 如何绕过硬边界实现长度外推。

目录

  • 1. 嵌入层(Embedding Layer)
  • 2. 痛点:各向异性(Anisotropy)
  • 3. 自注意力(Self‑Attention)
  • 4. 位置编码(Positional Encoding)
  • 5. 不可省略的关键计算细节:矩阵形状演变
  • 6. 总结

1. 嵌入层(Embedding Layer)

嵌入层是 Transformer 模型的最底层模块,也是自然语言进入神经网络的"翻译官"。它的核心任务只有一个:把离散的 Token ID 映射为连续的稠密向量。这个映射过程看起来简单,但其中蕴含的细节远比直觉复杂。

1.1 嵌入矩阵的结构与参数量

嵌入层的本质是一个巨大的查找表——嵌入矩阵E ∈ R|V|×d,其中|V|是词表大小,d是模型的隐藏维度。以 Llama‑3‑8B 为例:词表大小约为 128,000(128K),隐藏维度为 4096,嵌入矩阵的参数量 = 128K × 4096 ≈5.24 亿。这意味着仅仅是 "Token → 向量" 这一个步骤,就占用了 5 亿多个可训练参数,远超很多小型模型的全部参数量。

更值得注意的是,在绝大多数 Transformer 实现中,嵌入层与最后的 LM Head(输出投影层)共享权重。这被称为 "Weight Tying",它能有效减少参数量(否则还要再加 5 亿参数用于输出投影),同时让输入和输出空间保持一致,提升训练稳定性。

1.2 从文本到 ID:分词器(Tokenizer)的工作

在嵌入矩阵查表之前,还有关键的一步:分词(Tokenization)。模型并不是按"字"来处理文本,而是按"Token"。以中文为例,BPE(Byte‑Pair Encoding)或 SentencePiece 等子词分词算法会将文本切分为高频子词单元:

  • 输入文本:"Transformer 模型很棒"
  • 分词结果:["Transform", "er", "模型", "很棒"](示意,实际取决于词表)
  • 映射为 ID:[4521, 89, 7623, 12045]

每个 ID 随后作为索引,在嵌入矩阵中取出对应的d维向量。如果某个词不在词表中(OOV,Out of Vocabulary),子词分词会将其拆解为更小的已知单元,从而保证任何文本都能被模型的嵌入层消化。这是现代 LLM 能够处理任意输入的基础能力。

1.3 嵌入向量的初始化与训练

嵌入矩阵的初始值对训练收敛速度有显著影响。常见做法有两种:

  • 随机初始化:使用正态分布(均值 0,标准差 1/√d)或均匀分布进行初始化,让初始向量在高维空间中近似均匀分布。这是大多数从头训练的模型的默认选择。
  • 预训练嵌入:使用 Word2Vec、GloVe 或 FastText 等预训练词向量作为初始值。这种方式在早期 NLP 模型中很常见,但在现代大规模 LLM 中,由于词表规模巨大且训练数据充分,随机初始化更为普遍。

随着训练进行,嵌入矩阵会通过反向传播不断更新。每个 Token 的向量逐渐被"推到"语义空间中合适的位置——相似语境的 Token 靠近,无关的疏远。这个过程完全由训练目标和数据分布驱动,不需要任何人工标注的语义关系。

1.4 语义几何:为什么 King−Man+Woman≈Queen?

嵌入层最经典的类比是:King − Man + Woman ≈ Queen。这个等式的本质在于,高维向量空间中的线性运算可以捕捉语义方向的偏移向量 "King − Man" 近似代表了 "王权 / 男性移除" 的方向,在这个方向上加上 Woman,就会落到 Queen 附近。

更一般地说,训练良好的嵌入空间具有以下几何性质:

  • 相似性:语义相近的词(如"猫"和"狗")余弦相似度较高;
  • 类比性:"男孩 − 女孩 ≈ 国王 − 女王";
  • 聚类性:相同类别的词汇会自然聚集(国家名、动词、形容词各成区域);
  • 维度可解释性(部分情况下):某些维度可能对应具体特征(如性别、时态、情感极性),但这并非总能观察到。

这些性质是后续自注意力层能够高效建模长距离依赖的前提条件。如果

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/18 4:39:05

音频杂音诊断与解决方案:从原理到实践

1. 音频杂音问题全景扫描从业十年处理过上千例音频异常案例,我总结出杂音问题呈现明显的"三高"特征:高隐蔽性(32%问题初次排查被误判)、高复现成本(平均需2.8次完整测试流程才能稳定触发)、高解决…

作者头像 李华
网站建设 2026/7/18 4:38:30

SpringBoot集成Sa-Token实现轻量级权限认证实战

1. SpringBoot集成Sa-Token权限认证实战指南在Java企业级应用开发中,权限认证是每个系统都无法绕开的核心模块。传统方案如Shiro、Spring Security虽然功能强大,但配置复杂、学习曲线陡峭。而Sa-Token作为一款轻量级Java权限认证框架,以"…

作者头像 李华
网站建设 2026/7/18 4:38:15

react 原理二解

一、一些问题① React 会先构建完整 Element Tree 吗&#xff1f;不会。但刚开始会执行 <App /> 构建最外层的 Element &#xff0c;然后接下来的 child 组件是在 beginWork 中逐层执行&#xff0c;Element 是逐层产生的。② 两个 alternate 是一个对象吗&#xff1f;不是…

作者头像 李华
网站建设 2026/7/18 4:37:31

个人软件激活码机制:轻量级安全实现方案

1. 个人软件激活码机制实现概述在独立开发或小团队协作中&#xff0c;为软件产品设计一套可靠的激活码机制是保护知识产权的基础手段。不同于企业级解决方案的复杂性&#xff0c;个人开发者需要的是轻量但足够安全的实现方案。我经手过7款商业软件的授权系统开发&#xff0c;总…

作者头像 李华
网站建设 2026/7/18 4:35:28

树莓派Pico远程开关控制:前端与嵌入式开发实战

1. 项目背景与核心需求作为一名前端开发者&#xff0c;第一次接触树莓派Pico这类嵌入式开发板时&#xff0c;最直观的入门项目就是实现远程开关控制。这个项目完美结合了前端熟悉的网络交互和硬件控制的新鲜感&#xff0c;通过网页界面控制物理设备的开关状态。核心需求很明确&…

作者头像 李华
网站建设 2026/7/18 4:35:12

IDM激活脚本技术架构解析:Windows注册表操作自动化实现

IDM激活脚本技术架构解析&#xff1a;Windows注册表操作自动化实现 【免费下载链接】IDM-Activation-Script-ZH IDM激活脚本汉化版 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script-ZH IDM激活脚本是一个基于Windows批处理语言的自动化工具&#xf…

作者头像 李华