MLOps:可擴充人工智慧工作流程的推展途徑
可擴充性是任何人工智慧專案最困難一部份。首先,建立和訓練人工智慧模型需要很龐大的資料量。而且,在不同工作、模型與資料組需求之間協調同步,複雜度很大。類似的挑戰是 IT 與工程組織採用 DevOPs 設計原則的主要驅動力量。然而,DevOps 確實無法解決這些人工智慧擴充性的問題。
DevOps 是一組軟體開發生命週期(SDLC)管理做法,可降低開發時間,同時可提供持續且高品質的軟體更新,使組織能擴大工程產出。假使人工智慧與機器學習仰賴重複的模型迭代與演算法優化,則任何同時管理多重人工智慧專案的組織都應使用 DevOps,以處理版本控制與自動化測試這類事情。
隱藏的問題是人工智慧專案是易變的。不同的人工智慧使用案例需要不同的工具,因此,任何支援一種以上之人工智慧應用程式的基礎架構都應具有彈性。另外,在人工智慧系統中,相同的資料可能同時為輸入與輸出,其中,在 ML 專案裡的資料與工作流程可能同時存在於多個平行軌道。
DevOps 模型並非設計用於處理這些多層級資料與工作流程層級。幸運的是,幾十年前建立 DevOps 最佳作法的經驗豐富開發人員,至今仍在解決這個問題。
從 DevOps 到 MLOps
為了說明在組織中人工智慧可能變得多麼難以駕馭,讓我們從一個故事開始談起。
從事開發開源軟體超過二十年的高嘉良(CL Kao) 在他職業生涯早期就開發出一款軟體版本控制系統 SVK。2018 年,一所非營利人工智慧訓練學院吸收了高嘉良,從事開發後端管理系統,此系統可讓不同羣體的人員在共享資料集上協作,並分享開發資料,而不會相互覆蓋其他人的作品,或意外修改到其他人的資料。當時,機器學習工作流程還沒有相同的程序或架構。
高嘉良在 DevOps 開發領域數十年的經驗有助於解決此問題,而這個問題可能比感覺到的還要大。
高嘉良表示:「他們一開始有 200 人,需要一個可以管理所有資源的自動執行方式,以執行深度學習工作。」「否則,就需要 10 人以人工方式管理環境,以確保 200 位學生的專案不會互相干擾。
他問到「您要如何取得資料、清理資料、匯集資料、以及整理資料呢?」。「又要如何管理您的訓練資料庫和工作負載呢?而且您一旦擁有模型,您要如何持續追蹤它們呢?」
解決這些問題的程序,讓高嘉良和 DevOps 社群的其他成員開始進行創作,成為現在的 MLOps。
預先套裝、開放原始碼的 MLOps
MLOps 是人工智慧生命週期管理的一種方法,它修改了 DevOps 的 SDLC 做法以適應需要擴充的人工智慧專案與工作流程。舉例來說,高嘉良創立 InfuseAI 公司,該公司建立 PrimeHub AI,這是一款開源可插拔的 MLOps 平台,可從單一多租戶儀表板內,支援廣泛的工具和軟體套件(圖 1)。
PrimeHub AI 平台採用以 API 為導向的架構,協助使用者同時應付具有不同軟體需求和資料儲存庫的多個專案,而不會錯誤連接工作流程孤島。這是從一個預先套裝的軟體堆疊開始,包含了資料科學家、人工智慧開發人員與 IT 專業人士已熟悉的開放原始碼現成工具:
- 適用於互動式開發的 Jupyter Notebook
- 適用於建構與推出 Docker 容器的 Crane
- 適用於資料版本管理與資料集元數據追蹤的 PipeRider 與 ArtiV
- 可讓第 3 代應用程式順暢整合至 ML 工作流程的架構,例如模型註冊與資料標籤工具
- 適用於資料聚焦與視覺化的 Streamlit
另外,此平台支援來自 AWS、Google Cloud 以及 Microsoft Azure 的多個雲端產品。
正如高嘉良解釋,MLOps 必須「接受不同專案的差異,但又以非常高的水準進行標準化,讓您的工具能夠支援實務。」
這正是 API 可發揮作用之處,協助整合 ML 堆疊的每個部分,讓不同的集成開發環境(IDE)、數據庫、資料來源及更多資訊,可以正確無誤地自然匯入建構在上述軟體基礎架構頂層上的 DevOps 工作流程。它們還能整合其它常見的工作流程自動化工具,例如 Jenkins 伺服器、TensorFlow 資料庫,甚至像 Intel®OpenVINO ™ 工具組這樣的模型優化器。
高嘉良表示:「這就像是您需要的所有工具的中樞。」「我們並不會重新執行不同階段。有多種工具可供使用。我們不會更換所有工具,但我們會順利讓這些工具派上用場。」
規模問題
成功部署 MLOps 的目標是解決擴充性的問題,使得配置工作負載和管理資料集花費時間更短,而能夠花更多時間集中在 AI 結果。
舉例來說,PrimeHub AI 平台部署於一家大型醫院,只需要一個小型的 AI 團隊,就能在 COVID-19 疫情大流行時,使用這個平台來管理預測的急診室量能。應用程式包含多個 ML 模型,可追蹤不同病患的狀況、預測他們健康狀況改善的可能性、並研判隔日的可用牀位。同時,模型必須持續再訓練,以調整季節性變化、更新的疫情資料,以及其它因素,然後加以驗證並部署。
先前,所有這些變動的部分,在 AI 開發人員與作業工程師之間建立了一座孤島,讓更新模型的流程得花一週長的時間。然而,透過 PrimeHub MLOps,它變成了一個小時的工作流程,包含更新模型、測試模型,並部署至生產中。
擴充經典的 DevOps 模型,將工作流程自動化、擴充部署,並讓後端控制儘量簡單化,可讓這類型的組織強化其獲取人工智慧價值與投資報酬率的能力。若沒有更短的整備時間,高嘉良表示:「您就只能浪費您的人工智慧投資,眼睜睜看著它閒置在那裡。」