牟平做网站,网站金融模版,一般网站开发公司,大连网站建设辽icp备大模型#xff08;Large Language Model #xff0c;LLM#xff09;技术的迭代犹如技术爆炸#xff0c;半年前的先进技术如今已成基础的基础。Polo Club 做了 Transformer 模型的动态图解#xff0c;对可视化地理解 Transformer 的工作原理非常友好。另外#xff0c;Deep…大模型Large Language Model LLM技术的迭代犹如技术爆炸半年前的先进技术如今已成基础的基础。Polo Club 做了 Transformer 模型的动态图解对可视化地理解 Transformer 的工作原理非常友好。另外DeepSeek-V3 的论文犹如嘉年华大放送详细介绍了从模型到基础设施的方方面面并且还开源了甚至讲解了生产级的 MoE 实现。Polo Club 可视化https://poloclub.github.io/transformer-explainer/引用DeepSeek-V3 的论文[1] DeepSeek-V3 Technical Report: https://arxiv.org/pdf/2412.19437[2] DeepSeek infra: https://arxiv.org/html/2408.14158v1[3] DeepSeek-R1: https://arxiv.org/pdf/2501.12948DeepSeek 开源[4] 模型: https://github.com/deepseek-ai/DeepSeek-V3[5] 3FS: https://github.com/deepseek-ai[6] 更多组件: https://github.com/orgs/deepseek-ai/repositories?typeall总体架构从上图可以看到Transformer 模型本质上是一打 Transformer Block上十个或上百个。今天的 Transformer 模型基本是Decoder-only的因为更易训练更易优化性能以利用Scaling Laws。很早就有研究表明神经网络Neuro Network, NN增加深度比增加宽度更有效因为更深的神经网络类似组合函数拟合表达能力更强下一层可以利用上一层的中间结果。下面讲解上图中的组件Transformer 模型入口处有一个Embedding 层它做了分词TokenizationToken Embedding位置编码Positional Encoding三件事。分词基于频率识别词缀和词组例如 “un”、“ing”、“able” 也被识别为单独的 Token 。Token Embedding 将 Token ID 映射为向量其参数与 Transformer 模型一起训练得到。位置编码例如 Sinusoidal Encoding 将 Token 在句子中的相对位置编码融合进 Token 输入。中间是一打堆叠的Transformer Block这个架构和几年前的卷积神经网络 (Convolutional Neural NetworkCNN) 有相通之处。CNN 用于图像视觉处理。其较低层的神经网络学习局部和句法模式而较高层学习全局语义和推理像一座“抽象之塔”。Attention 在 Transformer Block 内部后文详解。最后是输出层。最后一个 Transformer Block 输出的向量会被乘以一个大矩阵up-project见后文到一个和词汇库一样大的向量称作 Logits 。随后Logits 被选择 Top-K 个值最大的 Token 。最后用 Softmax 将 Logits 值映射成概率从概率中抽样选择一个 Token 输出。可选地在进入 Softmax 前可以将 Logits 除以 Temperature 值。Temperature 越高则概率被拉平模型的最终输出具有更高的随机性高温高熵。Embedding 在 Transformer 前已有多年的应用它将词语转换成具有几何距离的高维向量这样模型才能处理。而位置编码与 Transformer 一起被广为人知它的数学即简单又精妙。输出层的 Softmax 方法是神经网络常用的。而Transformer Block中包含着大模型的关键见下文。图片来源https://docs.nvidia.com/deeplearning/transformer-engine/user-guide/examples/te_llama/tutorial_accelerate_hf_llama_with_te.html引用[7] 为什么现在的LLM都是Decoder only的架构: https://www.zhihu.com/question/588325646[8] 为什么神经网络更深比更宽有效: https://www.reddit.com/r/MachineLearning/comments/h0g83p/d_why_are_deeper_networks_better_than_wider/[9] 卷积神经网络 CNN: https://learnopencv.com/understanding-convolutional-neural-networks-cnn/[10] 位置编码详解: https://medium.com/thedeephub/positional-encoding-explained-a-deep-dive-into-transformer-pe-65cfe8cfe10bTransformer BlockTransformer 模型的核心是 Transformer Block 其中具体有什么呢首先是Attention模块Transformer 的魔力来源于此后文章节将详述。剩下的部分是神经网络以及一些技巧。其次是前馈神经网络Feed-forward networkFFN。前馈神经网络只是最基础的神经网络的夸张名字。网络结构简单直接输入层 - 隐藏层 - 输出层隐藏层可以有多层。被称为“前馈”是因为数据只能向前流动。FFN 也常常被称作多层感知机Multilayer Perceptron, MLP、全连接神经网络Fully Connected NetworkFCN。RMSNormRoot Mean Square Normalization直译为用均方根来做标准化。神经网络各层间常作标准化Normalization以规范激活的取值范围避免梯度爆炸或消失。RMSNorm 逐渐取代 LayerNorm 成为大模型的主流。RMSNorm 参数更少更易训练并且能够保留向量的方向而不是像 LayerNorm 一样减去平均值。下一个关键是残差连接Residual Connection出自 ResNet 。在深度神经网络中增加一个跨层的连接可以缓解“深”带来危害避免信息消失、错误积累帮助梯度在深层次中传递。(图片出自 DeepSeek-V3 论文。)FFN 是神经网络的基础早已有数十年的应用。RMSNorm 也很常见神经网络各层见总是需要标准化Scaling、Normalization、Standardization 是处理特征的标准方法。残差连接简单有效在几年前的 ResNet 推出后被广泛采用。而Attention才是真正的原创Attention is all you need 。引用[11] FFN: https://learnopencv.com/understanding-feedforward-neural-networks/[12] Normalization: https://2020machinelearning.medium.com/deep-dive-into-deep-learning-layers-rmsnorm-and-batch-normalization-b2423552be9f[13] ResNet: https://en.wikipedia.org/wiki/Residual_neural_networkAttentionAttention 是 Transformer 的关键。下图是注意力Attention的公式。原公式的信息密度很高下面用代码把它展开成更普通的形式然后逐条讲解每个组件。// InputMatrix 的每一行是一个输入 Token 的 embedding 向量// 行数是 Token 的总数Q InputMatrix * WeightMatrix_QK InputMatrix * WeightMatrix_KV InputMatrix * WeightMatrix_V// Attention 的公式Attention softmax((InputMatrix * WeightMatrix_Q * WeightMatrix_K^T * InputMatrix^T) / sqrt(d_k)) * (InputMatrix * WeightMatrix_V)下面逐项讲解公式中的组件输入矩阵InputMatrixTransformer 以 Token 作为输入每个 Token 表示为一个向量Embedding。一次文本输入可达数十至百万 Token Token 向量有数百至千维。Token 向量以行表示一行行叠起来组成输入矩阵。有的文章中Token 向量是以列表示的你会看到 Attention 公式变成 Q^T * K Q WeightMatrix_Q * InputMatrix 不影响结果。Q InputMatrix * WeightMatrix_QQ 缩写 Query。在计算 Attention 前输入InputMatrix被事先乘以一个权重 WeightMatrix_Q 得到 Q 。用权重处理输入是常用手法K、V 也由此得到。K 缩写 KeyV 缩写 Value。QK^T方形矩阵维度是 Token 的总数非常巨大矩阵的元素是浮点数值不是向量。展开后其形式是 InputMatrix * M * InputMatrix^T 。矩阵 (i,j) 位置是 Token i 和 Token j 的点积加权重。形象的含义是文本输入一串 Token自己看向自己相乘。这是 “Self-attention” 的由来“自注意力”。Sqrt(d_k)d_k 是 Token 向量的维数。Sqrt(d_k) 常被称作 “Scaling factor”。假设 Q 和 K 中的元素符合正态分布 N(0,1)QK^T 会将方差增加到 d_k 。为了使结果的方差回到 1 需要除以 Scaling factor —— sqrt(d_k) 。Softmax它是常用于概率的标准化Normalization公式按行作用于输入矩阵。经过 softmax 一行中的元素之和变为 1这一行变得像一组概率。QK^T 经过 softmax 处理变成了 Token i 看向 Token j 的概率Self-attention。Softmax 公式用 e 求指数因为概率与指数有天然联系可以看指数分布下的 MTBF 。*V经过上面softmax(QK^T/sqrt(d_k)) 得到了 Self-attention 的概率。概率还需要乘以输入的值才能得到同一量纲的输出。V 就是输入的值加权重所以叫 Value 。总结起来Attention 可看作给 Token 输入InputMatrix加了权权重是 Self-attention 。注意 Q、K、V 的权重是右乘加权作用于单个 Token 向量内。而 Self-attention 的权重是左乘加权作用于多个 Token 间使 Token混合。此外Attention 还有一些额外要点多头Multi-headTransformer Block 中的 Attention 层是 Multi-head Attention 。即这层中同时在跑多个 Attention 模型每个被称为一个“头”各自拥有独立的参数总头数有十几到几十。“多头”的术语可能源自图像处理如 CNN处理 RGB 像素至少需要三个通道三个头。Masking掩码如果 Transformer 支持 1M Token 的上下文那么 Attention 理论上在处理 1M * 1M 维度的矩阵。但实际上见 KV Cache 一节Attention 的计算实现是一个 Token 一个 Token 进行的。如果用户输入是 1000 个 Token那么在计算到第 900 个 Token 时Prefill后面的 100 个 Token 需要填零。这是 Masking 的第一重含义。用户输入加输出大概填不满 1M 长度的上下文那么这些填不满的部分也需要填零。这是 Masking 的第二重含义。零在 softmax 计算时并不能转换成零概率e^01。为了概率零需要将输入从零改成负无穷。这是 Masking 的第三重含义。引用[14] 深入理解 Attention 机制 P2: https://medium.com/funcry/in-depth-understanding-of-attention-mechanism-part-ii-scaled-dot-product-attention-and-its-7743804e610eAttention 的几何形象Attention 其实有非常生动且符合直觉的几何形象。在有了上面的基础之后下面更深入地解释 Attention 在做什么Embedding这是 Attention 的输入。Embedding 将 Token 转换为向量开始进行 Attention 计算。这些向量是有几何含义的。两个向量的夹角小、点积Dot product大表示对应的 Token 的含义接近。向量相加能够混合含义生成新的 Token如 king woman queen 。Q InputMatrix * WeightMatrix_QEmbedding 的 Token 向量没有直接参与 Attention 计算而是先乘以 Q 的权重矩阵。把 WeightMatrix_Q 的每一列想象成另一组 Embedding 向量它们是尺子。其与 Token 向量相乘是在测量 Token 与尺子有多相近。输出 Q 则是以这组尺子为基准坐标重建出来的 Token 。WeightMatrix_K 同理。位置编码这里以 RoPE 举例简化来讲它将 Token 向量旋转了一个角度。Token 在句子中的位置越靠后旋转角度越大。两个 Token 的距离越远旋转角度之差越大。在句子中相隔同样距离的两个 Token无论位置旋转角度之差总是相同的。角度差越小点积越大。这样位置编码使相邻的 Token 得到更高的 Attention 分数。QK^T这是把 Token 两两互相求点积点积就是 Attention 分数之后通过 sqrt(d) 和 softmax 做标准化。那么两个 Token 向量的夹角越近含义越近在句子中的位置越近就会拥有更大的 Attention 分数。*VAttention 计算最后将 Attention 分数乘以 V 这是在将 V 各行所代表的 Token 向量进行混合。如果这一行的 Token 对另一 Token 有更高的 Attention 分数那么后者混合时的权重更高。Attention 最终的输出中原 Token 向量变成了——自己 它所“关注”的句子上下文。图中忽略了 sqrt(d)、softmax 等用于 Normalization 的部分。有了几何解释可以发现Attention 分数本质是在计算 Token 向量间的两两相似性。如果没有位置编码那么 Attention 将变成对 Token 是顺序无关的Permutation Invariant。因此位置编码才必须要被引入。KV CacheAttention 的另一巨大优势在于计算。如果 Transformer 支持 1M Token 的上下文那么 Attention 理论上在处理 1M * 1M 维度的矩阵相乘。但实际上Attention 可以实现成一个 Token 一个 Token 增量、递进地计算。下一个 Token 利用上一个 Token 的计算结果即 KV Cache 。下图链接中作者制作了可视化的动态图非常有助于理解 KV Cache 的计算过程。可以看到计算 Token 2 时需要用到 Value Token 1~2Key Token 1~2Query Token 2 。计算 Token 3 时需要用到 Value Token 1~3Key Token 1~3Query Token 3 。Value Token 1~2 和 Key Token 1~2 可复用 Token 2 的计算。计算 Token 4 时需要用到 Value Token 1~4Key Token 1~4Query Token 4 。Value Token 1~3 和 Key Token 1~3 可复用 Token 3 的计算。KV Cache 动画https://medium.com/joaolages/kv-caching-explained-276520203249 计算下一个 Token 时总是需要全量的 Key Token 和 Value Token它们可以递进地复用上一轮 Token 的计算结果因而适合存入 Cache 这是 KV Cache 的由来。而 Query 仅需当前 Token 的不需要全量因而没有 Q Cache 。可以看到用户输入的上下文越长Token 越多所需的 KV Cache 成比例地越大成本越高。这解释了为什么 ChatGPT 或同类产品在 UI 设计上倾向于引导用户开始全新的对话。注意KV Cache依赖于之前计算过的 Token。如果上下文中间的 Token 换了一个后面的 KV Cache 就不能复用了。这是因为 Transformer 有很多中间层中间层的 Transformer Block 也有自己的 Attention 和 KV Cache 。中间层的 Token 来自上一层的 Attention 。Attention 的概率加权是跨 Token 的历史 Token 的值会造成当前 Token 的值的不同。因此KV Cache 常作为Prefix Cache实现。Prefix之前的对话历史一致KV Cache 才可复用。在 Agent 设计中System Prompt总是放在对话开头内容总是一样。它们的 KV Cache 可以跨对话、跨用户地被复用。由于 KV Cache 在使用 Transformer 进行推理而非训练时常常将其分为Prefll 阶段和Decode 阶段。Prefill 阶段将用户输入的文本输入 Transformer旨在生成 KV Cache 因而被称作“预填充”Prefill。Decode 阶段发生在 Prefill 完成后Transformer 开始根据用户输入的文本预测后面的文字产生输出。Prefill 和 Decode 阶段有不用的计算特性。Prefill 阶段用户输入已知系统设计旨在最大化并行瓶颈常在于GPU 计算能力。而 Decode 阶段只能线性地一个一个 Token 地预测但 KV Cache 需要全部缓存系统的瓶颈常在于内存显存。引用[15] Mooncake / Kimi 的 Prefill / Decode 分离设计https://arxiv.org/pdf/2407.00079[16] Cursor 关于 Prompt processingPrefill阶段和 GenerationDecode阶段的成本计算 : https://cursor.com/blog/llama-inference#a-primer-in-transformer-mathMulti-Head Latent Attention (MLA)下面介绍一下 DeepSeek-V3 论文中的 Multi-Head Latent AttentionMLA。MLA 的“魔法”是通过 down-projection 压缩来减少 KV Cache 占用从而提升推理性能。而测试表明这种压缩对推理表现的影响不大。下图公式中蓝字方框中的向量被 KV Cache 缓存。h_t 表示 Token 向量embedding它是 Attention 的输入。W^D* 矩阵表示 down-projection 矩阵W^U* 矩阵表示 up-projection 矩阵。k、q、v 分别指 Attention 中 K、Q、V 的向量。k_t,i 中t 表示第 t 个 Tokeni 表示第 i 个头Multi-head。c* 是 MLA 的引入的 latent 向量。即经过压缩的、隐藏在中间步骤的向量。*R 表示 RoPE 编码用于编码 Token 在句子中的位置信息。(图片出自 DeepSeek-V3 论文。)下面逐条讲解 MLA 的各组件先看图中右半边不同于普通 Attention 直接用 h_t 计算 K、VMLA 首先将 h_t 给down-project到 c_t^KV 。c_t^KV 被缓存而不是分别缓存 K、V 也不用为每个头缓存一份。这样减少了 KV Cache 的使用。随后c_t^KV 被 up-project 还原出 Attention 计算所需的 K、V 并且多头。再看图中左半边Q 的处理类似也是先将 h_t 给down-project到 c_t^Q 然后再 up-project 还原出 Attention 计算所需的 Q 向量。注意 Q 是不需要 KV Cache 缓存的。观察图中带有 R 的部分MLA 还为 K、Q 向量增加了RoPE位置编码k_t^R 、q_t,i^R 。最终输入 Attention 的向量由 up-project 出的向量和 RoPE 编码后的向量拼接而成。注意 RoPE 编码的向量长度只有前者的一半。而且 k_t^R 没有多头减少 KV Cache 使用。其技巧类似 MQA 所有头共享 K 。最终 K、Q、V 输入标准的Multi-Head Attention进行计算。可以看到节省 KV Cache 的关键在于 down-projection 压缩。而 RoPE 位置编码被划分到独立路径特殊处理。上文的 down-projection 压缩的技巧出现在大模型领域的多个方面也被称作Low-rank Compression与存储领域的“压缩”很不一样。例如应用1LoRA是大模型常用的微调技术微调后的模型可以表示为 h W0 * x ∆W * x W0 * x BA * x 。模型本身的矩阵 W0 和参数更新 ∆W 维数巨大更新成本高昂。但 ∆W 可以表达为两个较小的矩阵相乘 B * A 。B 的列数和 A 的行数可取任意较小的维数使得 B 和 A 的参数量之和远小于 ∆W 。这是微调比训练成本更低的原因。应用2MLP Expansion/Compression指多层神经网络的中间层升高维度或降低维度。例如输入向量的维数是 768 但中间层的维数是 3072 最后输出又回到 768 维。将神经网络表达成矩阵形式相当于输入向量首先乘以一个 up-projection 矩阵升维进行计算然后在输出时乘以一个 down-projection 矩阵降低还原到原维数。神经网络内部的高维数为存储知识、表达非线性提供了容量。这个技巧被用于 Transformer Block 的 FFN 层。引用[17] Deepseek技术解读(1)-彻底理解 MLA: https://zhuanlan.zhihu.com/p/16730036197[18] LoRA 论文: https://arxiv.org/abs/2106.09685关于 MLA 更深入的问题上面讲解了 MLA 的工作原理随后可以引出一些关于 MLA 的更深入的问题为什么 RoPE 与 K、Q down-projection 需要分开计算可以这样理解回到 Attention 章节的公式QK^T InputMatrix * WeightMatrix_Q * WeightMatrix_K^T * InputMatrix^T 。其中 WeightMatrix_Q * WeightMatrix_K^T 可以事先融合成一个矩阵 M 以简化计算。并且 M 无论对第几个 Token都是不变的。但如果中间插入了 RoPE其对位置敏感就导致 M 没有固定的值了无法简化计算。用论文中的解释为RoPE 与低秩 KV 不兼容RoPE 对 Q 和 K 都是位置敏感的如果为 k_t^C 应用 RoPE 那么 W^UK 将与位置敏感的 RoPE 矩阵耦合导致 W^UK 无法被吸收到 W^UQ 中。Q 不需要 KV Cache但为什么 Q 也需要down-project到 c_t^Q 可以这样理解DeepSeek-V3 的 h_t 向量维度是 7168参与 Attention 计算的 Q 向量维度是 1536 。Naive 的方案是用矩阵 W 乘以 h_t 以降维W 需要 7168 * 1536 维度非常大。而 DeepSeek 的方案中W 被替换为 W^DQ * W^UQ 先降维再升维中间 c 向量的维度是 512 。那么 W^DQ 矩阵的维度是 7168 * 512 W^UQ 矩阵的维度是 512 * 1536 。两者维度之和远小于 W 的 7168 * 1536 参数量大幅减小。这是经典的Low-rank Compression技巧。论文中的解释很精简使用 Low-rank Compression 减少训练中所需的 activation memory 。普通 Transformer 只需要在开头做一次位置编码但为什么 MLA 需要在每个 Attention 层都做 RoPE 老式的 Transformer 使用的是 Absolute Positional EncodingSinusoidal Encoding这里称其为 APE 。APE 在 Transformer 开头编码一次随着残差连接流过整个模型。而更新的模型如 Llama 则使用 RoPE 编码RoPE需要在每个 Attention 计算前都应用一遍是 RoPE 论文如此设计。MLA 也是如此。另一方面如前文提到RoPE 与 down-projection 变换不兼容。因而也需要在计算 Attention 前反复重新应用 RoPE 且 RoPE 的计算与 K、V 的 down-projection 路径是解耦的。输入 InputMatrix 应该先应用 RoPE位置编码还是应该先应用 WeightMatrix_Q 得到 Q 同理 WeightMatrix_K与 APE 应用于 Transformer 开头、WeightMatrix_Q 之前不同RoPE 要求应用在WeightMatrix_Q 之后RoPE 论文如此设计。前者是对 Token 向量加上一个 Position 向量而 RoPE 是乘上旋转矩阵。如果 RoPE 不应用在 WeightMatrix_Q 之后旋转所带来的 Q、K 间的几何角度就会被 WeightMatrix_Q 破坏。为什么 Q、K 需要应用 RoPE 位置编码而V 不需要使用 RoPE 是为了让 Q、K 按照句子中的位置形成角度差以计算 Attention 分数。而 V 用于保存 Token 原始信息它是被用来乘以 Attention 分数的没有必要再用 RoPE 进行旋转。APE 与 RoPE 不同APE 在 Transformer 开头应用位置编码导致所有 K、Q、V 都含有位置编码。而 RoPE 则只应用到Q、K 上见 RoPE 论文。RoPE 中旋转角度具有周期性会导致距离较远的 Token 向量反而得到相近的角度吗即“撞周期”这需要看 RoPE 的公式见引用部分。RoPE 并不是简单地把 Token 向量旋转了一个角度而是 Token 向量首先被分成一系列 2D 分量每个 2D 分量都按不同的速度旋转。对于 Token 位置低维分量旋转快高维分量旋转慢犹如时钟的秒、分、小时指针。单个分量的旋转有周期性但完整的 Token 就很难撞周期了。低维分量旋转快高维分量旋转慢。这使得 Token 向量的低维分量关注句子的局部信息而高维分量关注句子的全局语义。Embedding 本身并不要求高低维分量有不同但 Transformer 的 Embedding 是和 Transformer 一起训练出来的。这使得 Token 向量可以分化对句子远近的学习。(RoPE 的公式图片出自 RoPE 论文。)引用[4] 位置编码详解: https://medium.com/thedeephub/positional-encoding-explained-a-deep-dive-into-transformer-pe-65cfe8cfe10b[19] RoPE 论文https://arxiv.org/abs/2104.09864Mixture of Experts (MoE)DeepSeek 论文中还详细讲解了生产级的 Mixture-of-Experts (MoE) 如何实现。MoE 已经是新一代大模型的标配能够支持更加巨大的参数和稀疏激活。在 MoE 中Transformer Block 的 FFE 层被替换为 MoE 层不同于单个稠密的 FFE 层MoE 将 FFE拆分成许多更小的 FFE 模块称作 “专家”。专家可以同时激活计算时专家并行Expert Parallelism。对于一个输入 Token只有部分专家被激活。这是“稀疏”性的所在相比巨大的总体参数量训练和推理的成本大幅减少。一些专家总是被激活它们被称为共享专家。MoE 引入了路由Router它是 MoE 的关键。路由需要保证负载均衡为 Token 选择亲和的专家甚至考虑设备和网络开销。DeepSeek-V3 的每层 MoE 拥有 256 个专家输入 Token 将激活 8 个专家以及共享专家各专家的处理结果被合并输出。( DeepSeek MoE 架构 出自 DeepSeek-V3 论文。)MoE 是如何进行路由的呢见下图公式u_t 表示输入 Token h_t’ 表示 MoE 的输出。每个专家拥有一个质心向量Centroid记作 e_i 。质心向量与输入 Token 的相似度代表输入与专家的亲和成都。亲和度最高的 Top-K 个专家被激活称作门控 g_i,t 。质心向量是和专家被一起训练出来的。实际的门控还需要应对负载偏斜添修正值和对负载不均衡的惩罚。见 DeepSeek-V3 论文的公式 (16) ~ (20)。由上可以看到路由能够被表达成矩阵运算加上激活函数Sigmoid。也就是说路由模块也是一个非常小的神经网络专家质心是其可以训练的参数出口可以用 Softmax 来抽样激活专家。在 h_t’ 的公式中专家的输出被直接相加获得结果。FFN_i^(s) 是共享专家它们没有门控。此外输入 u_t 也被相加这是残差连接。MoE 在如何使专家负载均衡上常常是难点。Expert Collapse少数专家获得大部分令牌、Expert Starvation某些专家训练不足是路由训练的常见问题。另外也可以发现MoE 有利于减少激活数量、减少计算、专家并行但并不能直接减少内存消耗因为专家都需要被加载。( DeepSeek MoE 的公式 出自 DeepSeek-V3 论文。)为什么对 FFN 层使用 MoE 而不是去切分 Attention 层呢一方面FFN 层一个一个处理 Token 更易切分而 Attention 在处理 Token 对。另一方面FFN 层占据了 Transformer 的大部分参数远比 Attention 多。( DeepSeek MoE 的参数数量 链接https://mp.weixin.qq.com/s/WXrgxV3LgYYvRLPTVzLkjw )引用[20] Deepseek技术解读(3)-MoE的演进之路: https://zhuanlan.zhihu.com/p/18565423596[21] DeepSeek-V3/R1推理效率分析: https://mp.weixin.qq.com/s/WXrgxV3LgYYvRLPTVzLkjw总结全文完。到这里我们介绍了 Transformer 的基础知识从模型架构、神经网络层、Attention、到 KV Cache 也介绍了更深入的 MLA 和 MoE 。DeepSeek 论文详细介绍了大模型从模型到基础设施的方方面面非常值得阅读。而 Polo Club 的可视化 Transformer 可以动态交互非常方便学习。最后唠两句为什么AI大模型成为越来越多程序员转行就业、升职加薪的首选很简单这些岗位缺人且高薪智联招聘的最新数据给出了最直观的印证2025年2月AI领域求职人数同比增幅突破200% 远超其他行业平均水平整个人工智能行业的求职增速达到33.4%位居各行业榜首其中人工智能工程师岗位的求职热度更是飙升69.6%。AI产业的快速扩张也让人才供需矛盾愈发突出。麦肯锡报告明确预测到2030年中国AI专业人才需求将达600万人人才缺口可能高达400万人这一缺口不仅存在于核心技术领域更蔓延至产业应用的各个环节。那0基础普通人如何学习大模型 深耕科技一线十二载亲历技术浪潮变迁。我见证那些率先拥抱AI的同行如何建立起效率与薪资的代际优势。如今我将积累的大模型面试真题、独家资料、技术报告与实战路线系统整理分享于此为你扫清学习困惑共赴AI时代新程。我整理出这套 AI 大模型突围资料包【允许白嫖】✅从入门到精通的全套视频教程✅AI大模型学习路线图0基础到项目实战仅需90天✅大模型书籍与技术文档PDF✅各大厂大模型面试题目详解✅640套AI大模型报告合集✅大模型入门实战训练这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】①从入门到精通的全套视频教程包含提示词工程、RAG、Agent等技术点② AI大模型学习路线图0基础到项目实战仅需90天全过程AI大模型学习路线③学习电子书籍和技术文档市面上的大模型书籍确实太多了这些是我精选出来的④各大厂大模型面试题目详解⑤640套AI大模型报告合集⑥大模型入门实战训练如果说你是以下人群中的其中一类都可以来智泊AI学习人工智能找到高薪工作一次小小的“投资”换来的是终身受益应届毕业生‌无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型‌非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界‌。业务赋能 ‌突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型‌。获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】