Don't rent the cloud, own instead
Comma.ai 自建数据中心实践总结 (Summary of Comma.ai's Self-Built Data Center)
本文档总结了 Comma.ai 如何构建和维护自己的数据中心,旨在为其他公司或个人提供参考。Comma.ai 认为,拥有自己的数据中心能够更好地掌控数据和计算资源,避免对云服务提供商的过度依赖,并带来诸多工程和成本上的优势。
1. 为什么不使用云服务? (Why Not Cloud?)
- 自主性: 自建数据中心可以完全掌控自身命运,避免被云服务商锁定。
- 工程激励: 维护数据中心能激发工程师解决实际问题的能力,而云服务依赖于特定 API 和计费系统。
- 成本: 对于模型训练和运行等需要持续计算和存储的企业,自建数据中心通常比云服务更经济实惠。Comma.ai 估计,自建数据中心花费约 500 万美元,而使用云服务可能需要 2500 万美元以上。
2. 数据中心硬件配置 (Hardware Configuration)
- 电力: 数据中心最高功率需求约 450kW,Comma.ai 计划未来自产电力。2025 年电力成本为 540,112 美元。
- 散热: 采用自然空气冷却系统,仅消耗少量电力,但对温度和湿度控制较少。
- 服务器:
- 计算: 75 台自制 TinyBox Pro 机器,每台配备 2 个 CPU 和 8 个 GPU,共 600 个 GPU,用于模型训练和通用计算。
- 存储: 几排 Dell R630 和 R730 机器,配备 SSD,提供约 4PB 的存储空间。
- 其他: 路由器、气候控制器、数据采集机、存储主服务器、指标服务器、Redis 服务器等。
- 网络: 3 个 100Gbps 的 Z9264F 交换机作为主网络,2 个 InfiniBand 交换机用于 GPU 间训练加速。
3. 软件架构 (Software Architecture)
- 系统管理: 所有服务器运行 Ubuntu,使用 pxeboot 启动,并由 Salt 管理。
- 分布式存储 (mkv):
- 主存储: 3PB 非冗余存储,用于存储训练数据,可实现约 1TB/s 的读取速度。
- 缓存存储: 约 300TB 非冗余存储,用于缓存中间处理结果。
- 模型存储: 冗余存储,用于存储训练好的模型和训练指标。
- 工作负载管理 (Slurm): 用于管理计算节点和计算任务。
- 分布式训练 (PyTorch): 使用
torch.distributedFSDP 进行多 GPU 训练,2 个独立的训练分区通过 InfiniBand 互联。 - 实验跟踪: 自研的实验跟踪服务 (类似 WandB 或 TensorBoard),提供模型指标和报告的仪表盘。
- 分布式计算 (Miniray): 轻量级的任务调度器,可将任意 Python 代码部署到空闲机器上。利用 Triton 推理服务器,可以高效运行模型。
- 代码管理: 采用小于 3GB 的 Monorepo,在本地工作站缓存,并通过 NFS 共享,确保所有分布式任务使用相同代码库和依赖。
4. 典型训练流程 (Typical Training Process)
Comma.ai 使用自建数据中心进行复杂的自监督驾驶模型训练。一个简单的训练命令可以触发所有基础设施协同工作,例如:
./training/train.sh N=4 partition=tbox2 trainer=mlsimdriving dataset=/home/batman/xx/datasets/lists/train_500k_20250717.txt vision_model=8d4e28c7-7078-4caf-ac7d-d0e41255c3d4/500 data.shuffle_size=125k optim.scheduler=COSINE bs=4
总结 (Conclusion)
Comma.ai 的数据中心构建经验表明,自建数据中心不仅可以降低成本,还能激发工程创新,提高自主性。 如果您对该主题感兴趣,可以考虑自己构建数据中心或加入 Comma.ai。