构建 Apex-2 的经验教训
摘要
一位开发者分享了他在构建 Apex-2 过程中的经验教训。Apex-2 是一个小型开源大语言模型,使用约 80B tokens 训练,成本约 2000 美元,涉及 GPU 瓶颈、基于 DiLoCo 风格的 GH200 实例分布式训练,以及对 FineWeb-Edu 和 DCLM 数据集的激进 MinHash 去重。
大家好,非常感谢大家对我这个模型的关注,热度远超我的预期。下面简要总结一下我在构建 Apex-2 过程中的摸索与试错经验。
**1. GPU 始终是瓶颈**
我原本计划用大约 1T tokens 进行训练,但最终只训练了约 80B tokens。仅 FineWeb-Edu 就有约 1.3T tokens,我显然低估了数据规模:一块 H100 根本不够用。这个项目让我真切体会到了为什么会有这么多资金投入到 GPU 和显存上。
**2. DiLoCo 分布式训练**
在同一个区域内,运行两个独立实例的效果对我而言更好。我没有使用 2x H100 实例,而是使用了两个 GH200 实例,每隔固定步数进行一次模型合并。每块 GPU 达到了约 40% 的 MFU。2x H100 实例的单卡成本更高(约 4.19 美元/小时,而 GH200 为 2.29 美元/小时)。使用两个 GH200 实例、每块 GPU 约 40% MFU、每 350 步合并一次的情况下,训练速度比单 GPU 快约 1.9 倍,成本也更低。(数据中心实例之间的网络带宽可能帮了忙;一次合并通常不到一分钟。)
**3. 对 FineWeb-Edu 和 DCLM 进行去重**
当我对整个语料库一次性去重时(使用 MinHash,包含近似重复),我发现 FineWeb-Edu 样本中有 57%、DCLM 中有 34% 都是重复内容。FineWeb-Edu 仅在每个 Common Crawl 快照内部进行去重,因此在后续快照中被再次抓取的页面仍然保留。如果预算充足,这可能无关紧要,但我必须在极少的算力下发挥最大作用,所以把这些重复数据都删除了。(注意:FineWeb 的作者报告称跨快照去重并未提升他们的效果,所以这是一个权衡,而非免费的收益。)
关于 MoE 架构,我参考了 Mixtral 论文(https://arxiv.org/abs/2401.04088)。整个项目的花费约为 2000 美元。
我也在这里记录了我对大语言模型的思考,如果你感兴趣的话:https://github.com/DW-dev-UE/LLM-from-scratch/blob/main/ThinkingLab/ThinkingLab.en.md
我原本没打算在 Reddit 上分享这个模型,所以恐怕很多小错误已经记不太清了 😭 我现在正在构建一个 21B 参数的 MoE 模型,随着进展我会继续分享那个项目中的经验教训和错误。
再次感谢大家的关注!如果有机会,我很希望能加入实验室,帮助大家一起构建属于所有人的大语言模型。
相似文章
我仅用 86.5B tokens 从零训练了一个 3.87B 参数的 MoE 模型(激活参数 1.45B)
YOON1v 发布了 Apex-2,一个从零训练的 decoder-only 混合专家(MoE)大语言模型,总参数 3.87B / 激活参数 1.45B,使用 86.5B tokens 进行预训练并做了 SFT 微调,完整的代码、架构详解和基准测试结果(HumanEval 43.9)已在 Hugging Face 和 GitHub 上公开。
我用大约200美元的成本,从零开始在20B tokens上训练了一个1B参数的LLM。
一位开发者从零开始训练了一个1.1B参数的LLM,使用了200亿个token,成本约为200美元。该模型使用fineweb-edu进行预训练,并在OpenHermes上进行了LoRA微调。该项目包含开源代码、模型权重和一个演示网站。
@RohOnChain:别浪费2年时间学习构建像Claude和ChatGPT这样的LLM。斯坦福刚刚发布了一门2小时课程,教你如何构建……
一条推文重点介绍了斯坦福大学关于从零开始构建LLM的2小时课程,涵盖分词、解码、训练流程和架构,并指出Anthropic为此类专业知识支付高薪。
我从头开发了自己的量化大语言模型,使用300亿个token进行训练,部署大小仅为60 MB [R]
一位开发者从头创建了一个250M参数的量化大语言模型,使用300亿个token进行训练,可在CPU上以60 MB部署,并采用了一种新颖的基于磁盘的长上下文系统,支持最多1亿个token。
@harshbhatt7585: https://x.com/harshbhatt7585/status/2063593933314113587
作者分享了从头训练一个160M参数大语言模型的经验,尝试了多种架构,如多Token预测和分层推理模型。他强调快速迭代、简化思路以及理解架构有效原因的重要性。