当前位置: 首页 > news >正文

大模型训练底层原理解析

引言

当我们使用 ChatGPT、DeepSeek 或 Qwen 进行对话时,模型能够回答问题、编写代码、分析论文,甚至完成复杂推理任务。表面上看,这似乎是一种接近人类思维的能力,但从计算机系统的角度来看,大模型本质上只是在做一件事情:

根据前面的 Token,预测下一个 Token。

然而,就是这样一个简单的目标,在海量数据、超大规模参数和数万张 GPU 的支撑下,逐渐演化出了如今强大的语言理解与生成能力。本文将从训练系统和底层算子的视角出发,介绍一个大模型从原始文本到完成一次参数更新所经历的完整过程。


一、大模型训练全景

从宏观上看,一次完整的训练流程如下:

训练过程本质上是在不断重复这一闭环,通过预测错误、计算梯度、更新参数,让模型逐渐掌握语言规律和知识。


二、数据处理:训练的起点

任何模型都无法凭空获得知识,因此训练的第一步是准备数据。

现代大模型的训练数据通常来自网页、书籍、论文、百科、代码仓库以及各种问答社区。原始互联网数据质量参差不齐,其中包含大量广告、乱码、重复内容甚至错误信息,因此在正式训练之前,需要进行复杂的数据清洗。

数据工程师通常会完成以下工作:

去重 ↓ 过滤低质量内容 ↓ 脱敏处理 ↓ 语言识别 ↓ 质量评分 ↓ 构建训练语料库

这一阶段虽然几乎不涉及神经网络计算,却直接决定了模型的上限。业界普遍认为,高质量数据的重要性甚至不亚于模型规模。


三、Tokenizer:把文字变成数字

神经网络无法直接理解文字,它能够处理的只有数字。

例如一句话:

我喜欢学习大模型

经过 Tokenizer 处理后,可能会变成:

["我", "喜欢", "学习", "大模型"]

再进一步映射成:

[2009, 3684, 2111, 1037]

此时,文本已经变成了整数序列。

训练系统会把这些 Token 切分成固定长度的样本,例如长度为 4096,然后组成 Batch 输入模型:

input_ids.shape=[B,S]

其中:

  • B 表示 Batch Size
  • S 表示 Sequence Length

例如:

[8,4096]

表示一次训练使用 8 条样本,每条样本长度为 4096 个 Token。


四、Embedding:进入向量空间

虽然 Token 已经变成了数字,但数字本身并不包含任何语义信息。

Embedding 层可以理解为一个巨大的查找表,它会把每个 Token ID 映射成一个高维向量:

Token ID ↓ Embedding Lookup ↓ Hidden Vector

例如:

input_ids:[B,S]↓ hidden_states:[B,S,H]

其中 H 为隐藏层维度(Hidden Size)。

从这一刻开始,模型处理的不再是文字,而是高维向量空间中的表示。


五、Transformer:大模型的核心引擎

现代大模型几乎全部建立在 Transformer 架构之上。

原文:Attention Is All You Need

整个模型实际上由几十层甚至上百层 Transformer Block 堆叠而成:

Embedding ↓ Transformer Block × N ↓ LM Head ↓ Logits

单个 Transformer Block 的结构如下:

Input ↓ RMSNorm ↓ Self-Attention ↓ Residual Add ↓ RMSNorm ↓ FFN / MoE ↓ Residual Add ↓ Output

从功能上来看,Transformer Block 主要完成两件事情:

  1. 让不同 Token 之间交换信息(Attention)
  2. 对每个 Token 的特征进行非线性变换(FFN)

六、Attention:让 Token 看到彼此

Attention 是 Transformer 最核心的创新。

在传统循环神经网络中,模型必须按照时间顺序逐个处理单词;而 Attention 则允许所有 Token 同时参与计算。

例如在句子:

北京是中国的首都

中,当模型处理“首都”时,它需要知道是谁的首都。Attention 的作用就是自动建立这种关联关系。

计算过程可以概括为:

Q=X @ Wq K=X @ Wk V=X @ Wv

