|
機(jī)器之心報(bào)道 編輯:蛋醬、陳萍 它可與 Python 無縫銜接,但克服了很多 Python 的缺點(diǎn)。Jeremy Howard 試用后表示:「Mojo 可能是幾十年來最大的編程進(jìn)步?!?br> 對于全球各地開發(fā)者來說,Chris Lattner 這個(gè)名字絕對不陌生。
他曾是許多大型技術(shù)項(xiàng)目的領(lǐng)導(dǎo)者,包括 LLVM 編譯器基礎(chǔ)結(jié)構(gòu)項(xiàng)目、Clang C 和 C++ 編譯器、MLIR 機(jī)器學(xué)習(xí)基礎(chǔ)結(jié)構(gòu)等編譯器技術(shù),以及為蘋果生態(tài)系統(tǒng)提供支持的程序設(shè)計(jì)語言 Swift。此外,Chris Lattner 還為 Google Brain 和 TensorFlow 建立和管理了一系列與 AI 相關(guān)的編譯器、運(yùn)行時(shí)和編程語言團(tuán)隊(duì)。 十多年來,Chris Lattner 的職業(yè)履歷算是相當(dāng)豐富,變動也算頻繁:
2022 年 1 月,Chris Lattner 正式宣布創(chuàng)業(yè),和 Tim Davis 共同建立了「Modular AI」,希望自下而上重建全球 ML 基礎(chǔ)設(shè)施。在這家新生的公司中,Chris Lattner 以 CEO 身份領(lǐng)導(dǎo)團(tuán)隊(duì)。 其實(shí),Chris Lattner 每一次跳槽的選擇都頗受關(guān)注。對于「Modular AI」,業(yè)界也是寄予厚望。 近日,Chris Lattner 的創(chuàng)業(yè)之路有了重要動態(tài)。這一次,他官宣的是全新的編程語言「Mojo」。
「Mojo 結(jié)合了 Python 的可用性與 C 的性能,釋放了 AI 硬件無與倫比的可編程性和 AI 模型的可擴(kuò)展性」—— 它與 Python 一樣易于使用,但具有 C++ 和 Rust 的性能。此外,Mojo 提供了利用整個(gè) Python 庫生態(tài)系統(tǒng)的能力。 Mojo 的出世,在 AI 領(lǐng)域迅速引起了熱議。Jeremy Howard 試用后,在一篇博客文章中表示,Mojo 可能是幾十年來最大的編程進(jìn)步。
「感覺編程被顛覆了?!乖?Jeremy Howard 的記憶中,上次有這樣的感覺,還是他首次上手 Visual Basic v1.0。而在 Mojo 中編寫代碼,讓他重溫了這種「神奇」的感覺。 為什么會有 Mojo? 關(guān)于「Mojo」這項(xiàng)工作的背景,Chris Lattner 和 Tim Davis 在博客中進(jìn)行了詳細(xì)的說明: 機(jī)器學(xué)習(xí)基礎(chǔ)設(shè)施已經(jīng)為數(shù)十億美元的商業(yè)提供動力,并且正在迅速增長。但是,它要么由硬件團(tuán)隊(duì)為特定的設(shè)備集合構(gòu)建,要么是由工業(yè)研究實(shí)驗(yàn)室構(gòu)建,許多系統(tǒng)是不兼容技術(shù)的集合。 大一統(tǒng)的設(shè)想注定會失敗嗎?今天人工智能的現(xiàn)實(shí)世界的復(fù)雜性是否使得它不可能解決這個(gè)問題? Chris Lattner 并不這么認(rèn)為。他表示,軟件行業(yè)會經(jīng)歷周期,我們以前也見過并解決過這樣的問題: 20 世紀(jì) 90 年代的軟件世界有過類似于我們今天看到的人工智能的碎片化問題。當(dāng)時(shí),C 和 C++ 已經(jīng)建立起了社區(qū),但卻被分散在幾十個(gè)專有編譯器中。每一個(gè)都有供應(yīng)商的擴(kuò)展、粗糙的邊緣、奇怪的邊角案例和不完整的實(shí)現(xiàn)。當(dāng)時(shí),構(gòu)建跨平臺的軟件是如此困難,以至于推動業(yè)界出現(xiàn)了一些工具來幫助開發(fā)者應(yīng)對碎片化,使其更容易安裝、構(gòu)建和配置軟件(例如 autoconf)。 如今,Mojo 的誕生也承擔(dān)了這樣一份希冀。 當(dāng)我們創(chuàng)辦 Modular 時(shí),我們沒有打算建立一種新的編程語言。但是,當(dāng)我們在建立我們的平臺,打算統(tǒng)一世界上的 ML/AI 基礎(chǔ)設(shè)施時(shí),我們意識到,在整個(gè)堆棧中編程太復(fù)雜了。另外,我們用手寫了很多 MLIR,但并不愉快。 在這種情況下,Mojo 誕生了。 Mojo:比 Python 快 35000 倍的編程語言 在編程語言領(lǐng)域,Python 可以說是非常受歡迎了。如今,這個(gè)領(lǐng)域又迎來一位新的競爭者:Mojo。 Mojo 是一門新的編程語言,其將 Python 的易用性和 C 的性能結(jié)合起來,彌合了研究和生產(chǎn)之間的差距。使用 Mojo,用戶可以編寫比 C 語言更快的可移植代碼,并與 Python 生態(tài)系統(tǒng)無縫互操作,其目標(biāo)是成為 AI 研究和生產(chǎn)的理想選擇。 我們先看一個(gè)示例。下圖展示的是 Mojo 與 Python 無縫互操作:
Mojo 語言具有以下特點(diǎn): 首先是可用性和可編程性,只用 Mojo 一種語言就能編寫所有東西。例如可以編寫 Python、大量低級 AI 硬件程序,而不需要 C++ 或 CUDA。
第二是性能,Mojo 解鎖了 Python 性能。利用最先進(jìn)的編譯器和異構(gòu)運(yùn)行時(shí),Mojo 能夠充分利用硬件的全部功能,包括多核、向量單元和加速器單元。在任務(wù)不復(fù)雜的情況下實(shí)現(xiàn)與 C++ 和 CUDA 相當(dāng)?shù)男阅堋?/p>
并行化:Mojo 利用 MLIR,使 Mojo 開發(fā)人員能夠利用向量、線程和 AI 硬件單元。 此外,根據(jù)測試,Mojo 比 Python 快 35000 倍。
Mojo 第三個(gè)特點(diǎn)是互操作性,可以訪問整個(gè) Python 生態(tài)系統(tǒng),如可以訪問 Numpy、Matplotlib 以及用戶自定義代碼:
第四個(gè)特點(diǎn)是可擴(kuò)展性。使用預(yù)處理和后處理操作就能輕松擴(kuò)展模型,或者用自定義操作替換其他操作。此外,Mojo 還可以利用核融合、圖形重寫、形狀函數(shù)等。
模型的可擴(kuò)展性,Mojo 可以升級模型中的現(xiàn)有操作。 Modular AI 表示,Mojo 仍在開發(fā)中,開發(fā)者現(xiàn)在可以在 Modular AI 基于 JupyterHub 的 Playground 中試用,用戶只需通讀教程便可編寫自己的 Mojo 代碼。 試用地址: https://www./blog/the-future-of-ai-depends-on-modularity https://www./mojo https://www./posts/2023-05-03-mojo-launch.html |
|
|