開源機器學習軟體對AI的發展意味著什麼?

語言: CN / TW / HK

 

作者| Max Langenkamp

OneFlow編譯

翻譯|徐佳渝、楊婷

 

為什麼要關注機器學習開源軟體(MLOSS)?在我們看來,MLOSS對AI發展來說舉足輕重,但未獲重視。

 

機器學習開源軟體是開源許可下發布的專為機器學習而設計的計算機軟體。機器學習開源軟體包括框架(如PyTorch和Pyro)、“一體化”軟體包(如scikit-learn)以及模型開發工具(如TensorBoard),但不包括Jupyter Notebook這類互動式計算工具。雖然Jupyter Notebook並非專為機器學習而設計,但是相關從業者經常會用到這款工具。

 

 

 

1

機器學習開源軟體舉足輕重,但未獲重視

 

 

MLOSS舉足輕重

 

過去十年,只要構建過ML模型的人都知道MLOSS至關重要,無論是Deepmind的研發工程師,還是印度的高中生都無一例外會使用開源軟體來構建模型。我們採訪了24名ML從業者,他們都給出了相同的答案:MLOSS工具在模型構建中的地位舉足輕重。

 

從業者都在免費使用MLOSS工具,也就意味著這類工具會對人工智慧發展產生巨大影響。然而,探索MLOSS對AI發展影響的研究人員卻寥寥無幾。

 

 

MLOSS未獲重視

 

迄今為止,研究者就影響人工智慧發展的因素展開了多次討論,其焦點都集中於算力,部分研究者將演算法和資料也列為了影響因素之一。例如,艾倫·達福(Allan Dafoe)認為影響人工智慧發展的關鍵因素是計算能力(算力)、人才、資料、洞察力及資金。[1] 黃(Hwang) (2018)探究了硬體供應鏈對機器學習發展的影響。羅森菲爾德(Rosenfeld) (2019)和海斯特內斯(hesistest)(2017)研究了資料集大小與人工智慧模型精度的關係。

 

越來越多的文獻都提到了資料集大小和人工智慧模型精度,旨在明確如何建立人工智慧中輸入和預測誤差之間的關係模型。然而,據我們所知,目前還未有關於MLOSS如何影響人工智慧發展的深入研究。

 

目前,我們的關注點是資料、算力等因素如何改變人工智慧的發展方向,不過,同時也應聚焦於MLOSS在人工智慧發展中的角色。

 

 

 

MLOSS及AI生產函式

 

我們在早期研究中存在這樣的疑惑:資料、算力及MLOSS這些AI生產的影響因素相互之間有何聯絡,而闡明這些因素之間的聯絡正是理解AI系統開發預設軌跡(default trajectory)的關鍵。

 

柯布-道格拉斯生產函式(Cobb-Douglas production function)是經濟學中常用的界定方式。該函式用於資本和原材料等變數的建模,通過函式引數化以表示投入與產出的關係。

 

CD生產函式的表示形式

 

AI生產函式的隱含形式

 

艾倫·達福將“AI生產函式”應用於人工智慧治理,並提出構成該生產函式的關鍵在於算力、人才、資料、投資、時間以及先前進展和成果等指標[1]。達福就“人工智慧進展”研究進行了探討,此外,在類似研究中也有相關探討,以解除人工智慧特定正規化的思維限制。

 

實際上,這就相當於“深度學習”和“人工智慧”。而我們可以選擇不同正規化,不過認識到這些正規化功能的多樣性也十分重要。例如,概率程式更容易吸收現存的顯性知識,同時能減少對大資料集可用性的依賴。

 

雖然生產函式可以明確區分出影響深度學習發展的因子,但也存在侷限性。特別是當生產函式被認為是自變數的乘積時,不會考慮生產因子之間的共同依賴關係,而且可能還會隱藏每個因子的上下文資訊。

 

還有另一種方法可以闡明影響AI生產的因子,即使用有序的功能依賴圖,亦稱沃德利地圖(Wardley map),來解釋因子之間的共享依賴關係。例如:中間模型表示依賴於算力基礎設施和MLOSS框架。

 

 

 

2

沃德利地圖為AI生產函式提供了最佳替代方案

 

沃德利地圖應用廣泛。譬如, 可在無手機的情況下用於求生 也可用於電車的路況預測 。此外,還有本關於沃德利地圖理論的 書籍 。為探尋MLOSS在AI生態系統中發揮的作用,我們在下文提供了簡單示例。

 

構建沃德利地圖的三大主要步驟:描述用例、為處理用例所需的技術功能下定義以及對該地圖相應功能進行排序。

 

