當前位置:
首頁 > 最新 > Kubernetes:在異構GPU集群上分散式深度學習

Kubernetes:在異構GPU集群上分散式深度學習

深度學習是一類機器學習演算法,可以學習多個數據級別的表示層次,潛在地降低了可以解決難題的模型生產難度。在最困難的問題中,這種下降表現為可以做什麼的進步。在更簡單的問題中,可能會導致性能提高或建模過程更簡單。現在許多深度學習應用已經超越了人類的表現,如圖像識別或棋類競技。還有更多的其他著名使用案例,使得深度學習成為了這些最有能力系統的一部分,包括語音識別,文本識別,機器翻譯和自動駕駛。

做這些表現的很大部分是源於機器學習數學運算的不斷進展,至少有一部分是由於原始計算性能的提高以及使用該性能技術的改進。

許多企業已經開始探索以分散式培訓和服務於集群的深度學習的方法。許多人選擇構建一個在研究或開發環境中運行良好的專用GPU HPC集群,但一個共同的問題是,隨著培訓數據的準備,培訓和服務,數據必須在集群之間來回移動。通常情況下,有多個模型訓練集群會使數據運動問題變得更糟。這種數據運動本身就是一項巨大的成本,但是將數據存儲在多個位置會導致管理用於訓練深度學習模型的數據和管理的研究、開發與生產之間的模型的高度複雜性。

本文將概述一些我們用來使分散式深度學習更容易培訓和服務的技術。我們在包含異構GPU和CPU資源的環境中執行此操作。一個關鍵的結果是分散式深度學習培訓工作流程可以變得更簡單。還將介紹如何利用流式架構在GPU上實現全局實時深度學習應用。

深度學習模型的分散式培訓

我們發現以下功能對於構建更簡單的機器學習和服務管道來說,既是必要也是充分的:

無論是存儲在流,表格還是文件中的所有數據都可以使用傳統的基於目錄的路徑名稱樹進行組織和訪問。

所有數據都以完全分散式存儲,但可以從任何授權的計算機上使用相同的路徑名訪問。

所有數據都可以通過標準的POSIX文件操作訪問。

卷可用於允許目錄結構,根據這些目錄內容的存儲位置進行管理。

所有數據訪問的性能都達到或接近硬體限制。相關限制將是非本地數據的網路帶寬和計算過程本地數據的本地磁碟速度。

數據要求

我們提出的分散式深度學習解決方案有三層,底層是數據層,由數據服務管理,使你能夠為培訓數據創建專用卷,並為組織提供將深度學習開發,培訓和部署更貼近其數據的機會。數據層應該支持安全,快照和鏡像等企業功能,以確保你的數據在企業環境中的安全性和高度可管理性。

中間層是編排層,建議使用Kubernetes來管理GPU/CPU資源,並以pod為單位啟動參數伺服器和培訓工作人員進行深度學習任務。中間層還應該支持異構集群,你可以使用CPU節點為模型提供服務,同時使用GPU節點來訓練模式。高級功能將支持使用不同GPU卡標記節點的功能,以便你可以在較舊的GPU卡上啟動優先順序較低的任務,並在較新的卡上啟動優先順序較高的任務。

頂層是應用層。在這一層,支持深度學習工具(如Tensorflow)用於利用模型輸出,然??後將其放入部署中。一個最佳設計是將存儲在相同計算節點的網路鄰域中的容器中的特定分散式訓練作業的訓練數據存儲,以減少網路擁塞。需要支持像Docker這樣的容器技術和Kubernetes等編排技術,以分散式的方式部署Tensorflow等深度學習工具。通過相同的概念,你可以為CPU/GPU計算的目的共同定位數據。通過水平擴展的底層數據,數據可以通過高速數據流連續供應給GPU,並防止計算資源不足。

部署應用

在我們提出的分散式深度學習解決方案中,通常有5個步驟將你的深度學習應用投入生產。

1.修改Tensorflow應用以添加分散式伺服器,有許多方法可以在Tensorflow中啟用數據並行。在Tensorflow中,同步訓練和graph replication是更實用的方法,例如,我們可以添加如下代碼片段:

其中ps/worker hostname, job_name, task_index可以通過用於啟動Kubernetes pods的YAML文件傳入。也可以將代碼放在分散式數據系統中,並在啟動Kubernetes作業時將其安裝到多個pods中。

2.準備培訓數據並將其載入到分散式數據系統上,最好的演示方法是為不同的深度學習應用創建專用邏輯卷,以便更好地管理它。

3.選擇要使用的容器鏡像,例如,我們使用最新的Tensorflow GPU鏡像,這些容器將受益於對完全分散式數據系統的本地訪問。

4.編寫一個YAML文件來創建Kubernetes作業,我們要安裝所需的Nvidia庫,Tensorflow應用程序,持久性和檢查點的目標文件夾以及使用的訓練數據。在這裡,我們可以輕鬆創建掛載到分散式文件系統卷的持久性卷,並授予多個Pod訪問連接到此持久性卷的持久性卷聲明。

5.如果結果令人滿意,請檢查結果是否持續,並進一步部署模型。

額外的挑戰

實時深度學習訓練和推理的部分挑戰在於快速,可靠的數據分布。隨著廣播技術的進步,我們將繼續提高視頻質量,這也促使深度學習技術迎頭趕上。諸如壓縮感知(compressed sensing)之類的技術可以潛在地用於減少流端的負載。深度學習模型可用於重構低維空間的特徵,從而使實時視頻應用中的壓縮感知成為可能。

此外,通過分散式培訓,與Yarn和Mesos相比,Kubernetes更適合託管在線應用。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

總有一份遇見,懂你悲歡
小錘敲過一千年,還要再敲一千年

TAG:全球大搜羅 |