一、大模型
1. 从GPT到大模型



  • 基础架构:所有大模型都源于Transformer架构,其并行处理长序列的能力使模型参数规模可以无限扩展
  • 架构变体:
    • Encoder-Decoder:完整Transformer结构
    • Only Encoder:如BERT系列,用于特征提取和分类任务
    • Only Decoder:如GPT系列,仅包含解码器的自回归生成模型
    2. 大模型结构演进(模型改变)

    • 六大技术革新:
      • 激活函数:从ReLU/GELU升级为更先进的激活方式
      • 位置编码:改用Rotary Position Embedding (RoPE)
      • 注意力机制:发展为Multi-Head Latent Attention
      • 前馈网络:引入混合专家模型(MoE)结构
      • 归一化层:LayerNorm变为RMSNorm
      • 参数规模:嵌入维度(

        dmodd_{mod}dmod​

        )和多头数(H)显著扩大
    • 实现细节:
      • 每层包含Masked Multi-Head Attention(防止信息泄露)
      • 残差连接后接归一化(Add & Norm)
      • 位置编码与词嵌入相加后输入模型
      • 代码实现可见Block类中的att+ffn结构
    1)模型的训练

    

    

    • 预训练
      • 机制:Next Token Prediction (NTP)自回归预测
      • 过程:输入前文预测下一个token,将预测结果作为下一轮输入
      • 特点:使用海量互联网文本数据,早期GPT生成质量较差但参数扩大后能力显著提升
    • 有监督微调
      • 别名:SFT (Supervised Fine-Tuning) / Instruction Tuning
      • 核心任务:将原始网络数据改造为结构化问答格式
      • 关键点:
        • 需要人工标注和重构数据格式
        • 最耗费人力资源的环节
        • 示例改造:将"《无间道》的主演有哪些?刘德华、梁朝伟"改为标准问答对
    • 强化学习
      • 全称:RLHF (Reinforcement Learning from Human Feedback)
      • 机制:
        • 人类对模型输出进行好坏评分
        • 强化优质回答,抑制低质回答
        • 示例:正面评价"屯了一大堆..."被强化,负面评价"对商品不满意..."被拒绝
      • 意义:被认为是通向强人工智能的重要路径
    3. 模型实现细节
    • 核心组件:
      • token_embedding_table:词嵌入矩阵
      • position_embedding_table:位置编码矩阵
      • blocks:多层Transformer块堆叠
      • lm_head:输出词表概率分布
    • 参数优化:
      • 使用tie_weight减少参数(共享嵌入和输出层权重)
      • 初始化采用均值为0,标准差为0.02的正态分布
    • 前向传播:
      • 输入token索引idx
      • 叠加词嵌入和位置嵌入
      • 通过多层Transformer块处理
      • 最终输出下一个token的概率分布
    4. 模型结构
    1)混合专家模型

    

    • 混合专家模型的结构与来源
      • 结构改变点: 将Transformer中的FeedForward部分替换为混合专家结构
      • 代码位置: 位于Transformer Block内部,具体是Block类中的self.ffn成员变量
      • 原始结构:
        • 组成: 两个全连接层,维度变化为

          dmodel→4dmodel→dmodeld_{model}\rightarrow4d_{model}\rightarrow d_{model}dmodel​→4dmodel​→dmodel​

        • 示例参数:
          • 2048维模型参数量:2048×2048×4×2≈3300万
          • 4096维模型参数量:4096×4096×4×2≈1.3亿
    • 混合专家模型参数量与计算量问题
      • 改造原因:
        • 参数量爆炸: 大模型隐藏层维度(2048/4096)导致全连接层参数量过大
        • 计算瓶颈: 矩阵乘法计算量随维度平方增长
      • 解决思路:
        • 通过路由机制选择性地激活部分专家网络
        • 保持总参数量不变的情况下减少实际计算量
    • DeepSeekMoE模型示意图解读

      • 核心组件:
        • 共享专家(Shared Expert): 所有输入都必须经过的固定处理路径
        • 路由专家(Routed Expert): 通过门控机制动态选择的部分专家
        • 路由门(Router): 决定输入向量分配给各专家的权重
      • 工作流程:
        • 输入向量h同时进入路由门和共享专家
        • 路由门输出Top-K专家选择结果
        • 选中的专家与共享专家结果加权求和
        • 输出维度保持与输入一致
    • 混合专家模型与医院科室的类比

      • 类比关系:输入数据先去共享专家,共享专家告诉数据去访问某几个路由专家,选中的专家与共享专家结果加权求和,最后相加输出。
      • 工作特点:
        • 必选路径: 类似所有病人都需要取药
        • 可选路径: 类似根据症状选择专科
    • 全加型MoE的实现原理

      • 与注意力机制的关系:
        • 相似性: 都是基于权重的特征融合
        • 区别: 注意力关注token间关系,MoE关注特征空间划分

    • 实现步骤:
      • 所有token经过gate获得各专家得分
      • 所有token经过所有专家得到中间结果
      • 按得分加权求和最终输出
    2)稀疏MOE
    • 稀疏MOE的基本概念

      • 核心特点:每个token只选择部分专家进行计算,而非全连接所有专家
      • 设计初衷:减少计算量,避免全连接专家带来的计算负担
      • 专家偏好:在训练过程中,不同专家会形成处理特定类型token的偏好(如处理特定偏旁部首或发音的字符)
    • 稀疏MOE的实现思路
      
      • 路由机制:
        • 通过gate生成专家得分
        • 使用softmax归一化得分
        • 选择top_k得分最高的专家
      • 计算过程:
        • 让token经过选定的专家
        • 将专家输出按得分加权求和
      • 注意力机制相似性:该过程与注意力机制有相似之处
    • 稀疏MOE的实现难点
      • 动态选择问题:
        • 每个token选择的专家组合不同
        • 无法批量处理所有token的专家计算
      • 计算复杂度:
        • 需要为每个token单独计算其选择的专家
        • 当token数量大时(如10万),循环计算效率极低
      • 代码复杂度:动态选择导致代码实现难度呈爆炸式增长

    • 稀疏MOE的优化思路
      • 计算方向反转:
        • 传统思路:token选择专家
        • 优化思路:专家选择token
      • 优势:
        • 专家数量固定(如1000个),远少于token数量
        • 可批量处理每个专家对应的所有token
      • 实现步骤:
        • 为每个专家生成mask标识哪些token选择了它
        • 批量处理每个专家对应的token
        • 将结果按权重累加到最终输出

    • MOE的负载均衡
      
      • 问题背景:防止所有token都选择同一"热门"专家
      • 解决方案:
        • 将专家使用均衡性设计为可训练参数
        • 在loss函数中加入均衡性惩罚项
      • 效果:确保所有专家都能得到合理利用
    3)MOE的作用

    

    • 核心优势:
      • 减少激活参数:和传统的全连接FeedForward相比,从100B降至21B
      • 降低计算量:减少约80%的浮点运算
    • 设计理念:
      • 现代AI设备中存储便宜但计算昂贵
      • 稀疏激活(sparse activation)优化计算效率
    • 实际限制:
      • 不减少总参数量(可能增加)
      • 多机通信仍是瓶颈
    5. 旋转位置编码

    

    1)原始位置编码回顾
    • 实现方式:将位置序号(1,2,3...)通过变换转化为向量形式,直接加到token的向量表示上
    • 局限性:简单相加的方式难以有效捕捉长距离的相对位置关系
    2)旋转位置编码的原理

    • 核心思想:通过正交矩阵对query和key向量进行旋转操作
    • 应用对象:专门作用于注意力机制中的Q和K向量
    • 维度处理:对token向量的每个维度(如768维/2048维)都进行独立旋转

    3)旋转位置编码的矩阵乘法与角度旋转
    • 数学实现:使用包含cos和sin函数的正交矩阵R(m)进行乘法运算
    • 位置关联:旋转角度m与token的位置序号直接相关(如第5个token对应

      R(5)R(5)R(5)

    • 运算特性:每个token的向量表示会随位置不同而旋转不同角度

    4)旋转位置编码的相对位置关系表达
    • 关键公式:

      QR(m)(KR(n))T=QR(m−n)KTQR(m)(KR(n))^T = QR(m-n)K^TQR(m)(KR(n))T=QR(m−n)KT

    • 正交性质:利用正交矩阵

      R(n)T=R(n)−1R(n)^T = R(n)^{-1}R(n)T=R(n)−1

      的特性实现位置差转换
    • 优势体现:能精确表达任意两个token之间的相对位置关系(如第1个和第1000个token的位置差)
    • 敏感度提升:相比原始编码对长距离位置关系更敏感,每个维度都参与位置关系计算
    5)旋转位置编码的性能与理论补充
    • 实践验证:性能优势是采用该方法的直接原因,理论解释多为后续补充
    • 实现细节:一个token的向量会产生768个不同旋转角度
    • 效果保证:多维度的旋转差异共同保证了位置关系的精确表达
    6. 多头潜在注意力
    1)多头注意力机制变为MLA的原因

    

    • 问题背景:处理超长序列(百万级token)时传统MHA效率低下
    • 主要矛盾:token长度增长与KV缓存存储需求的矛盾
    • 改进目标:将Multi-Head Attention改进为Multi-head Latent Attention
    2)KV缓存的介绍
    • 生成特点:推理阶段采用自回归方式逐token生成
    • 计算模式:每个新token需要与之前所有token计算注意力
    • 典型场景:如生成"start→我→爱→你"时需进行4次渐进式计算

    3)KV缓存重复计算的问题
    • 计算冗余:首token("start")需要与后续每个扩展序列重复计算
    • 数量级问题:10万token长度时单个token需计算10万次注意力
    • 资源消耗:每次计算都涉及768维向量的矩阵运算,计算代价高昂
    5)KV缓存的存储方式

    • 存储内容:保留历史token的Key和Value向量
    • 查询机制:每次只计算新token的Query向量
    • 实现方式:将K和V的线性变换结果缓存复用

    6)KV缓存的存储位置及问题
    • 存储位置:必须保存在GPU显存中以保证快速访问
    • 显存压力:长序列会导致显存被完全占满
    • 核心矛盾:缓存效率与显存容量之间的平衡问题
    7. KV cache的优化
    1)计算优化:Multi-query与Group-query

    

    • Multi-head Attention原始机制:每个token都会生成独立的

      Q,K,VQ,K,VQ,K,V

      矩阵,计算时需要每个Q与所有K计算注意力权重,再与所有V相乘得到结果
    • Multi-query Attention(MQA)创新:所有token共享同一组K和V,仅保留不同的Q。例如10万个token原本需要生成10万组KV,优化后只需1组,计算量大幅降低
    • Group-query折中方案:采用分组共享机制(如10个token共用1组KV),在计算效率和模型性能间取得平衡。相比MQA能保留更多语义信息
    • 关键记忆点:MQA是极端优化方案(1组KV),Group-query是实用方案(n组KV),考试需准确说出术语名称
    2)硬件限制:显卡通信带宽问题
    • 单卡限制:显存容量不足时,单纯增加显卡数量不可行
    • 通信瓶颈:卡间通信带宽 << 卡内通信带宽。数据在模型各层间传递时(如第1层在卡A,第2层在卡B),跨卡传输延迟极高
    • 临界问题:当显卡数量超过4张时,可能出现数据无法同步导致训练失败
    • 本质矛盾:大模型训练的主要瓶颈从参数调优转变为通信协调,这是底层硬件限制带来的新挑战

    3)大模型训练的通信挑战
    • 编程困境:无法通过Python等高级语言解决卡间通信问题,需要底层硬件调度方案
    • 实践经验:超过4卡配置时,需要专门设计模型并行方案,包括:
      • 计算任务分配(哪些层在哪些卡)
      • 数据传输同步机制
      • 容错处理方案
    8. LOW-RANK ADAPTATION(LORA)
    1)低秩适配器概念引入
    • 核心思想:通过低秩矩阵分解来近似表示高维参数更新量

      ΔW\Delta WΔW

    • 术语解析:"低秩"指矩阵的有效维度远小于其实际尺寸
    2)例题1:矩阵存储与参数更新问题
    • 题目解析
      • 存储需求:

        10000×1000010000 \times 1000010000×10000

        矩阵需要1亿存储空间
      • 参数更新量:更新全连接层

        Linear⁡(10000,10000)\operatorname{Linear}(10000,10000)Linear(10000,10000)

        需要计算1亿个参数
      • 关键矛盾:直接存储/计算

        ΔW\Delta WΔW

        成本过高
    3)低秩适配器原理(本就是用两个低秩矩阵表示一个高秩矩阵)

    

    • 数学原理:将

      ΔW\Delta WΔW

      分解为两个低秩矩阵乘积:

      (10000,x)@(x,10000)(10000, x) @ (x, 10000)(10000,x)@(x,10000)

    • 极端案例:当

      x=1x=1x=1

      时,只需计算

      10000×1+1×10000=2000010000 \times 1 + 1 \times 10000 = 2000010000×1+1×10000=20000

      个参数
    • 效果对比:参数量从1亿降至2万,实现5000倍的存储/计算节省
    4)低秩适配器参数计算与节省效果
    • 秩的选择:实际应用中x通常取8/10/256等值,仍远小于原始维度
    • 近似本质:用两个秩为x的矩阵近似表示秩为10000的矩阵,属于有损压缩
    5)低秩适配器现实应用与参数x取值
    • 典型场景:用于修改大模型的Feed-forward层
    • 模块化特点:LORA模块(

      ΔW\Delta WΔW

      )与原始模型参数分离存储
    • 实际效果:10GB的原始模型可能只需添加几MB的LORA模块即可实现功能调整
    9. MLA
    1)MHA与MQA的介绍

    • MHA特点:
      • 需要存储所有token的KV值,显存压力大
      • 计算公式:

        attention=softmax(QKTd)Vattention = softmax(\frac{QK^T}{\sqrt{d}})Vattention=softmax(d​QKT​)V

    • MQA改进:
      • 只存储一个token的KV值,所有head共享
      • 显存消耗降低为原来的1/N(N为token数量)
    • 存储原理:
      • 传统方法:直接存储KV矩阵
      • MLA方法:存储低维矩阵

        CKV=XWDKVC^{KV}=XW^{DKV}CKV=XWDKV

    2)MLA的原理:低维矩阵的构建与应用
    • 维度转换:
      • 原始向量:768维
      • 通过一个特殊矩阵

        WDKVW^{DKV}WDKV

        转换为6×2的低维矩阵
    • 计算过程:
      • K=CKVWUKK = C^{KV}W^{UK}K=CKVWUK

      • V=CKVWUVV = C^{KV}W^{UV}V=CKVWUV

    • 优势:
      • 只存储(1,2)的矩阵

        CKVC^{KV}CKV

        而非完整KV,显著减少存储需求
      • 计算时动态生成K和V
    3)当前token与之前token的Q、K、V计算

    

    4)MLA减少计算量的原理
    • 传统计算:
      • 需要完整计算并存储KV
      • 每次attention都要重新计算
    • MLA优化:
      • 存储低维

        CKVC^{KV}CKV

      • 通过矩阵乘法动态生成K/V
    • 关键改进:
      • 避免直接计算和存储高维KV矩阵
      • 利用

        WUKW^{UK}WUK

        WUVW^{UV}WUV

        进行维度转换
    5)矩阵吸收:MLA减少计算量的关键

    • 矩阵吸收机制:通过缓存

      CKVC^{KV}CKV

      直接获取中间计算结果,避免重复计算K和V矩阵。具体流程:
      • 计算

        Q=XWQQ = XW^QQ=XWQ

      • 从缓存获取

        CKVC^{KV}CKV

        后计算

        K=CKVWUKK = C^{KV}W^{UK}K=CKVWUK

      • 使用相同

        CKVC^{KV}CKV

        计算

        V=CKVWUVV = C^{KV}W^{UV}V=CKVWUV

    • 运算简化原理:将传统注意力公式

      softmax(QKTd)Vsoftmax(\frac{QK^T}{\sqrt{d}})Vsoftmax(d​QKT​)V

      转化为

      softmax(XWQWUKTCKVTd)Vsoftmax(\frac{XW^QW^{UK^T}C^{KV^T}}{\sqrt{d}})Vsoftmax(d​XWQWUKTCKVT​)V

      ,减少KV矩阵的重复计算。
    四、Deepseek中的MLA

    

    • 核心问题:传统RoPE(旋转位置编码)计算

      QR(m)R(n)TKTQR(m)R(n)^TK^TQR(m)R(n)TKT

      会破坏矩阵吸收的简化效果
    • 解决方案:
      • 将Q和K拆分为两部分处理:
        • 90%直接使用缓存(不加RoPE)
        • 10%进行完整RoPE计算
      • 最终拼接形成新的

        QnewQ_{new}Qnew​

        KnewK_{new}Knew​

    • 实现细节:
      • 输入隐藏层

        hth_tht​

        经过RMS Norm标准化
      • 并行处理:
        • 常规注意力路径
        • 带缓存处理的MLA路径
      • 两路结果拼接后输出
    • 设计优势:在保持位置感知能力的同时,显著减少计算量约90%
    五、激活函数

    

    1. 激活函数概述

    

    • 发展历程:从ReLU到Swish/SiLU再到GLU系列,最后发展为SwiGLU
    • 核心思想:通过门控机制控制信息流通量,类似三极管的电压控制原理
    2. Sigmoid激活函数
    • 公式:

      σ(x)=11+e−x\sigma(x) = \frac{1}{1 + e^{-x}}σ(x)=1+e−x1​

    • 特性:
      • 输出范围(0,1),适合概率输出
      • 存在梯度消失问题
    • 图像特征:S型曲线,平滑过渡
    3. Swish/SiLU激活函数
    • 公式:

      Swish⁡β(x)=x1+e−βx\operatorname{Swish}_\beta(x) = \frac{x}{1 + e^{-\beta x}}Swishβ​(x)=1+e−βxx​

    • 特殊形式:
      • β=1\beta=1β=1

        时等同于

        xσ(x)x\sigma(x)xσ(x)

      • Swish⁡1(x)=x1+e−x\operatorname{Swish}_1(x) = \frac{x}{1 + e^{-x}}Swish1​(x)=1+e−xx​

    • 优势:相比ReLU具有平滑过渡特性
    4. GLU激活函数
    • 公式:

      GLU(x,W,V)=σ(xW)⊗(xV)GLU(x,W,V) = \sigma(xW) \otimes (xV)GLU(x,W,V)=σ(xW)⊗(xV)

    • 创新点:
      • 首次引入可学习参数W和V
      • 通过sigmoid实现门控功能
    • 工作原理:类似三极管,控制信息通过量
    5. SwiGLU激活函数
    • 公式:

      SwiGLU(x)=(xW1+e−xW)⊗(xV)SwiGLU(x) = (\frac{xW}{1 + e^{-xW}}) \otimes (xV)SwiGLU(x)=(1+e−xWxW​)⊗(xV)

    • 改进:
      • 用Swish替代原始sigmoid门控
      • 保持GLU的参数化特性
    • 实际应用:现代大模型常用激活方案
    六、归一化方法

    

    1. Batch Norm
    • 公式:

      y=γ⋅x−μσ2+ϵ+βy = \gamma \cdot \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} + \betay=γ⋅σ2+ϵ​x−μ​+β

    • 特点:
      • 在批次维度上计算统计量
      • 适合图像等单样本数据
    2. Layer Norm
    • 公式:与Batch Norm相同但计算维度不同
    • 优势:
      • 对单个样本的所有token进行归一化
      • 特别适合Transformer架构
    3. RMS Norm
    • 简化公式:

      y=γ⋅x1n∑i=1nxi2+ϵy = \gamma \cdot \frac{x}{\sqrt{\frac{1}{n}\sum_{i=1}^n x_i^2 + \epsilon}}y=γ⋅n1​∑i=1n​xi2​+ϵ​x​

    • 创新点:
      • 不再减去均值
      • 仅进行缩放操作
    • 稳定性:通过

      ϵ\epsilonϵ

      防止除零错误
    七、大模型的训练(训练改变)
    1. 预训练(未变)
    • 核心方法: 采用Next Token Prediction(NTP)方式,通过大规模无标注数据进行自监督学习
    • 训练特点: 仅预测下一个token,模型参数通过海量数据训练得到基础语言理解能力
    • 资源消耗: 最耗费计算资源的阶段,需要大量GPU集群和训练时间
    2. 有监督微调(新增)
    1)数据集的改造

    

    • 结构特点: 包含instruction-input-output三元组,如{"instruction":"解释量子计算","output":"量子计算是利用量子力学..."}
    • 改造需求: 需要人工将原始数据改造成结构化格式,没有现成的天然数据集
    • 训练方法: 仍采用NTP方式,与预训练相同但使用标注数据
    2)应用案例

    • 例题:简单问答任务示例
      • 改造过程: 将"法国首都是哪里?巴黎"改造成{"instruction":"法国首都是哪里?","output":"巴黎"}
      • 关键区别: 需要显式标注instruction和output的对应关系
      • 实际应用: 电商客服对话改造为[{"role":"system","content":"客服助手"},{"role":"user","content":"订单状态"},{"role":"assistant","content":"已发货"}]格式
    3. 指令微调阶段

    • 核心工作: 人工构造高质量的指令-输出对,是最耗费人力的阶段
    • 数据示例: 包括简单问答、翻译任务、数学推理等多种类型
    • 质量要求: 需要确保指令明确、输出准确,覆盖多样化场景
    4. 强化学习

    1)损失函数优化

    

    • 基本流程:
      • 输入相同prompt生成多个响应
      • 人工对响应进行偏好排序
      • 使用PPO算法优化模型

    • 算法原理: 采用近端策略优化(PPO),更新公式为

      θ←θ+η∇Rˉθ\theta \leftarrow \theta + \eta \nabla \bar{R}_\thetaθ←θ+η∇Rˉθ​

    • 奖励机制: 通过人类反馈构建奖励函数,高奖励动作的概率会被增强
    • 技术特点: 将NLP任务转化为强化学习问题,使用

      R(τn)log⁡pθ(atn∣stn)R(\tau^n)\log p_\theta(a_t^n|s_t^n)R(τn)logpθ​(atn​∣stn​)

      作为梯度权重
    八、总结
    • 技术演进: 当前架构(RoPE、MoE等)并非理论最优,而是实验验证的有效方案
    • 实践局限: 普通研究者难以从头训练大模型,主要进行微调工作
    • 未来方向: 模型改进仍存在大量探索空间,新架构可能带来突破
    九、知识小结

    知识点

    核心内容

    技术要点/关键改进

    难度系数

    Transformer架构基础

    Encoder-Decoder结构,BERT与GPT的区别

    BERT使用双向编码器,GPT仅用解码器

    ⭐⭐

    大模型核心改进

    六大结构变化提升模型性能

    激活函数→SwishGLU,位置编码→RoPE,注意力机制→MLA,前馈网络→MoE,归一化→RMS Norm

    ⭐⭐⭐⭐

    混合专家模型(MoE)

    动态路由机制实现计算量优化

    稀疏激活(仅激活部分专家)、负载均衡损失函数、常驻专家+动态专家组合

    ⭐⭐⭐⭐

    旋转位置编码(RoPE)

    相对位置关系的矩阵旋转表示

    正交矩阵乘法实现位置敏感,qk计算时引入相对位置差

    ⭐⭐⭐

    多头潜在注意力(MLA)

    KV缓存压缩技术

    低秩分解存储CKV,矩阵吸收优化,RoPE兼容性处理

    ⭐⭐⭐⭐

    训练三阶段

    NTP→SFT→RLHF渐进式优化

    指令微调需人工重构数据,RLHF采用PPO算法+人类评分

    ⭐⭐⭐⭐

    强化学习(RLHF)

    近端策略优化(PPO)实现

    奖励函数设计,情景-动作概率建模,策略梯度更新

    ⭐⭐⭐⭐

    关键技术对比

    传统Transformer vs 大模型架构

    计算量减少80%(MoE),长序列处理能力提升(RoPE),显存优化(MLA)

    ⭐⭐⭐

    行业现状

    计算资源瓶颈与创新方向

    多卡通信成本成为主要瓶颈,中国AI算力受限催生算法创新

    ⭐⭐

    Logo

    AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

    更多推荐