随后计算注意力:

A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K T d ) V Attention(Q,K,V) = Softmax(\frac{QK^T}{\sqrt d}) VAttention(Q,K,V)=Softmax(dQKT)V

整体流程如下:

Input Hidden States ↓ RMSNorm ↓ Q K V ↓ QKᵀ ↓ Scale ↓ Causal Mask ↓ Softmax ↓ × V ↓ Output Projection ↓ Residual Add

在 Decoder-only 模型中,还需要使用 Causal Mask,确保当前 Token 只能看到历史信息,而不能偷看未来内容。


七、FFN:提升表达能力

Attention 负责建立 Token 之间的联系,而 FFN(Feed Forward Network)负责提升每个 Token 的表达能力。

在 LLaMA、Qwen 等模型中,FFN 通常采用 SwiGLU 结构:

gate=X @ W_gate up=X @ W_up hidden=SiLU(gate)*up out=hidden @ W_down

从结构上看:

Linear ↓ Activation ↓ Elementwise Mul ↓ Linear

虽然结构并不复杂,但 FFN 往往占据整个训练过程中最大的计算量。在许多模型中,FFN 部分的 FLOPs 占比甚至超过 50%。


八、MoE:专家混合架构

随着模型规模不断增长,人们发现继续增加所有参数的计算成本越来越高,于是出现了 MoE(Mixture of Experts)。

MoE 的思想类似于现实中的专家团队。当一个问题到来时,并不会让所有专家同时工作,而是先通过 Router 判断应该激活哪些专家。

整体流程如下:

Token ↓ Router ↓ Top-K ↓ Expert1 Expert2 ... ExpertN ↓ Combine

对应到训练系统中,会增加一些新的算子:

Router GEMM Softmax TopK Permute Dispatch All-to-All Expert GEMM Combine Unpermute

这也是 DeepSeek-V3、Mixtral 等模型采用的重要技术路线。


九、损失函数:模型如何知道自己错了

经过多层 Transformer 计算之后,模型最终会输出一个词表上的概率分布:

喜欢 0.80 学习 0.10 苹果 0.05 天气 0.05

而训练数据中已经给出了正确答案。

因此系统可以计算:

预测结果 VS 真实答案

二者之间的差异被称为 Loss。

在语言模型训练中,最常见的是 Cross Entropy Loss:

loss=CrossEntropy(logits,labels)

Loss 越大,说明模型预测得越差;Loss 越小,说明模型预测得越准确。


十、反向传播:知识是如何学进去的

前向传播只是计算结果,而真正让模型学会知识的是反向传播。

在前向传播过程中:

Input ↓ Attention ↓ FFN ↓ Loss

而在反向传播过程中:

Loss ↑ FFN ↑ Attention ↑ Input

梯度会从 Loss 开始向后传播,通过链式法则计算每个参数对最终误差的贡献。

对于 Attention,需要计算:

dQ dK dV dWq dWk dWv

对于 FFN,需要计算:

dWup dWgate dWdown

最终,模型中的每一个参数都会获得对应的梯度信息。


十一、分布式训练:数千张 GPU 如何协同工作

现代大模型往往拥有数百亿甚至数千亿参数,单张 GPU 根本无法完成训练。

因此需要分布式并行技术。

数据并行(DP)负责让不同 GPU 处理不同 Batch;张量并行(TP)负责拆分矩阵计算;流水线并行(PP)负责拆分网络层;而 MoE 模型还需要专家并行(EP)。

整体关系如下:

这些并行策略共同支撑了如今万卡级别的大模型训练集群。


十二、AdamW:完成参数更新

当所有梯度计算完成之后,优化器开始工作。

目前最常见的优化器是 AdamW,其核心思想是在梯度基础上引入动量和历史统计信息,使训练更加稳定。

从训练流程上看:

梯度 ↓ AdamW ↓ 更新参数 ↓ 进入下一轮训练

每完成一次更新,模型参数都会发生微小变化,而模型能力也会略微提升。

