国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LLVM之父Chris Lattner:我的AI基礎(chǔ)設(shè)施軟件構(gòu)建理念

這篇具有很好參考價值的文章主要介紹了LLVM之父Chris Lattner:我的AI基礎(chǔ)設(shè)施軟件構(gòu)建理念。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

LLVM之父Chris Lattner:我的AI基礎(chǔ)設(shè)施軟件構(gòu)建理念,業(yè)界觀點,人工智能,軟件構(gòu)建,LLM,Mojo

來源|Latent Space
OneFlow編譯

翻譯 | 楊婷、宛子琳

如果 AI 如此重要,那么為什么軟件如此糟糕?

創(chuàng)辦 Modular 之前,這是讓?LLVM 之父 Chris Lattner 困擾已久的問題。隨后,他與 TensorFlow 的前產(chǎn)品同事 Tim Davis 合作研究模塊化解決方案,以解決人工智能開發(fā)中龐大、單一、分散的平臺問題。2022 年,他們以 3000 萬美元的種子資金啟動 Modular ,繼今年 5 月成功推出 AI 引擎 Modular 與編程語言 Mojo,不久前又獲得 1 億美元的 A 輪融資。

盡管 Mojo 以其多線程編譯的 Python 超集和出色的性能受到矚目,但這只是一個副業(yè)項目,而 Modular 的 Python 推理引擎的愿景同樣宏大。

Chris在編譯器方面的成就卓著。他在博士期間開發(fā)了 LLVM,并因此獲得了 2012 年 ACM 軟件系統(tǒng)獎。隨后,他加入蘋果,創(chuàng)建了 Clang 和 Swift(取代 Objective-C 的 iPhone 編程語言)。之后,他在 Google 帶領(lǐng) TensorFlow 基礎(chǔ)設(shè)施團隊,并開發(fā)了 XLA 編譯器以及 MLIR 編譯器框架,這時,他的任務(wù)不是建立一套最適用于 AI 的編譯器,而是為 TPU 構(gòu)建最佳的編譯器,以便所有 TensorFlow 用戶都能在 Google Cloud 上獲得良好的體驗。

在他看來,Meta 的 PyTorch 團隊也并非在改善所有領(lǐng)域的 AI 性能,而是主要服務(wù)于他們的推薦和廣告系統(tǒng)。Chris 和 Tim 意識到,大型科技公司并沒有將 AI 引擎和開發(fā)者體驗作為優(yōu)先考慮的產(chǎn)品,因此,他們認為,Modular 是交付未來的 AI 開發(fā)平臺的最佳方式。

盡管 Chris 是業(yè)內(nèi)公認的頂級編譯器工程師,但他并沒有將編譯器方法簡單地應(yīng)用到 Python 上,相反,他選擇了與此完全不同的方法。

Modular 的最初目標是構(gòu)建“統(tǒng)一的 AI 引擎”,以加速 AI 的開發(fā)和推理。與 GPU 即是一切的 AI 世界不同,在那里只有“富有 GPU 資源”的人才能受益,而 Modular 將 AI 視為一個大規(guī)模、異構(gòu)化、并行計算的問題。他們希望以一種更加廣泛和包容的方式來運行 AI,不僅僅依賴于 GPU ,而是探索利用多種計算資源,以滿足不同應(yīng)用、不同環(huán)境和不同需求下的 AI 計算需求。

LLVM之父Chris Lattner:我的AI基礎(chǔ)設(shè)施軟件構(gòu)建理念,業(yè)界觀點,人工智能,軟件構(gòu)建,LLM,Mojo

作為一個獨立的 AI 引擎,Modular 可以在 CPU 上運行所有其他框架,相比原本的性能,它可以將這些框架的速度提升 10% 至 650%( 即將支持 GPU)。

Mojo 是 Modular 的一部分,它是一種全新的 AI 編程語言,是 Python 的超集,它最初作為一種內(nèi)部 DSL 來提高團隊的工作效率而創(chuàng)建。

LLVM之父Chris Lattner:我的AI基礎(chǔ)設(shè)施軟件構(gòu)建理念,業(yè)界觀點,人工智能,軟件構(gòu)建,LLM,Mojo

Mojo 采用了 Python 的語法,同時,它還支持所有現(xiàn)有的 PyPi 包,開發(fā)者從 Python 切換到 Mojo 不需要進行任何代碼更改。在性能上,Mojo 相比 Python 的運行速度最高快約 68000 倍,而大多數(shù) Python 代碼庫只需進行很小的調(diào)整,轉(zhuǎn)換到 Mojo 后其運行速度就可以提高 10 到 100 倍。

Modular 團隊正在進行一項艱巨的技術(shù)挑戰(zhàn)。在 Latent Space 的最新一期播客中,Chris Lattner 解釋了他為何開發(fā) Modular 與 Mojo,并分享了他所看到的 AI 基礎(chǔ)設(shè)施軟件發(fā)展的挑戰(zhàn)和未來。

