大模型训练架构系统。

一般来说训练都需要优化,

而优化就是需要优化器,

整体训练我们都当作的赛车,模型就是车。

优化器:

这个优化器从SGD和BGD讲起,

SGD:是随机梯度下降,(下降一点点)

BGD是基础梯度下降,(全量)

实际上都不会单独使用,现在是混合使用,mini-SGD:就是SGD+BGD。

然后基于SGD进化出来了,Adam->AdamW。

也就是主流优化器,基本上都是用AdamW:

这个有两个特点:

动量:类似惯性,比如前面几个生成正的,下面一个也就生成正的,

自适应步长:自动给频繁更新的参数减速,同样的,冷门的参数会加速,

还能显式剥离梯度的权重衰减,解决Transformer的架构容易过拟合的问题。

过拟合:学的太好了,把噪音,杂质都学会了,然后出现全新没见过的模型或者数据完全用不了,或者泛化能力差,

欠拟合:根本没学会。

问题:需要大量显存记录历史信息

训练策略:

现在优化器是油门,而踩油门也需要技巧啊,(用不用力的区别)。

Warmup (预热):做法:在训练初期(前几千步),将学习率从 0 线性增加到最大值。

基本上都是:先增加后下降的,

目的: 防止随机初始化的模型在刚开始时因为梯度过大而“由于受惊而崩盘”(梯度爆炸)。

Peak (峰值期):做法:维持在最大值以最快速度消化海量数据

Decay (衰减):

做法: 预热结束后,学习率通常按“余弦曲线”缓慢下降。

目的: 训练后期让模型“冷静”下来,进行精细化微调,锁定最优解

可以说学习率就是学习速度而不是学习程度,

整个过程一般是余弦曲线衰减。这里是:起步稳、收敛精、过程丝滑。

最后的一般是很长的曲线,类似退火算法:就是打铁的时候,一般是缓慢降温能稳定。

当学习率不变化了,就是平了:

这个太高就提早进入衰减期,太低就调大最高点的值。

工程实现:

因为要记录显存所以需要框架:DeepSpeed / Megatron-LM

DeepSpeed-zero:

三个阶段:1优化器,2:优化器+梯度,3:优化器+梯度+参数。

ZeRO-1/2: 把 AdamW 的动量数据切碎,分给不同的显卡背着。

ZeRO-3: 把模型参数也切碎分出去,计算时再临时“借用”。

你需要知道的是框架不改变 AdamW 的公式,它只负责显存优化和多卡通讯。它让几千块 GPU 能像一个超级大脑一样同步工作。

底座:

PyTorch: 提供了张量(Tensor)运算的自动求导引擎,是所有框架运行的基础。

GPU (Tensor Cores): 专门为矩阵乘法设计的硬件单元。

BF16 / FP16 (混合精度): 牺牲一点点精度(从 32 位降到 16 位),换取 2-4 倍的计算速度和减半的显存占用。

存储层次:SRAM: 离核心最近,极小极快。

HBM: 高带宽显存,存放模型和 KV Cache。

需要步骤

所以说,现在以GPT-4举例子训练一个模型需要:

PyTorch 先把数据转换成巨大的 Tensor(张量矩阵)。

DeepSpeed 迅速出手,把这些 Tensor 切碎并分发到成百上千块 GPU 上,解决显存不够的问题。

Warmup 策略开始介入,小心翼翼地把学习率从 0 往上提。

AdamW 接收到这些小心翼翼的梯度,按照动量和自适应的逻辑,开始指挥 GPU 更新模型的参数。

随着模型越来越稳定,学习率开始 Decay,模型进入最后的冲刺。

 

 

放一些相关的,这里算是大模型的进阶版了。这个封面是吉米。

全部评论

相关推荐

