使用Kubernetes运行深度学习模型

时间:2019-02-27 05:27:14

标签: deployment kubernetes

我正处于使用Kubernetes部署深度学习模型的阶段。我的问题如下:

1:Kubernetes是否支持并行处理?在对数据进行预处理之后,需要运行具有不同超参数集的深度学习模型。是否可以在不同的Pod上并行运行它,以及它的python代码是什么??

  1. 如果特定的Pod在运行时发生故障或损坏,是否可以使另一个Pod(原始Pod的副本)自动运行?

  2. 此外,如果特定的Pod达到一定百分比的GPU(阈值),是否会使另一个Pod自动运行?

在这方面,我需要您的帮助。我在这方面找到了很多教程。另外,寻找执行所有这些操作的python代码。

谢谢

1 个答案:

答案 0 :(得分:0)

似乎没有对该问题进行过任何先前的研究,并且您不是新成员-因此,为了将来,请尝试提出具体问题,以解决您遇到的问题,因为这表明您已经付出了努力。问问题。我将尝试从Kubernetes的角度回答,因为我还没有机会在Kubernetes上使用深度学习。

  1. Kubernetes不支持并行处理。群集是一组“独立”节点,每个节点都有自己的内存和CPU,但它们通过网络连接,可以一起使用以解决一项常见任务。您可以根据需要运行多个吊舱/作业。在ML here的上下文中以及在Kubernetes here上进行深度学习的示例中对此有更多了解。

  2. Pod作为Kubernetes中的基本构建块,也表示集群上正在运行的进程。他们就是我们所说的牛。我们认为它们是短暂的实体,可以随意替换或丢弃。通常的做法是不创建Pod本身,而是例如通过Deployments来确保您始终有指定数量的Pod运行(当一个死亡时,将在其上创建另一个Pod以保持指定的数目)。您可以找到有关控制器here的更多信息:

  

他们可以负责复制和推出并提供自我修复   集群范围内的功能。

  1. 不确定GPU,因为我没有过多使用它,但是Kubernetes肯定可以根据CPU和内存进行扩展,您还可以设置资源和限制来控制它。我相信Cluster Autoscaler可以基于GPU进行扩展,因为有针对GPU的特定指标:
  

集群中不同GPU的最小和最大数量,格式为   ::。群集自动缩放器不会将群集扩展到超过   这些数字。可以多次通过。当前仅此标志   在GKE上工作。