(本文經(jīng)授權(quán)后由OneFlow編譯發(fā)布,轉(zhuǎn)載請聯(lián)系授權(quán)。原文:https://www.latent.space/p/modular#details)

1

統(tǒng)一的 AI 引擎平臺

Alessio:Modular 的目標是構(gòu)建一個統(tǒng)一的 AI 引擎,這意味著AI 引擎面臨的情況是碎片化的。從源頭出發(fā),在 AI 研究和開發(fā)領(lǐng)域,需要解決問題有哪些?

Chris:雖然 AI 發(fā)展的狀況大家有目共睹,但回顧 2015年-2017 年,對于那些追隨者來說,AI 領(lǐng)域的發(fā)展確實令人驚嘆。那個時代的技術(shù)主要由 TensorFlow 和 PyTorch 驅(qū)動,雖然 PyTorch 稍晚一些出現(xiàn),但它們在某些方面的設(shè)計有點相似。

其中的挑戰(zhàn)在于,構(gòu)建這些系統(tǒng)的人主要專注于人工智能、研究、微分方程、自動微分等各個方面,并沒有考慮解決軟硬件邊界問題。因此,他們認為需要一種方法來讓人們設(shè)置層,類似于 Keras 或 NNModule。

在底層,這些被稱為算子(operator)的部件起到了作用,因此會得到不同類型的操作,如卷積、矩陣乘法、歸約和逐元素操作,那么如何實現(xiàn)這些操作?可以使用 CUDA 和英特爾的數(shù)學庫(如Intel MKL)進行構(gòu)建。

起初看起來不錯,即使只是推出一個新的 Intel CPU 型號,也只能得到很有限的算子。然而現(xiàn)在 TensorFlow 和 PyTorch 已經(jīng)擁有數(shù)千個算子。結(jié)果就是每個算子都會有對應(yīng)的 kernel,這通常由人工手動編寫。因此,當引入一款新的硬件時,就需要復(fù)現(xiàn)成千上萬個 kernel,這使得人們進入硬件領(lǐng)域變得十分困難。

另一方面,只有少數(shù)人知道這些 kernel 如何運行,而且要掌握這些技能與創(chuàng)新模型架構(gòu)所需的技能截然不同,因此不便展開研究。

當我參與 Google TPU 的開發(fā)工作時,最初的目標主要是激勵和推動大量的研究。在我加入之前,已經(jīng)有人提出了一個新穎的思路,那就是使用編譯器進行處理,而非手動編寫成千上萬個 kernel,并重新編寫所有算子,試圖做到英特爾或者 NVIDIA 那樣。

相比之下,編譯器具有更強的可擴展性和通用性,它能以不同的方式組合 kernel,這其中還有許多重要的優(yōu)化技術(shù),包括可以大幅減少內(nèi)存流量的 kernel 融合。如果使用傳統(tǒng)的手寫 kernel,得到的是人們認為有趣的特定組合,而不是研究人員接下來想要研究的新事物,但很多研究都在嘗試探索新的領(lǐng)域。

因此,我們押注在編譯器上,開發(fā)了 XLA 系統(tǒng),它是 Google 堆棧的一部分,它使得數(shù)十億億次規(guī)模的超級計算機成為可能,并且在此基礎(chǔ)上展開了許多令人驚嘆的工作。但最大的問題是,它最初是為了支持硬件如 Google TPU 而開發(fā)。

現(xiàn)在就需要雇傭編譯器工程師,而熟悉機器學習和所有這些領(lǐng)域的編譯器工程師更是鳳毛麟角。從技術(shù)角度出發(fā),如果你在 Google 工作并且可以訪問相關(guān)硬件,就可以對其進行擴展,否則就會面臨真正的挑戰(zhàn)。

因此,我特別喜愛 NVIDIA 平臺的一個原因是,雖然人們對 CUDA 抱有各種不滿,但如果我們回顧 AI 起飛的那個時刻,如深度學習與 AlexNet 的結(jié)合,很多人將這個時刻歸功于兩個因素:數(shù)據(jù)(如 ImageNet)和計算能力(強大的 GPU)的結(jié)合,這才使得 AlexNet 的誕生成為可能。

然而,他們經(jīng)常忽略了第三個因素,即可編程性。正是因為 CUDA 使研究人員能夠創(chuàng)造出之前不存在的卷積 kernel。當時還沒有像 TensorFlow 這樣的框架,也沒有如今的豐富工具。實際上,正是數(shù)據(jù)、計算能力和可編程性三位一體,才開啟了一種新的研究范式,形成了整個深度學習系統(tǒng)的浪潮。

因此,我們必須借鑒歷史經(jīng)驗,采用模塊化的思路,思考如何邁向下一個時代。如何獲得人們在算法創(chuàng)新、思想、稀疏性等方面的驚人優(yōu)勢,以及那些研究邊緣中可能相關(guān)的思想。我們應(yīng)該如何充分發(fā)揮編譯器的優(yōu)勢?編譯器具有廣泛的適用性和強大的可擴展性,能夠處理新問題。最后,我們要如何充分發(fā)揮可編程性的優(yōu)勢,將所有這些因素融合在一起?

Alessio:記得你提過,那些對某些領(lǐng)域不熟悉,無法做出貢獻的人會被甩在身后,而 CUDA 在這方面做得很棒。對于類似后模塊化世界中的 AI 開發(fā),你有什么看法?

Chris:我的信念是人類很了不起,但我們無法將所有知識都記在腦中,人們各有所長,如果能讓他們協(xié)同合作,并理解這些架構(gòu)的內(nèi)部原理,就能創(chuàng)造出超越個體能力的成果,實現(xiàn)新的突破。

我認為,關(guān)鍵在于如何促進良性循環(huán),如何推動創(chuàng)新?如何讓更多了解問題的不同領(lǐng)域的人切實展開合作?這就是為何我們在 Mojo 和 AI 引擎方面的工作如此重要,我們真正致力于消除這個問題的復(fù)雜性。

許多已構(gòu)建的系統(tǒng)只是簡單地聚合在一起,這就好比一個有用的工具可以幫助我解決問題,然而,它們并沒有從上到下經(jīng)過精心設(shè)計。我認為,模塊化提供了一個更簡單、更正交、更一致、更有原則的堆棧,使得我們能夠消除整個堆棧的復(fù)雜性。但如果你的工作建立在所有這些碎片化的歷史基礎(chǔ)設(shè)施之上,就只能自求多福。

此外,尤其很多 AI 研究系統(tǒng)都存在這種預(yù)設(shè)路徑,只有按照準確的演示步驟,才能正常運行。一旦稍作改變,一切就會崩潰,性能會下降甚至停止工作。這就是底層碎片化的產(chǎn)物。

Swyx:所以,編譯器和語言是人類可以進行合作或跨界的媒介。

Chris:我從事編譯器方面的工作已有很長時間,但我們要從問題出發(fā),如果編譯器或編譯器技術(shù)有助于解決問題,就可以使用,不能本末倒置。

你可能會問,編譯器有何用處?它的根本目的是什么?這在于你不需要過多地了解硬件。你可以為每個問題編寫十分底層的匯編代碼,但是編譯器、編程語言或者 AI 框架的真正作用是讓你能夠以更高的抽象級別表達事物,且這一目標具有多重功能。

其中一個目標是,讓一切變得更容易,另一個目標則是,如果你能夠剔除大量無關(guān)的復(fù)雜性,就會為新的復(fù)雜性騰出空間。因此,這實際上是減少非核心復(fù)雜性,使你能夠?qū)W⒂诮鉀Q問題的本質(zhì)復(fù)雜性。另一個目標是通過抽象化提供更多的可能性,尤其像我們正在構(gòu)建的現(xiàn)代編譯器,它們無限關(guān)注細節(jié)。

人類不具備這種能力。事實證明,如果你手工編寫一堆匯編代碼,然后遇到類似的問題,就只需要稍作調(diào)整,而無需進行全面的基本原則分析來解決問題,而編譯器實際上能夠比人類做得更好。

