小白程序员轻松入门大模型:趣解Transformer的关键一步——词嵌入与位置编码
本文深入浅出地解析了Transformer模型如何理解词义和词序。首先介绍了词嵌入的概念即如何将每个词转换成有意义的数字向量帮助模型捕捉词义。接着针对Transformer一次性处理所有token而忽略顺序的问题提出了位置编码的解决方案。通过使用不同频率的正弦和余弦函数组合为每个位置生成独特的编码既保留了词的含义又赋予了模型位置感知能力。这种简单而有效的编码方式是Transformer模型理解序列数据的关键一步。Transformer 热潮。你最近在网上接触到的一切都源于此。你可能没意识到但只要用过 ChatGPT、GitHub Copilot 或其他 LLM 厂商的产品你就已经在用 Transformer 了。这套架构是现代 AI 背后的引擎。而这一切都始于 2017 年的一句话“注意力就是你所需要的一切。”这是一个石破天惊的时刻重塑了我们对序列建模的思考方式。不再有 RNN 那种缓慢的逐步处理也不再有 LSTM 那样的短期记忆难题。时至今日“Transformer”变形金刚大概是科技圈里含义最被滥用的词了抱歉了擎天柱。那么与 RNN、LSTM 相比Transformer 到底是怎么工作的这正是 Transformer 系列后续博客要讲的内容。PS有兴趣阅读原文吗从 arXiv 下载。RNN 和 LSTM 第一部分和第二部分回顾。在第一部分我们认识了 RNN——一种带记忆的神经网络。它一次处理一个输入靠传递隐藏状态来记住过去。可即便是中等长度的序列它也难以应付训练还慢得让人头疼。第二部分介绍了 LSTM一次巧妙的升级引入门控和双记忆路径修好了最严重的问题让序列建模真正能用了——至少在序列变长之前是这样。两者背后的核心理念是顺序是天生内置的。正因为网络必须逐步处理数据它从设计上就理解了顺序。说*“国王和王后”和说“王后和国王”不是一回事说“狗在沙发上”和说“沙发压在狗身上”*也不是一回事。Transformer 则是另一类网络。它一次性处理全部数据这对速度是好事但——除非我们给网络一个理解顺序的工具否则它根本意识不到*“沙发压在狗身上”*有多荒谬。这正是本文的意义所在。在谈注意力或任何花哨机制之前得先弄清 Transformer 究竟是怎么知道每个词在哪儿的——就从词嵌入和位置编码讲起。为什么我们今天只讨论嵌入和位置而不是直接深入混乱先把一件事说清楚。靠一篇博文根本不可能讲清整个 Transformer 架构。硬要这么干的人多半是在写教科书——要么就是暗暗憎恨自己的读者。如图所示Transformer 由多层运转的部件组成词嵌入位置编码多头自注意力层归一化前馈层残差连接等等如果你是新手这张图看着可能像电影《盗梦空间》里的场景盒子套着盒子箭头射向四面八方……而驱动 ChatGPT 的那个东西就藏在里面某处。今天我们讲位置编码顺带提一下词嵌入。这两者正好坐在 Transformer 的入口每一个输入都要先经过它们。在注意力、多头投影这些花哨操作登场之前它们就是模型理解文本的方式。那就从 Transformer 流水线的第一步说起我们为什么一开始就需要词嵌入。在确定位置之前我们需要嵌入。机器不懂语言只懂数字。所以第一步是把每个词转换成模型能处理的东西一个数字向量。这种数值表示采用向量形式——一组捕捉词义的数字。这些向量就是所谓的词嵌入紧凑、可学习的表示刻画了一个词的含义。可以把词嵌入理解成网络给每个词发的一张“有意义的指纹”。不像独热向量在那里“王后”和“国王”毫无关联词嵌入会把相似的词在高维空间里安排得彼此靠近。一个简单的例子想象每个词都活在一个二维空间里。真实模型里更像是 512 维——但眼下二维就够用了。下面是几个示例向量数值为求简单是编的dog : [0.50, 0.30] couch : [0.10, 0.90] king : [0.95, 0.20] queen : [0.93, 0.25] and : [0.40, 0.60] on : [0.35, 0.62]注意“国王”和“王后”靠得很近离“和”很远而这两个词之间的距离又比“沙发”和“狗”更远。也许它在区分人、动物和物体或者机器自己学到的某种实体关系。有了词嵌入网络就能开始推理相似性、类比这些东西了。这些数字编码是怎么生成的今天先不讲那本身就是一个大话题。眼下你只需记住两点1. 词被转换成数字2. 这些数字本身给了机器一个起点让它开始在语义上把词联系起来。既然已经瞥见了词嵌入层的作用接下来就设想一个假设场景位置编码根本不存在。没有位置信息的问题。嵌入告诉你那里有什么但没告诉你它在哪儿。接下来我们盯住下面这句话狗坐在沙发上多亏了嵌入模型已经隐约知道“狗”和“沙发”有点关系。它甚至可能“懂得”这两者比“国王”和“王后”更相关——后者在语义上很接近却活在一个完全不同的主题世界里。于是模型知道“狗”和“沙发”是一对。但它知道的也就这么多了。如果只靠词嵌入模型并不在乎“狗”在“沙发”之前还是之后。它会把下面这串东西看成一组飘在空间里的词语义上成簇结构上却彼此脱节[The, dog, sat, on, couch]LSTM 本身就内置了“位置”信息。拿 LSTM 来对比。它一次读一个 token每一步更新隐藏状态。这种缓慢的、一步一步的特性其实是个优点它把顺序焊进了模型里。LSTM 会学到“狗坐在沙发上”很常见而“沙发坐在狗身上”就……有点怪了。Transformer没有这种优势。它一次性看到所有 token。这对速度和并行是好事对追踪顺序却是灾难。除非我们另作说明否则“couch sat dog on”和其他任何排列一样“合理”。这就需要用到位置编码了。它们给每个 token 一种位置感不只是这个词是什么还有它落在句子里的什么位置。这正是那个缺失的要素让模型能说出“狗在沙发之前——而不是反过来。”所以词嵌入帮模型知道“狗”和“沙发”算是朋友比“国王”和“王后”更亲近但真正告诉它谁先到场的是位置编码。而这一点区别决定了一切。一个糟糕的位置编码示例Transformer 究竟是如何利用位置信息的好我们把 Transformer 的架构图请回来图里可以看到输入和输出嵌入层是和位置编码层相加的。就这么简单不过是向量相加。我们拿一个最朴素的例子验证一下。简单示例其中位置编码只是一个全为 0 的向量假设我们的位置向量全是零。给词嵌入加上一个全 0 向量什么都不会变二维图上的点纹丝不动。embedding(couch) [0, 0] embedding(couch)于是数学测试过了语言测试却没过。显然得往词嵌入里加点东西才行。那么——如果把真实的位置传进编码向量里呢使用实际位置是个坏主意看下面的例子。我们把 token 索引加进位置编码向量里。Position 1 → [1, 1] Position 2 → [2, 2] Position 3 → [3, 3] ...看出问题了吗你正在盖过词嵌入。大多数词嵌入都很小取值通常落在 [0, 1] 区间。可一旦你的位置向量写着[200, 200]模型就不再关心这个词是什么意思……而只盯着它在哪儿。语义信号被彻底淹没了。看下面这张带有新位置的二维图。由于这些位置向量太强会发生这么几件事**1. *“couch”*原本在 *“dog”*左边但因为它移动了 6 格现在跑到“dog”右边去了**2. 想想位置被表示得多强你会看到 *“couch”*排在“dog”之后——这恰好和原句一致。3. 但由于位置嵌入压过了语义嵌入网络可能净学些奇怪的东西。学习到的位置嵌入真的那么糟糕吗未必——GPT-2 和 BERT 用的就是可学习的绝对位置向量效果很好。真正有害的是给模型一个幅度盖过词嵌入的位置信号或者模式太简单比如[k,k,k,…]。 那么好的位置编码应该具备哪些特点呢两点1. 唯一性每个位置必须有独一无二的编码。2. 平衡编码得足够强才有意义但又不能太强以致抹掉词本身的含义。这正是位置编码必须走的钢丝。那么什么样的向量能做到这时正弦和余弦就登场了。正弦和余弦解法。《注意力就是你所需要的一切》论文中提出了一种复杂但令人惊叹的解决方案。为了编码位置信息作者写道我们使用不同频率的正弦和余弦函数 […] 选择这个函数是因为我们假设它能让模型更容易学会按相对位置来关注因为对任意固定偏移量kPEposk都可以表示成PEpos的线性函数。并给出了下面这个公式别担心我们马上会看到这个解法没那么吓人。建立直觉正弦/余弦向量是什么样子的先把上面那些公式忘掉一秒钟。回到高中想想正弦和余弦函数长什么样。在下图里我画了1. 正弦和余弦的理论曲线。2. 我把我们的例句放在 x 轴上作参照。3. 我还用一个红色散点和一条淡淡的竖线标出了那个理论词位假设“狗”的位置 2与曲线的交点。这样会得到一张类似下面的表把这些画出来每个词现在都有了一个小小的“波形 ID”。你已经在编码顺序了——而且很温和。如果把这个二维 [sin, cos] 向量当作位置编码最终的二维图会是这样层叠波浪为什么它的神奇之处真的有效现在回到论文怎么说。虽然听起来很绕但实际上比听上去简单多了。与其只用一对正弦/余弦就像上面那样不如叠很多对上去——每一对的频率略有不同。下面是一个六维向量的层叠示例对应我们的玩具短语*“狗坐在沙发上”*每一对各占位置编码向量的一个独立维度。于是对于d_model 6你会得到3 个正弦波低频、中频、高频3 个余弦波分别匹配每个正弦波它们共同为每个位置构成一道独特而平滑的特征签名。需要多少个波它们的波长分别是多少论文里明确使用的波数由dmodel决定也就是每个 token 向量的宽度比如 2017 年的论文用的是dmodel 512而新模型很可能轻松超过这个数。根据上面给出的公式每个偶数维2i配一个正弦对应的奇数维2i1配上匹配的余弦。因此i取遍dmodel/2d个索引 → 也就是这么多个频率 / 波长。例如在我们的 6 维玩具示例里dmodel6所以我们造了 3 对波长。至于波长如果把分母还原成波长会得到于是最短波长是 2π指数为 0 时最长是 2π⋅10000指数为 1 时。这意味着波长按几何级数增长让模型既拿到非常精细、也拿到非常粗粒度的位置信号。比如高频波长有的追踪细小的变化token 到 token。低频波长有的捕捉长距离的漂移token 4 与 token 40。为什么正弦和余弦解法效果如此出色✅ 1. 唯一位置编码多个正弦/余弦函数组合在一起确保每个位置都得到一个不同的向量。✅ 2. 可控幅度因为正弦和余弦始终在 -1 到 1 之间叠加的总信号永远不会太大。位置向量只是轻轻推一下词嵌入而不是把它推下悬崖。 结果你保留了词的含义同时给了它一种身处句子中某个位置的感觉。总结一下Transformer 在开始之前需要什么在 Transformer 能关注任何东西之前在它开始计算加权和、或寻找词与词的关系之前它需要两样东西1. 知道每个词意味着什么。词嵌入负责这件事。它把每个 token 锚定在一个丰富的语义空间里——“国王”挨着“王后”“狗”离“猫”比离“沙发”更近。*2. 知道每个词在哪儿。位置编码负责这一件。它注入一种柔和的、有节奏的结构——让模型明白“狗坐在沙发上”和“沙发坐在狗身上”*不是一回事。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取

