数字如何变成意义?How to Train Your GPT带你搞懂词向量Embeddings(king − man + woman = queen) 数字如何变成意义How to Train Your GPT带你搞懂词向量Embeddingsking − man woman queen【免费下载链接】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《How to Train Your GPT》是一个带你从零手写语言模型的开源教程而**词向量Embeddings**正是语言模型学会理解单词的第一步把 token 编号 9246 变成 768 个数字组成的向量让意思相近的词在意义空间里彼此靠近。本文用它最著名的例子king − man woman queen讲清楚数字凭什么能拥有意义。为什么不能直接给模型用词的编号分词Tokenization之后每个词都变成了一个任意整数 IDcat是 9246dog是 4821the是 279。问题在于9246 和 4821 只是标签不代表任何关系。9246 比 4821 大但cat并不比dog更大给编号做加减毫无意义king(9246) queen(9247) 18493这个数字不对应任何词模型没法从一个孤立的整数里学到相似词向量Embedding就是解决这个问题把 ID 变成一串连续的小数。意思相近的词向量也相近cat → [0.023, -0.451, 0.789, ..., -0.102] dog → [0.019, -0.443, 0.795, ..., -0.098] ← 非常接近 the → [0.891, 0.112, -0.334, ..., 0.567] ← 天差地别词向量表一栋 768 层的巨型公寓楼 章节里用了个绝妙的比喻每个词都住在一栋768 层768 维的大楼里。cat住在 3 层东、15 层北……dog住在隔壁附近——因为它们都是动物car住在大楼的另一个角落——离它们很远Embedding 层本身没有任何复杂运算它就是一张查表。输入 token ID返回表里那一行向量。输入[1169, 3797]The cat输出就是两个 768 维向量直接送进后面的注意力层。顺带一提这张表往往是大模型里参数最多的部件之一GPT-2 是 50257 个词 × 768 维 ≈ 3860 万个数字GPT-3 更是 6 亿多。这也是权重共享weight tying技巧的由来——输入和输出共用同一张表省下一半参数。king − man woman queen向量算术的魔法 这是 Embeddings 最有名、也最魔法的例子king − man woman ≈ queen它为什么成立因为king的意义可以拆成两个分量分量与谁共享 王室身份queen、prince、throne 男性man、he、boy减去man就去掉了男性这个方向加上woman补上了女性方向剩下的就是王室 女性——正好落在queen附近。关键点这不是任何人手动写进模型的。模型在读了海量句子后自己发现改换性别相当于在向量空间里沿一条直线平移。这种规律是从语言数据里自然涌现出来的。词向量是怎么被训练出来的既然向量一开始是随机的意义从何而来分四步随机初始化每个词先随机分配 768 个小数。此刻cat和dog的距离和cat与democracy一样——全是噪声。训练信号模型看到 The cat sat on the mat要预测下一个词。预测错了loss损失就高。梯度下降微调反向传播把一小撮信号传回词向量表比如cat的第 5 维 0.0003。每一步的改动都极其微小。亿级 token 后涌现结构cat渐渐靠近dog、pet、feline远离car、photosynthesis。768 维空间里甚至自发形成方向——有的方向管有生命/无生命有的管大/小有的管正面/负面。下面这条真实训练曲线就是证据loss 一路下降说明词向量正从随机噪声变得越来越有含义30 秒亲手体验词向量import torch, torch.nn as nn emb nn.Embedding(1000, 4) # 1000 个 token每个 4 维 vectors emb(torch.tensor([[12, 45, 678]])) # 查表拿到 3 个向量 print(vectors[0, 0].tolist()) # token 12 目前是随机数训练后才代表意义学习资源清单 资料说明chapters/03_embeddings.md主章节公寓楼比喻 完整注释代码explanations and examples WIP/embeddings.md独立讲解向量算术、Word2Vec 历史、权重共享notebooks/03_embeddings.ipynb可交互 Notebook边跑边学main.py包含 Embedding 层的完整可运行脚本chapters/11_glossary.md术语表复习权重共享等概念一句话总结词向量就是单词在意义空间里的坐标。它从随机噪声出发靠无数次预测下一个词的微小纠错最终长出 king − man woman queen 这样的结构——意义不是被写进去的而是被训练出来的。【免费下载链接】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),仅供参考