更高級別的抽象還會給你帶來其他的能力。我認為,深度學習系統(tǒng)與像 Modular 正在構(gòu)建的系統(tǒng)非常令人興奮的一點在于,它已經(jīng)將計算提升到了圖形級別。一旦你將計算從混亂的 for 循環(huán)和充斥著分號的代碼中分離出來,轉(zhuǎn)換為更具聲明性的形式,就可以對計算進行轉(zhuǎn)換。

這是許多人尚未意識到的一點,某種程度上說,在現(xiàn)有系統(tǒng)中實現(xiàn)這一點非常困難。因為抽象化提供的很大一部分能力就是能進行像 Pmap 和 Vmap 這樣的操作,即對計算進行轉(zhuǎn)換。而我在 Google 工作期間獲得的靈感之一是,可以從最底層開始,從單節(jié)點 GPU 機器到集群,再到異步編程,進行諸如此類的大量基礎(chǔ)性工作。

當我離開 Google 時,我們已經(jīng)在 Jupyter Notebook 中使用每秒超過一千億次的超級計算機進行研究和訓練。這在技術(shù)方面是一個巨大的飛躍,要歸功于很多層次清晰且設(shè)計良好的系統(tǒng),基于許多創(chuàng)新的 HPC 類型硬件以及一系列的突破。因此,我希望看到這項技術(shù)得到更廣泛地采用、推廣并普及,同時也希望它能夠解決沿途累積的各種復(fù)雜性。

Alessio:你提到框架層和硬件層之間的關(guān)系。當你們的 AI 引擎首次發(fā)布時,它可以在 A100 上實現(xiàn)多少百萬億次浮點運算(petaflops)的性能,但我發(fā)現(xiàn),你們的官網(wǎng)目前披露卻都是關(guān)于 CPU 的強大性能信息。

Chris:這正是我們從第一性原理出發(fā)開展工作的原因。你必須從頭完成所有的工作,如果做得對,就不應(yīng)跳過任何重要的步驟。很多人認為,如今的 AI 系統(tǒng)就是針對 GPU,都在爭論 GPU 的性能,但在我看來,AI 實際上是一個大規(guī)模異構(gòu)的并行計算問題。

因此,AI 的起點通常是數(shù)據(jù)加載,但 GPU 并不負責加載數(shù)據(jù),你必須進行數(shù)據(jù)加載、預(yù)處理、網(wǎng)絡(luò)傳輸?shù)纫幌盗泄ぷ鳎缓筮M行很多矩陣乘等計算。接下來,你還需要進行后處理,并將結(jié)果通過網(wǎng)絡(luò)發(fā)送或存儲到硬盤上。而事實證明,CPU 是驅(qū)動 GPU 所必需的。

同時,當你為加速器準備軟件時,會發(fā)現(xiàn)自己只是在解決問題的一部分,因為他們只將矩陣乘法或他們認為重要的部分當作問題的重點,所以你構(gòu)建的系統(tǒng)只能做到芯片能做的一部分。

你從來沒有時間去解決真正的主要問題,所以使用像 TensorFlow 或 PyTorch 這樣的工具時,你會發(fā)現(xiàn) CPU 的工作在很大程度上是通過 Python 運行的,比如 tf.data 等。這些工具不可編程,不可擴展,在許多情況下速度非常慢,很難進行分布式處理,非?;靵y。

因此,現(xiàn)在的 CPU 已經(jīng)擁有張量核心。它們只是被賦予了一些有趣的名字,類似于 AMX 指令,原因在于以前的 CPU 和 GPU 完全不同。隨著時間的推移,GPU 變得更加可編程并更類似于 CPU,而 CPU 則變得更加并行化,我們正處于這種技術(shù)的多樣化發(fā)展過程中。

當我們開始模塊化時,如果從技術(shù)角度來看待這個問題,那么構(gòu)建一個通用的架構(gòu)用處很大,因為可以對其進行專用化。

正如我在對 XLA 和其他一些堆棧的研究中發(fā)現(xiàn),從專用化的架構(gòu)開始再進行泛化非常困難。此外,實際情況表明,不同的人在 AI 不同方面花費不同的成本,投入不同的領(lǐng)域,但訓練擴大了研究團隊的規(guī)模,推理擴大了產(chǎn)品和用戶群的規(guī)模以及其他方面。因此,現(xiàn)如今仍有很多推理任務(wù)是在 CPU 上完成的。因此,我們應(yīng)該從 CPU 開始改進其架構(gòu)。

CPU 也更容易使用,它們不會缺貨,并且出于多種其他原因更加容易處理。我們證明了可以構(gòu)建一個通用架構(gòu),在不同加速器系列之間進行擴展。我們還展示了可以處理 Intel、AMD 以及ARM Graviton 等不同類型的處理器,甚至對于 Intel CPU 內(nèi)部各種奇特組合的情況,也能提供大量支持。

針對不同的向量長度和其他復(fù)雜操作,我們可以通過更通用和靈活的編程方法提供優(yōu)于供應(yīng)商提供的軟件。我們正在針對 GPU 進行針對性開發(fā)。你將獲益于一個經(jīng)過深思熟慮、層次清晰,并具備有正確 DNA 的堆棧。因此,隨著時間的推移,我們將逐步擴展到不同類型的加速器。

2
構(gòu)建 AI 引擎的挑戰(zhàn)

Alessio:在我看來,CPU 是人們關(guān)注的重點,這就是為什么會看到LLAMA.cpp 等各種技術(shù)和方法,大多數(shù)人認為通過對模型進行量化,使其能夠在 CPU 上運行,但你們的想法更加激進,你們是否重新設(shè)計了整個引擎?在方法上有何不同?實際構(gòu)建引擎的挑戰(zhàn)是什么?

Chris:模塊化的特點之一是,用更困難的方式來獲得更好的結(jié)果。我們團隊中的很多人都參與過各種系統(tǒng)的開發(fā),甚至包括行業(yè)中創(chuàng)造出 ONNX Runtime 等一些奇特工具或技術(shù)的優(yōu)秀人才。很多人一直從事不同的系統(tǒng)開發(fā)工作,而這些系統(tǒng)的挑戰(zhàn)在于,其中許多系統(tǒng)是在五至八年前設(shè)計的,隨著系統(tǒng)的演變,要進行根本性的改變就變得越來越困難。因此,我們決定從頭開始,這樣做確實更加困難,但我和團隊喜歡構(gòu)建新事物。

