MXNet 退役!深度學習框架 如何從大廠“寵兒”到落入“冷宮”?

2024年2月6日 21点热度 0人点赞

作者 | 李冬梅

近日,InfoQ 從 Apache 官網獲悉,知名深度學習技術專傢李沐的開源學習框架項目 MXNet 已被移至 Apache Attic,原因是這個項目不活躍。

Apache Attic(阿帕奇閣樓)是 Apache 軟件基金會的一個項目,為已終止的 Apache 項目提供解決方案。Attic 項目成立於 2008 年 11 月。已退休的項目也可以被保留。

從 Apache 孵化器畢業後不久,就進入“退役”階段

Apache MXNet 是一款開源的輕量級深度學習框架,支持多種語言,包括 Python、Scala、R、Julia、Perl 等等,這使得它可以被各種人群使用,包括開發人員和數據科學傢。其核心代碼是用 C 編寫的,但它提供了一個靈活的界面,允許用戶使用他們喜歡的語言編寫代碼。MXNet 於 2022 年 9 月從 Apache 孵化器畢業成為頂級項目。

MXNet 的另一個重要特性是它支持混合符號編程和命令式編程,從而能最大限度提高效率和生產力。其核心是一個動態的依賴調度,它能夠自動並行符號和命令的操作。它還具備一個圖形優化層,使得符號命令執行速度更快,內存使用更高效。它也是一款便攜框架,能夠擴展到多個 GPU 和多臺機器。

MXNet 支持超大規模雲廠商 AWS 和 Azure。2016 年,亞馬遜選擇 MXNet 作為 AWS 的深度學習框架,亞馬遜首席技術官 Werner Vogels 親自撰文解釋並進行了大力推廣。經過多年的發展,MXNet 得到了英特爾、Dato、百度、微軟、Wolfram Research 以及卡耐基梅隆大學、MIT、華盛頓大學和香港科技大學等研究機構的支持。

但 MXNet 的發展並非一路高歌猛進,在最近幾年 MXNet 逐漸走向沒落。

早在去年 6 月,MXNet 項目核心成員 Sheng Zha 就曾給社區發了封聲明坦陳了項目面臨的艱難處境,聲明中稱,“自 2022 年底以來,代碼開發大部分已停止,社區參與度放緩。盡管生成式人工智能和相關技術蓬勃發展,深度學習框架和分佈式訓練等空間解決方案,但該項目目前的定位還不夠維持項目的增長,特別是考慮到開源深度學習框架空間的開發。為此,社區需要做出一些選擇,包括通過找到關鍵的大型項目的路徑繼續維護該項目;討論 MXNet 可以轉向哪些替代位置;退休到 Apache Attic 中。”

遺憾的是,社區最終選擇了最後一條路。去年 9 月,MXNet 正式進入 Apache Attic,自此退休。

10 月份,Apache 還給社區發出“警告”通知,表示項目進入“隻讀“階段。

到了 11 月 17 日,項目又再次發出郵件,提醒用戶 MXNet 已經成功移入 Attic。

但值得一提的是,退休一個項目並不是關閉一切那麼簡單,因為現有用戶需要保留對自己開發工作必要信息的訪問權。也就是既需要讓現有用戶知道該項目正在退役,又要保留獲取必要信息以進行自身開發的機會。具體來說,Apache Attic 機制的目的是:不影響用戶、對代碼庫提供受限制的監督、在沒有項目管理委員會(PMC)的情況下對活動用戶列表進行監督;但它將不再重建社區、修正 bug、發佈新版本。

一個項目可以通過兩種機制進入 Attic:管理項目管理委員會(PMC)決定要該項目遷移進入 Attic,或者 Apache 軟件基金會的董事會解散 PMC 並選擇遷移該項目。

而什麼樣的項目應該進入 Attic ?“PMC 無法召集 3 票進行版本發佈、沒有積極的提交者或無法履行其向董事會報告的項目都是 Attic 的良好候選者”。

據悉,MXNet 社區共有 875 名貢獻者、87 名提交者和 51 名 PMC 成員。許多社區成員在 MXNet 之外繼續發揮重要作用生成式人工智能和深度學習系統空間。

MXNet 的發展歷史

MXNet 由 DMLC(Distributed ‘Deep’ Machine Learning Community)打造,DMLC 的大部分成員目前大部分是華人,以陳天奇、李沐、解浚源等為代表,創建了這個世界上目前排名第四的深度學習框架:MXNet。