头像 会员标识
12-16 14:37
浙江大学 Java
点赞 评论 收藏
分享
2025年12月TIOBE编程语言排行榜,Go语言排名第15,Rust语言排名17。编程语言 R 重返前十。本月头条:编程语言 R 重返前十编程语言 R 以非常契合统计学家和数据科学家的特点而闻名。随着统计分析和大规模数据可视化的重要性不断提升,R 的受欢迎程度再次上升。例如,这一趋势也反映在 Wolfram/Mathematica(另一种具有类似能力的工具)上,本月该工具重新进入了前 50 名。在一些“传统”软件工程师眼中,R 因其非传统的语法以及在大型生产系统中的有限可扩展性而受到质疑。但对于特定领域的专家来说,它仍然是一个功能强大且优雅的工具。R 在大学以及科研驱动型行业中依旧蓬勃发展。过去,R 和 Python 常被视为竞争对手,而这场竞争最终在普遍采用度上由 Python 取胜。然而,R 依然开辟了一个稳固且持久的细分领域。它在快速实验、统计建模以及探索性数据分析方面表现突出。我们已经见证了许多 TIOBE 指数前十的语言此起彼伏,值得关注的是 R 是否能够保持目前的位置。另一条值得关注的消息是:下个月我们将公布 2025 年度 TIOBE 年度编程语言。目前来看,C# 似乎是这一头衔的最有力竞争者。TIOBE 编程社区指数是衡量编程语言流行度的一个指标。该指数每月更新一次。排名依据是全球范围内的专业工程师人数、相关课程数量以及第三方供应商的情况。计算排名时会使用包括 Google、Amazon、Wikipedia、Bing 在内的 20 多个知名网站的统计数据。需要注意的是,TIOBE 指数并不是评判“最好的”编程语言,也不是根据某种语言编写代码的总行数来排名。该指数可以用来检验你的编程技能是否仍然保持最新状态,或者在开始构建新的软件系统时,帮助你做出关于采用哪种编程语言的战略决策。其他编程语言完整的前 50 名编程语言榜单如下所示。此概览为非正式发布,因为有可能我们遗漏了某种编程语言。接下来的 50 种编程语言以下语言列表对应排名 第 51 位到第 100 位。由于这些语言之间的差距相对较小,这里仅按字母顺序列出:ActionScript、Algol、Alice、Awk、B4X、Caml、CLIPS、Clojure、Common Lisp、Crystal、D、Elm、F#、Forth、GAMS、Groovy、Hack、Icon、Inform、Io、J、JScript、Logo、Maple、Modula-2、Mojo、MQL5、NATURAL、Nim、Oberon、OCaml、Occam、OpenCL、PL/I、Q、REXX、S、Scheme、Simulink、Smalltalk、SPARK、SPSS、Stata、SystemVerilog、Tcl、Transact-SQL、V、VHDL、X++、Xojo。本月指数中的变化本月对指数的定义进行了如下调整:• Johann Weiser 建议将 LEAN 编程语言加入 TIOBE 指数。• LEAN 符合所有收录标准,因此已被加入到监测列表中。• LEAN 在指数中的首秀排名为 第 145 位。长期历史趋势为了更好地了解整体趋势,以下表格展示了过去多年 前十种编程语言 的排名情况。请注意,这些排名是 12 个月平均位置。重要说明:• 2001 年之前的数据并非基于网络搜索引擎的统计结果,而是基于 Usenet 新闻组的命中次数,这些数据是通过回溯计算得出的。• 在上表中,“Visual Basic” 与 “(Visual) Basic” 是不同的概念。直到 2010 年,“(Visual) Basic” 指的是所有可能的 Basic 方言,包括 Visual Basic。经过讨论,决定将“(Visual) Basic”拆分为不同的方言,例如 Visual Basic .NET、经典 Visual Basic、PureBasic、Small Basic 等。由于 Visual Basic .NET 已经成为 Visual Basic 的主要实现版本,现在它被称为 “Visual Basic”。• SQL 编程语言是在 2018 年才被纳入 TIOBE 指数,因为有人指出 SQL 是图灵完备的。因此,尽管这门语言非常古老,但它在指数中只有很短的历史。编程语言名人堂下面的名人堂列出了历届“年度编程语言”奖项的获奖者。该奖项授予的是在一年内排名上升幅度最大的编程语言。缺陷与变更请求以下是最常被提出的 前 5 项改进或缺陷修复请求。1. 除了 “<语言> programming” 之外,还应该尝试其他查询,例如 “programming with <语言>”、“<语言> development” 和 “<语言> coding”。2. 添加其他自然语言(不仅限于英文)的查询。计划首先从中文搜索引擎 百度 开始。这一功能已部分实现,并将在未来几个月内完成。3. 增加一个已被拒绝的搜索关键词列表,以减少重复收到关于 Rails、jQuery、JSP 等的邮件。4. 启动面向数据库、软件配置管理系统和应用框架的 TIOBE 指数。5. 一些搜索引擎允许查询过去一年内新增的页面。TIOBE 指数应仅跟踪这些最近新增的页面。
聊聊我眼中的AI
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务