用C++編寫的大型語言模型推理函式庫
llama.cpp
信息框全部数据 7
原作者 Georgi Gerganov
開發者 Georgi Gerganov與社群
首次发布 2023年3月10日
源代码库 github.com/ggml-org/llama.cpp
编程语言 C++、C
类型 大型语言模型函式庫
许可协议 MIT許可證
目录
背景 開發 架構 GGUF檔案格式
返回顶部
背景
2022年9月底,Georgi Gerganov開始開發GGML函式庫,這是實作张量代数 的C語言函式庫。Gerganov開發GGML函式庫的目的是實現嚴格的記憶體管理與多執行緒。GGML的建立則是受到法布里斯·贝拉 開發LibNC的啟發。
在開發llama.cpp之前,Gerganov曾經開發過類似的函式庫,為使用OpenAI 語音轉文字模型Whisper 的whisper.cpp。
開發
Georgi Gerganov從2023年3月開始開發llama.cpp,llama.cpp是LLaMA 推理程式碼的無外部依賴關係純C/C++實作。llama.cpp改善了在沒有圖形處理器 或其他專用硬體的電腦上的效能,這也是此專案的其中一個目標。因為可以僅在中央处理器 上執行(甚至可以在Android 上運作),llama.cpp得到了缺乏專用硬體的使用者青睞。雖然一開始是為CPU設計的,但後來還是新增了GPU推理支援。
2024年3月,Justine Tunney為x86與ARM CPU引入新的最佳化矩陣乘法核心至此專案,改善了FP16 與8位元量化資料類型的提示詞評估效能。Tunney也製作了llamafile這套工具,這套工具把模型與llama.cpp整合到單一個檔案中,並可透過同樣由Tunney開發的Cosmopolitan Libc函式庫在多個作業系統上執行。
GGUF檔案格式
GGUF(GGML通用檔案)檔案格式是二進位格式,將張量與元数据 儲存在同一個檔案中,用以快速儲存與載入模型資料。此檔案格式是llama.cpp專案於2023年8月開始使用,在新增對其他模型架構的支援時也維持向後相容性。
GGUF檔案通常是透過轉換以PyTorch 等其他機器學習函式庫開發的模型所建立的。
設計
此格式著重於量化,亦即降低模型權重的精確度。如此可以降低記憶體使用量,提昇速度,缺點是會降低模型精度。
GGUF支援2位元至8位元的量化整數類型,以及常見的浮點資料格式(如float32 、float16 與bfloat16)與1.56位元量化。
文字来自维基百科,CC BY-SA 4.0 · 来源条目