Blog Cover

大模型是如何被训练出来的?从预训练到对齐的三阶段技术全景

当我们与一个训练完成的大语言模型对话时,它似乎能理解我们的问题、组织连贯的回答、甚至在某些领域展现出接近专家的知识水平。但这个"智能体"并非凭空诞生——在它能说出第一句话之前,背后是一个历时数月、耗资千万美元、涉及万亿级token的复杂训练过程。 ...

18 min · 8885 words

合成数据训练大模型:从Phi的成功到模型崩溃的十五年博弈

2023年6月,微软研究院发布了一篇标题充满争议性的论文:《Textbooks Are All You Need》。论文介绍了phi-1模型——一个仅有13亿参数的语言模型,在HumanEval代码基准测试上达到了50.6%的pass@1准确率,超越了拥有超过100倍参数的模型。秘密在于它的训练数据:70亿token的网页数据和10亿token由GPT-3.5生成的合成教科书数据。 ...

10 min · 4894 words

千亿参数模型如何塞进有限显卡ZeRO如何用分片消除数据并行的内存冗余

2020年2月,微软研究院发布了一个名为DeepSpeed的深度学习优化库,其中最引人注目的组件是ZeRO(Zero Redundancy Optimizer)。这项技术声称可以在1024块GPU上训练万亿参数模型。当时最大的语言模型GPT-2仅有15亿参数,Megatron-LM也不过83亿参数。ZeRO究竟做了什么,能让模型规模提升百倍以上? ...

13 min · 6183 words

梯度检查点如何让大模型训练突破显存瓶颈:从时间换空间到选择性重计算的技术进化

2020年,当OpenAI训练拥有1750亿参数的GPT-3模型时,他们面临一个令人绝望的现实:即使使用当时最先进的NVIDIA A100 GPU(80GB显存),单张显卡连模型都无法加载,更不用说训练了。 ...

12 min · 5878 words

MoE的门控路由为何如此难以训练?从负载均衡到专家坍缩的技术困境

当混合专家模型(Mixture of Experts, MoE)首次在2017年被提出时,研究者的愿景很美好:用一组专门化的"专家"网络替代传统的全连接层,让每个输入只激活一小部分参数,从而在保持计算效率的同时大幅扩展模型容量。然而,当他们真正开始训练这些模型时,却发现了一个令人沮丧的现象——路由器总是倾向于选择相同的几个专家,而让其他专家完全闲置。 ...

15 min · 7035 words

BF16为何正在取代FP16成为大模型训练的标准格式从动态范围陷阱到损失缩放的技术突围

2017年,NVIDIA和百度研究院联合发表了一篇题为《Mixed Precision Training》的论文,展示了如何用16位浮点数训练深度神经网络。论文中有一个不起眼的细节:训练某些网络时,需要将损失值放大8到32768倍,否则梯度会变成零。 ...

9 min · 4389 words

为什么Flash Attention能将注意力计算提速数倍而不损失精度——从GPU内存墙到IO感知算法的技术突围

2023年,当大模型的上下文窗口从4K扩展到128K甚至更长时,一个看似不可逾越的技术障碍横亘在研究者和工程师面前:注意力机制的计算复杂度随序列长度呈二次方增长。处理一个16K token的序列,光是注意力矩阵就要占用近1GB显存;64K序列的注意力矩阵更是超过16GB,直接撑爆了当时最顶级GPU的内存容量。 ...

12 min · 5618 words