以下是“構建深度學習模型”的用例,也是重中之重。我們將重點關注框架、預訓練模型、資料及硬體的主要功能,且各功能之間相互具有依賴性。如,框架編譯軟體(Glow編譯器)受到ML框架(PyTorch)的影響,而框架編譯軟體依賴於中間表示(ONNX),此外,中間表示又會受到硬體(NVIDIA GPU)的影響。

 

現階段,我們旨在闡明與ML框架(MLOSS為典型示例)相關的某些關鍵功能,而非對各方面都泛泛而談。

 

圖1. 以沃德利地圖構建深度學習模型

 

通過沃德利地圖,我們能更清晰闡述有關塑造深度學習研究的能力之間的關係。基於此,推斷出哪些功能將成為未來焦點。我們會在最後一節詳細討論“ MLOSS之未來 ”。

 

稍後,我們將通過沃德利地圖來探討人工智慧的未來。

 

 

 

3

MLOSS通過構建標準、推行實驗及建立社群來促進人工智慧研究的發展

 

我們對23名參與者進行了定性訪談,進而確定了MLOSS影響人工智慧生態系統的三大主要因素。

 

 

構建標準

 

標準化是指我們普遍認可的單一技術或技能規範。參與者從研製標準化模型型別、協調框架、為開發人員提供一致的使用者體驗這三個方面談論了構建標準帶來的的影響。

 

對大型神經網路相關從業者而言,模型型別標準化做出的貢獻最為突出。十年前,擁有百萬引數的模型是一項浩瀚工程。然而現如今,研究人員只需連線網際網路以及使用合適的硬體,就能免費下載 一個超1700多億引數的模型 用這一模型進行線上推理 。因此,如今大多數與機器學習相關的工作都會涉及大型神經網路,這與MLOSS工具的普及以及硬體和效能工程的發展密不可分。

 

我們見證了深度學習框架的高度標準化:雖然2016年MXNet、Theano、TensorFlow、Caffe2、Torch這幾種深度學習框架佔據很大的市場份額,但是西方相關從業者已普遍將PyTorch、JAX及TensorFlow視為深度學習的三大主流框架。

 

該訪談中,所有參與者至少使用過這三大主流框架中的一種。 據Paperswithcode顯示  ,截至2022年6月,採用PyTorch的相關論文佔公開發表論文的62%、JAX佔7%,TensorFlow佔1%。雖然 DeepMind公開支援JAX這類框架的 使用,但是,我們認為Paperswithcode關於JAX的使用資料無法證明JAX越來越受歡迎。

 

此外,我們還可以看到框架內部使用者體驗層面的融合。部分參與者指出,TensorFlow以往預設的基於graph的機制無法給予人們直觀感受,對初學者而言更不友好。他們解釋道:因為PyTorch具有更為直觀的命令式模型規範,所以才採用PyTorch。

 

值得注意的是,由於受到PyTorch帶來的衝擊,TensorFlow 2.0也採用了PyTorch的介面,使其使用者體驗與PyTorch趨於一致。

 

 

 

推行實驗

 

推行實驗不僅能迅速落實我們的想法,還能提供新的思考方式。PyTorch Lightning開發了一個 權重矩陣彙總模組 ,從而節省了研究人員除錯模型的時間。而Torch的指令式程式設計也為研究人員提供了新思路。這也意味著將基於graph的模型規範應用於Tree-LSTMs這類新穎架構成為現實,這在以前是無法想象的。

 

 

 

建立社群

 

與開源軟體(OSS)生態系統類似,MLOSS的重要之處在於它為社群技術貢獻者及使用者提供了互動機會。建立這類社群的好處諸多,例如使用者能為社群貢獻力量、提供反饋、輸出技術內容,併為MLOSS志願者提供就業機會。

 

開源軟體論壇為交流提供了新平臺,讓使用者成為社群貢獻者是很好的例項。社群中也發生了一些趣事,一些對社群作出了巨大貢獻的使用者隨後被社群專案贊助者看中,從而獲得了工作機會。雖未經系統統計,但總的來說加入MLOSS論壇及社群就有可能獲得一定的就業機會。

 

通過線上社群,人們可採取多種方式與專案組織方進行交流。例如,PyTorch的聯合創始人Sousmith Chintala曾公開談論PyTorch社群對早期工具開發所帶來的影響。要想開源軟體研發走得更遠、保證專案的成功,關鍵在於能否獲得大眾認可;而要想對專案作出一個不被支援的修改,可謂難上加難,即使失敗也不足為奇。為了讓這一觀點更具說服力,不妨邀讀者來一探究竟:Facebook更改React專案的開源許可協議為何會 失敗

 

 

 

4

經濟激勵措施、社會技術因素和意識形態共同決定MLOSS的發展

 

 

 

激勵措施

 

圖2. 有關商業激勵措施如何影響MLOSS的建議

 

結合案例研究及參與者的建議,我們發現大公司和初創公司的商業激勵措施各不相同。大公司資助MLOSS是為了引進研發人才,從而能間接控制開源軟體生態系統,強化現有能力。

 

由於許多開源工具的研發人員以前是使用者,他們很難清晰表達如何間接控制開源軟體生態系統,因此引進人才不足為奇。這些在如何設定預設值(如:PyTorch相容什麼型別的硬體)或如何拓展專案發展方向(如:HuggingFace是否優先考慮與Graphcore的IPU或Google的TPU的相容性)上均有體現。

 

最後,無論增加計算需求(對數字雲提供商更有益)還是改進現有堆疊方式,增加MLOSS的使用往往能提升現有功能價值。由於TensorFlow的廣泛使用,谷歌Colab的使用者量也大大提升。而共享PyTorch更是明顯改善了Facebook/Meta的人臉識別、影象字幕功能。

 

初創公司為社群提供MLOSS以改進現有產品,助力未來產品。社群不僅僅是社群,更是強大的護城河。它可以助力發揮文化影響力、改善產品、獲取營利途徑並賦予人們 集體認同感

 

Hugging Face提供的大型語言模型包廣受歡迎便是一個很好的例證。Hugging Face開源了強大、可訪問的語言模型包,此舉讓社群收穫了大量粉絲。2022年,該公司通過實施有償模型訓練或模型推理,併為大企業提供諮詢服務 才實現了現金流回正 。社群可以幫助公司發掘人才、改善現有產品、挖掘企業服務的消費群體。

 

 

社會技術因素

 

除了資金和意識形態之外,還有很多社會技術因素也對MLOSS有明顯影響。以下是三個最為突出的影響因素。

 

1. 軟體易用性是制勝關鍵

 

軟體的功能會極大地左右人們的選擇,人們傾向於選擇使用者介面最直觀的軟體。值得一提的是,儘管最初缺乏對生產系統命令式方法的支援,TensorFlow最終還是採用了PyTorch的命令式神經網路規範。TensorFlow基於graph機制與PyTorch基於eager的機制之間的競爭就好比是Lisp語言和C語言,或者“正確的事情”與“ 越壞就越好 ”之爭。

 

與Lisp語言相比,C語言簡單且完整度不夠,但是這種“更糟”的C程式語言的採納率卻遠遠超過了複雜、完整且“正確”的Lisp語言,PyTorch和TensorFlow之間的競爭也是如此,PyTorch這種更為簡單的方法戰勝了TensorFlow更高效的基於graph的模型。

 

2. 部分程式碼實現標準化

 

資料集操作(dataset manipulation)和矩陣微分(matrix differentiation)是機器學習的兩個常見任務,我們就以此為例。資料集操作在資料集之間的差異很大,但需要的步驟很少。相比之下,矩陣微分在模型之間非常相似,但需要的步驟更多。矩陣微分的單調乏味和相似性意味著它是軟體中最先實現標準化的任務之一。一般來說,模組化、同質化和瑣碎的任務會最先被標準化。

 

3. 研究社群的興趣

 

機器學習中的流行正規化對MLOSS有顯著影響。目前,機器學習的主要模型型別是深度學習,這推動了深度學習(與替代概率程式設計(alternate probabilistic programming)或自動規劃(automated planning)等機器學習範例相反)MLOSS工具的發展。

 

當然,機器學習主流正規化本身就會受到多種因素的影響,硬體狀態、權威基準、商業適用性對於塑造機器學習主導方法來說都很重要。想要深入瞭解相關資訊,大家可以參閱Dotan和Milli (2019)2的論文。

 

 

意識形態

 

最後,意識形態對於MLOSS的發展也有著至關重要的影響。大多數MLOSS關鍵人物都受到特定世界觀的影響,他們的世界觀可能帶有宗教性質或是個人價值觀的產物。這些價值觀激勵著研究人員去改善其他開發人員的體驗或是促進AI的發展。

 

Travis Oliphant是NumPy(Python中最常用的庫之一)的建立者,他講述了建立NumPy作為公共服務時發生的故事,然而在那時,他的這一想法遭到了楊百翰大學(Brigham Young University)的顧問和同行們的反對。

 

其他研究人員單純認為推動AI的發展能帶來很多好處。Soumith Chintala在一次部落格訪談中被問及Facebook贊助PyTorch的原因,他答道,“在AI研究院(Facebook AI Research)中我們有一個單點議程,這個議程是為了解決AI方面的問題,包括授權他人去解決相關問題。

 

