当前位置: 首页 > 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.gsyq.cn/news/1438644.html

相关文章:

  • 别再死记硬背-fPIC了!用GDB调试带你搞懂动态库的GOT表到底怎么玩
  • 玩一下步进电机(TODO)
  • 2026年知名的休闲度假区文旅策划/农文旅策划热门排行榜 - 品牌宣传支持者
  • 8051串口通信波特率计算与应用指南
  • 2026年知名的实力派窗帘品牌/原创窗帘品牌可靠供应商推荐 - 品牌宣传支持者
  • 2026年云南昆明三角梅培育基地/昆明基地/昆明绣球基地/昆明亚麻基地采购必看榜 - 行业平台推荐
  • 跨境电商独立站2026最新从0-1完整搭建流程
  • 8张RTX 4090实测:MedicalGPT项目全流程训练中的显存分配与参数调优实战记录
  • 2026年口碑好的基地/绣球基地/亚麻基地/三角梅养殖基地精选推荐榜 - 品牌宣传支持者
  • 保姆级教程:用Python脚本将OPIXray/HIXray安检X光数据集转成YOLO格式(附完整代码)
  • 2026年知名的水表箱/SMC水表箱/防冻水表箱优质厂家汇总推荐 - 行业平台推荐
  • 从开源哲学到AI伦理:模块化、透明性与协作如何重塑技术未来
  • 无人机避障规划实战:如何用ESDF地图让Fast-Planner飞得更安全?
  • GD32F470驱动WS2812B灯带:用SPI+DMA实现“零”CPU占用的呼吸灯效果(附完整代码)
  • 2026年评价高的高温衬氟磁力泵/磁力泵品牌厂家推荐 - 品牌宣传支持者
  • mbedtls AES加密的PKCS#7填充详解:为什么你的解密结果总差几个字节?
  • 保姆级教程:用YOLOv8n和BotSORT搞定足球比赛视频的球员与足球追踪(附完整Python源码)
  • 驾驭AI:从理解大语言模型到构建人机协作工作流
  • 别再只用散点图了!用Seaborn的pairplot函数5分钟搞定多变量关系探索(附国赛数据集实战)
  • 告别蓝图依赖:用C++重构你的UE项目核心框架(GameMode篇)
  • 2026年靠谱的泵站/玻璃钢一体化泵站/一体化泵站/农业灌溉泵站实力工厂推荐 - 行业平台推荐
  • PCIe链路训练Recovery状态机详解:从8.0GT/s到64.0GT/s的速率切换与均衡实战
  • 计算考古学新范式:多指标记分卡量化破解印度河文字之谜
  • 别再只用Matplotlib了!用Pyecharts 2.0.4打造交互式3D散点图,数据分析报告瞬间高级
  • C#操作AutoCAD时,这5种选择对象的方法你用对了吗?(避坑指南)
  • 科研绘图救星:用Matlab的yyaxis函数5分钟搞定论文里的多变量对比图
  • 放大电路基本原理
  • 从“沉浸”到“透出”:Uview Navbar搭配微信小程序自定义导航栏的三种高级场景实战
  • 数码管动态显示从入门到精通:蓝桥杯选手必知的3个消影技巧与1个常见误区
  • 2026年比较好的钢模板/挂篮钢模板稳定供货厂家推荐 - 品牌宣传支持者