大语言模型 10 - 从0开始训练GPT 0.25B参数量 补充知识之模型架构 MoE、ReLU、FFN、MixFFN

写在前面

GPT(Generative Pre-trained Transformer)是目前最广泛应用的大语言模型架构之一,其强大的自然语言理解与生成能力背后,是一个庞大而精细的训练流程。本文将从宏观到微观,系统讲解GPT的训练过程,包括数据收集、预处理、模型设计、训练策略、优化技巧以及后训练阶段(微调、对齐)等环节。

我们将先对 GPT 的训练方案进行一个简述,接着我们将借助 MiniMind 的项目,来完成我们自己的 GPT 的训练。

训练阶段概览

GPT 的训练过程大致分为以下几个阶段:

  • 数据准备(Data Preparation)
  • 预训练(Pretraining)
  • 指令微调(Instruction Tuning)
  • 对齐阶段(Alignment via RLHF 或 DPO)
  • 推理部署(Inference & Serving)

简单介绍

过去两年,大语言模型(LLM)在实践中几乎清一色采用 Decoder-Only Transformer。与此同时,社区又陆续把 LayerNorm 换成 RMSNorm、把 ReLU/GELU 换成 SwiGLU,甚至在前向网络里引入 MoE / MixFFN 等稀疏或卷积混合结构。理解这些改动背后的设计动机,有助于你在 模型微调、推理加速或重新发明"更小更强"模型 时做出正确的工程权衡。

模型架构

MiniMind-Dense(和Llama3.1一样)使用了Transformer的Decoder-Only结构,跟GPT-3的区别在于:

● 采用了GPT-3的预标准化方法,也就是在每个Transformer子层的输入上进行归一化,而不是在输出上。具体来说,使用的是RMSNorm归一化函数。

● 用SwiGLU激活函数替代了ReLU,这样做是为了提高性能。

● 像GPT-Neo一样,去掉了绝对位置嵌入,改用了旋转位置嵌入(RoPE),这样在处理超出训练长度的推理时效果更好。

MiniMind-MoE模型,它的结构基于Llama3和Deepseek-V2/3中的MixFFN混合专家模块。

● DeepSeek-V2在前馈网络(FFN)方面,采用了更细粒度的专家分割和共享的专家隔离技术,以提高Experts的效果。

MiniMind的整体结构一致,只是在RoPE计算、推理函数和FFN层的代码上做了一些小调整。 其结构如下图(重绘版):

修改模型配置见./model/LMConfig.py。 参考模型参数版本见下表:

Decoder-Only Transformer

Decoder-Only 去掉了原始 Transformer 的 Encoder,改用 因果掩码 + KV-缓存 即可在推理时做到 O(1) 序列延长成本。因此 GPT-3、LLaMA、Gemini 乃至文本-图像多模态模型都选择了它。

decoder-only-transformers-explained-the-engine-behind-llms

FFN

经典 FFN = Linear(d_model → d_ff) + 激活 + Linear(d_ff → d_model),其中

d_ff≈4·d_model,激活函数最早用 ReLU。FFN 占据 >60 % FLOPs & 参数量,因此它也是改进热点。

ReLU vs SwiGLU

实验证明,等价参数量下 SwiGLU 能带来 0.3 ~ 0.6 token perplexity 改进,且推理成本几乎不变。

RMSNorm

公式:y = x / RMS(x) · γ,其中 RMS(x)=sqrt(mean(x²))

  • 省略中心化 → 参数更少,FLOPs 与内存带宽-读写减半
  • 训练稳定性 在 Pre-Norm 框架中与 LayerNorm 等价;实测可 缩短 1 ~ 10 % 训练时间
  • 兼容大批量 / 低精度 适合 GPU / TPU 混合精度

NeurIPS-23 的对比研究正式证明:Pre-LN 与 Pre-RMSNorm 在数学上可互换,并提出进一步压缩的 CRMSNorm。

MoE & MixFFN

MoE

思路:为每个 token 只激活少数"专家"FFN,计算成本与密集模型相当但可容纳 亿 / 万亿级参数

  • 核心模块: ① 稀疏门控(Top-k 或 Router),② 专家簇(通常 k=2,4,8...)
  • 代表模型:Switch-Transformer、GLaM、Mixtral-8x7B

优缺点:

  • 参数利用率高,训练加速可达 7 ×  (相同 FLOPs)
  • 通讯/负载均衡难度大,推理需要"容量因子"调度

MixFFN

  • 在两层 MLP 中插入 3 × 3 Depthwise Conv,融合 局部感受野 与 全局 MLP
  • 位置编码可选/可省,分辨率外推更稳
  • 语言模型可类比引入 (Conv or) LoRA-Adapter 获得额外局部建模能力

小小总结

  • Decoder-Only 让语言生成模型推理线性伸缩;
  • RMSNorm 与 SwiGLU 分别在归一化与激活层面消除冗余、提升可训练性;
  • MoE / MixFFN 代表 FFN 的两条进化路线:一条追求 参数稀疏 & 超大模型,一条追求 局部感知 & 多模态。
相关推荐
大写-凌祁1 小时前
零基础入门深度学习:从理论到实战,GitHub+开源资源全指南(2025最新版)
人工智能·深度学习·开源·github
焦耳加热2 小时前
阿德莱德大学Nat. Commun.:盐模板策略实现废弃塑料到单原子催化剂的高值转化,推动环境与能源催化应用
人工智能·算法·机器学习·能源·材料工程
深空数字孪生2 小时前
储能调峰新实践:智慧能源平台如何保障风电消纳与电网稳定?
大数据·人工智能·物联网
wan5555cn2 小时前
多张图片生成视频模型技术深度解析
人工智能·笔记·深度学习·算法·音视频
百胜软件@百胜软件2 小时前
胜券POS:打造智能移动终端,让零售智慧运营触手可及
大数据
格林威3 小时前
机器视觉检测的光源基础知识及光源选型
人工智能·深度学习·数码相机·yolo·计算机视觉·视觉检测
摩羯座-185690305943 小时前
Python数据可视化基础:使用Matplotlib绘制图表
大数据·python·信息可视化·matplotlib
今天也要学习吖3 小时前
谷歌nano banana官方Prompt模板发布,解锁六大图像生成风格
人工智能·学习·ai·prompt·nano banana·谷歌ai
Hello123网站3 小时前
glean-企业级AI搜索和知识发现平台
人工智能·产品运营·ai工具
AKAMAI3 小时前
Queue-it 为数十亿用户增强在线体验
人工智能·云原生·云计算