预训练基础设施规划不必从采购设备开始。先弄清楚要训练什么、数据能否合法使用、训练规模有多大,再决定存储、算力和调度方式。新手可以按下面五项逐步推进,先用小规模验证打通流程,再根据实测瓶颈扩展。
一、先盘点数据:质量、许可和可重复处理
整理数据来源、格式、语言、更新时间及使用许可,区分可直接训练的数据与需要清洗、过滤的数据。文本任务要检查编码、空内容、重复片段和异常长样本;图文任务还要确认图像可读取,并记录文本与图像的对应关系。Common Crawl 等公开语料常被用于研究和训练,但“可访问”不等于许可条件完全相同,使用前仍需核对具体来源条款。
把清洗规则、分词器版本和数据清单一并保存,形成可复现的数据版本。预训练基础设施规划中,数据治理应先于扩容:如果输入重复、损坏或权限不清,增加算力也无法补救。
二、把训练目标换算成资源需求
先写明模型规模、上下文长度、目标 token 数、预计训练时长和可接受的中断风险。估算训练 token 数时,可用“每步全局序列数 × 序列长度 × 步数”做粗略计算。比如,假设每步全局处理 256 条长度为 2048 的序列,运行 1000 步,约处理 5.24 亿 token;这只是规划示例,实际吞吐还受模型结构、精度、数据加载和硬件影响。
再跑短时基准测试,记录每秒处理的 token 数和显存占用,以实测值估算总时长,并留出数据预处理、验证和故障恢复时间。预训练基础设施规划应区分“理论峰值”和“持续可用吞吐”,不能只按设备标称性能排期。
三、先验证存储和数据通路
训练数据可按用途分层:原始文件保留只读副本,清洗后的样本保存为便于顺序读取的分片,临时缓存则允许重建。Apache Parquet 适合列式分析与数据处理;WebDataset 常用于将多模态样本打包成 tar 分片,便于顺序读取。格式选择取决于预处理工具、随机访问需求和团队维护能力。
执行前先测从存储读取数据时的持续带宽、延迟和并发表现,并检查训练设备是否会因等待数据而空转。小规模试跑可先复制一部分数据到训练节点本地,比较本地读取与共享存储读取的差异,再决定是否需要缓存或增加数据分片。
四、按扩展路径设计集群与调度
单机适合验证代码、精度和数据管道;多机训练可提升可用算力,但会增加通信、故障和运维复杂度。分布式训练可考虑 Megatron-LM 或 DeepSpeed 等成熟软件栈,具体支持能力应结合模型结构、硬件和版本文档确认。网络选择也要看节点数量与通信量:普通以太网部署门槛较低,高带宽网络更适合通信密集的多机任务,但还需验证交换机、网卡、驱动和软件配置是否匹配。
调度方面,Slurm 常用于集群批处理作业,Kubernetes 更强调容器化工作负载与服务编排。若团队主要跑固定的训练批任务,先选一种熟悉的调度方式即可,不必同时维护两套。预训练基础设施规划应把节点故障、任务排队和资源隔离一并纳入设计。

五、从第一天建立监控与恢复流程
至少记录设备利用率、显存、温度、网络流量、存储读取、训练损失、学习率和每步耗时。Prometheus 与 Grafana 可用于指标采集和展示;是否采用它们,取决于现有运维环境。设置检查点保存周期时,要权衡写入开销与故障后重跑成本,并实际演练从检查点恢复,而不是只确认文件存在。
建议按这四步启动
- 准备一份许可明确、规模较小的数据子集,完成清洗和分词。
- 在单机上运行短训练,确认损失正常、显存充足、数据持续供给。
- 记录吞吐与资源占用,再扩展到多卡或多节点,逐项比较变化。
- 模拟中断并恢复检查点,确认日志、配置和数据版本能够对应。
这套顺序让预训练基础设施规划从可验证的任务出发:先解决数据和流程,再按瓶颈扩展集群,减少盲目配置。
常见问题
没有大集群,能开始预训练吗?
可以先用小模型或缩小后的数据验证数据管道、训练代码和检查点流程;这不能直接代表大规模训练性能,但能提前发现常见问题。
数据集越大越好吗?
不一定。数据质量、重复比例、许可和模型目标都重要。应先建立质量筛选规则,再逐步增加经过检查的数据。
什么时候扩展到多节点?
单机流程稳定后,如果实测训练时间仍超出目标,且瓶颈确实来自算力而非数据读取或通信,再评估多节点方案。预训练基础设施规划最终应由基准测试和运维能力共同决定。


