天天看點

Arena - 打開KubeFlow的正确姿勢

KubeFlow是基于Kubernetes建構的可組合,便攜式, 可擴充的機器學習技術棧,支援實作從JupyterHub模型開發,TFJob模型訓練到TF-serving,Seldon預測端到端的解決方案。但是KubeFlow需要使用者精通Kubernetes,比如寫一個TFJob的部署yaml檔案,這對于機器學習平台最主要的使用者---資料科學家來說是非常有挑戰的事情。

Arena - 打開KubeFlow的正确姿勢
這與資料科學家的期望還有比較大的差距,資料科學家關心的是三件事:

  1. 資料從哪裡來
  2. 如何運作機器學習的代碼
  3. 訓練結果(模型和日志)如何檢視

資料科學家編寫一些簡單的腳本,在桌面機上運作機器學習代碼,這是他們熟悉和喜歡的工作方式。但是利用桌面機進行模型訓練,又會遇到由于硬碟空間有限導緻處理資料量不足,無法使用分布式訓練導緻計算力受限等問題。

為此我們開發了Arena,用一個指令行工具屏蔽所有底層資源、環境管理、任務排程和GPU排程配置設定的複雜性,它幫助資料科學家以一種簡單熟悉的方式送出訓練任務并且檢查訓練進展。資料科學家在調用Arena的時候可以指定資料來源,代碼下載下傳和是否使用TensorBoard檢視訓練效果。

Arena目前支援單機訓練和PS-Worker模式的分布式訓練,其後端實作依賴于KubeFlow提供的TFJob,很快也會擴充到MPIJob,PytorchJob。

未來我們希望能夠通過Arena實作深度學習生産流水線 - 內建訓練資料管理,實驗任務管理,模型開發,持續訓練、評估,上線預測全流程。

同時也支援實時訓練的運維包括:

  • 利用top指令監控GPU資源的配置設定和排程
  • 支援CPU,GPU的資源監控
  • 訓練日志的實時查詢

Arena的目标就是讓資料科學家簡單的釋放KubeFlow的洪荒之力,像桌面機上訓練一樣簡單,同時又擁有了叢集級别排程和管理的掌控性。為了能夠更好的在社群内共享和合作,我們已經在github上開源了自己的代碼:

https://github.com/AliyunContainerService/arena

,歡迎大家了解和使用,如果您覺得不錯,請給我們點贊。如果您希望貢獻代碼,我們非常歡迎。

以下是使用文檔:

視訊Demo: