在 Windows 98 上執行karpathy的llama2.c的修改版本。在20年前硬體上執行現在的LLM大模型
在具有 128MB RAM 的 Windows 98 Pentium II 計算機上:
- stories260K (Llama-2) 引數:260K 每秒Tokens :39.31
- stories15M (Llama-2) 引數:15M 每秒Tokens :1.03
您曾想過用純 C 語言推斷一個小 Llama 2 模型嗎?
沒有嗎?
現在可以了!
在 PyTorch 中訓練 Llama 2 LLM 架構,然後用一個簡單的 700 行 C 檔案(run.c)進行推理。
你可能認為需要數十億引數的 LLM 才能做任何有用的事情,但事實上,如果你把領域做得足夠窄(參考:TinyStories 論文),非常小的 LLM 也能有令人驚訝的強大效能。
這個軟體倉庫是針對 Llama 2 LLM 的 "全棧 "訓練+推理解決方案,重點在於極簡主義和簡單性。
由於架構相同,你也可以載入和推理 Meta 的 Llama 2 模型。
不過,目前的程式碼只能推斷 fp32 格式的模型,因此您很可能無法有效載入超過 7B 的模型。有關模型量化的工作目前正在進行中。
請注意,這個軟體倉庫是最近一個有趣的週末專案: 我採用了之前的 nanoGPT,並對其進行了調整,以實現 Llama-2 架構而非 GPT-2,其中最重要的部分是在 run.c 中編寫 C 語言推理引擎。
在此,我們要向出色的 llama.cpp 致敬,是它激發了這個專案。 與 llama.cpp 相比,我想要一個超級簡單、最小化和教育性的東西,所以我選擇硬編碼 Llama 2 架構,只用一個純 C 的推理檔案,沒有任何依賴關係。