Daniel Whitenack在最近舉行的北美2017 KubeCon+CloudNativeCon大會(huì)上分享了如何使用TensorFlow和Kubernetes進(jìn)行基于GPU的深度學(xué)習(xí)。
他以物體檢測(cè)為例子介紹了一種典型的人工智能工作流程。該工作流程包括預(yù)處理、模型訓(xùn)練、模型生成和模型推理。這些步驟都可以運(yùn)行在Docker容器里。
模型訓(xùn)練一般是通過(guò)框架來(lái)完成的,如TensorFlow或Caffe。在這一階段,GPU可用于幫助提升性能。深度學(xué)習(xí)在使用TensorFlow或其他框架時(shí),需要借助GPU在圖像數(shù)據(jù)上訓(xùn)練模型。
模型訓(xùn)練可以運(yùn)行在Kubernetes集群的GPU節(jié)點(diǎn)上。Kubernetes為多GPU節(jié)點(diǎn)提供了一個(gè)非常好的框架,按照如下步驟可實(shí)現(xiàn)更好的工作流:
將數(shù)據(jù)正確地分配代碼(pod)。在正確的節(jié)點(diǎn)上處理數(shù)據(jù)。在正確的時(shí)間觸發(fā)正確的代碼。該工作流程也可以用于跟蹤哪個(gè)版本的代碼和數(shù)據(jù)產(chǎn)生了哪些結(jié)果(用于調(diào)試、維護(hù)和合規(guī)的目的)。
Kubernetes為此提供了基礎(chǔ)支持,也因?yàn)樗邆淞丝梢浦残院涂缮炜s性,所以非常適用于機(jī)器學(xué)習(xí)項(xiàng)目。
Whitenack介紹了一個(gè)叫作Pachyderm的開源項(xiàng)目,它支持?jǐn)?shù)據(jù)管道,并為Kubernetes提供了數(shù)據(jù)管理層。工作流中一般會(huì)包含多個(gè)數(shù)據(jù)預(yù)處理和后處理作業(yè)。Pachyderm提供了統(tǒng)一的框架用于調(diào)度多步驟工作流、數(shù)據(jù)管理和向GPU分配工作負(fù)載。
Pachyderm框架的特性包括:
數(shù)據(jù)版本:版本化的數(shù)據(jù)可存儲(chǔ)在Amazon S3數(shù)據(jù)庫(kù)里。用于分析的容器。分布式管道或數(shù)據(jù)處理DAG。數(shù)據(jù)監(jiān)管:可用于合規(guī)和調(diào)試。Whitenack在現(xiàn)場(chǎng)進(jìn)行了演示,使用Pachyderm和Kubernetes實(shí)現(xiàn)了一個(gè)AI工作流。示例應(yīng)用程序?qū)崿F(xiàn)了圖像到圖像的轉(zhuǎn)換,將衛(wèi)星圖自動(dòng)轉(zhuǎn)成地圖。他在例子中使用TensorFlow進(jìn)行模型訓(xùn)練和推理。
如果讀者對(duì)Pachyderm框架感興趣,可以參考機(jī)器學(xué)習(xí)示例、開發(fā)者文檔、Kubernetes GPU文檔,或者直接加入Slack通道。
查看英文原文:Building GPU Accelerated Workflows with TensorFlow and Kubernetes