其實 TensorFlow、PyTorch 等所有這些系統(tǒng)仍然使用與 Caffe 相同的線程池(thread pool)。人們普遍認為,這是一個巨大的漏洞,會導(dǎo)致嚴重的性能問題,使得推理時的延遲變得極其不可預(yù)測。針對這一問題,需要做出一系列非常具體的設(shè)計選擇,使線程池阻塞并保持同步。

就像整個底層的架構(gòu)出現(xiàn)錯誤一樣。一旦出現(xiàn)這種錯誤,就無法挽回。因此,我們的線程池假設(shè)沒有測試可以阻塞。這就需要非常輕量級的線程,直接關(guān)系到構(gòu)建在其上的所有內(nèi)容。然后會進行到如何表達 kernel,我們?nèi)匀幌M軌蚴謱?kernel,從 C++ 開始進行原型設(shè)計,然后進一步進入 Mojo 階段。

因此,我們構(gòu)建了一個非常復(fù)雜的自動融合編譯器,采用了所有最先進的技術(shù),同時超越了現(xiàn)有技術(shù),因為我們知道用戶討厭靜態(tài)形狀的限制和缺乏可編程性。他們不想僅僅局限于張量,例如,許多 LLM 使用不規(guī)則張量等等。

所以你希望做的是,通過第一性原理,可以將在其他系統(tǒng)中所經(jīng)歷和感受到的所有困擾匯總起來,而以往由于進度安排、各種限制等原因,還從未有機會對此做出任何改變。但現(xiàn)在,我們可以構(gòu)建正確的東西,使其具備可擴展性。這就是我們所采取的方法。

因此,其中很多工作都十分常規(guī),但這是非常深入的設(shè)計工程,需要切實了解每個決策的二階和三階影響。幸運的是,其中很多內(nèi)容不再處于研究階段。

Swyx:你非常注重第一性原理的思考方式,但我認為你的原則與大多數(shù)人不同。這些洞察力是你多年來研究大量AI工作的結(jié)果,具體是什么呢?

Chris:我不確定自己有一套具體的原則,我們的很多工作是要釋放許多硬件的潛力,并以十分易用的方式實現(xiàn)。因此,我們的出發(fā)點往往不是啟用一個新的功能,而是消除人們難以處理的復(fù)雜性,從而達到目標。

所以這不是研究,而是設(shè)計和工程。關(guān)于這一點,我們追求的也是讓任何給定的硬件發(fā)揮最大的性能。因此,如果你和一家花費了 2 億美元購買特定內(nèi)存大小的 A100 GPU 的 LLM 公司交談,他們想要的是從那塊芯片中獲得最大的價值,而不是采用最小公約數(shù)的解決方案。

另一方面,許多人希望擁有更高的可移植性、通用性和抽象性。因此,挑戰(zhàn)在于如何實現(xiàn)并設(shè)計一個系統(tǒng),在默認情況下獲得抽象化,而不放棄全部的性能?那些針對機器學習等類型的編譯器系統(tǒng),實際上已經(jīng)放棄了全部的性能,它們只是試圖在空間中覆蓋某一個特點。因此,擁有并為此設(shè)計一個系統(tǒng),對我們當前的工作非常重要。

而在其他方面,則要對用戶表示同情,很多對技術(shù)癡迷的人忽略了使用技術(shù)的人與構(gòu)建技術(shù)的人之間的巨大差異。在開發(fā)者工具中,理解使用工具的開發(fā)者并不想過多了解技術(shù),這一點非常重要。

在編譯器工作中非常有趣的一點是,沒有人想要關(guān)心編譯器。你可能正在開發(fā)一個 Mojo 應(yīng)用程序或 C 應(yīng)用程序,或者其他類型的應(yīng)用程序,但你只是希望編譯器不會妨礙你,或者在出錯時告訴你。只有當編譯器變得太慢、出現(xiàn)故障或存在其他問題時,你才會在意它的重要性。

因此,AI 技術(shù)也是一樣。用戶在構(gòu)建和部署模型時有多少時間被用于與工具的斗爭,而不是因為它遇到了特殊情況讓你偏離了正軌,然后你會從某個工具中獲得一堆令人瘋狂的 Python 堆棧跟蹤信息。因此,對用戶的同情心非常重要,尤其是 AI 基礎(chǔ)設(shè)施還不夠成熟,而同情心從來不是工具構(gòu)建者的核心價值觀之一。

3
Mojo 的誕生

Alessio:迄今為止最容易理解的應(yīng)該是 Mojo,它是 Python的超集。我確信這并不是一時興起,你看到了哪些局限性?

Chris:當我們展開 Modular 項目時,當時并沒有打算要構(gòu)建一種編程語言。我們只是必須創(chuàng)造一種語言來解決問題。接下來就是處理線程池和其他非?;镜牧鞒獭?/p>

我們?nèi)绾闻c現(xiàn)有的 TensorFlow 和 PyTorch 系統(tǒng)集成?事實證明,這在技術(shù)上非常復(fù)雜。但是接下來進入了更深層次的范疇,即推動硬件加速。我們決定發(fā)明一整套非常專業(yè)、底層的編譯器技術(shù),具備自動融合等功能,其設(shè)計是面向云計算的,畢竟,世界上不止一臺計算機。

由于硬件的復(fù)雜性,人類在算法上表現(xiàn)出色,但注意力廣度不總是解決問題的關(guān)鍵,這就引出了一些需求。因此,我們構(gòu)建了這種純粹的編譯器技術(shù)并進行驗證,以展示我們可以生成性能非常高的 kernel。

下一階段我們手動編寫了這些非常底層的 MLIR 代碼。當時我們對它很滿意,但團隊討厭手動編寫這些代碼。因此需要一種語法規(guī)則。當時可以選擇創(chuàng)建一個類似于 Halide 的專用領(lǐng)域嵌入式語言 (Domain-Specific Language,DSL),或者其他解決方案。

構(gòu)建一種編程語言是一種更為困難的方式,但可以得到更好的結(jié)果。當時也有 Halide 或者 OpenAI Triton 等類似工具,雖然其演示效果很好,問題在于它們的調(diào)試器很糟糕,相關(guān)工具也不便于使用,通常情況下,最擅長使用這些工具的人是工具創(chuàng)建者。

因此,我們決定構(gòu)建一門完整的編程語言。我曾構(gòu)建過 Swift ,因此知道該怎樣做,但也明白這是一項艱巨的任務(wù)。

