LLVM之父Chris Lattner:模組化設計決定AI前途,不服來辯

語言: CN / TW / HK

缺乏模組化的單體系統就像渾然一體的金字塔,失去了演化空間,抑制了創新。當前,AI領域正面臨系統和工具鏈的互不相容和碎片化,對這種混雜局面,編譯器大牛Chris Lattner看不下去了。

他於2022年1月宣佈下海創業,同Tim Davis共同成立了Modular AI, 目標是重建全球ML基礎設施,包括編譯器、執行時,異構計算、邊緣到資料中心並重,並專注於可用性,提升開發人員的效率。目前,Modular AI已構建了來自TensorFlow、TF Lite、XLA、TPU、Android ML、Apple ML、MLIR 等世界上大部分的生產機器學習基礎設施,並已將生產工作負載部署到數十億使用者和裝置。

此前,Chris Lattner在《編譯器的黃金時代》中指出,隨著硬體和軟體的協同設計變得更加重要,我們需要比以往更快地推動創新。而在最新文章裡,他們抨擊了當前AI軟體技術棧的碎片化現狀,並極盡對模組化設計的推崇。

Chris Lattner本人擔任Modular AI聯合創始人和CEO,他畢業於波特蘭大學的計算機科學系,具有建立和領導多個知名大型專案的經驗,其中包括 LLVM、Clang、MLIR和CIRCT等編譯器基礎設施專案,他還帶頭建立了Swift程式語言。他還曾在蘋果開發者工具部門、特斯拉自動駕駛團隊、Google Brain和SiFive公司領導相關工程研發工作。Tim Davis擔任Modular AI的聯合創始人及首席產品官,他此前在谷歌團隊參與了TF Lite、 Android ML、NNAPI等專案的編譯器開發工作。

以下是原文,由OneFlow社群編譯。

作者|Chris Lattner、Tim Davis

翻譯|胡燕君、程浩源

TensorFlow、PyTorch、CUDA等平臺不夠模組化——沒錯,不服來辯!它們屬於技術蔓延大背景下的產物,各自有數千個相互依賴的組成部分,每個部分各自演化、野蠻生長,發展成複雜的結構。

在使用多種硬體平臺和加速器將工作負載部署到伺服器、移動裝置、微控制器和web瀏覽器時,人工智慧軟體開發人員必須應對這種混雜的狀況。

除初始領域目標之外,上述提到的單體系統(Monolithic systems)不易擴充套件或泛化,這迫使硬體製造商不得不自己構建相應的技術棧。

其結果是,AI部署領域變得高度碎片化,出現了數十種工具鏈,它們各有取捨和侷限性。更重要的是,這些設計模式的易用性、可移植性和可擴充套件性阻礙了創新速度。

我們已經見證並且參與到深刻改變人類和現實世界的許多AI專案,包括用AI拯救大堡礁、幫助殘疾人士重拾音樂夢以及教人類跳舞等。但很遺憾,構建和部署這些AI應用的技術仍然太過複雜,還是要全棧專家才能勝任,只有科技巨頭裡的那些機器學習技術的締造者們,才能使用最尖端的AI應用。

請暢想這樣一個世界:全球範圍內的ML研究成果都可以快速有效地應用到實際生產當中,每個人都能受惠於這種科技進步;每個有志於創新產品的人不再因為軟硬體的複雜性而受阻,可以簡單便捷地實現創新,從而極大改善人類的生活水平。在這個世界中,AI將會更易用、易獲得、可移植、可擴充套件,並將促使一個更大的社群去影響人類社會的健康、環保、娛樂、金融、生產製造和商業等各領域。

你可能覺得,我們註定會失敗?AI的現實複雜性使其無法做到這一點?

我們並不這樣認為。軟體行業的發展其實是一個輪迴,我們曾遇到並解決過類似的問題。

1

1990年代軟體業的碎片化

正如今天的AI行業一樣,上世紀90年代的軟體業也存在碎片化問題。當時,C和C++語言都有自己的社群,但卻分散到數十種專有編譯器軟體上,這些編譯器都有各自的供應商擴充套件(vendor extensions)和小瑕疵,奇怪的邊角案例和不完整的實現。

當時,構建跨平臺軟體非常困難,因此出現了各種工具來幫助開發人員應對碎片化,使得安裝、構建和配置軟體(如autoconf)變得更容易。

後來,GCC編譯器的興起拯救了我們,它不僅支援跨平臺執行、效能良好且穩定,並且是免費的,因此在90年代取得了巨大的成功。GCC的成功推動了工具行業的整合浪潮,通過使其能力成為行業事實標準,去碎片化催生了新一波的創新浪潮。

由於軟體不再受限於C/C++語言各自為政的問題,硬體也不再需要跟在不斷變化的C/C++語言標準後面疲於奔命地調整適應,所以這波浪潮催化了軟硬體的革新,在軟體方面,Linux等開源軟體社群得以迅速崛起;在硬體方面,指令集架構得以創新,新商業模式得以萌芽。

雖然GCC對計算機世界造福至深,但它在架構上也有一些挑戰。GCC沿襲了所有現代編譯器所使用的經典的“解析器+優化器+程式碼生成器”的架構,但它被有意設計成一個單體的批處理編譯器系統,而且GCC的領導者也不願意改進設計、提高模組化程度,針對這個問題,業內也一直爭論不休。

