公司OpenAI 地方旧金山,加利福尼亚 行业人工智能的研究

挑战

作为一个人工智能研究实验室,OpenAI需要深度学习的基础设施,允许在云或其自己的数据中心进行实验,并且易于扩展。便携性、速度和成本是主要的驱动因素。

解决方案

OpenAI在2016年开始在AWS上运行Kubernetes,并在2017年初迁移到Azure。OpenAI在Azure和它自己的数据中心进行关键的实验,包括机器人和游戏,这取决于哪个集群有空闲容量。“我们主要使用Kubernetes作为批量调度系统,依靠我们的自动定量“动态地扩展和缩小我们的集群,”基础设施主管Christopher Berner说,“这使我们能够显著降低空闲节点的成本,同时仍然提供低延迟和快速迭代。”

影响

该公司受益于更大的可移植性:“因为Kubernetes提供了一致的API,我们可以在集群之间轻松地移动我们的研究实验,”Berner说。能够在适当的时候使用自己的数据中心是“降低成本,让我们能够访问我们在云中不一定能够访问的硬件,他补充道。“只要利用率高,成本就低得多。”发射实验所需的时间也少得多:“我们的一位研究人员正在开发一种新的分布式训练系统,他能够在两三天内完成他的实验。一两周后,他将其扩展到数百个GPU。以前,这很容易就是几个月的工作。”

从机器人技术的实验到老式的视频游戏研究,OpenAI在人工智能技术方面的工作都是为了共享的。

以确保强大的人工智能系统安全为使命,OpenAI非常关心开源——既受益于开源,又为开源贡献安全技术。OpenAI的基础设施主管Christopher Berner说:“我们所做的研究,我们希望尽可能广泛地传播它,这样每个人都能受益。”该实验室的理念——以及其特殊需求——使其能够为其深度学习基础设施采用开源、云本地策略。

2016年,OpenAI开始在AWS上运行Kubernetes,一年后,将Kubernetes群集迁移到Azure。“我们使用Kubernetes的方式可能与许多人不同,”Berner说,“我们使用它进行批量调度,并作为群集的工作负载管理器。这是一种协调大量连接在一起的容器的方法。我们依靠自己的能力自动定量动态地向上和向下扩展我们的集群。这让我们可以显著降低空闲节点的成本,同时仍然提供低延迟和快速迭代。”

在过去的一年里,Berner在OpenAI自己的数据中心里监督了几个Kubernetes集群的启动。“我们在混合模型中运行它们,其中控制平面——Kubernetes API服务器,etcd所有东西都在Azure中,然后所有Kubernetes节点都在我们自己的数据中心中,”Berner说。“云非常方便管理etcd和所有主机,并在出现故障时进行备份和启动新节点。这种模式允许我们利用较低的成本,并在我们自己的数据中心提供更专业的硬件。”

OpenAI的不同团队目前运行着几十个项目。虽然最大规模的工作负载直接管理裸云虚拟机,但OpenAI的大多数实验都利用了Kubernetes的优点,包括可移植性。Berner说:“由于Kubernetes提供了一致的API,我们可以很容易地在集群之间移动我们的研究实验。”on-prem集群通常“用于需要大量gpu的工作负载,比如训练ImageNet模型。任何需要大量CPU的东西,都可以在云上运行。但我们也有一些团队在Azure和我们自己的数据中心进行实验,这取决于哪个集群有空闲容量,这是非常有价值的。”

Berner已经将Kubernetes集群提供给所有OpenAI团队使用,如果它适合的话。他说:“我和我们的游戏团队合作过很多次,他们目前正在研究经典的游戏机游戏。”。“他们在我们的开发服务器上进行了一系列的实验,他们一直在尝试谷歌云,管理他们自己的虚拟机。我们让他们在prem Kubernetes集群上尝试了我们的第一个,这非常成功。他们现在已经完全转向了它,这让他们可以将实验规模扩大10倍,并通过WiFi实现。”但不需要投入大量的工程时间来研究如何管理更多的机器。现在很多人都在走同样的道路。”

OpenAI的两个团队开发了框架和工具来处理与Kubernetes的交互,从而简化了这条路径。Berner说:“你只需要写一些Python代码,填写一些关于你需要多少台机器以及类型的配置,然后它就会准备所有这些规范并将其发送到Kube集群,这样就可以启动了。”“它还提供了一些额外的监控和专门为这些机器学习项目设计的更好的工具。”

Kubernetes在OpenAI的影响力是令人印象深刻的。有了Kubernetes,框架和工具(包括自动缩放器)都就位了,启动实验所需的时间要短得多。伯纳说:“我们的一名研究人员正在研究一种新的分布式训练系统,他的实验在两三天内就能完成。”在一两周内,他将其扩展到数百个gpu。在此之前,这可能要花上几个月的时间。”

此外,他们现在必须在适当的时候使用其on-prem-Kubernetes集群的灵活性是“降低成本,让我们能够访问我们在云中不一定能够访问的硬件,”他说。“只要利用率高,我们的数据中心的成本就低得多。在某种程度上,您还可以根据需要定制硬件。”

OpenAI还受益于CNCF云原生生态系统中的其他技术。gRPC它的许多系统用于不同服务之间的通信,并且普罗米修斯伯纳说,“如果出现问题,它可以作为一种调试工具。”。“我们的库伯内特斯星系团最近实际上没有遇到任何实际问题,所以我认为没有人在一段时间内看过我们的普罗米修斯监测系统。如果有什么东西坏了,它就会出现。”

伯纳继续关注的一件事是库伯内特斯的扩展能力,这对深度学习实验至关重要。OpenAI已经能够将Azure上的一个Kubernetes集群推高到2500个节点.伯纳说:“我想我们可能很快就会达到Kubernetes测试的5000台机器的数量。”他补充说,“我们肯定会。招聘如果你对这些事情感到兴奋的话!"

Baidu