偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

?Mojo崛起:AI-first 的編程語言能否成為新流行?

譯文 精選
人工智能
AI優(yōu)先語言的興起可能會激發(fā)AI、語言設計和硬件開發(fā)之間相互作用的新一波創(chuàng)新。隨著語言設計師與AI研究人員和硬件供應商密切合作以優(yōu)化性能和表達性,我們可能會看到為這些語言和AI工作負載設計的新型架構和加速器的出現(xiàn)。

作者 | James Thomason

編譯 | 伊風

出品 | 51CTO技術棧(微信號:blog51cto)

眨眼之間,你可能會錯過又一種編程語言的發(fā)明。

有個笑話說,程序員花費20%的時間編寫代碼,80%的時間決定使用什么語言。

事實上,編程語言如此之多,以至于我們不確定實際有多少種。據(jù)估計,至少有700種編程語言在不同程度上被使用和濫用?,F(xiàn)在存在的編程語言似乎總有改進的空間。

隨著AI不斷推動技術進步,它也在挑戰(zhàn)我們最流行的編程語言,如Java、C和Python。像其他領域一樣,AI是一個迫切需要新編程語言來解決的問題。

諸如Mojo、Bend等AI-first的編程語言能否獲得開發(fā)人員的芳心?無論答案如何,回顧歷史我們會發(fā)現(xiàn),編程語言的創(chuàng)新并不是一個壞主意。

1.AI語言的上一個黃金時代

這并不是AI第一次推動新編程語言的浪潮。20世紀70年代和80年代是AI語言的黃金時代,如LISP和Prolog,它們引入了開創(chuàng)性的概念,如符號處理和邏輯編程。那時,AI也是熱門話題。

值得注意的是,LISP語言對軟件的未來產生了深遠影響,推出了函數(shù)式編程范式,最終影響了現(xiàn)代語言如Python、Haskell和Scala的設計。LISP也是首批實現(xiàn)動態(tài)類型的語言之一,在這種類型中,類型與值相關聯(lián)而不是變量,允許更多的靈活性和更容易的原型開發(fā)。它還引入了垃圾回收功能,自動回收不再使用的內存,這是許多現(xiàn)代編程語言(如Java、Python和JavaScript)所采用的功能??梢怨降卣f,沒有LISP,我們今天可能不會在這里。

當AI領域在20世紀70年代和80年代經歷了一段資金和興趣減少的長時間時,被稱為“AI寒冬”,對專門AI語言如LISP的關注開始減退。同時,通用計算的快速發(fā)展導致了通用語言如C的興起,這些語言為各種應用(包括系統(tǒng)編程和數(shù)值計算)提供了更好的性能和可移植性。

圖片圖片

2.AI-first語言的回歸

現(xiàn)在,歷史似乎在重演,AI再次推動了新編程語言的發(fā)明,以解決其棘手的問題。現(xiàn)代AI算法所需的強大數(shù)值計算和并行處理突顯了需要能夠有效橋接抽象和充分利用底層硬件的語言。

可以說,這一趨勢始于TensorFlow的Tensor計算語法、Julia以及重新燃起的對數(shù)組導向語言如APL和J的興趣,這些語言提供了與機器學習和神經網絡的數(shù)學基礎相一致的領域特定構造。這些項目試圖減少將數(shù)學概念轉換為通用代碼的開銷,讓研究人員和開發(fā)人員能夠更多地關注核心AI邏輯,而不是低級實現(xiàn)細節(jié)。

最近,一波新的AI-first語言應運而生,它們從頭開始設計,以解決AI開發(fā)的特定需求。Higher Order Company創(chuàng)建的Bend旨在為AI提供靈活和直觀的編程模型,具有自動微分和與流行AI框架的無縫集成功能。Modular AI開發(fā)的Mojo則專注于高性能、可擴展性和構建與部署AI應用的易用性。Swift for TensorFlow是Swift編程語言的擴展,結合了Swift的高級語法和TensorFlow的機器學習能力。這些語言代表了朝向AI開發(fā)的專用工具和抽象的日益增長的趨勢。

雖然Python、C++和Java等通用語言在AI開發(fā)中仍然很受歡迎,但AI-first語言的復興表明,AI的獨特需求需要專門為該領域量身定制的語言,就像早期的AI研究催生了LISP等語言一樣。

3.Python在AI中的局限性

Python因其簡單性、通用性和廣泛的生態(tài)系統(tǒng)長期以來一直是現(xiàn)代AI開發(fā)者的首選。然而,它的性能限制對于許多AI用例來說是一個主要缺點。

用Python訓練深度學習模型可能會非常慢——我們說的是像在DMV(車輛管理局)排隊等候那樣慢,等待收銀員找零那樣慢。像TensorFlow和PyTorch這樣的庫通過使用底層的C++來幫助提高性能,但Python仍然是瓶頸,特別是在預處理數(shù)據(jù)和管理復雜的訓練工作流時。

在實時AI應用如自動駕駛或實時視頻分析中,推理延遲至關重要。然而,Python的全局解釋器鎖(GIL)阻止了多個本機線程同時執(zhí)行Python字節(jié)碼,導致在多線程環(huán)境中表現(xiàn)不佳。