2

模組化設計的崛起

可能大家回過頭來才意識到,其實2000年是編譯器和程式語言史上具有里程碑式意義的一年,因為在這一年,LLVM專案面世了。

LLVM之所以出現,是因為當時的編譯器難以擴充套件,而且很難基於它們進行編譯器研究工作。

22年後的今天,LLVM/Clang支援著世界上的大部分計算,包括iOS、Android、Google、Meta等公司和系統。然而,人們卻對它的成功感到驚訝,因為LLVM/Clang和它的前身一樣,依然採用標準的“解析器+優化器+程式碼生成器”方法,它沒有突破性的程式碼生成演算法,而其他系統最終都遵循了“全程式優化”等早期創新。LLVM在傳統的C/C++工作負載方面沒有超越現有的編譯器,但它還是取得了成功。

LLVM的創新之處在於其軟體架構:LLVM是一個模組化庫的集合。這些庫擁有已定義的介面,能夠以創新的方式進行組合和擴充套件,它們可以被內建到大型軟體專案中,也可以重新組合,用於非常小的應用,例如特定領域的即時編譯器。模組化和清晰的介面會提高可測試性,有助於高質量的實現。模組化和關注點分離也讓領域專家不必事無鉅細地瞭解系統各部分如何工作就可以開發大規模專案。

Chris Lattner曾在2011年撰文回顧LLVM的發展(https://www.aosabook.org/en/llvm.html), 其中寫到,模組化使LLVM能夠擴充套件,從而產生新的開發者工具(如clang-format)和創新的程式語言(如Rust、Julia、Swift)等等。上述技術以前在理論上就可以實現,但正是由於LLVM的可用性和可編輯性,它們才得以成真。模組化設計為OpenCL和CUDA等下一代即時加速器程式設計模型的誕生提供了條件,推動了下一波編譯器技術的整合,這就是LLVM現在成為大多數CPU、GPU和AI系統的基礎的原因。

LLVM最激動人心的貢獻是它可以用在許多讓人意想不到的地方。LLVM設計之初並沒有打算用在AI,或者Snowflake的資料庫查詢優化器上,但如果沒有LLVM(或類似LLVM的東西),許多這些用例或許永遠不會實現,比如,一個數據庫團隊如果想做查詢優化,但沒有LLVM,那他們就必須從頭開始構建一個X86程式碼生成器,才能建立即時編譯器實行查詢優化。

3

2022年的AI基礎設施

今天,我們見證了人工智慧行業的巨大進步,比如,世界各地的資料科學家可以通過Jupyter Notebook平臺在100+PetaFLOP超級計算機上訓練模型。儘管如此,至今端到端模型部署還沒有實現“平民化”,還不能觸達更多人。正如1990年代和2000年代初期的編譯器和工具那樣,今天的AI模型部署工具遇到的問題與其相比驚人地相似,依然是嚴重的碎片化,硬體種類繁多且都有各自的定製工具。

多年來,世界上各大科技巨頭已經構建了多個針對不同硬體產品的內部工具鏈,而這些工具鏈往往不相容,而且共享的程式碼很少。整個行業內已經誕生了許多良莠不齊的轉換器和編譯器,是時候做減法了。

許多業內人士認為,這些問題是由於人工智慧的內在特性造成的,但我們知道這只是因為人工智慧基礎設施仍處於起步階段。人工智慧已經對世界產生了如此驚人的影響,但我們還是忍不住設想,如果我們有機會以正確的方式重建ML行業,那它的影響究竟會有多大?

4

下一代AI系統的目標

過去十年,AI基礎設施和工具發展神速,我們從中汲取了很多經驗,現在已經能夠充分理解曾經孜孜探索的許多東西。是時候結合過去的經驗和行業最知名的技術,建立一個模組化的、可組合的系統了。

下一代ML系統需要達到高質量並滿足開發人員的需求。

下一代ML系統不需要對使用者程式碼付出成本高昂的重寫、重新架構或重新定位(Rebasing);它是原生的多框架、多雲和多硬體的組合;它要將最好的效能、最高的效率與最佳易用性結合起來。這是減少碎片化和解鎖下一代硬體、資料和演算法創新的唯一途徑。

這是一項艱鉅的重任。實現這一目標需要多方人員的合作,包括架構師、工程師和技術領袖,他們既是許多現有系統的開創者,也是尖端技術發展的推動者。在追逐這個目標的過程中,專注、自律以及對卓越技術的追求缺一不可,這是一種以正確方式構建事物的價值體系。為了實現這一目標,我們需要在面對一些誘人專案時有說“不”的定力,以確保我們的基本面不會變形。

我們的目標是讓AI更易用、易於觸及、可移植、可擴充套件,使全世界的開發者都能暢通無阻地用AI造福人類。在這個世界上,我們應該花更多時間用AI來解決實際問題,而不是遭受碎片化、低質量的工具和基礎設施的折磨。這就是我們要為之努力的未來。

我們正在構建AI的未來,願景是讓任何人、任何地方都可以使用AI。

\ 原文連結:\ https://www.modular.com/post/the-future-of-ai-depends-on-modular-design

歡迎下載體驗 OneFlow v0.7.0 最新版本:\ https://github.com/Oneflow-Inc/oneflow/