OpenAI 深度学习基础设施与 Kubernetes-EC2 自动扩缩器
OpenAI 宣布了其深度学习基础设施方案,并发布了 Kubernetes‑EC2 自动扩缩器,以实现对突发 GPU 工作负载的快速扩展。
基础设施支持完整的深度学习研究周期
OpenAI 的基础设施旨在让研究人员能够快速从单 GPU 的临时实验转向大规模、跨多天的训练任务。
示例工作流:从 GAN 思路到 ImageNet 扩展
一个典型项目从单 GPU 的快速原型开始,然后在诸如 ImageNet 等大型数据集上扩展到多 GPU 训练,这需要细致的实验管理和超参数搜索。
软件、硬件与供应选择
OpenAI 使用 TensorFlow,结合 AWS EC2 实例和本地的 Titan X GPU,使用 Terraform 实现一致的服务器配置,并在三个 AWS 区域中使用 Kubernetes 作为集群调度器。
编排让本地和分布式工作感觉相似
SSH 节点提供交互式调试,而 Kubernetes 在 Docker 容器中运行作业;平台公开 Flannel 网络,使研究人员能够直接从笔记本访问 TensorBoard,而无需为每个端口创建 Service。
Kubernetes‑EC2 自动扩缩器处理突发需求
该自动扩缩器作为普通 pod 运行,轮询 Kubernetes master 计算所需容量,调整 Auto Scaling 组规模,在节点终止前进行排空,处理多个 ASG、GPU 与内存资源,并在达到容量上限时溢写到第二个 AWS 区域。
对研究者的影响
通过提供简洁的接口和自动化扩展,基础设施使深度学习团队能够专注于科学迭代而非集群管理,且开源的自动扩缩器为更广泛的社区提供相同的批处理优化扩展能力。
Sources
- OriginalInfrastructure for deep learning