隨著人工智慧(AI)技術的爆炸性成長,企業在擴展其複雜的 AI 工作負載時,面臨前所未有的技術挑戰。對此,容器(Container)技術——一種將應用程式及其所有依賴項封裝成單一可攜式單位的軟體虛擬化技術——正成為關鍵解決方案。
機器學習(ML)模型與其運行環境的依賴關係樹極為脆弱,一個 CUDA 版本不匹配或是不經意的程式庫更新,都可能在不通知的情況下破壞推論準確性,或是導致訓練任務崩潰。容器技術的優勢在於能將模型、其運行環境、Python 依賴項和配置打包成一個可攜式單元,確保環境一致性。而 Kubernetes(一個用於自動化部署、擴展和管理容器化應用程式的開源平台)則負責處理這些容器的營運管理。
Kubernetes 負責處理容器的營運管理,例如重新啟動失敗的 Pod(Kubernetes 中最小的可部署計算單元),在不同節點間分配負載,以及擴展複本。Google 曾以一個橫跨 65,000 個節點的 Google Kubernetes Engine 叢集進行基準測試,專門用於 AI 工作負載,展現了其大規模運算能力。
AI 工作負載主要分為訓練與推論兩大類。訓練任務(指透過大量資料來優化模型參數的運算過程)通常是爆發性、資源密集型且容許中斷的,往往需要使用高階繪圖處理器(GPU)運行數小時甚至數天。