管理大規模的叢集和大規模的系統,需要用到非常典型的「削峰填谷」方法,考驗我們是否能夠把 AI 計算任務掰開、揉碎,變成一小塊一小塊的任務,部署在資源空閒的機器上。這背後是一個巨大的訓練任務,AI 工程師需要做非常多的工作。我們在訓練 M6 模型的時候沒有買新的機器,就是在現有的生產叢集上面,利用「潮汐效應」,把計算量提出來,用來訓練模型。 另一個是人的成本。AI 沒有 SQL 那麼清晰乾淨的、以目標導向的框架,比如,寫一句 SQL,就能驅動 MaxCompute 等計算引擎拉一堆機器來做運算;AI 也不像線上服務一樣,可以實現非常簡單的、一臺機器和幾臺機器的簡單複製,機器間不需要互動,操作簡單。 AI 程式要在各種各樣的機器、資源之間(GPU 與 GPU 間,或 GPU 與 CPU 間)搗騰資料,要把一個演算法(一個數學公式)放到引數伺服器上,告訴機器 A 何時與機器 B 說話,機器 B 何時與機器 C 說話,並且最好是快一點。於是,AI 工程師就得寫一堆無比複雜、很多人看不懂的程式碼。
AI 工程師都聽說過資料並行、模型並行等概念,這些概念下需要有一個相對簡單的軟體程式設計正規化,讓我們更加容易把叢集以及計算的需求切片,把 Computer 跟 Communication 比較好地分配。但是程式設計正規化今天還沒有達到一個讓彼此都很好理解的程度。因此,人力成本非常高。 也就是說,在大量的資料和算力基礎上,一個非常明顯的需求是如何更好地做到資源排程和資源調配,以及如何讓工程師更容易撰寫分散式程式設計正規化,特別是如何來規模化,這是 AI 工程化的第二個體現。 我們設計了一個相對簡單、乾淨的程式設計框架 Whale,讓開發者能夠更容易地從單機的程式設計正規化跳到分散式的程式設計正規化。比如,只需告訴 Whale,將模型分為 4 個 stage,Whale 就會自動把這些 stage 放到不同的機器上去做運算。
第三,從需求或者出口的角度看,AI 工程化是開發和服務的標準化、普惠化。 AI 做了非常多有意思的模型,為了使這些模型能夠更加緊密地應用在實際場景中,還需要很多工作。但並不是每個人都有時間來學習 AI 如何建模,如何訓練和部署等。 所以,我們一直在思考,如何讓大家更容易上手這些高大上的 AI 技術。
阿里雲機器學習平臺 PAI 團隊,基於阿里雲 IaaS 產品,在雲上構建了一個完整的 AI 開發全生命週期的管理體系,從最開始寫模型,到訓練模型,到部署模型。其中,Studio 平臺提供視覺化建模,DLC 平臺(Deep Learning Container)提供雲原生一站式的深度學習訓練,DSW 平臺(Data Science Workshop)提供互動式建模, EAS 平臺(Elastic Algorithm Service )提供更簡易、省心的模型推理服務。我們的目標是,希望 AI 工程師能在幾分鐘之內就開始寫第一行 AI 程式碼。
迄今為止,阿里雲透過大資料、AI 平臺已經服務了各行各業的客戶,寶鋼、三一集團、四川農信、太平洋保險、小紅書、VIPKID、鬥魚、親寶寶等。我們希望透過我們的大資料和 AI 能力,給企業提供升級的動力。