【llama.cpp】誰でもできるgguf変換
tinyLlamaとかを使うときに4bit量子化したいときが誰しも一度はあると思うので、備忘録を書いておく。
llama.cppを導入し、convert.pyを実行、最後にquantize.exeを実行すればOKです。
cmakeの導入
これを参考にcmakeを使えるようにしてみてください
llama.cppの導入
llama.cppをクローン
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
makeをする。自分はcmakeでやった
mkdir build
cd build
cmake ..
cmake --build . --Release
cd ..
モデルの変換
モデルのダウンロードをする。今回は「yuiseki/tinyllama-ja-wikipedia-1.5T-v0.1」を用いる。
cd models
git clone https://huggingface.co/yuiseki/tinyllama-ja-wikipedia-1.5T-v0.1
cd ..
ggufのconvertをする。このconvert先のモデルを量子化するイメージ。
python .\convert.py models/tinyllama-ja-wikipedia-1.5T-v0.1
(記事時点で上記のtinyllamaにはtokenizerがなかったので、適宜tokenizerをコピーしてます、多分近日中にそのコピーの手順はいらなくなるので書いてないです、ごめんね)
量子化をする。最初はq4_0。
.\build\bin\Release\quantize .\models\tinyllama-ja-wikipedia-1.5T-v0.1\ggml-model-f16.gguf .\models\tinyllama-ja-wikipedia-1.5T-v0.1\ggml-model-chat-q4_0.gguf q4_0
Q4_K_Mでやってみる。現状はQ4_K_Mが一番使いやすい
.\build\bin\Release\quantize .\models\tinyllama-ja-wikipedia-1.5T-v0.1\ggml-model-f16.gguf .\models\tinyllama-ja-wikipedia-1.5T-v0.1\ggml-model-chat-Q4_K_M.gguf Q4_K_M
参考記事
基本はこれを見ればできます。こっちはgcc
Discussion
cmake --build . --Release
->cmake --build . --config Release
への変更が必要でした。