Kubernetes 上的机器学习与高级应用模式构建
1. 机器学习在 Kubernetes 中的要点
1.1 数据存储与读写
在 Kubernetes 中运行机器学习工作负载时,检查点和保存数据需要存放在单一位置,并且要求具备 ReadWriteMany 功能。ReadWriteMany 意味着该卷可以被多个节点以读写方式挂载。在使用 Kubernetes 持久卷时,需要为自身需求确定最佳的存储平台,Kubernetes 文档中列出了支持 ReadWriteMany 的卷插件。
1.2 网络方面
机器学习工作流的训练阶段对网络影响较大,特别是在进行分布式训练时。以 TensorFlow 的分布式架构为例,有两个阶段会产生大量网络流量:参数服务器向工作节点分发变量,以及工作节点将梯度应用回参数服务器。这种数据交换的时间直接影响模型训练时间,所以在合理范围内,网络速度越快越好。如今大多数公共云和服务器支持 1Gbps、10Gbps 甚至 40Gbps 的网卡,通常只有在低带宽情况下,网络带宽才会成为问题。若需要高网络带宽,也可以考虑使用 InfiniBand。
除了原始网络带宽可能成为限制因素外,有时从内核将数据传输到网络上也会出现问题。一些开源项目利用远程直接内存访问(RDMA)技术,在无需修改工作节点或应用代码的情况下进一步加速网络流量。RDMA 允许网络中的计算机在不使用处理器、缓存或操作系统的情况下,直接交换主内存中的数据。例如开源项目 Freeflow,它宣称在容器网络覆盖方面具有高性能。
1.3 专用协议
在 Kubernetes 上进行机器学习时,还可以考虑一些专用协议。这些协
超级会员免费看
订阅专栏 解锁全文
1285

被折叠的 条评论
为什么被折叠?