顯然,機器學習社區(qū)都是聚焦于 Python 的,深入進行決策時,發(fā)現(xiàn)有很多類似 Python 的語言,但它們并沒有被廣泛采用,并且存在著巨大的問題,可能還會導(dǎo)致社區(qū)分裂等后果。因此我們嘗試構(gòu)建一種需要時間來完善的語言,最終它將成為 Python 的超集。

實際上,Python 的語法并不是最重要的,關(guān)鍵在于社區(qū),即程序員的經(jīng)驗和技能積累。所以構(gòu)建一個看起來像 Python,但實際上不是 Python 的語言從來都不是我們的目標。我們最終的目標是通過構(gòu)建 Mojo 實現(xiàn)質(zhì)量更高的結(jié)果,即便這需要花費更長的時間。

如今,Modular 公司擁有最重要的 Mojo 開發(fā)者。在構(gòu)建一門語言時,親身使用實際上非常重要。這是我們在 Swift 開發(fā)過程中犯的一個錯誤,我們構(gòu)建 Swift 是為了解決人們不喜歡 Objective-C 語法的問題,但在我們推出之前,還沒有內(nèi)部用戶。

相比 Swift,Mojo 是更輕量級的語言。實際上,我們正在使用 Mojo,它是驅(qū)動引擎中所有內(nèi)核的動力源。我們認為它對其他人也有價值和吸引力,所以我們將其作為一個獨立項目發(fā)布。

Mojo 總有一天會走向成熟,我們希望能夠圍繞 Mojo 構(gòu)建大型社區(qū),為達成這一目標,我們將對 Mojo 開源。這是一件意義非凡的事情,一旦決定要做,我們就希望能夠做到最好。

Alessio:我們經(jīng)歷了 Python 2 到 Python 3 的一段混亂時期,這是一個所有人都不愿回憶的階段。Mojo 的一些特性非常優(yōu)秀,為什么不支持 Python 2?從長遠來看,你們計劃如何保持這兩種語言的同步?如何相互關(guān)聯(lián)?

Chris:Guido 在 Mojo 發(fā)布之前就對它有所了解,他與我們團隊進行了很多溝通,并且偶爾會在 Discord 上向我們提問。

Guido van Rossum(Python 之父)喜歡拿我們開涮,當然,這是一件好事。Mojo 是 Python 大家庭的一員,此外還有 PyPy、Cython 等。我們想成為 Python 大家庭中的一員,希望 Python 能夠持續(xù)發(fā)展并添加新的功能。

Mojo 也將如此。這就好比是回到三十年前 C 語言誕生時,之后在 1983 年左右, C++ 突然出現(xiàn),它是帶有類(class)的 C 語言。而 Python 不僅有類,還包括通常在 C 語言下進行的所有操作。最初,C 和 C++ 是兩個不同的社區(qū),但是這兩個社區(qū)進行了很多交流,彼此之間相互影響,導(dǎo)致彼此擁有了對方的一些特征。

我希望同樣的融合發(fā)生在 Python 和 Mojo 之間。Python 3 與 Mojo 就像是 C++ 與 C 語言。Python 3 由其運行時及一種特定的對象模型定義,而 Mojo 則通過一種更豐富的表達能力來定義,我們擁有精巧的 MLIR 編譯器等,因此能夠?qū)崿F(xiàn)類似的表達能力。我希望 Mojo 能夠成為 Python 的超集,即在所有功能方面都更加強大,但是這些功能會并行發(fā)展。我們的目標不僅僅是添加“Walrus 2”算子等通用功能,而是添加系統(tǒng)編程特性。

4

為什么創(chuàng)辦 Modular

Swyx:Modular 的靈感來自于 SciFive(一家創(chuàng)造自由開源處理器架構(gòu)的公司),你曾與一些大型云服務(wù)提供商進行過對話,但對方對 Modular 并不感興趣,最終你是否認為將 Modular 放在大型云平臺上并不是最佳選擇?你是如何想到要創(chuàng)辦這家公司的?

Chris:2016 年左右,我開始涉足 AI 等多個領(lǐng)域。在特斯拉,我參與了自動駕駛的研發(fā)工作;在 Google,我負責了一個硬件項目,并嘗試改善 TensorFlow 的架構(gòu)設(shè)計。當時,我對?Google以及它對 PyTorch 的不重視感到不滿,所以離開?Google,加入了一家硬件初創(chuàng)公司。但 2020 年(恰好是疫情爆發(fā)之前)并不是一個合適的時機,因為當時一切充滿了不確定性。PyTorch 仍在摸索中,他們有很多雄心勃勃的項目。

當時,我認為 Meta 會解決這些問題,因此我加入了一家硬件初創(chuàng)公司,以了解商業(yè)戰(zhàn)略、商業(yè)化以及公司建設(shè)等方面的知識與經(jīng)驗。當時我們的一名軟件人員,Tim Davis(現(xiàn) Modular 聯(lián)合創(chuàng)始人)也正在探索自己的道路。2017 年,Tim 和我一起加入 Google Brain 并密切合作,我從事數(shù)據(jù)中心 TPU 方面的工作,而他從事移動端(如 Android 等)的工作;我擔任工程師,而 Tim 負責產(chǎn)品方面的工作。在工作上,我倆非?;パa,后來,我們開始思考職業(yè)發(fā)展的下一步,2021 年年中,我們發(fā)現(xiàn) AI 基礎(chǔ)設(shè)施的問題仍然存在,仍未獲得有效解決。

因此,我們開始分析 AI 領(lǐng)域的問題,簡單來說,如果 AI 對世界如此重要(即便在 ChatGPT 之前),為什么所有的軟件都非常糟糕?為什么模型部署如此困難?盡管我們做了大量的工作來簡化模型的訓練過程,但將其投入生產(chǎn)卻仍然非常具有挑戰(zhàn)性。

我們對這些問題進行了細化,認為世界上的軟件可分為三類。第一種是硬件專有的軟件,比如 CUDA、XLA 堆?;蛱O果的神經(jīng)引擎(CoreML)等。這不是硬件人員的錯,因為沒有現(xiàn)成的解決方案,他們必須為硬件構(gòu)建垂直的軟件堆棧。但這樣做的結(jié)果是,在無意間造成了軟件領(lǐng)域的分裂以及軟件生態(tài)的碎片化。