相关新闻

如何修复Photon光影包屏幕空间反射异常:终极解决方案指南

如何修复Photon光影包屏幕空间反射异常:终极解决方案指南

如何修复Photon光影包屏幕空间反射异常:终极解决方案指南 【免费下载链接】photon A gameplay-focused shader pack for Minecraft 项目地址: https://gitcode.com/gh_mirrors/photon3/photon 你是否在Minecraft 1.20.4版本中使用Photon光影包时,…

2026/10/8 16:06:16 阅读更多 →
「四可」改造到底要花多少钱?硬件、协议适配、合规三块成本拆解

「四可」改造到底要花多少钱?硬件、协议适配、合规三块成本拆解

「四可」(可观、可测、可调、可控)改造是分布式光伏储能接入电网的合规门槛。但「改造要花多少钱」这个问题,多数项目方在投标阶段没拆细,结果到执行时预算严重超支。 给电站投资人、EPC、集成商讲一遍四可改造的真实成本结构&am…

2026/10/9 10:30:48 阅读更多 →
终极抖音批量下载指南:免费开源工具如何5分钟搞定素材收集

终极抖音批量下载指南:免费开源工具如何5分钟搞定素材收集

终极抖音批量下载指南:免费开源工具如何5分钟搞定素材收集 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…