這似乎意味著“解決AI”將極大促進社會發展,這種發展可以是發明新的藥品也可以是證明新的定理。同樣,H2O.ai和Hugging Face都將“人工智慧民主化”作為開源其產品的核心動機。

 

 

5

MLOSS(深度學習)中的自我強化反饋迴圈

 

在本節中,我們將討論MLOSS的增殖(proliferation)方式,這種方式可能會選擇性地偏愛某一種機器學習(深度學習)型別。

 

 

 

AI深度學習正規化的替代方案

 

除了深度學習,AI研究還有其他正規化,比如概率機器學習(probabilistic machine learning)、基於規則的專家系統(rule-based expert systems)以及自動規劃(automated planning)。

 

正如一些受訪者所說,儘管深度學習是 ML/AL 研究中的主導正規化,但我們很難理清深度學習取得進步的原因,顯然技術優勢是一部分原因,但是隨著 MLOSS 生態系統的進步,我們也不能忽視進步背後巨大的工程優勢。充其量,很難評估若替代方法具有類似資源,技術會如何進步。在最壞的情況下,深度學習創造了一種自我強化動力,使得生態系統的影響比底層技術的優勢更重要。

 

提到深度學習沒有明顯優勢的領域,驗證飛行軟體(verifying flight software)就是一個例子,它對確定性有很高的要求。在這些領域,工程師們會選擇使用與自動規劃密切相關的定理證明器(theorem provers)來正式驗證軟體質量。目前深度學習還不能勝任這方面的任務,因為它們無法提供正式的保證。

 

 

 

更好地支援深度學習工具有助於加強深度學習

 

目前MLOSS工具有兩種支援深度學習的方式:減少開發人員摩擦和改變研究人員激勵措施。

 

PyTorch和FastDownward分別是深度學習和自動規劃領域最流行的兩個開源工具。PyTorch主要由Facebook的AI研究院開發,並得到了極好的支援。使用者通常可以通過單個搜尋引擎查詢來解決技術問題,這個查詢會解析數以萬計的帖子和活躍使用者。許多有用的程式碼片段詳細說明了如何除錯尺寸不匹配的張量。

 

現在我們來聊一聊FastDownward。FastDownward的安裝非常重要,需要作業系統的基本知識才能下載壓縮檔案包 (tarball) 並手動配置安裝。如果遇到技術問題,使用者很難立即獲得支援。在我們嘗試的大多數錯誤查詢中,通過搜尋引擎直接搜尋的方式找不到答案,所以我們不得不求助於他們的自定義論壇。我們這樣說並不是在貶低FastDownward,而是想要說明全職工程師團隊之間在使用者體驗上的巨大差異。

 

在採訪過程中,我們看到了工具使用摩擦的微小差異是如何推動TensorFlow轉向PyTorch的。我們認為,研究工具的易用性對研究人員關注問題的選擇有著顯著的影響。通過這種方式,當前最流行的MLOSS工具(PyTorch、JAX、Hugging Face等)促進了深度學習方面的工作,這並不是深度學習作為AI正規化的科學價值的直接結果。

 

因為強大的生態系統支援,深度學習工具已經生產化,這讓深度學習工程成為一種非常理想的技能組合,這是MLOSS加強深度學習的另一種方式。

 

深度學習工具易用、可靠且得到大量使用者社群的支援,因此許多公司都可以使用深度學習。很多公司已經開始通過TensorFlow等工具應用深度學習,因此,相比其他正規化,深度學習領域專家擁有更多的工作機會,同時行業裡對涉及深度學習工作的需求量也更高。在Indeed.com上有超過15000個崗位涉及深度學習,而涉及概率程式設計和自動規劃的崗位則分別只有40個和8個。

 

 

 

6

MLOSS的未來

 

圖3: 深度學習模型的擴充套件沃德利地圖

 

前面提到過的沃德利地圖可以對技術發展軌跡作出一些預測。一般來說,能力越靠近左邊就意味著該能力越是不足,就越會制約技術的發展,生態系統的注意力就會轉向去提升這些相對被忽視的能力。與定性證據相結合,沃德利地圖推測出了下面四個發展趨勢。

 

 

 

趨勢1:MLOSS的重心將從深度學習框架轉移

 

儘管深度學習框架(PyTorch 、TensorFlow、Chainer、Theano、Torch以及華為最近釋出的MindSpore)之間的競爭非常激烈,但使用框架表達深度學習模型已不再是瓶頸。

 