作為 Apache MXNet 的作者,李沐本科就讀於上海交大,博士畢業於美國卡內基梅隆大學,並先後在港科大、伯克利擔任教職,2016 年加入亞馬遜成為首席科學傢。

2014 年在 NIPS 上的相遇之後,陳天奇與李沐等人決定組建 DMLC 分佈式深度機器學習社區聯盟(Distributied Deep Machine Learning Community),號召大傢一起合作開發 MXNet,分別發揮各自的特長,共同解決機器學習門檻高的問題。

該聯盟前期成員主要來自於CXXNet團隊, 核心成員十人左右。其中張錚老師指導的 Minerva 團隊主要負責後端引擎,陳天奇進行接口設計,李沐負責分佈式。

經過了一年的發展,2015 年 9 月,MXNet 的初代版本就已經開源出來並在GitHub上發佈。在一眾技術大佬背書下,項目開源就受到了極大的關註。在李沐等人的不斷努力下,MXNet 在多個機器學習和計算機視覺競賽中取得了優異的成績。與此同時,MXNet 持續增加了對新穎算法的支持,並逐漸被學術界和工業界廣泛采用。

2016 年,越來越多的開源貢獻者參與到了開發及維護 MXNet 的工作中,對 MXNet 進行了大量的擴展、優化和修復工作,截止 2016 年 11 月,該項目已經擁有 200 多位貢獻者。也是這一年,MXNet 的發展迎來了重要的裡程碑。

同年年底,亞馬遜宣佈將 MXNet 作為官方使用的深度學習框架,這一決定讓外界嘩然。因為當時的深度學習市場上已經有了TensorFlow、Theano、Torch 或 Caffe 等知名度較高的深度學習框架,MXNet 作為新興的後起之秀,為何會被亞馬遜這樣的超級巨頭選中?

在接受媒體采訪時,時任亞馬遜 CTO 的 Werner Vogels 給出了答案。Vogels 表示之所以選擇 MXNet 作為深度學習框架,是因為它的擴展性和運行性能比幾乎任何其他產品都要好開發,此外,技術人員還可以在該框架中使用多種語言,包括 Python、C 、R、Scala、Julia、Matlab 和 JavaScript。

Vogels 發佈了使用 Inception v3 圖像分析算法的 MXNet 訓練吞吐量基準,並聲稱通過在多個 GPU 上運行該算法獲得的加速是高度線性的。在 128 個 GPU 上,MXNet 的執行速度比單個 GPU 快 109 倍。

同時,AWS 還表示將會通過增加源代碼貢獻、改進文檔以及支持來自其它框架的可視化、開發以及遷移工具,為實現 MXNet 成功的長遠目標做出貢獻,AWS 的大力馳援進一步推動了 MXNet 的發展和推廣。

2017 年 1 月 23 日,MXNet 被 Apache 軟件基金會接納,成為其孵化項目之一。這一舉措為 MXNet 的開發和社區生態註入了新的活力,吸引了眾多大公司的支持和貢獻,包括亞馬遜、微軟、英特爾等。到 2017 年底, MXNet 貢獻力量的人員達到 400 多名。

2017 年,MXNet 0.11 是 MXNet 正式加入 Apache 以後的第一個版本。這次最大的改進是加入了動態圖接口 Gluon,Gluon 同時支持靈活的動態圖和高效的靜態圖,既保留動態圖的易用性,也具有靜態圖的高性能。隨後,在 MXNet 1.0 版本中,引入了動態圖計算和 TensorFlow 兼容接口等重要更新,進一步提升了 MXNet 的性能和靈活性。這使得 MXNet 在與其他深度學習框架的競爭中更具優勢。

在隨後的幾年中,MXNet 持續發展和壯大。它推出了多項新功能和技術創新,包括混合精度訓練、模型量化、自動混合推理等。這些創新使得 MXNet 在處理大規模數據集和復雜模型時更加高效。此外,MXNet 還提供了更加靈活且直觀的接口,方便用戶使用。

2022 年 9 月,MXNet 項目作為頂級項目從孵化器畢業。

MXNet 的一路發展和李沐個人的職業選擇深度綁定。2019 年,InfoQ 有幸對李沐進行了一次專訪,了解到了他從學術界到工業界的精彩故事。

矽谷華人 AI 大神李沐的開掛人生

上海交通大學 ACM 班, 取名源於國際科學教育計算機組織——美國計算機學會(Association of Computing Machinery),ACM 是世界上第一個、也是最有影響的計算機組織,計算機領域最高獎——圖靈獎是由該組織設立和頒發的。

李沐的大學本科,就是在這樣一個被寄予厚望的“特色班”裡度過的。

有意思的是,他當時隻是對數學很感興趣,高中的時候雖然參加過一些數學競賽,可幾乎沒有接觸過計算機。進到了這麼一個培養計算機科學傢的班裡,他自己也有些拿不準:到底能不能搞定這個復雜的機器?

ACM 班最大的特點在於註重實踐,即使是在本科階段,學生也需要手寫大量的代碼來練習,至少也是其他院校同院系實踐量的四五倍。此外,ACM 班非常註重數學能力,這也給了李沐發揮所長的機會。

不過,可不要覺得李沐的生活就此陷入了無邊無際的“代碼海洋”之中,“學霸”的生活並不枯燥,反而還充滿了不少樂趣。據李沐的室友透露:那時的李沐不僅學習成績好,還是籃球場上的一把好手,更是電競場上的“大神級”人物。

然而不久之後,戲劇性的一幕出現了:雖然躊躇滿志進入了 ACM 班,並且報名參加了計算機競賽,但是李沐最終因為訓練的成績不合格被刷了下來。

這個時候,李沐遇到了他的導師:呂寶糧教授,也正是從那時起,李沐正式推開了人工智能的大門。

初識 AI

呂寶糧,上海交通大學計算機系教授、博士生導師,IEEE 高級會員。主要研究方向有:仿腦計算機理論與模型;機器學習理論與應用;神經網絡理論與應用;生物特征識別;自然語言處理;腦與計算機界面。

李沐第一次接觸人工智能,就是被呂寶糧教授的一個案例震撼到了。

“當時教授展示了一張他們實驗室人員的合照,並用人臉識別系統把每一個人的名字都對應顯示了出來,當時我們就被這個 demo 吸引住了,也就這樣選擇加入了這個實驗室。”

李沐的人工智能之路也就由此正式開始了。“本科階段還有時間打球、打遊戲,後來真的是一年比一年累,回想起來,在 ACM 班的經歷就像是一個過渡期。”

“過渡期”之後,李沐沒有去找工作,而是選擇到香港科技大學繼續深造。李沐的選擇是受到了 ACM 班定位的影響——培養計算機科學傢,ACM 班也更鼓勵人才去從事學術研究。

“除此之外,當時的大環境也是影響我選擇的一個原因。那是大概 2008 年左右,雖然當時計算機已經成了熱門專業,但是當時的 IT 公司並沒有那麼厲害,尤其在 AI 方面的技術並沒有那麼強。”

在港科大又修煉了一年多的內功之後,李沐開始了“初入江湖”的旅程。

在正式進入工業界之前,2007 年夏天,李沐已經在微軟亞洲研究院“小試牛刀”了三個月左右真正開始與工業界親密接觸,是 2011 年 4 月,那一年李沐進入了百度。

在百度,李沐的主要工作是廣告預測,利用廣告數據有效地訓練一個模型,使得該模型能夠準確的預測用戶會不會點某個廣告。

在百度的一年時間裡,李沐積累了大量的經驗,他也坦言,這些經驗是在學校裡學不到的:“學校的實驗環境裡,也許隻能用到幾塊 GPU,跑幾個 G 的數據。而在企業裡,你面對的是幾個 T 的數據量和上百臺機器,在這種情況下,你不得不去考慮如何做分佈式,或者如何讓代碼和系統變得更快、更簡潔。”

2013 年,在百度工作了一年後,李沐再次踏上了求學之路。“在百度的經歷讓我學到了很多,也更清楚地發現了自己的短板。但是當時國內做系統方向的人比較少,所以我還是選擇了去美國繼續攻讀博士。”

從百度到亞馬遜, MXNet 和李沐深深綁定

2012 至 2017 年間,李沐在 CMU 攻讀博士學位,在讀博期間,他也在百度擔任首席架構師一職,也正是在這期間他牽頭創辦了 MXNet 項目,並伴隨著項目的發展選擇了不同的職業道路。

2017 年,MXNet 項目被亞馬遜選中,李沐在博士畢業後也開始了他在亞馬遜的職業之旅。

李沐初到亞馬遜時,人工智能部門剛剛成立,正是需要深度學習框架來支持的時候,李沐的經驗正好派上了用場。

除了 MXNet,李沐也參與了一些別的項目。“框架隻是一個工具,更重要的是要知道如何用好工具來服務客戶。”分佈式系統出身的李沐感慨道:“分佈式系統最難的不是如何讓每個機器計算的多快,而是機器之間的通訊問題,如何減少通訊提升交互效率,這對系統來說也是至關重要的。”

已經有過多年工作經驗的李沐在面對項目的時候會比剛畢業時考慮得更多。他需要考慮項目組之間的交互問題,如他所言:亞馬遜也像是一個巨大的分佈式系統,部門與部門之間的交互就像機器之間的通訊一樣。但是人之間的聯系並不像機器那麼好優化,一旦協作不暢,很容易使項目陷入瓶頸。這些都是李沐之前不曾考慮過的問題,也是他需要努力的方向。

2022 年年底,大模型爆火,許多 AI 領域大佬也都紛紛從原公司離職自己創業,李沐也成為了這場浩浩蕩蕩 AI 創業潮的一員。

從亞馬遜離職,MXNet 走向遲暮

2023 年 3 月,據媒體曝出,李沐已從亞馬遜離職,加入了導師 Alex Smola 的創業項目,並且有消息稱新公司融資情況良好。

同年 2 月,“參數服務器之父” Alex Smol 教授從亞馬遜雲科技(AWS)離職,創辦了一傢名為 Boson.ai 的人工智能公司。同月,Alex Smol 教授在領英宣佈成立了新公司並擔任 CEO。“

關於 Boson.ai,目前網上的資料還很少。Boson.ai 的官網還在建設中,目前僅顯示:適用於所有人的大模型,並配文:“我們正在做一件大事。敬請期待!”

雖然李沐並沒有在官宣加入 Boson.ai 的消息,但他已經出現在了 Boson.ai 的 GitHub 項目主頁中,據悉,Boson.ai 的 GitHub 倉庫頁面由李沐親自編寫。

李沐的悄然離職,也映襯著 MXNet 的隕落。

李沐解釋沒落原因:保技術,舍推廣

MXNet 的沒落多少讓人有些意外。知乎上有篇熱帖也討論了“MXNet 明明很好,為何沒有人用”的話題。值得一提的是,在留言回復中,我們發現了李沐的回答。

李沐表示:“簡單來說就是我們沒有足夠的人手能夠在短時間內同時技術上做出足夠的深度而且大規模推廣,所以我們前期是舍推廣保技術。”

MXNet 雖然是一個非常好的框架,但是由於背景不夠,開發人員忙於版本迭代卻忽視了文檔的重要性,導致新用戶難以上手,導致 MXNet 的用戶群體一直無法擴大,錯過了關鍵的競爭窗口,在與 TensorFlow,Pytorch 的競爭中一直處於絕對下風。

對於李沐保技術舍推廣才導致項目沒落的解釋網友卻有著不同的觀點。在這篇帖子下方,有網友經過一番調研,分析了造成 MXNet 火不起來的幾點原因:

  • 推廣太強,而對應的效果可能還沒發揮出來,畢竟有著 Amazon、Nvidia 以及餘凱等一眾大佬站臺不能算推廣不夠強;
  • 社區人員經歷嚴重不足,同時又有點避重就輕。像 TensorFlow 核心集中於 C 和 Python 的支持,核心人員重點解決主要問題,其他的主要依賴於強大的社區貢獻;而 MXNet 卻重點宣揚多語言支持,把核心成員本來就較少的精力分散到各語言去了,造成的結果就是看著樣樣有,但是樣樣不精;
  • 框架本身屬於開始容易,入門難:簡單跑個樣例還好,但是文檔缺乏和混亂問題很嚴重;
  • 實驗效果上有差距,部分模型跑不出state-of-art的效果,這個是致命傷;
  • 其他問題還包括比如 TensorFlow 吸引力太強,部分實驗室已經綁定在以往用的比較稱手的框架上,這一問題可能是無解的。

原文鏈接
:https://www.infoq.cn/article/UYqTqTU9iloqhITdaHIz