GGMLからGGUFへ:llama.cppのファイルフォーマット変更
RedditのローカルLLM板に以下の投稿があった。週明けに「llama.cpp」で使われているGGMLファイルが「GGUF」という新フォーマットに変更されるとのこと。
フォーマット変更の要点
GGUFは、GGMLよりも拡張性の高いファイルフォーマット。「.bin」から「.gguf」になる。
これにより、Llama以外の言語モデル(falcon, rwkv, bloom, etc.)がllama.cppでサポートできるようになる。サポートするモデルは段階的に増える予定。
その他、プロンプトフォーマットをGGUF内に設定しておけるようなったり、rope-freq-baseやgqaなどの一部パラメータが不要になる予定。
破壊的変更であり、既存のggmlモデルは「GGUF #2398」のマージ後は使えなくなる(有志がGGML>GGUFの変換スクリプトを作成中)。
マージは週明け(現地8月21日)を予定。
こちらのドキュメントに詳細な説明がある。GGMLには色々と技術的なネックがあったらしく、以前から刷新が望まれていたらしい。
なお「Llama系以外の言語モデル」については、現状:
Llama.cppが対応済みのモデル(GPT-NeoX系のStableLMくらい?)
Llama.cppでは対応していないが、GGMLでの量子化・推論には対応しているモデル(GPT-J, MPT, GPT-NeoX, StarCoder, etc.)
Llama.cppのフォークが存在しているモデル(rwkv.cpp, ggllm.cpp, bloomz.cpp, etc.)
が混在しており、初心者にはよく分からない状況になっている。これらが、順次llama.cppに公式サポートされていくならありがたい。
ただし、llama.cppでマージが済んでも、llama-cpp-pythonやtext-generation-webUIなどがGGUFをサポートするには多少タイムラグがありそう。