PyTorch的建立者之一Soumith Chintala隱晦地說道“通過PyTorch和TensorFlow,我們已經看到了框架之間的融合趨勢,接下來競爭的主戰場將會是框架編譯器,比如XLA、TVM以及PyTorch的Glow,這一領域將會迎來大量創新”。

 

 

 

趨勢2:更多大型預訓練模型工具

 

最近,許多著名專案都在對大型預訓練模型進行迭代升級。Github的大模型Copilot是GPT-3[12]的微調版本,旨在協助Python進行程式碼編寫。從最基礎的層面來說,這涉及為預訓練模型提供服務的基礎設施。

 

當前的大語言模型太大,無法在單臺計算機上執行,但OpenAI的GPT-3 API和Hugging Face的服務基礎設施已經能夠做到這一點。後續工具允許管理不同模型版本,用於組合大型的不同預訓練模型的元框架,以及用於將不同模式(例如視覺、聲音、文字)合併到預訓練模型中的工具。

 

 

 

趨勢3:(潛在閉源)資料工具更加多樣

 

許多初創公司正試圖解決當前處理資料的臨時性質(ad-hoc nature),但尚未整合到單一工具上。更廣泛地說,隨著 Andrew Ng 的“以資料為中心的人工智慧”等活動的發展,許多研究人員認為資料這一工具和研究的重點被忽視了。如果這一看法正確,那麼用於資料檢查和生產的工具將變得尤為重要。

 

是否對這些未來工具開源將取決於任務規模。與大學或小型初創公司的 GB 級實驗相比,PB 級資料系統,例如特斯拉的自動駕駛汽車資料pipeline會開源的可能性要小得多。這可能會讓大小型工具發展道路進一步分化,大規模工具由 Scale 等專有平臺提供,部分小規模資料工具則會開源,可供研究人員免費使用。

 

表1.不同型別的資料工具

 

 

 

對風險的簡要反思

 

資料工具的發展趨勢對機器學習的中期風險來說意味著什麼?與計算的發展趨勢類似,資料工具的發展趨勢似乎也是小部分公司集中了大部分能力。這種發展趨勢可能更便於管理,各國政府都已成功展現出管理由通用技術發展而來的壟斷行業的能力,比如說電力。然而令人擔憂的是,我們對這些技術的控制能力遠遠跟不上管理能力的發展。

 

MLOSS 中的社群規範也對潛在風險有重大影響。因為MLOSS有很多強大社群,如果其中某個有影響力的社群無視釋出強大AI系統的安全問題,在這種情況下,我們認為高風險模型(例如致命病毒生成)的研究人員更可能公開發布他們的模型。


因為AI系統通常是可組合的,所以我們預測模型增殖(model proliferation)的風險可能呈非線性增長。由於不良分子可以將不同模式的模型相結合,因此公開可用模型可能產生的風險將遠遠超出公開的模型數量。如果要嚴肅對待這種情況,那麼我們就必須要在模型釋出之前制定謹慎的相關規範。

 

為了增加研究可靠性,我們對模型未來的發展前景作了一些推測,這些推測都有一定的可能性:

 

  1. 截至2027年1月,根據Paperswithcode(中國境外),PyTorch和JAX將成為最受歡迎的三大深度學習框架中的其中兩大框架。

  2. Python將成為2027年最流行的機器學習語言。

  3. ONNX將成為主流的中間表示框架。

  4. 在2023至2027年間,對公眾閉源的前5大語言模型不會開源。

  5. 截至2027年,三個最受歡迎的資料工具提供平臺在很大程度上會是專有的,也就是說他們不會開源堆疊的關鍵組成部分。

 

這些預測大多基於我們的直覺,並不完全準確,但我們認為,無論如何這些粗略的預測都有一定的作用,因此也將其列了下來。

 

 

 

下一步研究方向

 

  • 其他領域(比如LLVM等編譯器)裡的MLOSS和OSS有哪些相同/不同點?

  • 我們期望資料工具以何種有別於框架工具的方式發展?

  • 擴充套件概率程式設計與深度學習(特別是計算)所需的能力有何不同?

  • 中國的MLOSS與美國的有何不同?這對人工智慧研究知識的傳播來說意味著什麼?

  • 開源資料工具的激勵與其他MLOSS(尤其是框架)的激勵有何不同?

 

(本文經授權後由OneFlow社群編譯釋出,譯文轉載請聯絡獲得授權。原文 :https://maxlangenkamp.me/posts/mloss_essay/)

 

其他人都在看

歡迎Star、試用OneFlow最新版本:https://github.com/Oneflow-Inc/oneflow/


 

本文分享自微信公眾號 - OneFlow(OneFlowTechnology)。
如有侵權,請聯絡 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。