設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

OpenAI 創(chuàng)始大神手搓千行 C 代碼訓(xùn)練 GPT,附 PyTorch 遷移教程

量子位 2024/4/9 22:19:39 責(zé)編:問舟

大神卡帕西(Andrej Karpathy)剛“復(fù)工”,立馬帶來神作:純 C 語言訓(xùn)練 GPT,1000 行代碼搞定!,不用現(xiàn)成的深度學(xué)習(xí)框架,純手搓。發(fā)布僅幾個小時,已經(jīng)攬星 2.3k。

它可以立即編譯和運行,和 PyTorch 完全兼容??ㄅ廖魇褂玫氖纠?GPT-2,但 Llama 2 和 Gemma 等也適用。

項目發(fā)布后,他還給出了從 PyTorch 遷移到 C 的教程。

網(wǎng)友們直呼:他甚至都不用 C++……

而且就連怎么讓大模型如法炮制的提示詞,他也放了出來?,F(xiàn)在已經(jīng)有人在用 Devin 嘗試 ing。

手動實現(xiàn)每個層前向 / 反向傳播

選擇用 GPT-2 的原因很簡單,有模型權(quán)重,采用了堆棧式的 Transformer 模型結(jié)構(gòu)。

項目核心的重點包括:

  • 直接在 C / CUDA 上訓(xùn)練 LLM,速度接近 PyTorch

  • 通過在 CPU 版本中使用 SIMD 指令(如 AVX2 和 NEON)聊加速 CPU 版本

  • 支持更先進的架構(gòu),比如 Llama2 和 Gemma

卡帕西解釋,他在開始時分配了所有所需內(nèi)存,訓(xùn)練期間內(nèi)存占用保持不變,只是數(shù)據(jù)在不同批次之間動態(tài)流動。

關(guān)鍵在于手動實現(xiàn)每個單獨層的前向傳播和反向傳播,并將它們串聯(lián)起來。例如,下面是層歸一化(layernorm)的前向傳播和反向傳播。

一旦有了所有的層,把它們?nèi)看?lián)在一起。

卡帕西表示這寫起來非常乏味且痛苦,因為過程中必須保證所有 pointer 和張量都正確排列。

下圖中左邊是分配一個單一的一維內(nèi)存數(shù)組,然后將所有模型權(quán)重和激活函數(shù)都指向它。

右圖為非常小心地進行 pointer 計算。

一旦建立好了正向 / 反向傳播,其他的都好說了。

但是到這部分,卡帕西覺得到了最有趣的部分。

我正在將其逐層移植到 CUDA,使其更加高效,甚至可能和 PyTorch 效率差不多,但不會有過多依賴。

從這里開始還有一些擴展,比如精度從 fp32 下降到 fp16 或更低,以及一些更多的層(比如 RoFE)來支持更先進的架構(gòu)。

卡帕西表示,后面還將出一個視頻進行更加詳細(xì)的講解。

更多的代碼在 GitHub 項目頁中有更具體展示。

后面他還加了一個如何從 PyTorch 遷移到 C 的教程。

網(wǎng)友:這和 LLM OS 有關(guān)嗎?

前幾天,“消失”了一段時間的卡帕西突然發(fā)推特,表示自己前段時間戒網(wǎng)去了,總體來說感覺還行。

和互聯(lián)網(wǎng)世界通上信號第 4 天,他就發(fā)布了這一新項目。給網(wǎng)友們來了點小震撼。

在一系列常規(guī)的 amazing、great 之外,大家對新項目主要關(guān)心三個方面。

第一,為啥不用 Rust?

卡帕西表示他也在學(xué)習(xí) Rust,但是仍舊認(rèn)為 C 語言已經(jīng)很好了。

它簡單、干凈、輕便、美觀,是最好的語言。

第二,AI 程序員能寫出同樣的項目嗎?

值得一提的是卡帕西還給出了一段提示詞,表示大家可以用 LLM Agent 試試看。

目前的模型生成結(jié)果沒那么好,但也許 1、2 年之后可以再看看。如果成功了……

“可能就是 AGI 到來了?”

現(xiàn)在已經(jīng)有網(wǎng)友開始用 Devin 嘗試了。

他擔(dān)心 Devin 搜到了卡帕西的項目,然后直接抄下來。目前為止 Devin 還沒有這么做。

不過卡帕西表示相比于這個,他更擔(dān)心 LLM Agent 在 1-2 年后確實可以解決這個問題了,但是那時各種代碼和討論會以一種別樣的方式滲透到訓(xùn)練數(shù)據(jù)里,導(dǎo)致結(jié)果不夠令人滿意。

有人補充說,要加強數(shù)據(jù)管理了。

第三個討論比較多的話題則是,這個項目和 LLM OS 有關(guān)嗎?

前段時間卡帕西從 OpenAI 離職,計劃要開始推進個人項目。

當(dāng)時大家都猜測,他要做 LLM OS。

3 月底在訪談中,他也再次聊了這個話題。

他表示,現(xiàn)在 AGI 的路線已經(jīng)相對清晰了,大家都在如火如荼推進工作,大致來說,每個人都在努力構(gòu)建“大模型操作系統(tǒng)(LLM OS)”.

我喜歡把它比作一個操作系統(tǒng)。你要準(zhǔn)備好各種外圍設(shè)備,然后把他們連接在一個新的 CPU 上。這些外圍設(shè)備包括文本、圖像、音頻等各種模態(tài)。CPU 就是語言模型本身。它還要與我們已經(jīng)構(gòu)建的所有 Software 1.0 基礎(chǔ)設(shè)施相連。

我認(rèn)為大家都在努力構(gòu)建這樣一個東西,然后把它定制成適用于各個經(jīng)濟領(lǐng)域的產(chǎn)品。

現(xiàn)在隨著新項目推出,卡帕西的個人項目大概是已經(jīng)提上日程了。

后續(xù)關(guān)于 LLM.C 的項目還會推出更詳細(xì)的視頻講解版本,大家可以期待一波了~

GitHub 地址:

  • https://github.com/karpathy/llm.c

參考鏈接:

  • [1]https://twitter.com/karpathy/status/1777427944971083809

  • [2]https://twitter.com/karpathy/status/1777493157485437009

  • [3]https://twitter.com/karpathy/status/1777481372636246491?s=46&t=iTysI4vQLQqCNJjSmBODPw

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:GPT4,LLM.C

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機APP應(yīng)用 魔方 最會買 要知