vixhal-baraiya/microgpt-c

The most atomic way to train and inference a GPT in pure, dependency-free C

解決的問題

它提供了一個以純 C 語言撰寫的最小化、無依賴的 GPT 風格轉換器模型實作。這使得在不需要繁重的機器學習框架或外部程式庫(除了標準 C 庫 libc 外)的情況下,也能進行訓練與推論。

工作原理

該專案實作了字元級的轉換器,包含前向傳播、反向傳播、Adam 優化器以及取樣。它使用兩種不同的前向傳播路徑:一個用於訓練(gpt_forward),會儲存激活值以供反向傳播使用;另一個則是針對單一詞元推論的專用優化路徑(gpt_forward_infer)。為了最大化效能,它利用了硬體特定的優化技術,例如 ARM64 的 NEON 與 x86-64 的 AVX2。

適用對象

希望以最原子層級理解 GPT 模型內部運作機制的開發者與研究人員,或需要輕量、高效 C 實作來執行簡單文字生成任務的人。

特色

  • 無依賴:僅使用 libc 的純 C 實作。
  • 高效能:針對 ARM64(NEON)與 AVX2(x86-64)進行優化。
  • 高效率:一個參數僅 4192 的小型模型,能在字元級任務(如姓名生成)上表現良好。
  • 單一檔案實作:核心邏輯全部包含在一個 C 檔案中。

相關

  • 專案
  • 專案
  • 專案
  • Dispatch
  • 專案