在大規(guī)模AI應用中,內存管理效率對于最大化可用資源的利用至關重要。Python的動態(tài)類型和自動內存管理會增加內存使用和碎片化。像C++和Rust這樣的語言提供的低級內存控制允許更有效地使用硬件資源,從而提高AI系統(tǒng)的整體性能。

在生產環(huán)境中部署AI模型,特別是在具有有限計算資源的邊緣設備上,用Python可能會遇到挑戰(zhàn)。Python的解釋性和運行時依賴性會導致資源消耗增加和執(zhí)行速度變慢。像Go或Rust這樣的編譯語言,因其較低的運行時開銷和更好的系統(tǒng)資源控制,通常更適合在邊緣設備上部署AI模型。

4.Mojo:新的AI-first編程語言,無縫銜接Python生態(tài)

Mojo是一種新編程語言,承諾彌合Python的易用性和前沿AI應用所需的超快性能之間的差距。Mojo由Swift編程語言和LLVM編譯器基礎架構的創(chuàng)建者Chris Lattner創(chuàng)立的公司Modular開發(fā)。Mojo是Python的超集,這意味著開發(fā)者可以利用他們現(xiàn)有的Python知識和代碼庫,同時解鎖前所未有的性能提升。Mojo的創(chuàng)造者聲稱,它可以比Python代碼快多達35000倍。

Mojo設計的核心是其與AI硬件(如運行CUDA的GPU和其他加速器)的無縫集成。Mojo使開發(fā)者能夠充分利用專用AI硬件的潛力,而不必陷入低級細節(jié)中。

Mojo的一個主要優(yōu)勢是它與現(xiàn)有Python生態(tài)系統(tǒng)的互操作性。與Rust、Zig或Nim等語言不同,Mojo允許開發(fā)者編寫與Python庫和框架無縫集成的代碼。開發(fā)者可以繼續(xù)使用他們喜歡的Python工具和包,同時受益于Mojo的性能增強。

Mojo引入了幾項使其與Python區(qū)別開來的功能。它支持靜態(tài)類型,可以幫助在開發(fā)早期捕捉錯誤并實現(xiàn)更有效的編譯。然而,開發(fā)者仍然可以在需要時選擇動態(tài)類型,提供靈活性和易用性。語言引入了新的關鍵字,如“var”和“l(fā)et”,提供不同程度的可變性。Mojo還包括一個新的“fn”關鍵字,用于在嚴格的類型系統(tǒng)內定義函數(shù)。

Mojo還采用了類似于Rust的所有權系統(tǒng)和借用檢查器,確保內存安全并防止常見編程錯誤。此外,Mojo提供指針的內存管理,使開發(fā)者可以對內存分配和釋放進行細粒度控制。這些功能有助于Mojo的性能優(yōu)化,并幫助開發(fā)者編寫更高效和無錯誤的代碼。   

Mojo最令人興奮的方面之一是其加速AI開發(fā)的潛力。Mojo能夠編譯成高度優(yōu)化的機器代碼,可以在CPU和GPU上本地速度運行,使開發(fā)者能夠在不犧牲性能的情況下編寫復雜的AI應用。語言包括數(shù)據(jù)并行性、任務并行性和流水線處理的高級抽象,使開發(fā)者能夠用最少的代碼表達復雜的并行算法。

Mojo在概念上比一些其他新興AI語言(如Bend)更低級,后者將現(xiàn)代高級語言功能編譯到Apple Silicon或NVIDIA GPU上的本地多線程。Mojo提供對并行性的細粒度控制,特別適合手工編碼現(xiàn)代神經網絡加速。通過為開發(fā)者提供直接控制計算映射到硬件上的能力,Mojo實現(xiàn)了高度優(yōu)化的AI實現(xiàn)。

圖片圖片

5.利用開源的力量

根據(jù)Mojo的創(chuàng)建者Modular的說法,自去年8月普遍可用以來,該語言已經吸引了超過17.5萬開發(fā)者和5萬家組織。

盡管Mojo的性能和潛力令人印象深刻,但其最初的采用可能因其專有狀態(tài)而停滯不前。

然而,Modular最近決定將Mojo的核心組件在定制版Apache 2許可下開源。此舉可能會加速Mojo的采用,并培育更充滿活力的協(xié)作和創(chuàng)新生態(tài)系統(tǒng),類似于開源是Python等語言成功的關鍵因素。

開發(fā)者現(xiàn)在可以探索Mojo的內部工作原理,為其開發(fā)做出貢獻,并從其實現(xiàn)中學習。這種協(xié)作方式可能會導致更快的錯誤修復、性能改進和新功能的增加,最終使Mojo更加多功能和強大。

寬松的Apache許可證允許開發(fā)者自由使用、修改和分發(fā)Mojo,鼓勵圍繞該語言的生態(tài)系統(tǒng)的增長。通過開源,Mojo有潛力吸引更多的開發(fā)者、研究人員和企業(yè),使其成為AI開發(fā)的重要工具。

