ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Transformer的灵魂:How to Train Your GPT用派对类比讲透多头注意力(含8步手算实例)

Transformer的灵魂:How to Train Your GPT用派对类比讲透多头注意力(含8步手算实例) Transformer的灵魂How to Train Your GPT用派对类比讲透多头注意力含8步手算实例【免费下载链接】how-to-train-your-gptBuild a modern LLM from scratch. Every line commented. Explained like we are five.项目地址: https://gitcode.com/gh_mirrors/ho/how-to-train-your-gptHow to Train Your GPT 是一个从零手把手训练现代大语言模型的开源项目每行代码都有注释。本文用派对听人说话的类比帮你彻底搞懂 Transformer 的灵魂——多头注意力Multi-Head Attention并附一个数字完全可复算的8 步手算实例零门槛看懂 Q/K/V、缩放、因果掩码和 softmax。 派对类比注意力机制为什么是 Transformer 的灵魂想象你走进一场嘈杂的派对十个人同时在聊天。你会均匀地听所有人吗不会。你的大脑会自动分配注意力正在跟你说话的人 →高关注突然大喊大叫的人 →高关注聊到你感兴趣话题的人 →高关注隔壁桌的八卦 → 几乎不听注意力Attention做的事完全一样模型读到一句话时不会平均对待每个词而是看一眼所有词然后决定这个词现在对我来说有多重要再按权重把所有词的信息混合起来得到一个新的、带上下文的词表示。一句话记忆注意力不是 Transformer 的一部分注意力就是 Transformer 本身。 三张角色卡Q、K、V 到底是什么在派对更准确说是资料检索场景里每个词都会生成三张角色卡角色卡含义派对视角Query查询 Q我正在找什么你耳朵调的频道Key键 K我能提供什么信息每个人胸前的标签Value值 V我的真实内容标签背后真正说的话匹配流程非常直白我的 Q 去和所有人的 K 做点积点积越大代表匹配度越高然后把所有人的 V 按匹配度加权混合就是我的新表示。✏️ 8 步手算实例用 I love dogs 走一遍下面用项目里的小例子2 维向量真实模型是 64 维/头完整手算一遍 I love dogs 中dogs的注意力。完整推导见 Chapter 5 — Attention。初始词向量嵌入后的结果词向量I[0.5, 0.2, -0.3, 0.8]love[0.1, -0.5, 0.7, -0.2]dogs[0.9, 0.3, -0.1, -0.5]第 1 步生成 Q、K、V每个词乘以三张学习得到的矩阵W_q、W_k、W_v训练时随机初始化训练中逐渐学会投影词QueryKeyValueI[0.8, 0.1][0.6, -0.3][0.4, 0.9]love[-0.2, 0.7][0.1, 0.5][-0.3, 0.2]dogs[0.5, -0.4][-0.4, 0.8][0.7, -0.1]第 2 步点积算匹配分dogs的 Q 分别与三个词的 K 做点积score(dogs→I) (0.5×0.6) (-0.4×-0.3) 0.30 0.12 0.42 score(dogs→love) (0.5×0.1) (-0.4×0.5) 0.05 - 0.20 -0.15 score(dogs→dogs) (0.5×-0.4) (-0.4×0.8) -0.20 - 0.32 -0.52结论已经很清晰dogs和I最匹配0.42和自己反而最不匹配-0.52。第 3 步缩放÷ √d_k向量维度 d_k 2所以除以 √2 ≈ 1.414[0.42, -0.15, -0.52] / 1.414 [0.30, -0.11, -0.37]为什么要缩放维度越大点积方差越大Var d_k。不缩放的话分数会飙到 ±24 这种量级softmax 会变得一家独大一个词拿到 0.9999其余全为 0梯度直接消失模型停止学习。缩放让方差稳定在 1 附近。第 4 步因果掩码不许偷看未来训练时每个词只能看到自己及之前的词——像看书一样没翻页就不知道下一页写了什么。I只能看自己love能看I和自己dogs能看全部三个。未来位置的分数被设成 -∞softmax 后自动变成 0。第 5 步Softmax 变成百分比e^0.30 1.35 e^-0.11 0.90 e^-0.37 0.69 总和 2.94 → [1.35, 0.90, 0.69] / 2.94 [0.46, 0.31, 0.23]即处理dogs时46% 注意力给I31% 给love23% 留给自己。第 6 步加权求和 Value把每个词的 V 按注意力权重混合New(dogs) 0.46×[0.4, 0.9] 0.31×[-0.3, 0.2] 0.23×[0.7, -0.1] [0.184, 0.414] [-0.093, 0.062] [0.161, -0.023] [0.252, 0.453]dogs的新向量不再只是狗的意思而是带着I和love语境的狗——I love dogs 从此和 I fear dogs 区分开了。第 7 步拼出完整的因果注意力矩阵对三个词都算一遍得到整张注意力权重表右下角是dogs那一行I love dogs I 1.00 0.00 0.00 ← 只能看自己 love 0.45 0.55 0.00 ← 看 I 和自己 dogs 0.46 0.31 0.23 ← 看全部上三角全为 0正是因果掩码的形状——这是 GPT 类只向前模型的招牌特征。第 8 步多头并行最后拼接单头注意力会把所有关系压缩进一个向量而语言里同时存在主谓关系、代词指代、形容词修饰等多种关系。所以真实模型并行跑 N 个头每个头用独立的W_q/W_k/W_v各自学一种模式最后拼接 一次投影混合信息GPT-2 small768 维 ÷ 12 头 每头 64 维。这些 Q/K/V 矩阵和注意力权重不是设计出来的而是训练学出来的每走一步模型预测下一个词就更准一点损失随之下降如图中的训练曲线注意力也自然学会让代词照亮名词、动词照亮主语。 多头学到了什么研究者的观察分析训练好的 GPT-2 后人们发现不同的头确实各有所长层的位置倾向学习什么早期层1–3局部语法相邻词、标点、基础句法中间层4–8语义关系主谓、动宾、实体追踪后期层9–12高层模式话题连贯、否定范围、指代消解还有复读机头复制前一个词、位置头只按距离分配注意力等专门化角色——正像派对里有的耳朵只听语气有的只听内容。 在项目里动手看注意力想验证本文所有数字可以打开这些文件对照主章节含完整 8 步推导与热力图chapters/05_attention.md白话讲解词与词如何对话explanations and examples WIP/attention.md可交互 Notebooknotebooks/05_attention.ipynb位置编码 RoPE注意力为什么关心相对距离chapters/04_positional_encoding.md注意力在 Transformer 块中的位置chapters/06_transformer_block.md完整可运行脚本main.py✅ 一分钟总结关键点一句话注意力是什么每个词决定现在该多关注其他哪些词再加权混合信息Q / K / V我找什么 / 你提供什么 / 你的真实内容为什么要 ÷√d_k防止分数过大导致 softmax 失真、梯度消失因果掩码训练时不许偷看未来保证预测下一词不作弊多头12 个专家并行、各看一种语言模式最后拼接看完本文你已经比多数调 API 式教程的理解更深一层你不仅知道注意力有效还亲手算出了它为什么有效。接下来顺着 README 从 Chapter 0 读起把整个 GPT 一行一行亲手搭出来吧 【免费下载链接】how-to-train-your-gptBuild a modern LLM from scratch. Every line commented. Explained like we are five.项目地址: https://gitcode.com/gh_mirrors/ho/how-to-train-your-gpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表