LLM 是怎么学习的?训练过程大揭秘

张开发
2026/4/4 3:53:57 15 分钟阅读
LLM 是怎么学习的?训练过程大揭秘
系列大语言模型原理科普5 篇本篇第 2 篇难度⭐⭐ 零基础 浅显技术字数约 9000 字阅读时间20 分钟 开篇LLM 不是生来就懂想象一下你刚出生的时候不会说话不识字什么都不懂现在的你是怎么学会这么多知识的答案是学习。从婴儿到成人你花了1 年学会说话6 年学会识字12 年完成基础教育可能还有 4 年大学大语言模型也是这样。它刚被创建出来的时候就像一个刚出生的婴儿刚创建的模型 - 参数是随机的 - 什么都不懂 - 只会胡乱输出它是怎么变成学霸的答案是训练。今天这篇文章我会带你走进大语言模型的学校看看它是怎么学习的。你会了解它读的书从哪里来它怎么读书训练过程它怎么知道自己错了损失函数它怎么改正错误梯度下降 反向传播训练一次要花多少钱为什么训练完就不能继续学习了一、训练数据LLM 读的书1.1 数据从哪里来大语言模型的知识全部来自训练数据。训练数据是什么就是互联网上所有的文字。具体来说包括来源数据量内容网页500GB各种网站内容书籍100GB小说、教材、论文维基百科20GB百科知识代码50GBGitHub 等代码库新闻50GB新闻报道论坛100GB知乎、Reddit 等社交媒体100GB微博、推文总计~1TB几百万本书 技术小知识数据清洗原始数据不能直接用需要清洗 1. 去重删除重复内容 2. 过滤去掉低质量内容 3. 格式化统一成文本格式 4. 分词拆成字或词 清洗后数据量会减少 30-50% 但质量更高模型学得更好。1TB 是什么概念相当于500 万本书相当于1 亿篇知乎回答相当于100 亿条微博如果一个人每秒读 1 个字需要3000 年才能读完但 LLM 只需要几个月就能学会1.2 数据质量很重要你可能会想数据越多越好吗答案是不一定。垃圾数据训练出垃圾模型。想象一下如果 LLM 读的都是 - 错别字连篇的文章 - 胡编乱造的内容 - 逻辑混乱的文字 那它学到的也是错误的规律。所以训练数据需要精心筛选✅ 好数据书籍经过编辑审核维基百科有人维护高质量网站开源代码❌ 坏数据垃圾网站机器生成的垃圾内容充满错误的文本恶意内容 图 1数据筛选流程原始数据10TB ↓ 去重 → 剩 7TB ↓ 过滤低质量 → 剩 3TB ↓ 人工审核 → 剩 1TB ↓ 最终训练数据二、训练过程LLM 怎么读书2.1 核心思想遮字游戏大语言模型的训练其实就是一个遮字游戏。怎么玩1. 找一段文字 今天天气真好 2. 遮住最后一个字 今天天气真_ 3. 让 LLM 猜被遮住的字 LLM 猜好 4. 对照正确答案 正确答案是好 5. 猜对了→保持猜错了→调整 6. 重复万亿次就这么简单。但这个简单的游戏重复万亿次LLM 就学会了语言规律。 图 2遮字游戏训练数据我喜欢吃苹果 第 1 轮 输入我 → 猜喜 ✓ 第 2 轮 输入我喜欢 → 猜吃 ✓ 第 3 轮 输入我喜欢吃 → 猜苹 ✓ 第 4 轮 输入我喜欢吃苹 → 猜果 ✓ 重复万亿次LLM 就学会了2.2 训练步骤详解一次完整的训练包含以下步骤步骤 1准备数据从 1TB 数据中取一段 人工智能是未来科技的重要方向步骤 2遮住最后一个字人工智能是未来科技的重要方_步骤 3LLM 预测LLM 根据前面的字预测下一个字 - 向的概率70% - 法的概率20% - 式的概率10% LLM 选概率最高的向步骤 4计算损失判断对错正确答案是向 LLM 猜的是向 损失 0完全正确 如果 LLM 猜的是法 损失 正确答案概率 - 猜测概率 70% - 20% 50%损失很大步骤 5反向传播调整参数根据损失调整 7000 亿个参数 - 让向的概率更高 - 让法的概率更低 调整的幅度由学习率控制 - 学习率太大调整过度 - 学习率太小学得太慢步骤 6重复取下一段数据重复步骤 2-5 重复万亿次后LLM 就学会了 技术小知识损失函数损失函数就是衡量 LLM 预测有多错的公式。 常用的是交叉熵损失 损失 -log(正确答案的概率) 例子 - 正确答案概率 90% → 损失 -log(0.9) ≈ 0.1很小 - 正确答案概率 10% → 损失 -log(0.1) ≈ 2.3很大 训练的目标让损失越来越小 图 3训练流程训练数据 ↓ 遮字 → 今天天气真_ ↓ LLM 预测 → 好 (85%) ↓ 计算损失 → 对比正确答案 ↓ 反向传播 → 调整参数 ↓ 重复万亿次 ↓ 训练完成三、梯度下降LLM 怎么知道自己该怎么改读到这里你可能有个问题LLM 怎么知道参数该怎么调整这就涉及到一个核心算法梯度下降。3.1 什么是梯度下降梯度下降听起来很高深其实很好懂。想象你在山上想要下山你站在山顶 ↓ 看不到山脚不知道最优参数 ↓ 但你知道哪边是下坡梯度方向 ↓ 往坡下走一步 ↓ 再看哪边是下坡 ↓ 再走一步 ↓ ... 重复多次到达山脚这就是梯度下降。 类比山的高度 损失越高质量越差 山脚 最优参数损失最小 下坡方向 梯度损失减少最快的方向 步长 学习率每次调整多少3.2 梯度下降的数学原理用数学表示梯度下降是这样的1. 计算当前参数的梯度 梯度 损失对参数的导数 2. 沿着梯度的反方向调整参数 新参数 旧参数 - 学习率 × 梯度 3. 重复直到损失不再下降 技术小知识导数是什么导数就是变化率。 比如 - 速度是位置的导数位置变化多快 - 加速度是速度的导数速度变化多快 在 LLM 训练中 - 梯度是损失对参数的导数 - 它告诉我们应该往哪个方向调整参数 - 梯度大→调整多梯度小→调整少 图 4梯度下降损失 ↑ | * | / \ | / \ | / \ |/ \____ ----------------→ 参数 从高处往低处走 第 1 步* → 往下走 第 2 步* → 再往下走 ... 最后到达最低点最优参数3.3 学习率走多快梯度下降有个重要参数学习率。学习率是什么就是每次调整的步长。学习率太大 - 步子太大 - 可能错过最低点 - 训练不稳定 学习率太小 - 步子太小 - 学得很慢 - 可能卡在局部最低点 学习率刚好 - 稳步下降 - 找到全局最低点 图 5学习率对比学习率太大 起点 → 跳过头 → 反弹 → 跳过头 → ... 不稳定 学习率太小 起点 → 小步 → 小步 → 小步 → ... 太慢 学习率刚好 起点 → 中步 → 中步 → 中步 → 最低点 完美实际训练中学习率会动态调整开始学习率大快速下降中期学习率中等稳步下降后期学习率小精细调整四、反向传播错误怎么一层层传回去大语言模型有 96 层每层都有参数。当 LLM 预测错误时怎么知道每层的参数该怎么调整答案是反向传播。4.1 什么是反向传播反向传播就是把错误从后往前传告诉每一层该怎么调整。想象一个工厂流水线第 1 层 → 第 2 层 → ... → 第 96 层 → 输出 ↓ ↓ ↓ 参数 1 参数 2 参数 96当输出错误时1. 先计算输出的损失 2. 告诉第 96 层你的参数有问题这样改... 3. 第 96 层告诉第 95 层你的参数也有问题这样改... 4. 一层层传回去 5. 直到第 1 层这就是反向传播。 技术小知识链式法则反向传播用到了微积分的链式法则。 简单说就是 总损失对参数 1 的梯度 损失对输出 1 的梯度 × 输出 1 对输出 2 的梯度 × ... 输出 95 对参数 1 的梯度 不用懂细节知道核心思想就行 错误一层层往回传每层都知道该怎么改。 图 6反向传播前向传播预测 输入 → 层 1 → 层 2 → ... → 层 96 → 输出 反向传播调整 输出 ← 层 96 ← 层 95 ← ... ← 层 1 ← 输入 ↓ ↓ ↓ 调整 调整 调整 参数 96 参数 95 参数 14.2 为什么需要反向传播你可能会问为什么不能直接调整所有参数答案是参数太多了7000 亿不能瞎调。反向传播的好处1. 精确每个参数都知道该往哪个方向调不会乱调2. 高效一次反向传播所有参数都知道该怎么改不用逐个尝试3. 可解释知道哪一层对错误贡献最大可以针对性优化 类比没有反向传播 就像 7000 亿个人闭着眼睛乱走 不知道谁该往哪边走。 有反向传播 就像每个人都有一个导航 告诉你应该往哪边走。五、训练成本为什么 LLM 这么贵训练一个大语言模型需要多少钱答案可能让你惊讶几千万到几亿美元。5.1 成本拆解训练成本主要包括1. 硬件成本需要的显卡10000 张 NVIDIA H100 每张价格约 3 万美元 总计10000 × 3 万 3 亿美元2. 电力成本训练时间3 个月 耗电量约 5000 万度电 电费约 500 万美元3. 人力成本团队规模100 人 训练周期1 年包括准备 人力成本约 5000 万美元4. 其他成本- 数据中心租金 - 网络带宽 - 数据购买 - ... 约 5000 万美元总计约 5-10 亿美元 图 7成本分布硬件████████████████████ 60% 人力████████ 20% 电力████ 10% 其他████ 10%5.2 为什么这么贵1. 计算量太大训练一次大模型需要做多少次计算7000 亿参数 × 1 万亿字 × 96 层 天文数字具体来说每次预测7000 亿次计算训练数据1 万亿字重复次数3 轮epoch总计算量约 10^25 次这是什么概念如果一台电脑每秒计算 10 亿次需要300 亿年才能算完但用 10000 张显卡只需要3 个月2. 显卡太贵训练 LLM 需要专用显卡GPU。最常用的是 NVIDIA H100每张 3 万美元需要 10000 张总计 3 亿美元3. 电费惊人10000 张显卡同时运行功率约 50 兆瓦3 个月耗电5000 万度电费500 万美元 对比训练 GPT-3 的电费 - 5000 万度电 - 相当于 5 万户家庭 1 年的用电量5.3 训练时间训练一个大语言模型需要多久阶段时间内容数据准备1 个月收集、清洗、格式化预训练3 个月学习语言规律微调2 周学习特定任务测试评估2 周检查效果总计约 4 个月-为什么这么久数据太多1TB参数太多7000 亿计算量太大10^25 次 图 8训练时间线第 1 月数据准备 [████████] 第 2-4 月预训练 [████████████████████████] 第 5 月微调 测试 [████████]六、训练完成后为什么不能继续学习训练完成后LLM 的参数就固定了。它不能像人类一样继续学习新知识。6.1 为什么不能继续学习原因 1参数固定训练完成后7000 亿参数就固定了。要学习新知识需要重新训练调整参数。原因 2灾难性遗忘如果只在新数据上训练LLM 学会了新知识 ↓ 但忘记了旧知识 ↓ 就像你学了数学忘了语文这种现象叫**“灾难性遗忘”**。原因 3成本太高重新训练一次时间3 个月金钱几亿美元不现实6.2 解决方案微调和 RAG虽然不能重新训练但有其他方法让 LLM 学习新知识方法 1微调Fine-tuning在已有模型基础上用少量数据训练 优点 - 成本低几万美元 - 时间短几天 缺点 - 只能学特定任务 - 还是可能遗忘方法 2RAG检索增强生成不修改模型而是 1. 把新知识存到数据库 2. LLM 回答问题时先查数据库 3. 根据查到的内容回答 优点 - 成本极低 - 随时更新 - 不会遗忘 缺点 - 需要额外系统 - 依赖检索质量 对比重新训练 成本$$$$$ 时间3 个月 效果⭐⭐⭐⭐⭐ 微调 成本$$ 时间几天 效果⭐⭐⭐ RAG 成本$ 时间实时 效果⭐⭐⭐⭐七、总结3 分钟回顾核心要点读完这篇文章你应该记住这几点 核心要点1. 训练数据从哪里来互联网上的文字网页、书籍、代码等总计约 1TB几百万本书需要清洗和筛选2. 训练过程遮字游戏遮住最后一个字让 LLM 猜重复万亿次学会语言规律3. 核心算法损失函数衡量预测有多错梯度下降往损失减少的方向调整参数反向传播把错误一层层传回去4. 训练成本硬件3 亿美元10000 张显卡电力500 万美元人力5000 万美元总计5-10 亿美元5. 训练时间数据准备1 个月预训练3 个月微调 测试1 个月总计约 4 个月6. 训练后不能继续学习参数固定灾难性遗忘成本太高解决方案微调、RAG 下篇预告读完这篇你可能有个问题LLM 内部到底是怎么处理的输入一个问题后它内部经历了什么自注意力机制具体怎么工作96 层每层都在做什么第 3 篇《LLM 怎么生成回答揭秘思考过程》我会带你走进 LLM 的大脑看看它内部是怎么工作的。你会看到输入怎么变成数字自注意力机制的详细计算过程96 层每层的作用输出怎么生成为什么会有幻觉下周五我们继续。 互动时间读完这篇文章你有什么问题欢迎在评论区留言我会尽量回答。你也可以做个小测试看看自己有没有理解 小测试1. LLM 的训练数据主要来自哪里 A. 人工编写 B. 互联网 C. 购买 2. 训练的核心游戏是什么 A. 猜谜 B. 遮字 C. 接龙 3. 梯度下降的作用是什么 A. 增加损失 B. 减少损失 C. 不变 4. 反向传播的方向是 A. 从前往后 B. 从后往前 C. 随机 5. 训练一次大模型需要多少钱 A. 几万美元 B. 几百万美元 C. 几亿美元 6. 训练完成后LLM 能继续学习吗 A. 能 B. 不能 C. 看情况 答案1.B 2.B 3.B 4.B 5.C 6.B系列文章第 1 篇大语言模型是什么✅第 2 篇LLM 是怎么学习的本文✅第 3 篇LLM 怎么生成回答下周五第 4 篇LLM 能做什么第 5 篇LLM 的局限性和未来最后更新2026-04-02下一篇4 月 9 日周五发布如果你觉得这篇文章有帮助欢迎点赞、收藏、转发让更多人看懂大语言模型

更多文章