開放源碼的決定還表明Modular對其技術和開發(fā)社區(qū)的信心。通過擁抱開源模式,Modular表明他們致力于透明度、協(xié)作和技術進步,這可能會吸引更廣泛的開發(fā)者社區(qū)并加速Mojo的采用。         

6.全新的AI優(yōu)先編程浪潮

雖然Mojo是一個有前途的新進入者,但它并不是唯一一個試圖成為AI開發(fā)首選的語言。還有幾種其他新興語言也是從頭開始設計的,以滿足AI工作負載的需求。

一個顯著的例子是Swift for TensorFlow,這是一個雄心勃勃的項目,旨在將Swift的強大語言功能帶入機器學習。由谷歌和蘋果公司合作開發(fā),Swift for TensorFlow允許開發(fā)者使用原生Swift語法表達復雜的機器學習模型,并且具備靜態(tài)類型、自動微分和XLA編譯以在加速器上進行高性能執(zhí)行。不幸的是,谷歌已經停止了該項目的開發(fā),項目現(xiàn)在已歸檔,這顯示了即使是谷歌這樣的巨頭在新語言開發(fā)中獲得用戶吸引力的難度。

此后,谷歌越來越關注JAX,一個用于高性能數(shù)值計算和機器學習(ML)的庫。JAX是一個Python庫,提供高性能的數(shù)值計算和機器學習功能,支持自動微分、XLA編譯和高效使用加速器。雖然它不是獨立的語言,但JAX擴展了Python,使其具有更具聲明性和功能性的風格,非常符合機器學習的數(shù)學基礎。

圖片圖片

最新的新增內容是Bend,一種大規(guī)模并行的高級編程語言,可以將類似Python的語言直接編譯成GPU內核。與CUDA和Metal等低級語言不同,Bend更像是Python和Haskell,提供快速對象分配、全閉包支持的高階函數(shù)、不受限制的遞歸,甚至繼續(xù)執(zhí)行。它運行在大規(guī)模并行硬件(如GPU)上,基于核心數(shù)量實現(xiàn)近線性加速,無需顯式的并行注釋——沒有線程生成、鎖、互斥鎖或原子操作。由HVM2運行時驅動,Bend在任何可能的地方利用并行性,使其成為AI的萬能工具——適用于各種場合。

圖片圖片

這些語言利用現(xiàn)代語言特性和強類型系統(tǒng),使AI算法的編碼更加表達性和安全,同時仍然在并行硬件上提供高性能執(zhí)行。          

7.AI開發(fā)新時代的黎明

像Mojo、Bend、Swift for TensorFlow、JAX等以AI為重點的編程語言的復興標志著AI開發(fā)新時代的開始。隨著對更高效、更具表達性和硬件優(yōu)化工具的需求增加,我們預計將看到更多專門針對AI獨特需求的語言和框架的涌現(xiàn)。這些語言將利用現(xiàn)代編程范式、強類型系統(tǒng)以及與專用硬件的深度集成,使開發(fā)者能夠構建具有前所未有性能的更復雜的AI應用。

AI優(yōu)先語言的興起可能會激發(fā)AI、語言設計和硬件開發(fā)之間相互作用的新一波創(chuàng)新。隨著語言設計師與AI研究人員和硬件供應商密切合作以優(yōu)化性能和表達性,我們可能會看到為這些語言和AI工作負載設計的新型架構和加速器的出現(xiàn)。

這種AI、語言和硬件之間的密切關系對于釋放人工智能的全部潛力至關重要,能夠在自動化系統(tǒng)、自然語言處理、計算機視覺等領域實現(xiàn)突破。我們今天創(chuàng)造的語言和工具正在重塑AI開發(fā)和計算的未來。

參考鏈接:https://venturebeat.com/ai/mojo-rising-the-resurgence-of-ai-first-programming-languages/

想了解更多AIGC的內容,請訪問:

51CTO AI.x社區(qū)

http://www.szyisi.cn/aigc/

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2018-03-13 09:34:30

人工智能編程語言Python

2015-06-01 06:52:05

C++新腳本語言

2018-12-17 17:00:20

AI數(shù)據(jù)科技

2012-02-13 10:03:31

編程開發(fā)

2014-02-04 19:44:23

編程語言開發(fā)

2015-04-07 13:48:53

框架編程語言7種理由

2020-07-07 10:28:41

編程語言JavaPython

2023-09-09 06:54:02

AI編程語言Mojo

2020-12-18 15:20:40

勒索軟件網絡攻擊網絡安全

2011-04-27 09:12:14

PHPjavascriptjava

2017-11-14 11:40:18

編程語言數(shù)據(jù)博客

2022-12-09 00:09:10

編程語言開發(fā)人員通信

2016-08-03 15:24:00

IT架構云計算微服務架構

2016-08-03 10:21:10

云計算

2018-11-26 12:24:52

AI 語言 人工智能

2012-10-08 09:25:59

GoGo語言開發(fā)語言

2023-12-19 12:11:04

AIGC出海營銷

2019-01-30 12:38:41

JavaScript前端編程語言

2021-01-07 15:01:09

編程語言JavaPython

2021-09-03 00:54:31

人工智能機器人工具
點贊
收藏

51CTO技術棧公眾號