Fork me on GitHub

学习大模型训练的 RLHF:从人类偏好到奖励模型

在上一篇文章中,我们学习了如何用标注好的问答数据对预训练模型做监督微调,还学习了 LoRA 这种只训练一小部分参数的高效微调方式。经过 SFT,模型学会了模仿标准答案的格式和口吻,从一个只会续写文本的底座模型,变成了一个能按指令回答问题的助手。不过 SFT 有...

- 阅读剩余部分 -

学习大模型训练的监督微调:SFT 与 LoRA

在上一篇中,我们把预训练的工程面完整过了一遍:Megatron-LM 和 DeepSpeed 这类框架如何用张量并行、流水线并行把几千亿参数的训练摊到成百上千张卡上,以及 Scaling Law 如何指导我们在算力预算内分配模型大小和数据量。到此为止,...

- 阅读剩余部分 -

学习大模型训练的分布式并行策略

在上一篇《学习大模型训练的显存管理》中,我们算过训练的显存占用:一个 7B 模型用 AdamW 全参数训练,FP32 主权重、Adam 的 m 和 v 两个状态、FP16 权重和梯度加起来大约 112 GB。我们也学了混合精度、...

- 阅读剩余部分 -

学习大模型训练的显存管理与混合精度

在上一篇中,我们学习了参数是怎么被一步步更新的:前向传播算出损失,反向传播沿计算图把梯度传回每个参数,最后 AdamW 用一阶、二阶矩估计对参数做更新。当时我们的注意力都在计算过程上,有一个问题被有意略过了:这些东西全都得放...

- 阅读剩余部分 -

学习大模型训练的分词器:从语料到词表

在上一篇中,我们把训练语料的来龙去脉走了一遍:从 Common Crawl 这样的互联网快照开始,经过过滤、去重、质量打分,最后得到一份干净的高质量语料。不过这份语料还不能直接喂给模型,中间还差一道工序,那就是分词。在《大模型推理》系列的...

- 阅读剩余部分 -

学习大模型训练的数据:从互联网到高质量语料

在上一篇中,我们把一个模型的诞生过程画成了一张地图:先收集海量原始数据,经过清洗和配比得到训练语料,再用分词器切成 token,接着预训练出基座模型,然后经过监督微调学会听指令,最后通过偏好对齐让回答合乎人类偏好,得到一个会对话的模型。今天我...

- 阅读剩余部分 -