ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

现代 LLM 是怎么训练出来的:从 2017 Transformer 到 2026 推理时代的工程全景(TaoToken 统一 Key 视角)

现代 LLM 是怎么训练出来的:从 2017 Transformer 到 2026 推理时代的工程全景(TaoToken 统一 Key 视角) 1. 从 2017 Transformer 到 2026 推理时代LLM 训练全链路到底在训什么现代 LLM 是怎么训练出来的如果你只记一句话LLM 训练是一条五阶段流水线不是一次事件。预训练长出能力对齐校准方向RL 点燃推理。这句话听起来抽象但落到工程上它决定了你每一次调用模型 API 时背后到底是哪一层能力在起作用。我见过太多人把「训练」理解成「扔数据进去跑一次」然后在实际接入模型时踩坑明明模型号称 128K 上下文喂长文档却答非所问明明开了推理模式简单问题反而绕一大圈。这些现象都不是 bug而是你没分清模型处在流水线的哪一段。这篇文章面向三类人想搞懂 LLM 训练全貌但被 RLHF、DPO、GRPO 这些缩写绕晕的开发者需要给团队做多模型选型和统一接入的工程负责人以及想验证「推理模型到底强在哪」的实践者。全文按五阶段流水线展开——数据准备、预训练、持续预训练、对齐训练、推理训练每一段都给出可复制的配置片段和验证动作。最后一段会落到一个很实际的问题当你要同时调用 GPT、Claude、DeepSeek、Qwen 这些不同厂商、不同训练阶段的模型时怎么用一套统一 Key 和 API 通道管理它们而不是在每个项目里维护一堆散落的密钥和 base_url。这就是 TaoToken 统一 Key 视角要解决的问题。先建立心智模型。基础模型base model只做过 next-token 预训练补全能力强但不会听话指令模型instruct model在基础模型上做了 SFT 和偏好对齐能按对话格式回答推理模型reasoning model在指令模型之上通过后训练和推理时算力分配强化长思考行为。从基础模型到推理模型至少五个阶段每个阶段的数据、目标、代表论文和工程坑都不一样。2. 预训练阶段 tokenizer 与 Scaling Laws 配置next-token prediction 的工程细节预训练的目标朴素到一句话给定前面所有 token预测下一个 token。但这一件事要跑起来工程细节极多。先讲 tokenizer因为它是模型看世界的眼睛一旦训好就很难换。模型看到的不是中文字符而是 token——分词器切出来的整数 ID。主流方案是 BPE 和 SentencePiece。这里有个新手常忽略的坑早期英文为主的 tokenizer 对中文很差一个汉字往往切成 2 到 3 个 byte-level token等于同样的 context 长度装的中文更少训练和推理都更贵。这也是为什么 Qwen、DeepSeek、GLM、Kimi 都会自建 tokenizer。Scaling Laws 是预训练的资源分配指南。2020 年 OpenAI 的 Kaplan Scaling Laws 给出第一版经验公式但让很多人误以为参数越大越划算结果做出了 175B 但只训 300B tokens 的 GPT-3。2022 年 DeepMind 的 Chinchilla 纠正了这个问题对固定 compute 预算每 1 个参数配约 20 个 tokens 才是最优。训练算力有个经验公式训练 FLOPs 约等于 6 × N × DN 是参数量D 是训练 tokens。为什么是 6一次 forward pass 约 2 FLOPs/参数/tokenbackward 约 4总 6。下面是一份可复制的预训练配置片段用 YAML 描述关键参数你可以对照自己的场景调整# pretrain_config.yaml —— 预训练阶段核心参数 model: architecture: decoder_only_transformer n_layers: 32 d_model: 4096 n_heads: 32 vocab_size: 128000 # Llama 3 级别词表中文压缩更好 max_seq_len: 8192 # 预训练长度长上下文靠 mid-training 扩展 rope_theta: 500000.0 # RoPE 基频影响长度外推能力 training: total_tokens: 15_000_000_000_000 # 15T tokenstoken/param 比约 1875 global_batch_size: 2048 learning_rate: 3.0e-4 lr_schedule: cosine warmup_steps: 2000 weight_decay: 0.1 grad_clip: 1.0 precision: bf16 # 预训练常用 bf16FP8 需额外数值稳定性处理 parallel: dp: 8 # 数据并行 tp: 8 # 张量并行节点内 pp: 4 # 流水线并行跨节点 zero_stage: 3 # ZeRO-3 去冗余 sequence_parallel: true # 长序列训练必开这份配置里最容易被忽略的是rope_theta和sequence_parallel。RoPE 基频设大一点后续做长度外推会容易很多序列并行不开长上下文训练的 activation 显存会随序列长度平方增长直接爆掉。数据决定基础能力上限。Common Crawl 是大部分模型的起点但原始垃圾率极高必须配合 MinHash 去重、质量分类器和多阶段过滤。FineWeb、DCLM 是近年公开的高质量子集。LLaMA 3.1 公开了数据混合比约 50% general、25% math/reasoning、17% code、8% multilingual。合成数据在 2024 到 2025 正式进入预训练Phi-4 约 40% 训练数据是合成。3. 对齐训练 SFT 与 DPO 配置片段从模仿到偏好的可复制流程基础模型训好之后你扔一个「你好怎么做蛋炒饭」给它它很可能不回答而是续写。要让它听话需要后训练。后训练有四条常被混为一谈的路线SFT、RLHF、DPO、Constitutional AI。SFT 最朴素收集高质量的指令-回答对做交叉熵训练和预训练同一个损失只是数据变了。优点是简单稳定见效快是所有 post-training 的第一步。缺点是只会模仿给定答案不会选更好的答案。现代主流 pipeline 的 SFT 数据量通常在几万到百万条量级质量远比数量重要。RLHF 是 InstructGPT 系统化的三阶段SFT、训 Reward Model、PPO。关键技巧是加 KL 惩罚不让模型在 RL 中跑得离原 SFT 模型太远否则会 reward hacking。RLHF 解决了 SFT 解决不了的问题怎么排序两个都合法的回答。但代价是工程复杂要额外训 reward model还要跑 PPO超参敏感。DPO 把 RLHF 简化成一个分类问题。既然最优策略和奖励之间有一一对应的闭式关系那就别训 reward model 了直接把偏好对当成二分类问题。损失函数是# DPO loss 核心实现PyTorch 风格伪代码 import torch.nn.functional as F def dpo_loss(policy_chosen_logps, policy_rejected_logps, ref_chosen_logps, ref_rejected_logps, beta0.1): # y_w preferred人类选出的更好回答 # y_l less preferred较差的那条 # pi 正在训练的 policy 模型 # pi_ref 参考模型通常是 SFT 后的权重训练期间冻结 chosen_logratios policy_chosen_logps - ref_chosen_logps rejected_logratios policy_rejected_logps - ref_rejected_logps logits beta * (chosen_logratios - rejected_logratios) # beta 越大约束越强、越贴近参考模型越小越激进也越容易过拟合 losses -F.logsigmoid(logits) return losses.mean()DPO 的实用价值极大少一个模型少一个 RL 算法稳定性远好于 PPO。今天几乎所有开源 post-training 都以 DPO 或其变种为主。DPO 家族还有几个变体值得知道IPO 解决强偏好下过拟合KTO 只需 binary 标签适合产品里的点赞点踩数据SimPO 不要 reference model省一半显存。实战选择上如果你刚有 base 模型想让它能聊天走 SFT 到 DPO工程最简如果有大量人类偏好数据想全面对齐走经典 RLHF上限高但工程复杂如果没有足够人标偏好用 Constitutional AI 或 RLAIF 降本如果只有二元反馈用 KTO如果关心数学代码等有客观答案的任务跳过学出来的 RM用下一节的 RLVR 加 GRPO。4. 推理模型 GRPO 与 RLVR 验证思考时间成为第二条 scaling 轴2024 下半年开始LLM 主战场发生转向。以前讨论怎么让模型更强大家说加参数、加数据、加算力。o1 登场后出现了一条新的 scaling 轴——推理时的思考 tokens。指令模型的流程是用户问题到模型一次生成答案模型想多久等于写多久。推理模型不一样先生成一长段内部思考可能几千到几万 tokens再生成对用户可见的答案。让模型在 test time 更聪明有好几条路线不只写更长 CoT。Best-of-N 采样 N 个答案选 reward 最高的Self-consistency 采样 N 个 CoT 对最终答案多数投票MCTS 风格搜索把思考过程看成树多 agent 并行加投票是 Grok 4 Heavy 的公开做法。一条往深走一条往宽走。核心挑战是思考链不能靠人标。谁去给一段 3000 tokens 的数学推理标注偏好2024 到 2025 的解法是 RLVR 加 GRPO。RLVR 的思路很直接在有客观答案的任务上奖励直接用 0/1 可验证信号不训学出来的 RM天然防 reward hacking。GRPO 是 DeepSeekMath 提出的算法对每个 prompt 采样 G 个回答用组内奖励的均值和方差做标准化来估计 advantage不需要 critic 网络。下面是一个 GRPO 训练配置片段用 TOML 描述关键超参# grpo_train.toml —— 推理模型 RL 训练配置 [model] base deepseek-v3-base # 从 base 或 instruct 出发 policy_dtype bf16 ref_model_frozen true # 参考模型冻结 [grpo] group_size 8 # 每个 prompt 采样 G 个回答 beta_kl 0.04 # KL 惩罚系数防止偏离参考模型 clip_ratio 0.2 # PPO 风格裁剪 advantage_normalize group # 组内标准化GRPO 核心 learning_rate 1.0e-6 max_new_tokens 8192 # 思考链长度上限 [reward] type verifiable # RLVR可验证奖励 math_checker sympy # 数学答案符号验证 code_checker unit_test # 代码跑单元测试 format_reward 0.1 # 格式奖励鼓励结构化输出 [rollout] engine vllm # 推理引擎训练和推理是两个世界 temperature 1.0 top_p 0.95一个具体的小例子同一道数学题GRPO 采 4 个回答reward 分别是 1、1、1、0。组内均值 0.75标准差约 0.433。对的三个答案 advantage 约正 0.58错的那个约负 1.73。RL 目标加大对三个正确回答的正向更新压低错误回答的概率。DeepSeek R1 的训练流程是从 V3-Base 开始做 cold-start SFT大规模 GRPO RL用 RL 后模型生成推理数据做第二次 SFT第二次 RL 涵盖更广任务。最震撼的是 R1-Zero完全跳过 cold-start SFT从 base 直接 RL仍然涌现了 long CoT、self-verification、反思和回溯。这说明推理能力是预训练模型里潜在的RL 只是把它激活。但有个重要 caveat2025 年清华等团队的研究提出RLVR 主要改善的是采样效率低 k 下准确率显著提升但高 k 下的总覆盖可能持平甚至收窄。换句话说RL 让模型更常做对但 base 模型做不到的题 RL 后也做不到多少。读 R1 时既要被惊到也要知道这只是一条刚开始的路线。5. 多模型统一 Key 接入与常见报错排查401 与 local proxy failed 怎么解当你把训练流水线搞清楚后实际工程里更常见的问题是怎么同时调用不同厂商、不同训练阶段的模型并且稳定排障。这里就是 TaoToken 统一 Key 视角的落点。TaoToken 提供统一的 API 通道官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 端点是 https://taotoken.net/api。先说清楚三件套Base URL、Key、Model ID。任何接入问题先确认这三个。Base URL 填 https://taotoken.net/apiKey 在控制台生成Model ID 按你要验证的模型填。下面是一个可复制的 settings 片段以 Claude Code 风格配置为例{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-your-taotoken-key, ANTHROPIC_MODEL: claude-opus-4-7 }, permissions: { allow: [Bash, Read, Write] } }如果你用 Codex 风格配置auth.json 长这样{ base_url: https://taotoken.net/api, api_key: sk-your-taotoken-key, model: gpt-5.2-thinking }现在讲排错。第一个高频报错是 401 Unauthorized。原因通常是 Key 没填对、Key 过期、或者 Base URL 末尾多了斜杠导致路径拼接错误。排查动作先用 curl 直接打一次确认 Key 本身有效curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-your-taotoken-key \ -H Content-Type: application/json \ -d {model:deepseek-v4-flash,messages:[{role:user,content:ping}]}如果 curl 通了但客户端报 401问题在客户端配置检查环境变量有没有被覆盖。第二个高频报错是 local proxy failed。这个通常出现在你本地配了代理但代理没起来或者代理端口和客户端配置不一致。注意这里说的是本地开发环境的网络配置问题不是让你去用什么特殊网络工具。排查动作检查客户端里的 proxy 设置如果不需要就走直连把 proxy 相关环境变量清掉再试。第三个是 reading choices 报错通常是响应格式和客户端预期不匹配。比如你用了 OpenAI 兼容格式但客户端按 Anthropic 格式解析。排查动作确认你调用的端点路径和请求体格式一致OpenAI 兼容用 /v1/chat/completionsAnthropic 风格用对应路径。第四个是 OAuth 相关报错出现在 Claude Code 这类工具里。如果你用的是 API Key 模式就不该走 OAuth 流程检查配置里有没有混入 OAuth 字段。验证请求成功的标志很明确返回体里有 choices 数组或者 Anthropic 风格返回 content 数组且没有 error 字段。下面是一个成功的响应结构示例{ id: chatcmpl-xxx, object: chat.completion, model: deepseek-v4-flash, choices: [ { index: 0, message: {role: assistant, content: pong}, finish_reason: stop } ], usage: {prompt_tokens: 5, completion_tokens: 2, total_tokens: 7} }看到 usage 字段有数字说明计费链路也通了。这一步验证完你才算真正把统一 Key 接入跑通。6. 语义一致 CTA用统一通道验证不同训练阶段的模型差异把训练流水线搞懂之后最有价值的实践是用同一套 Key 和 API 通道去对比不同训练阶段模型的行为差异。这比读十篇论文都直观。你可以这样操作拿同一个 prompt分别打基础模型、指令模型、推理模型观察输出差异。基础模型会续写指令模型会直接回答推理模型会先给一段思考再给答案。这个对比能让你对「预训练长出能力、对齐校准方向、RL 点燃推理」这句话有肌肉记忆。具体验证路径上模型对话入口适合快速对比不同模型的对话表现你可以直接开一个会话切换 Model ID 看差异。如果你要长期做编码和 Agent 任务Coding Plan 更适合它按编码场景优化了调用方式。接入文档里有完整的端点和参数说明API Keys 页面用来管理你的密钥。我试过用同一段长文档分别喂给标称 128K 和 1M 上下文的模型结果发现标称长度只是上限真正能不能用要看 RULER 风格的多任务表现。所以选型时别只看参数页写的长度拿自己的业务数据跑一遍再决定。最后给一个实用技巧把不同模型的 Model ID 和适用场景做成一张对照表放在项目里比如便宜任务路由到小模型推理任务路由到强推理模型长上下文路由到长窗口模型。这样团队里任何人接入时都不会选错。统一 Key 的价值就在这里——你不用为每个厂商维护一套鉴权和计费逻辑一套通道管到底。如果你要跟进训练侧的最新进展建议按时间尺度走第一周通读 InstructGPT、Chinchilla、DPO、DeepSeek R1 四篇核心论文第一个月选一个开源 base 跑一次 SFT 到 DPO 流水线第三个月复现一次 GRPO on 数学题。方法每半年变一次但流水线加可监督信号加可验证奖励这个底层框架比具体方法稳定得多。
返回列表