第二種是框架軟件。在框架方面,我們有 TensorFlow、PyTorch、TVM 等,這些框架已經(jīng)出現(xiàn)八年左右??蚣鼙旧硎茄芯啃再|(zhì)的,創(chuàng)建于機器學習的不同時代,隨著時間的推移以及新的硬件和用例的出現(xiàn)而不斷發(fā)展演進,但從未根據(jù)現(xiàn)有情況進行精心設(shè)計。此外,由于 AI 對其所屬公司非常重要,因此,這些公司在其中投入了大量資源??蚣荛_發(fā)人員相當之多,但卻缺乏清晰的愿景。

事后來看,理解 AI 在五年后會是什么樣子要比預(yù)測其形態(tài)更容易。我們會遇到很多已知的問題,以 PyTorch 為例,它的部署相當困難,不太適用于許多非 NVIDIA 硬件,而且對于語言大模型的擴展性也存在問題。這些都是眾所周知的問題,但要從根本上解決這些問題卻非常困難。PyTorch 的工程師們非常努力,他們正在努力解決這些問題,但由于所處的環(huán)境,修復(fù)這些問題確實很困難。

硬件導(dǎo)致了軟件的碎片化,而框架則與最初的架構(gòu)綁定。許多人希望能夠簡化 AI,使其變得簡單,因此,MLOps 這個概念得以出現(xiàn)。我認為,很多人試圖通過極簡化的 API 來實現(xiàn) AI 的簡化。AutoML 就是其中一個例子。

第三種是試圖在這個龐大而復(fù)雜的系統(tǒng)之上增加一層 Python 封裝,以簡化 AI 操作。然而,通過在上層添加一層 Python 封裝無法解決可編程性、性能、硬件能力、新型算法或安全性等核心問題。所以,我們決定回歸到第一性原理,思考導(dǎo)致這一混亂的根本原因。我們認為,這主要是因為缺少統(tǒng)一的接入平臺,因此,我們決定從最基層開始構(gòu)建軟件,以解決這個棘手問題。

Alessio:你的職業(yè)生涯很長,是一位令人驚嘆的工程師。突然之間你就創(chuàng)辦了自己的公司,成為了?CEO,并承擔著產(chǎn)品負責人和融資負責人的角色,同時還要負責建設(shè)團隊、指導(dǎo)員工等,在這些方面,你有哪些經(jīng)驗和教訓?

Chris:在 Modular,我和聯(lián)合創(chuàng)始人 Tim 之間有著非常緊密的關(guān)系,我們能夠彼此互補,有一個志同道合的合伙人非常重要,這是我在 Google或 Apple 工作時所沒有的體驗。另外,我曾在他人的框架下建立過很多團隊、產(chǎn)品和技術(shù)。而現(xiàn)在,我們有了自己的框架,這讓我們不再受制于其他框架存在的問題。

做任何事情之前,我們都要從第一性原理出發(fā)進行思考。我們理解 AI 領(lǐng)域所面臨的問題、理解 AI 從業(yè)者所經(jīng)歷的痛苦,這也是我們成立 Modular 的出發(fā)點。Tim 在?Google?工作時,對這種痛苦也深有感受,在初創(chuàng)公司工作和在?Google是兩種非常不同的感受。

在創(chuàng)辦公司時,我們分工合作。作為工程領(lǐng)導(dǎo)者,我主要負責工程構(gòu)建、建立工程團隊等,而 Tim 則負責產(chǎn)品和業(yè)務(wù)方面的工作,他訪談了上百家不同的公司,了解這些公司的痛點和他們面臨的挑戰(zhàn),以便更好地向這些公司提供幫助。通過這些深入訪談,我們真正明確了公司的發(fā)展愿景,并將同事真正地團結(jié)在一起。

Modular 面臨的挑戰(zhàn)是,我們正試圖解決一項非常困難的技術(shù)問題,而且相當抽象。盡管現(xiàn)在項目已經(jīng)開始運行且各部分正在合作,我們可以公布一些成果,但要解決這個問題需要花高價聘請大型科技公司的專家,這在很大程度上決定了我們公司的最初狀態(tài)以及我們思考問題的出發(fā)點。

當我們以第一性原理思考,發(fā)現(xiàn)出于上述原因,必須籌集大量資金、激勵員工、提供豐厚薪酬等,此外還要提供一個舒適的工作環(huán)境,上述需求塑造了我們的行事風格。這個過程非常有趣。

回頭來看,TensorFlow 或 PyTorch 是否是產(chǎn)品呢?我的答案:不是。但我也要自我反思,我曾經(jīng)參與過 Swift 或 Xcode 等項目,從某種意義上,它們算是產(chǎn)品,其中有產(chǎn)品經(jīng)理和一個工程團隊參與開發(fā),并會將其交付給客戶,但它們并非公司的核心產(chǎn)品。Xcode 并不賺錢,蘋果沒有從中獲利,它與客戶之間的聯(lián)系是間接的,有一定的獨立性。這容易導(dǎo)致團隊或 TensorFlow、PyTorch 等支持團隊的研究項目與客戶的需求脫節(jié)。

Modular 團隊直接面向客戶,我們了解客戶所歷經(jīng)的痛苦和需求。眾所周知,在 AI 領(lǐng)域,構(gòu)建和部署這些東西非常困難。當然,你可以在頂層加入一層 Python,這種做法看似簡單,但這并非領(lǐng)先公司和構(gòu)建這些東西的頂級人才所面臨的痛點。

問題在于,他們周圍存在很多無用之物,而我們的愿景之一就是將這些東西都統(tǒng)一起來,利用更少的東西,發(fā)揮更大的作用。我們的愿景源于與一些團隊的交流,他們所面臨的問題是,由于需求的不斷演進,他們構(gòu)建的產(chǎn)品在不斷變化,這些公司使用了多個模型,這導(dǎo)致與我們合作的團隊通常都相當復(fù)雜,為了各種不同的用例,這些公司演變出很多混亂的系統(tǒng),造成很大麻煩,因此常常會有如下疑問:我是否需要大量工程師來部署這個模型?為什么需要這樣做?

Swyx:有一個地方我比較困惑,你提到 Modular 沒有云服務(wù),但人們是通過你們的云服務(wù)來使用 Modular 推理引擎,也就是說 Modular 有云工程師。

Chris:我們確實有云工程師。實際上,我們的產(chǎn)品是在用戶的云平臺上使用的。我們提供了一個 Docker 容器,使得 Modular 的推理引擎可以在云端、本地服務(wù)器或筆記本電腦上運行。

