ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

大语言模型训练全流程指南:How to Train Your GPT详解反向传播、交叉熵损失与AdamW优化器

大语言模型训练全流程指南:How to Train Your GPT详解反向传播、交叉熵损失与AdamW优化器 大语言模型训练全流程指南How to Train Your GPT详解反向传播、交叉熵损失与AdamW优化器【免费下载链接】how-to-train-your-gptBuild a modern LLM from scratch. Every line commented. Explained like we are five.项目地址: https://gitcode.com/gh_mirrors/ho/how-to-train-your-gptHow to Train Your GPT是一个从零构建现代大语言模型的开源教程用 12 章 28 篇专题讲解把 LLM 训练全流程讲得像给五岁孩子讲故事。本文带你吃透其中大语言模型训练最核心的三件套反向传播、交叉熵损失、AdamW 优化器——正是它们让模型从乱猜变成会说话。一、训练到底在做什么一句话讲透大语言模型训练训练大语言模型本质是教机器接龙给模型看一句话The cat sat on the ___让它猜下一个词猜对了 → 表扬猜错了 → 扣分模型据此微调内部参数下次猜得更准对几十亿句话重复几十亿次对应的就是经典的训练循环取一批数据 → 前向预测 → 算损失 → 反向传播 → 更新权重。模型里有上亿个旋钮参数训练就是找到每个旋钮该往哪拧。想先看全局阅读 chapters/00_overview.md那里有整条流水线的鸟瞰图。二、交叉熵损失如何量化模型猜得有多错大语言模型训练最常用的损失函数是交叉熵损失Cross-Entropy Loss。它的核心公式只有一行Loss -log(正确答案的概率)以 mat 为正确答案为例三种情况一目了然模型给 mat 的概率交叉熵损失直观解读P 0.95-log(0.95) ≈0.05又准又自信几乎不扣分 ✅P 0.45-log(0.45) ≈0.80半信半疑扣一些分P 0.01-log(0.01) ≈4.61严重错误重罚 它比错误率好在梯度信号是平滑且自适应的错得越离谱梯度越强模型从大错误中学得最快。这就是大语言模型训练目标函数的数学本质——让正确答案的概率最大化。一个有趣的起点随机模型在 GPT-2 的 50257 词表上均匀瞎猜初始损失约为 ln(50257) ≈10.8所有损失曲线都从这里出发。 公式细节与-log的由来chapters/08_training.md代码实现仅一行main.py#L188 的F.cross_entropy。三、反向传播从损失一路追问到每个参数交叉熵损失告诉你错在哪、错多少**反向传播Backpropagation**则回答每个参数该怎么改。3.1 链式法则烤蛋糕的比喻想象蛋糕太甜了。要降糖但你不知道减 1 克糖 → 甜度降多少甜度降一点 → 蛋糕评分升多少两者相乘就知道减 1 克糖对评分的总影响——这正是链式法则参数对损失的影响 各层影响逐层相乘反向传播就是把这个乘法从损失出发、逐层反推到所有参数计算每个参数对错误的贡献度。3.2 一个直觉视角训练代码里只有两行loss F.cross_entropy(...)→ 我们错了多少loss.backward()→ 搞清楚为什么错执行完后每个参数都带上了grad梯度——比如把 cat 这个词的某个向量分量调大 0.001损失会下降 0.000342。1.2 亿个旋钮每个都有了明确的拧动方向。四、AdamW优化器大语言模型训练的标准配置有了梯度还差最后一步步长多大往哪迈朴素梯度下降每个参数、每步都用同样步长又慢又容易震荡。AdamW 用三大改进解决了这个问题改进直觉默认值动量 Momentum像滚下山坡的球记住方向、攒足冲量过滤噪声β₁ 0.9自适应学习率每个参数有自己的步长常动的参数小步走少动的参数大步走β₂ 0.95解耦权重衰减独立地把权重缓缓拉向零防止过大、抑制过拟合weight_decay 0.1W指 decoupled解耦权重衰减——它独立于梯度计算这才是它比普通 Adam 泛化更好的关键。GPT-3、LLaMA 以及所有主流大语言模型都用它训练。4.1 一个工程细节两组参数并非所有参数都该被拉向零。本项目把参数分成两组main.py#L304-L317衰减组weight_decay 0.1线性层权重、词嵌入不衰减组weight_decay 0偏置、RMSNorm 权重——它们是调音量旋钮压成零模型就废了常用超参数LLaMA 同款久经考验lr3e-4、betas(0.9, 0.95)、eps1e-8。 AdamW 六步工作原理详解explanations and examples WIP/adamw.md五、训练流程完整速览数据、混合精度与学习率调度把前三节拼起来一条完整的训练流水线还包括这些工程护城河环节作用本项目做法数据准备文本切块输入与目标错位 1 位预测下一个 tokenWikiText-103序列长 128~1024混合精度前向用 bfloat16显存减半、速度翻倍主权重仍用 float32 保精度torch.amp.autocast梯度累积显存放不下大 batch 时多次小 batch 累加梯度再更新等价于大 batchgrad_accum_steps2梯度裁剪防止个别坏样本引发梯度爆炸max_norm1.0余弦学习率调度先 warmup 稳住开局再沿余弦曲线平滑降速收尾精确软着陆explanations and examples WIP/cosine_warmup.md六、看懂损失曲线大语言模型训练健康的唯一体检报告训练时每 100 步记录一次损失并绘图这张图就是模型的心电图上图为项目 main.py 训练结束时自动生成的损失曲线从约 11 平滑下降到 5.6——一条理想的大语言模型训练曲线早期快速下降学会标点、常用词后期缓慢走低掌握主谓一致等细微规律。曲线异常速查表完整版含 8 种模式曲线形态诊断对策 平滑下降健康正常学习继续训练➡️ 横在 10.8 不动几乎必是 bug检查optimizer.step()、数据对齐⚡ 周期性尖刺梯度爆炸加/收紧梯度裁剪降学习率 训练降、验证升过拟合在背答案早停、加 dropout、增大 weight_decay❌ 变 NaN数值溢出大幅降低学习率、检查混合精度 八种损失曲线形态图解explanations and examples WIP/how_to_read_loss.md七、动手实践从零跑通你的第一个 GPT本教程所有代码逐行注释最小配置在 CPU 上几分钟即可跑完完整可运行脚本main.py —— 模型定义 训练循环 文本生成一个文件从头到尾训练章节chapters/08_training.md —— 数据加载、优化器、调度器、检查点保存交互式练习notebooks/08_training.ipynb架构总表chapters/11_glossary.md —— AdamW、RoPE、SwiGLU 等技术出处对照下一步训练训练完还可以尝试 fine-tuning/README.md 里的 LoRA 微调写在最后大语言模型训练全流程并不神秘交叉熵损失定义错多少反向传播算出每个参数该改多少AdamW决定迈多大一步——三者配合再辅以混合精度、梯度裁剪、余弦调度这些工程技巧就让上亿参数的小模型一步步学会猜下一个词最终开口说话。顺着本教程你写下的每一行代码用的都是 LLaMA、Mistral 等现代大语言模型同款公开技术。动手跑一次胜过读十篇文章。【免费下载链接】how-to-train-your-gptBuild a modern LLM from scratch. Every line commented. Explained like we are five.项目地址: https://gitcode.com/gh_mirrors/ho/how-to-train-your-gpt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表