ARTICLE DETAIL

资讯详情

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

从词向量到Transformer:大模型核心原理解读

从词向量到Transformer:大模型核心原理解读 最近总有人问我AI大模型背后到底是什么为什么ChatGPT能理解自然语言GPT-4能看图写代码各类开源大模型能本地跑起来做文案、翻译、OCR市面上的解释要么太浅停留在“它是基于Transformer的”要么太深一上来就是QKV矩阵、多头注意力、反向传播非算法背景的读者很容易被劝退。这篇文章打算换一种讲法沿着一条技术演进线从词向量讲到RNN再到注意力机制最后到Transformer把大模型最核心的原理做一个动画级的急速入门。讲完你会知道三个问题的答案词变成向量之后语义是怎么被计算的RNN/LSTM为什么会慢慢被替代Transformer为什么能成为如今大模型的统一底座内容不追求一步到位推导出全部数学细节重点是建立完整的技术脉络和直觉。建议配合搜索关键词“Transformer结构图”“自注意力QKV图解”一起看效果更好。1. AI大模型到底在解决什么问题先说清楚大模型做的是什么事。无论是GPT、BERT、LLaMA还是ChatGLM它们核心任务可以概括成一句话给定一串文本预测下一个最合适的标记。这个任务被称为语言建模。听起来很简单但难点在于自然语言本身非常复杂一词多义。同一个“苹果”可能是水果也可能是手机品牌。语序敏感。“我爱你”和“你爱我”意思完全不同。长距离依赖。句子开头的一个否定词可能会影响结尾整个语义。上下文相关。孤立的“bank”是银行还是河岸取决于前后文。要让机器处理这些第一步就是解决一个最基本的问题怎么把文字变成计算机能计算的数字。2. 词向量自然语言处理的第一块基石2.1 One-Hot编码为什么不行NLP早期最朴素的做法是One-Hot编码。假设词表里有1万个词就把每个词表示成一个长度1万、只有1位为1、其余全为0的向量。猫 - [0, 0, 1, 0, ..., 0] 狗 - [1, 0, 0, 0, ..., 0]问题很明显维度爆炸。词表多大向量就多长。向量稀疏。绝大部分位置都是0存储和计算效率极低。语义鸿沟。任何两个词的向量距离都一样无法表达词与词之间的相似性。模型根本不知道“猫”和“狗”都是宠物而“猫”和“汽车”毫无关系。2.2 分布式表示与Word2Vec突破口来自分布式表示思想用一个固定长度、稠密的低维向量表示一个词向量的每一维不是明确对应的语言学特征而是通过大量语料学习出来的隐含特征。2013年Google提出的Word2Vec是这个方向的经典代表。它有两种训练思路CBOWContinuous Bag-of-Words用上下文词预测中心词。Skip-gram用中心词预测上下文词。训练完成之后每个词被映射成一个几百维的稠密向量比如vec(国王) - vec(男人) vec(女人) ≈ vec(女王)这说明向量在不同维度上确实编码了“性别”“身份”“王室”等语义特征。词向量之间的距离、方向开始有了语义含义。除了Word2Vec还有GloVe。GloVe的思路是统计词与词的共现矩阵再做矩阵分解把全局统计信息和局部上下文结合起来。在大规模语料上GloVe生成的词向量通常比Word2Vec更稳定。2.3 词向量的局限词向量解决了“词怎么变成数字”的问题但它是静态的。一个词训练完之后只有一个向量无论在什么语境下都用同一个表示。这就导致了著名的“苹果”困境在“苹果很好吃”里它是水果。在“苹果发布了新手机”里它是品牌。静态词向量无法区分。真正要理解上下文就必须让词的表示随着所在句子动态变化。于是研究重点从“词本身”转向了“词在上下文中的表示”。3. 从词向量到上下文表示RNN的崛起与局限3.1 RNN为什么被引入为了解决上下文建模问题循环神经网络RNN被引入NLP。RNN的结构特点是一个隐藏状态在时间步之间循环传递。处理到第t个词时隐藏状态h_t不仅取决于当前输入x_t还取决于上一个隐藏状态h_{t-1}h_t f(h_{t-1}, x_t)理论上通过这种循环传递模型可以把前面所有历史信息“记住”在隐藏状态里。这就像一个人逐字阅读句子每读到一个新词就把前面的信息在脑子里更新一遍。3.2 LSTM给RNN加记忆闸门RNN有一个致命弱点梯度消失。当序列很长时反向传播的梯度会指数级衰减模型很难学到长距离依赖。句子开头的信息传到句子结尾时已经消失殆尽了。长短期记忆网络LSTM通过引入门控机制解决这个问题遗忘门决定遗忘多少历史信息。输入门决定多少新信息写入记忆。输出门决定从记忆中输出多少。LSTM在机器翻译、文本生成等任务上统治了很多年。2014年前后的Seq2Seq翻译模型大多数基于LSTM。3.3 RNN/LSTM的致命缺陷虽然LSTM缓解了梯度消失但本质问题没有解决串行计算无法并行。必须等第t个词处理完才能处理第t1个词。这导致模型训练速度极慢无法吃下海量数据。长距离依赖仍然困难。即使有门控超过几百个词之后信息衰减依然严重。双向建模繁琐。要同时利用前后文需要设计双向LSTM结构更加复杂。当数据集从百万级变成十亿级之后RNN这种串行架构的训练效率成了硬瓶颈。NLP需要一种能并行处理整个序列、同时保留位置信息和上下文关系的架构。Transformer就是在这个需求下诞生的。4. 注意力机制让模型学会聚焦4.1 从Seq2Seq的瓶颈说起在早期机器翻译中Encoder把整个源语言句子压缩成一个固定向量Decoder再从这个向量中生成目标语言。如果句子很长这个固定向量就是信息瓶颈——所有信息都挤在一个向量里细节必然丢失。2014年Bahdanau等人提出注意力机制Decoder生成每个词时不要只看Encoder的最后一个向量而是动态回看Encoder每一个时间步的输出并给每个位置分配一个权重。注意力机制的本质是在每一步生成时学会“应该看哪里”。翻译“I love you”时生成“爱”字时模型应该重点关注“love”这个位置而不是“I”或“you”。权重不是预先写死的规则而是通过训练学习出来的。注意力机制出现后机器翻译质量大幅提升尤其是长句翻译。更重要的是它让模型不再依赖“把全部信息压缩成一个向量”的设计每个输入位置的信息都可以被保留和查阅。4.2 注意力机制的数学直觉注意力机制可以简化为三步打分计算当前解码位置与输入序列每个位置的匹配程度。归一化用softmax把分数变成权重所有权重之和为1。加权求和用权重对输入序列的所有输出向量做加权平均得到当前步的上下文向量。用一句话概括用查询向量去匹配一系列键值对最后按匹配度取出加权值。这个“查询-键-值”Query-Key-Value的抽象正是后续Transformer自注意力机制的雏形。很多人第一次看QKV概念觉得玄乎其实把它理解成“搜索”就顺了Query是你在搜索框里输入的问题Key是每篇文档的标题Value是文档正文。系统先计算Query和所有Key的匹配度再用匹配度去加权提取Value。5. Transformer架构详解大模型的统一底座5.1 Transformer解决了什么2017年Google在论文《Attention Is All You Need》中提出Transformer。它的核心洞见是既然注意力机制能动态聚焦上下文那还保留循环结构做什么完全去掉RNN只靠注意力来建模序列关系。Transformer的优势极其明显完全并行。整个序列可以同时计算不再有串行依赖训练效率大幅提升。直接建模长距离依赖。任意两个位置之间只需一步注意力计算信息传递路径短梯度消失问题被结构性地解决。可扩展性强。并行计算海量数据更多参数让模型规模可以持续放大。5.2 自注意力机制Self-Attention与标准注意力的区别是序列中的每个token既充当查询也充当键和值。也就是说每个词都要和序列中所有词互相计算关联度。具体过程输入序列的每个词向量分别乘三个可学习矩阵W_Q、W_K、W_V得到Q、K、V。计算Query与所有Key的点积除以根号d_k做缩放防止数值过大。softmax归一化得到注意力权重。用权重对Value做加权求和。以一个句子为例“The animal didnt cross the street because it was too tired”。这里的“it”指代谁人类一眼知道指代的是“animal”。自注意力机制做的就是这件事当模型处理“it”这个词时它会自动给“animal”分配一个较高的注意力权重从而把“it”的表示更新为融合了“animal”语义的上下文向量。这就是大模型理解指代、消歧、上下文关联的底层能力来源。5.3 多头注意力一个注意力头只能捕捉一种关联模式实际语言中的关系非常多样。多头注意力就是把注意力计算复制成多份每份使用不同的W_Q、W_K、W_V最后拼接起来再线性变换。直观理解一个头关注语法依赖。一个头关注指代关系。一个头关注语义相关性。一个头关注位置距离。多个头并行工作每个头捕捉不同维度的关联模型表达力大幅增强。这也是为什么大模型动辄几十层Transformer、每层十几个注意力头——越多层、越多头模型能建模的关系模式就越丰富。5.4 位置编码RNN因为有先后顺序的循环结构天然携带位置信息。Transformer完全并行如果不额外编码位置模型看到“我爱你”和“你爱我”就是完全相同的输入。Transformer使用一种正弦波位置编码每个位置添加一个唯一的向量该向量的模式由sin和cos函数按不同频率生成。近年的模型也常用可学习的位置编码或旋转位置编码RoPE思路都是给每个token的向量注入位置信息。没有位置编码Transformer就只是一团无序的词袋有了位置编码才能区分语序。5.5 残差连接与前馈网络Transformer每个子层自注意力和前馈网络外面都包了一层残差连接然后做层归一化。残差连接解决深层网络训练困难的问题。即使网络有几十层甚至上百层梯度也可以通过残差路径直接回传不会衰减。前馈网络FFN由两层线性变换加非线性激活函数组成。注意力层负责在token之间交换信息前馈层负责在每个token内部做非线性变换。注意力层是“词与词的交互”前馈层是“单词的深度加工”。5.6 Encoder-Decoder整体结构标准Transformer是Encoder-Decoder架构Encoder双向注意力每个位置都能看到整个输入序列的前后文。Decoder带掩码的自注意力只能看到当前位置之前的token 交叉注意力去关注Encoder输出。这套结构最初是为机器翻译设计的。后来的大模型发展走出了两条分支BERT只用Encoder适合文本分类、信息抽取、语义相似度等理解任务。GPT系列只用Decoder适合文本生成。GPT也把Decoder的掩码自注意力沿用下来预测下一个词。这两条分支成了现代大模型的源头。如今主流大模型基本都是Decoder-only路线因为生成能力强且能统一建模理解和生成任务。6. 从Transformer到大模型规模化的力量6.1 预训练与微调Transformer带来的是架构能力上限但要变成真正的大模型还需要一套高效训练范式预训练 微调。预训练阶段用海量无标注文本训练模型学习通用的语言规律微调阶段用少量带标注数据让模型适配具体任务。GPT系列论文验证了一个核心结论模型参数量、数据量、计算量按相同比例放大时模型性能会平滑提升。这个规律后来被称为缩放定律。如今大模型的能力本质上是在这个范式下把Transformer网络堆到极大规模得到的涌现效果参数量从几十亿到几千亿。训练数据从几百GB到几TB。训练GPU从几张到上万张。上下文长度从512扩展到百万级。6.2 为什么是Transformer一统天下这个问题在技术社区反复被讨论。核心原因可以归纳成四点并行效率决定了规模化天花板。RNN无法并行十亿级数据集上训练成本不可承受Transformer可以整句并行GPU利用率高。长距离建模能力更强。RNN的递归传递导致信息衰减Transformer直接建图路径最短。架构简洁统一。卷积擅长局部特征RNN擅长序列建模Transformer一个架构全包了而且可以无损扩展到任意长度、任意模态。硬件生态已经围绕Transformer优化。FlashAttention、Transformer内核算子、专用的推理引擎全部为Transformer深度优化生态一旦建立切换成本极高。这也是为什么Swin Transformer能把Transformer引入视觉领域Vision Transformer可以在图像分类上直接替代CNN卷积网络各类多模态大模型也能用同一个Transformer结构处理文本、图像、音频和视频。7. 技术演进Transformer之后方向在哪大模型能力在提升但Transformer本身也有瓶颈其中最主要的是推理成本自注意力计算复杂度是O(n²)上下文越长计算开销增长越快。目前业内主要探索方向有稀疏注意力。只让部分token做全局注意力减少计算复杂度。线性注意力。用核技巧把注意力复杂度降到O(n)代表性工作有Mamba、RWKV。混合架构。把注意力机制与线性RNN混合使用既有全局建模能力又有线性推理效率。MoE混合专家。把网络中的前馈层拆分成多个专家推理时只激活部分专家在相同算力下扩展参数量。从实际产品看GPT-4、Claude、Gemini等头部模型架构细节没有完全公开但推测都用了MoE架构。本地部署社区里Qwen、DeepSeek、LLaMA也大多有MoE版本。8. 大模型入门学习路径建议从词向量到Transformer不是一条过时的历史线而是理解大模型最扎实的学习路径先看懂词向量。理解One-Hot到分布式表示的演进明白语义如何变成几何向量。再看RNN/LSTM。明白为什么串行架构是瓶颈。然后理解注意力机制。重点关注QKV的含义这是理解Transformer的钥匙。最后拆解Transformer。把自注意力、多头、位置编码、残差连接、FFN逐块看懂。学完之后可以结合代码进一步巩固。推荐两个方向用PyTorch手写一个极简Transformer。不用追求复现GPT只需要几十行代码实现一个能训练的自注意力层就能彻底弄懂矩阵形状变化。使用HuggingFace的transformers库加载一个小型GPT模型做文本生成观察参数、输入输出维度加深工程理解。工具、模型、框架更新极快但词向量、注意力、Transformer这套底层概念在未来很长时间内都是AI大模型技术的核心底座。把地基打牢后面学微调、部署、推理优化都会轻松很多。建议收藏这篇文章配合动画图解和代码实现一起看把概念链完整串一遍能帮你少走很多弯路。
返回列表