Modular 的設(shè)計理念非常重視模塊化,用戶可以根據(jù)自己的需求使用各種不同的平臺。盡管一些用戶不想自己管理,但 Modular 團隊真正關(guān)注的是如何滿足用戶的需求,因此我們打算逐漸構(gòu)建一個托管產(chǎn)品以為用戶提供更多方便。在我們看來,如果要求用戶將所有內(nèi)容都遷移到 Modular 的云平臺上,對于那些不愿意自己管理的用戶來說是有價值的,但這會減緩技術(shù)的采用速度。

Swyx:你有大量搭建團隊和招聘工程師的經(jīng)驗,在這方面你擁有獨特的優(yōu)勢,人們都很樂意與你一起工作。在工程管理方面,你有什么經(jīng)驗、建議想要分享?

Chris:我的工作是幫助團隊取得勝利,我會盡一切努力去達成這一目標。有些人認為,想要獲勝是理所當然的事情,但你必須先搞清楚什么是獲勝,也就是說,團隊要有一個清晰的愿景、明確的目標,團隊成員之間要彼此協(xié)調(diào),特別是,當你有一群非常優(yōu)秀的人,他們都希望在自己的工作中大放異彩。如果成員之間目標一致,那我們就能快速取得進展,而如果成員之間彼此對立,就會影響我們的工作進程。

我喜歡凡事親力親為,從頭做起。這樣做不僅能直接向團隊成員展示如何做事,同時也塑造了我們的團隊文化。

效率對團隊來說非常重要,如果你只是隨便坐在哪里,花24小時或者三周來等 CI 運行,這會拖慢一切。這意味著測試策略,意味著這些核心軟件工程問題非常重要。一旦在團隊中營造出獨立、不依賴第三方等文化,你就能吸引很多優(yōu)秀人才,你需要在招聘和后續(xù)工作中發(fā)掘這些人才的潛力。我深信,一個真正優(yōu)秀的人能夠解決任何問題,并從中取得進步。

如果你有非常優(yōu)秀并充滿熱情的同事,并讓他們從事真正想做的事情,那么他們就會擁有超能力。所以,我們需要確保團隊成員處理正確的問題,培養(yǎng)他們做事和解決問題的能力,幫助他們成長。尤其是在一個高速發(fā)展的團隊當中,你不僅要著眼于具體事務(wù),還要查看自己是否作出了貢獻等。

通常來說,人們會非常關(guān)注產(chǎn)品,關(guān)注客戶和客戶所面臨的問題,但如果沒有團隊,就無法解決問題和構(gòu)建產(chǎn)品。

上述問題最終會形成良性循環(huán),對于領(lǐng)導(dǎo)者和團隊構(gòu)建來說,以上問題至關(guān)重要。這也是我喜歡 Tim,并且能和他愉快共事的原因之一,他能有效彌補我不擅長的地方,我們彼此都能從對方身上學到很多。

總之,要打造一個團隊,我們需要做的事情還有很多。我喜歡構(gòu)建事物,但不會為此放慢腳步。

5

關(guān)于 AI 領(lǐng)域的發(fā)展

Alessio:在 AI 領(lǐng)域,有什么是已經(jīng)實現(xiàn),但你曾認為需要花費更長時間的東西?

Chris:ChatGPT是對用戶界面的一種創(chuàng)新,它的爆發(fā)式發(fā)展讓人們意識到了 AI 的力量。但回顧過去,我本來認為 AI 進入公眾視野還需要好幾年時間。

Swyx:在 AI 領(lǐng)域解決的問題中,你最感興趣的是什么?

Chris:不同的人對 AI 有著不同的定義,一些人認為,一切都應(yīng)該用端到端的神經(jīng)網(wǎng)絡(luò)來實現(xiàn),而不是軟件。我認為,訓練算法和智能設(shè)計算法之間的平衡是一個開放式問題,個人而言,這并非是一個非此即彼的選擇,比如,如果你想要構(gòu)建一個貓咪檢測器,那么使用卷積神經(jīng)網(wǎng)絡(luò)是一個非常好的方法,但如果你想編寫操作系統(tǒng),那么應(yīng)該選擇循環(huán)語句。

但隨時間推移,這些技術(shù)會發(fā)生何種變化,我們該如何讓應(yīng)用開發(fā)者更加一致地思考這些問題,而不局限于A類或B類的范疇等,這些都是開放式問題。

作為軟件開發(fā)方法的 AI 最終將成為人們思考構(gòu)建應(yīng)用的工具之一。這里的應(yīng)用不僅僅局限于 iPhone 應(yīng)用等,而是云服務(wù)、數(shù)據(jù)管道等等,涉及到一系列復(fù)雜的環(huán)節(jié),最終構(gòu)建出用戶可用的產(chǎn)品。我認為,AI 行業(yè)仍處于發(fā)展青春期,我們尚未完全掌握這一點。

Alessio:有趣的是,ChatGPT的出現(xiàn)還不到一年,而我們已經(jīng)從談?wù)?AI 安全問題發(fā)展到了 AI 將會毀滅世界,而這一切僅僅是因為一個聊天機器人的出現(xiàn),這不得不令人深思。

Chris:不得不承認,2017 年的時候已經(jīng)有很多人關(guān)注 AI 安全問題了,但當時我對此非常不解,我不認為這個問題有什么可討論的,但事實證明,這些人很有遠見。

這也是我欣賞 Geoffrey Hinton 等人的原因之一,他們在 AI 走進大眾視野之前就進入了這一行業(yè),見證并融合了更長的時間跨度,能以一種更全面的角度來看待問題,并取得更大的成就。

其他人都在看

  • 編譯器的黃金時代

  • 為什么開源大模型終將勝出

  • 英偉達的AI霸主地位會持久嗎

  • 大模型長上下文運行的關(guān)鍵問題

  • PyTorch創(chuàng)始人:開源成功的方法論

  • AI算力反碎片化:世界最快統(tǒng)一矩陣乘

  • LLVM之父:為什么重建AI基礎(chǔ)設(shè)施軟件

試用OneFlow: github.com/Oneflow-Inc/oneflow/http://github.com/Oneflow-Inc/oneflow/文章來源地址http://www.zghlxwxcb.cn/news/detail-756867.html