经过数万亿次这样的迭代之后,一个真正的大语言模型便诞生了。


十三、一次完整 Training Step

最后,我们可以把一次训练迭代总结为下面的流程:

输入文本 ↓ Tokenizer ↓ Embedding ↓ Transformer ↓ LM Head ↓ Cross Entropy Loss ↓ Backward ↓ Gradient Communication ↓ AdamW ↓ Parameter Update ↓ Next Step

从算子视角来看,大模型训练的核心组件实际上只有少数几类:

Embedding Lookup RMSNorm GEMM MatMul Softmax Activation Elementwise Add/Mul Cross Entropy AllReduce AllGather ReduceScatter All-to-All AdamW

理解这些算子以及它们之间的数据流,就理解了大模型训练系统的本质。后续无论学习 FlashAttention、Megatron-LM、DeepSpeed、FSDP、MoE 还是各种算子优化技术,本质上都是在优化上述训练链路中的某一个环节。

http://www.jsqmd.com/news/927313/

相关文章:

  • 拆解如何用anthropic金融agent做投研
  • 别再死记硬背-fPIC了!用GDB调试带你搞懂动态库的GOT表到底怎么玩
  • 玩一下步进电机(TODO)
  • 基础方法从入门到深入(一)
  • 8051串口通信波特率计算与应用指南
  • AI专利搜索核心技术解析:从语义检索到多模态融合的实践路径
  • 2026年知名的休闲度假区文旅策划/农文旅策划热门排行榜 - 品牌宣传支持者
  • 从FreeSync到HDR:手把手教你挖掘老旧显卡HDMI 1.4接口的隐藏潜力(以N卡/AMD为例)
  • 保姆级教程:在PVE 8.0上安装Debian 12 KDE桌面(附GRUB配置与网络避坑指南)
  • 【Gemini精准营销方案落地指南】:20年实战验证的5大核心模块与避坑清单
  • STM32按键消抖实战:用HAL库的GPIO输入和HAL_Delay搞定,附完整代码
  • 【RAG 1/3】RAG 不只是上传文档:从原理到应用讲清楚 RAG 怎么用
  • 体育馆场地管理系统
  • STM32H7 ADC+DMA数据采集实战:从Cache配置到环形FIFO,一个完整项目的避坑指南
  • 别再写满屏的if-else了!用Mybatis-Plus的QueryWrapper和UpdateWrapper重构你的业务代码(附实战案例)
  • 2026年评价高的山东壁挂式水表箱/SMC水表箱/山东SMC水表箱/山东户外水表箱高口碑品牌推荐 - 行业平台推荐
  • Kylin Server-10 SP1安装VMTools报错‘Device or resource busy’?手把手教你排查与修复
  • 写论文总担心重复率?书匠策AI免费查重,这个工具你必须知道!
  • 一根网线搞定!零显示器用Windows笔记本SSH连接树莓派5的保姆级避坑指南
  • [STM8] 把 STM8S 的 ADC 玩明白:一个连续采集的ADC项目
  • 输电线植物入侵检测数据集6582张VOC+YOLO格式
  • 别再只用Aircrack-ng了!用Kali Linux的Kismet做WiFi网络扫描,可视化界面更友好
  • Go语言并发模式深度解析
  • 2026年知名的实力派窗帘品牌/原创窗帘品牌可靠供应商推荐 - 品牌宣传支持者
  • 2026年云南昆明三角梅培育基地/昆明基地/昆明绣球基地/昆明亚麻基地采购必看榜 - 行业平台推荐
  • 神经网络与深度学习第四周学习笔记(3/4)
  • 别再折腾环境了!手把手教你用Vivado 2018.3和Modelsim 22.04搞定联合仿真(附库编译避坑指南)
  • 保姆级教程:在Deepin V23上配置xrdp+x11vnc,实现Windows远程桌面稳定连接
  • 2026年5月企业AI操作系统推荐:TOP5评测市场份额专业选择指南办公协同案例
  • 别再手动写多选了!手把手教你封装一个uView Picker多选组件(附完整源码)