2026/10/9 16:13:26 阅读更多 →

最新新闻

5G-A通感融合能力开放:NEF架构、接口与信令流程详解

5G-A通感融合能力开放:NEF架构、接口与信令流程详解

简介:这份文档资料聚焦5G-A阶段通信感知融合的能力开放技术,面向通信领域研究者、核心网工程师及高校相关专业师生,帮助读者系统理解通感一体化从架构设计到业务落地的完整脉络。资源包内含1个docx文档,大小约151KB,内…

2026/10/13 19:40:25 阅读更多 →
YOLOv8人脸表情识别训练避坑指南:从数据集到推理部署

YOLOv8人脸表情识别训练避坑指南:从数据集到推理部署

简介:YOLOv8算法人脸表情识别训练权重与配套数据集组成一套可直接上手的目标检测训练资源,面向计算机视觉开发者和算法学习者,适用于人机交互、课堂专注度分析、驾乘安全监测等需要判断人物情绪状态的场景,也适合作为相关课题演示…

2026/10/13 19:40:25 阅读更多 →
恶意加密流量检测:深度学习与特征筛选完整源码实战

恶意加密流量检测:深度学习与特征筛选完整源码实战

简介:基于深度学习的恶意加密流量检测系统是一份完整的Python毕业设计源码与文档资料,面向信息安全方向的高校学生,可用于课程设计、期末大作业或毕设答辩。项目覆盖恶意加密流量识别的数据预处理、特征筛选、模型训练、结果分析与可视化展示…

2026/10/13 19:40:25 阅读更多 →
MQL5 通过 libmysql.dll 访问 MySQL:从环境配置到批量写入的完整实践

MQL5 通过 libmysql.dll 访问 MySQL:从环境配置到批量写入的完整实践

简介:这份文档资料面向使用 MetaTrader 平台进行量化开发的程序员,聚焦 MQL5(MQL4)无法直接与数据库交互这一痛点,讲解如何借助接口库访问 MySQL 数据库。内容围绕 MQLMySQL.mqh、MQLMySQL.dll 与 libmysql.dll 三层结…

2026/10/13 19:40:25 阅读更多 →
EJB入门项目实战:三类Session Bean与JNDI部署避坑指南

EJB入门项目实战:三类Session Bean与JNDI部署避坑指南

简介:这是一份面向EJB初学者的入门实践项目,基于IDEA与JBoss 7.1.1应用服务器,覆盖无状态/有状态会话Bean、实体Bean与消息驱动Bean的搭建与部署,适合正在学习Java EE组件化开发、希望理解EJB生命周期与事务控制的读者。压缩包共4…

2026/10/13 19:40:25 阅读更多 →
Nano Banana 2.1降价背后:API账单未减半的三大原因

Nano Banana 2.1降价背后:API账单未减半的三大原因

Nano Banana 2.1降价了,价格直接腰斩。按常理想,原来一个月花100元的API调用费,现在应该50元就够了。可我这几个月盯着账单数据,发现事情远没有这么简单——有些月份总花费只降了10%出头,甚至有一个周五的峰值账单比降…

2026/10/13 19:39:21 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →