去年各種開源運動,大概沒甚麼比Kubernetes的發展,更加引人注目。Kubernetes以下各項開源計畫,又以針對人工智能Kubeflow有看頭。不過,Kubeflow跟用於AI分析的深度學習框架Tensorflow沒有關係,Kubeflow也支援Café和Pytorch等深度學習框架。
Kubeflow的作用,除了可以利用容器化優點,毋須利用VM,AI變成一項雲原生(Cloud Native)應用,幾乎完全不用部署,就可直接訓練AI模型,Kubeflow可安裝在單機上,也可安裝在任何公有雲,除了Google的GCP公有雲,也可利用AWS或者Azure等。
不少企業可能正利用多個公有雲,Kubeflow具備所有容器化的特點,可先在單機上做好試驗,才移到一個公有雲上執行。
自動配置算力
一般數據科學家,面對大量的數據,建立預測模型,都要以數據先作訓練,甚至先作試驗。但是訓練AI動用的運算能力,費用不菲,即使以公有雲去執行AI,GPU運算成本甚為昂貴。數據科學家可能先向基建或雲運算操作人員,申請運算能力,用後以後,又要馬上關閉相關的算力。
以Cloud Native方式去配置AI運算能力,最大優點是可充份利用算力,Kubeflow以容器化方式,快速配置最適當的算力,用完後就自動歸還。
數據科學家在設計AI模型時,可能要經常調整多個參數,重複進行訓練,Kubeflow可加快測試不同的訓練方式,例如深度學習的層度,或者平衡AI模型的訓練速度和損失(Loss),以選擇合適的學習率(Learning rate),甚至是選擇不同的優化器(Optimizer),以改善AI模型準確率。
自建管道能力
Kubeflow也可令AI的組件重用。機器學習模型中,有很多移動元件組合在一起,模型才能執行並得到結果。機器學習過程的各個部分結合在一起的過程就被稱建立管道(Pipeline)。
Pipeline是很籠統的概念,並不一定指AI訓練,相等於軟件開發時,不少開發都以Pipeline組成,從建立原始程式碼到發佈,都遵守特定的流程。機器學習構建的Pipeline,數據也是沿著Pipeline流動,從原始格式到變成有用的結論。數據科學家可建立多種機器學習方法Pipeline,以比較各種方法性能。所以,嚴謹的AI訓練的多個步驟,就被包裝成不同Pipeline。
Pipeline每一步輸入資料,都經前一步處理過,再進行下一步的輸入。不過,數據科學家可在Kubeflow,重複使用現成的Pipeline,
數據科學家也須利用不同Pipeline,去測試模型的準確性,然後進一步慢慢調整性能,獲得最合乎理想的結果。訓練AI模型的Pipeline不少可以互相借鑒,甚至借其他Pipeline來微調,加快訓練模型速度。
不少人都以為AI無所不能,但是無論以何種方法,數據都是AI基礎,訓練出準確模型,先決條件是就大量數據,以不同變化數據集測試,才能確保訓練模型能夠符合實際用途。
但是處理的方式,卻是大同小異,Kubeflow可通過共同經驗,加快不同AI模型的訓練。