【免费下载链接】ZGCM-1
ZGCM-1 预训练是开源 7.39B 稠密基座模型的"地基工程":用约4.19T tokens分两个阶段完成——先以约 0.99T token 按"从易到难"的课程顺序打底,再用约 3.20T token 的全量混合语料做全局打散精训。全程 16K 上下文、192 张 H100、混合 FP8 精度加 Muon 优化器,官方报告约 585 model TFLOP/s/GPU 的训练效率。这篇文章把这套 ZGCM-1 预训练配方拆成数据、架构、优化与工程四层,带你完整看懂它是怎么炼成的 🔥
一、一张表看懂 4.19T Token 怎么花
ZGCM-1 的预训练分为两个数据阶段(data stages),总 token 预算约 4.19T,全程使用 16K(16,384)上下文长度:
| 阶段 | Token 预算 | 数据策略 | 模型初始化 |
|---|---|---|---|
| Stage 1:1T 课程预训练 | 约 0.99T | 通用文本按词汇复杂度从低到高顺序排列,代码与数学独立穿插 | 从零开始训练 |
| Stage 2:3.2T 全量混合 | 约 3.20T | 离线全局打散(global shuffle)后按序消费;代码、数学占比提高,并加入专项推理语料 | 加载 Stage 1 最终 checkpoint |
两个阶段都混合了 Web、学术/OCR、代码、数学与 LaTeX 来源;跨阶段去重会确保 Stage 1 出现过的内容不会进入 Stage 2。数据清洗与治理由仓库内的 />
预训练的"学生"是一个 decoder-only 稠密 Transformer:
| 规格 | ZGCM-1 |
|---|---|
| 参数量 | 7.39B |
| 层数 / 隐藏维度 | 32 / 4,096 |
| FFN 维度 | 11,008(SwiGLU) |
| 注意力 | 27 层门控滑动窗口(128 token)+ 5 层全局注意力 |
| GQA | 32 个 Query 头 / 8 个 KV 头,KV 通道 128 |
| 其他 | 部分 RoPE(33.4%)、QK-LayerNorm、RMSNorm、无偏置、Embedding 与输出层不共享 |
关键点在于门控滑动窗口注意力:绝大多数层只看 128 token 的局部窗口并带一个 Sigmoid 门控,每隔若干层插入一次全局注意力"接力"。这套结构是后续长上下文训练能高效扩展的基础,也是架构实验里 256K 长程吞吐提升 3.94× 的来源。
四、并行策略与效率武器:Muon + 混合 FP8
生产级训练在192 张 H100(24 节点 × 8 卡)上跑,并行切分为TP2 / PP1 / CP2 / DP48——用 2 路张量并行、2 路上下文并行(序列切分)和 48 路数据并行,16K 序列下不用流水线并行也能跑满。
| 训练配置 | 取值 |
|---|---|
| 微批 / 全局 batch | 2 / 768 |
| 学习率 | 恒定2e-4(warmup 667 步),min LR2e-5 |
| 权重衰减 / 梯度裁剪 | 0.1 / 1.0 |
| RoPE base | 5,000,000 |
| 激活重计算 | 关闭(FP8 显存足够,直接算) |
矩阵优化器用 Muon:动量 0.9、谱尺度(spectral scaling)、5 步 Newton–Schulz 正交化;标量参数仍走 Adam(beta2=0.95)。精度用 Transformer Engine 的混合 FP8:hybrid格式 +delayed定标配方,amax 历史窗口取 1024 步,其余操作用 BF16/FP32 兜底。这套组合拳在 16K 生产运行中测得约585 model TFLOP/s/GPU,相对同规模 BF16/AdamW 基线,预训练 time-to-loss 提升约4.2×。
上图展示了分布式优化器(Distributed Optimizer)的工作方式:优化器状态按数据并行维度切分到各 GPU,配合--overlap-grad-reduce把梯度规约与计算重叠,是 192 卡规模下不"掉卡"的关键工程细节。
五、训练过程长什么样:迭代、断点与损失曲线
两个阶段的训练步数直接写在了配置里(01_pretrain_1t_sequential.env 与 02_pretrain_3p2t_global_shuffle.env):
- Stage 1:
TRAIN_ITERS=79473,每 1000 步存一次 checkpoint(--ckpt-format torch_dist),每 10 步打印日志; - Stage 2:从 Stage 1 的 79,473 步断点续训,再跑
TRAIN_ITERS=333787,并记录已消费样本数61,035,264作为数据偏移锚点,保证 resume 时样本序列严格连续。
典型的预训练损失曲线长这样:前期急速下降,之后进入缓慢爬行的长平台(下图为 Megatron-LM 官方示例中的训练曲线形态):
ZGCM-1 全程用恒定学习率而不是余弦衰减,配合 Muon 的谱尺度控制收敛速度——这也是它敢用 FP8 直训、不关激活重计算的底气。
六、如何一键启动:多机多卡的启动脚本
整个pretrain/目录自成一体(含打包的 Megatron-LM 源码与运行时说明,见 pretrain/docs/SOURCE_PROVENANCE.md)。在每个 worker 上执行:
export SHARED_STORAGE_ROOT="${SHARED_STORAGE_ROOT:?}" # 数据/词表/venv 根目录 export MASTER_ADDR="${MASTER_ADDR:?}" # Stage 1:1T 课程数据 bash scripts/launch_train.sh configs/stages/01_pretrain_1t_sequential.env # Stage 2:先指向 Stage 1 的最终 checkpoint export PRETRAIN_1T_FINAL_CHECKPOINT="${PRETRAIN_1T_FINAL_CHECKPOINT:?}" bash scripts/launch_train.sh configs/stages/02_pretrain_3p2t_global_shuffle.env启动脚本 pretrain/scripts/launch_train.sh 会校验虚拟环境、tokenizer、索引数据集(.bin/.idx)与 checkpoint 标记文件,然后把全部架构/优化器/并行/数据参数拼成torchrun命令拉起pretrain_gpt.py,日志落盘到${TRAIN_ROOT}/logs。两个阶段的完整参数分别声明在 pretrain/configs/stages/ 下,数据路径、tokenizer、输出根目录均可通过环境变量覆盖,无需改代码。
七、延伸阅读
- 预训练总览与快速开始:pretrain/README.md
- 数据课程与训练配置详解(对应技术报告 3.1 / A.1 节):pretrain/docs/PRETRAIN_PHASES.md
- 数据治理管线与清洗流程:data-process/README.md
- 下一站:预训练之后的长上下文扩展,见 midtrain/ 的 16K → 64K → 256K 课程
小结:ZGCM-1 预训练配方的精髓可以浓缩为三句话——数据上"先易后难再打散",架构上"局部窗口为主、全局注意力接力",工程上"Muon + 混合 FP8 榨干每张 H100"。三者叠加,才换来了 4.19T token 的高效落地,也为后面的长上下文中期训练和数学/智能体 SFT 打下了地基 🚀
【免费下载链接】ZGCM-1
相关推荐
解密LFM3-1.7B训练配方:22T Token预训练与SFT到Agentic RL四阶段后训练全流程
解密LFM3 1.7B训练配方:22T Token预训练与SFT到Agentic RL四阶段后训练全流程 LFM3 1.7B 是 Liquid AI 推出的 1
基础模型大模型人工智能NLP本地部署大麦自动抢票:5 分钟跑通 Web + App 双端,开售瞬间脚本替你点
大麦自动抢票:5 分钟跑通 Web + App 双端,开售瞬间脚本替你点 开售按钮还没变绿,你已经在刷新第三遍;好不容易手点进去,城市选错了、票档点慢了,页面直
RPA终极美化指南:3步打造你的个性化Obsidian知识库
终极美化指南:3步打造你的个性化Obsidian知识库 还在为Obsidian单调的界面而烦恼吗?想象一下,你的知识库不仅功能强大,还能像艺术品一样美观——这就
文档教程知识管理
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考