今天小編分享的科學經驗:GPT-4裡套娃LLaMA 2!OpenAI創始成員周末爆改「羊駝寶寶」,GitHub一日千星,歡迎閱讀。
大神僅花一個周末訓練微型LLaMA 2,并移植到C 語言。
推理代碼只有 500 行,在蘋果M1 筆記本上做到每秒輸出 98 個 token。
作者是 OpenAI 創始成員Andrej Karpathy,他把這個項目叫做Baby LLaMA 2(羊駝寶寶)。
所有推理代碼可以放在C 語言單檔案上,沒有任何依賴,除了能在筆記本 CPU 上跑,還迅速被網友接力開發出了各種玩法。
llama.cpp 的作者Georgi Gerganov搞出了直接在浏覽器裡運行的版本。
提示工程師Alex Volkov甚至做到了在 GPT-4 代碼解釋器裡跑Baby LLaMA 2。
大模型套娃小模型,成了。
據 Karpathy 分享,做這個項目的靈感正是來自 llama.cpp。
訓練代碼來自之前他自己開發的 nanoGPT,并修改成 LLaMA 2 架構。
推理代碼直接開源在 GitHub 上了,不到 24 小時就狂攬 1500+ 星。
訓練數據集TinyStories 則來自微軟前一陣的研究。
2023 新視野數學獎得主 Ronen Eldan、2023 斯隆研究獎得主李遠志聯手,驗證了1000 萬參數以下的小模型,在垂直數據上訓練也可以學會正确的語法、生成流暢的故事、甚至獲得推理能力。
此外,開發過程中還有一個插曲。
Karpathy 很久不寫 C 語言已經生疏了,但是在 GPT-4 的幫助下,還是只用一個周末就完成了全部工作。
對此,英偉達科學家 Jim Fan 評價為:現象級。
最初,在 CPU 單線程運行、fp32 推理精度下,Baby LLaMA 2 每秒只能生成 18 個 token。
在編譯上使用一些優化技巧以後,直接提升到每秒 98 個 token。
優化之路還未停止。
有人提出,可以通過 GCC 編譯器的 -funsafe-math-optimizations 模式再次提速 6 倍。
除了編譯方面外,也有人提議下一步增加 LoRA、Flash Attention 等模型層面流行的優化方法。
Baby LLaMA 2 一路火到 Hacker News 社區,也引發了更多的讨論。
有人提出,現在雖然只是一個概念驗證,但本地運行的語言模型真的很令人興奮。
雖然無法達到在雲端 GPU 集群上托管的大模型的相同功能,但可以實現的玩法太多了。
在各種優化方法加持下,karpathy 也透露已經開始嘗試訓練更大的模型,并表示:
70 億參數也許觸手可及。
GitHub:
https://github.com/karpathy/llama2.c
在浏覽器運行 Baby LLaMA 2:
https://ggerganov.com/llama2.c
參考鏈接:
[ 1 ] https://twitter.com/karpathy/status/1683143097604243456
[ 2 ] https://twitter.com/ggerganov/status/1683174252990660610
[ 3 ] https://twitter.com/altryne/status/1683222517719384065
[ 4 ] https://news.ycombinator.com/item?id=36838051