开篇训练大模型不是简单“喂数据”很多人第一次理解大模型训练时会把它想成“把数据塞进去模型就会回答问题”。这个说法太粗了。真正的大模型训练更像培养一个新人先让他读大量资料形成基础能力再给他看标准问答学会工作方式最后通过偏好反馈让他说话更稳、更安全。一、预训练先让模型“读万卷书”预训练是整个大模型能力的地基。它面对的不是人工写好的问答而是海量普通文本、代码、网页、书籍、论文等。训练目标通常很朴素根据前面的 token预测下一个 token。看起来只是续写但当语料足够大、模型足够深、训练足够久时模型会在这个过程中学到语言结构、常识、事实关联、代码模式和一部分推理规律。以自回归语言模型为例训练时会把一句话右移一位形成标签。模型看到“我 想 喝 一杯”目标是预测“咖啡”。每一个位置都在做类似的预测最后通过交叉熵损失让模型不断修正参数。importtorchimporttorch.nn.functional as F# input_ids: [batch, seq_len]outputsmodel(input_ids)logitsoutputs.logits# 第 t 个位置预测第 t1 个 tokenshift_logitslogits[:, :-1, :].contiguous()shift_labelsinput_ids[:,1:].contiguous()lossF.cross_entropy(shift_logits.view(-1, shift_logits.size(-1)), shift_labels.view(-1))loss.backward()二、训练数据不是越多越好而是越干净越值钱预训练数据往往来自多个渠道但不能简单堆进去。低质量网页、重复内容、乱码、广告、采集脏数据、隐私内容都会影响模型表现。数据清洗越粗模型越容易学到错误模式。一个成熟的数据管道通常会做采集、去重、质量过滤、敏感信息处理、语言识别、分词、配比混合。不同数据占比会影响模型能力例如代码数据比例会影响代码能力数学和论文数据会影响推理与技术理解。网页数据覆盖广但噪声也高需要去重和低质过滤。书籍和论文更结构化适合提升长文理解和专业表达。代码数据能显著影响编程能力但也需要处理许可证和重复仓库。多语言数据配比会影响不同语言下的回答质量。三、SFT让模型从“会续写”变成“会回答”预训练后的 Base Model 已经有知识和语言能力但它不一定知道怎么像助手一样回答。你问它一个问题它可能继续补全文章也可能输出不符合格式的内容。SFT也就是监督微调会给模型看大量“用户问题 标准回答”的样本。它的重点不是重新教模型所有知识而是教模型如何理解指令、如何组织回答、如何按格式输出。{messages:[{role:system,content:你是一个通俗的技术助手。},{role:user,content:用三句话解释什么是梯度下降。},{role:assistant,content:梯度下降会沿着误差变小的方向调整参数。每次只调整一点点直到损失下降。}]}SFT 数据质量非常关键。好的样本要覆盖真实用户问题并且回答稳定、准确、风格统一差的样本会把模型带偏让它学会啰嗦、跑题、格式混乱甚至学会错误知识。四、对齐让模型回答得更符合人类偏好SFT 之后模型已经像一个助手但它还未必知道“哪个回答更好”。比如两个回答都能答题一个更简洁、一个更啰嗦一个会承认不确定另一个会硬编。对齐阶段就是让模型更偏向人类认可的回答方式。常见做法包括 RLHF 和 DPO。RLHF 通常会收集多个回答的人工偏好排序训练奖励模型再用强化学习优化模型DPO 则直接用 chosen / rejected 这种偏好样本进行训练流程更轻。{prompt:用户我发烧 39 度能不能只吃感冒药,chosen:建议尽快就医或咨询医生39 度属于高热不要只依赖普通感冒药。,rejected:没事多喝热水吃点感冒药就行。}对齐不是让模型凭空更懂知识而是让它在多个可能回答中更倾向于安全、诚实、有帮助的表达。它也不是越强越好如果对齐过度模型可能会变得过于保守简单问题也拒答。五、分布式训练为什么大模型不是一张显卡能搞定当模型参数达到几十亿、几百亿甚至更大时训练难点会从“算法怎么写”变成“显存怎么放、通信怎么做、吞吐怎么稳”。训练中不只保存参数还要保存梯度、优化器状态和中间激活值这些都会占用大量显存。工程上常用数据并行、张量并行、流水线并行、ZeRO 分片优化等方法组合使用。简单说能复制的复制太大的拆开层数太多就切成流水线优化器状态也尽量别每张卡都存一份。training: precision: bf16 micro_batch_size:2gradient_accumulation_steps:16parallelism: data_parallel_size:8tensor_parallel_size:2pipeline_parallel_size:4optimizer: type: adamw lr:3.0e-4 zero_stage:2这些配置不是越大越好。并行度越高通信成本也越高batch 太小吞吐低batch 太大又可能影响收敛。真正的训练调优往往是在显存、速度、稳定性、成本之间不断取平衡。六、评估训完不等于能上线模型训练结束后不能只看 loss 下降。loss 低只能说明模型更会拟合训练目标不代表回答更有用、更安全、更适合业务。上线前通常需要离线评测、人工评测、安全评测和线上灰度反馈。通用能力阅读理解、数学、代码、事实问答、多轮对话。业务能力是否遵循业务规则是否能按固定格式输出。安全能力是否泄露隐私是否编造是否越权回答。工程指标延迟、吞吐、成本、稳定性和回滚能力。七、四个环节放在一起看把预训练、SFT、对齐、评估放在一张表里会更容易理解它们的边界。预训练决定能力底座SFT 决定交互方式对齐决定回答分寸评估决定能不能上线。八、常见误区这些坑最容易混淆误区一预训练等于问答训练。实际上预训练通常是 next-token predictionSFT 才是指令回答样本。误区二SFT 可以解决所有知识问题。SFT 更适合教格式和行为知识更新更常见的方式是继续预训练、RAG 或工具调用。误区三RLHF 只是安全审查。它本质是偏好优化既包括有帮助也包括诚实、安全、符合场景。误区四参数越大就越好。数据质量、训练配方、推理成本和业务适配同样重要。误区五跑分高就能上线。真实业务还要看稳定性、合规、成本和用户反馈。结尾一句话讲清楚大模型训练大模型训练不是一次完成的“喂数据”而是一条连续流水线预训练打基础SFT 教会交互对齐校正行为评估和反馈不断修补短板。如果面试要讲清楚这件事可以用这句话收尾预训练决定模型“会什么”SFT 决定模型“怎么答”对齐决定模型“该不该这样答”评估决定模型“能不能上线”。