到了這里,關(guān)于LLVM之父Chris Lattner:我的AI基礎(chǔ)設(shè)施軟件構(gòu)建理念的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 網(wǎng)絡(luò)基礎(chǔ)設(shè)施 & 擁塞控制

    網(wǎng)絡(luò)基礎(chǔ)設(shè)施 & 擁塞控制

    我經(jīng)常說,傳統(tǒng)的 TCP 優(yōu)化已經(jīng)到頂,不會有大意義了,這有兩方面意思。 一方面,內(nèi)在的,TCP 的 ACK 時鐘帶回的信息就那么多,用足了又能怎樣。一個學習最差的差生能控制的分數(shù)是是 0~100 分的區(qū)間,寬度足足 100 分,他控制不了自己能考多少分,而一個學習最好的學生

    2024年02月02日
    瀏覽(26)
  • Terraform 基礎(chǔ) 云計算概述 基礎(chǔ)設(shè)施即代碼

    Terraform 基礎(chǔ) 云計算概述 基礎(chǔ)設(shè)施即代碼

    云計算概述 lac基礎(chǔ)設(shè)施即代碼 什么是Terraform 在開始學習Terraform之前,要了解這個工具到底解決了什么問題 企業(yè)上云,可提高資源配置效率、降低信息化建設(shè)成本(說白了就是用上云計算了) ?比較大型的企業(yè)都會有自建的機房,里面托管服務(wù)器和硬件設(shè)備。 還有一種情況

    2024年02月02日
    瀏覽(36)
  • 公開密鑰基礎(chǔ)設(shè)施PKI

    公開密鑰基礎(chǔ)設(shè)施PKI

    公開密鑰基礎(chǔ)設(shè)施(PKI,Public Key Infrastructure),是以不對稱密鑰加密技術(shù)為基礎(chǔ),以數(shù)據(jù)機密性、完整性、身份認證和行為不可抵賴性為安全目的,來實施和提供安全服務(wù)的、具有普適性的安全基礎(chǔ)設(shè)施。具體內(nèi)容包括: 數(shù)字證書 不對稱密鑰密碼技術(shù) 認證中心 證書和密鑰

    2023年04月08日
    瀏覽(20)
  • 云計算概論 -- 云基礎(chǔ)設(shè)施機制

    云計算概論 -- 云基礎(chǔ)設(shè)施機制

    邏輯網(wǎng)絡(luò)邊界 虛擬服務(wù)器 云存儲設(shè)備 云使用監(jiān)控 資源復(fù)制 一、邏輯網(wǎng)絡(luò)邊界 (一)邏輯網(wǎng)絡(luò)邊界 邏輯網(wǎng)絡(luò)邊界是將一個網(wǎng)絡(luò)環(huán)境與通信網(wǎng)絡(luò)的其他部分隔離開來,形成一個虛擬網(wǎng)絡(luò)邊界,它包含并隔離了一組相關(guān)的基于云的IT資源,這些資源在物理上可能是分布式的。 邏輯

    2023年04月08日
    瀏覽(25)
  • 云計算基礎(chǔ)設(shè)施總體架構(gòu)介紹

    云計算基礎(chǔ)設(shè)施總體架構(gòu)介紹

    云計算基礎(chǔ)設(shè)施是指由硬件資源和資源抽象控制組件構(gòu)成的支撐云計算的基礎(chǔ)設(shè)施,包括為云服務(wù)客戶提供計算資源、存儲資源、網(wǎng)絡(luò)資源、安全資源所需的軟硬件設(shè)備及云管理平臺。云計算基礎(chǔ)設(shè)施總體架構(gòu)如圖1 所示。 圖1 云計算基礎(chǔ)設(shè)施總體架構(gòu) ?資源池包括計算資源

    2024年02月11日
    瀏覽(23)
  • 大數(shù)據(jù)基礎(chǔ)設(shè)施搭建 - Redis

    redis是用c寫的,因此安裝redis需要c語言的編譯環(huán)境,即需要安裝gcc 內(nèi)容: key:string value:string、list、set、zset、hash 有序可重復(fù) 無序不重復(fù) 有序不重復(fù),就是在set的基礎(chǔ)上,給每個元素綁定了一個分數(shù),按照分數(shù)由低到高排序 RDB為快照備份,會在備份時將內(nèi)存中的所有數(shù)據(jù)

    2024年01月23日
    瀏覽(27)
  • 大數(shù)據(jù)基礎(chǔ)設(shè)施搭建 - Hbase

    首先保證Zookeeper和Hadoop正常運行 新增內(nèi)容: 使環(huán)境變量生效: 不使用hbase內(nèi)置的zookeeper,使用獨立zookeeper 內(nèi)容: 表明zookeeper集群,hbase web訪問路徑 內(nèi)容: regionserver所在機器 內(nèi)容: 8.3.1 創(chuàng)建表 在first_namespace命名空間中創(chuàng)建表格student,兩個列族。info列族數(shù)據(jù)維護的版本數(shù)

    2024年01月24日
    瀏覽(31)
  • 大數(shù)據(jù)基礎(chǔ)設(shè)施搭建 - Spark

    大數(shù)據(jù)基礎(chǔ)設(shè)施搭建 - Spark

    內(nèi)容: 到Y(jié)ARN WEB頁面查看任務(wù)提交情況 內(nèi)容: 4.3.1 啟動SparkSQL客戶端(Yarn方式) 4.3.2 啟動Hive客戶端 優(yōu)勢在哪里??

    2024年04月09日
    瀏覽(25)
  • 關(guān)鍵信息基礎(chǔ)設(shè)施安全相關(guān)材料匯總

    關(guān)鍵信息基礎(chǔ)設(shè)施安全相關(guān)材料匯總

    關(guān)鍵信息基礎(chǔ)設(shè)施作為國家重要的戰(zhàn)略資源,關(guān)系國家安全、國計民生和公共利益,具有基礎(chǔ)性、支撐性、全局性作用,保護關(guān)鍵信息基礎(chǔ)設(shè)施安全是國家網(wǎng)絡(luò)安全工作的重中之重。 本文主要梳理關(guān)鍵信息基礎(chǔ)設(shè)施安全保護領(lǐng)域相關(guān)的法律法規(guī)及政策匯編,以供大家參考。

    2024年01月22日
    瀏覽(24)
  • Genesis公鏈——專為元宇宙打造基礎(chǔ)設(shè)施

    Genesis公鏈——專為元宇宙打造基礎(chǔ)設(shè)施

    在過去的 30 年中,互聯(lián)網(wǎng)技術(shù)不斷進化,人們通過網(wǎng)絡(luò)互相溝通、產(chǎn)生聯(lián)系的方式也在迭代升級。從 Web1.0 到 Web3.0、從單一的文本內(nèi)容到即將到來的元宇宙,技術(shù)進步對我們造成了太大的改變。 近年來元宇宙這個概念能被各方關(guān)注,主要是因為元宇宙是一個大整合,包括5

    2024年02月12日
    瀏覽(91)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包