llama.cpp による transformersモデル の量子化
「llama.cpp」による「transformersモデル」の量子化の手順をまとめました。
1. Llama.cppのインストール
Llama.cppのインストール手順は、次のとおりです。
(1) Xcodeのインストール。
「Llama.cpp」は、インストール時に環境にあわせてソースからビルドして利用するため、MacではXcodeのビルドツールが必要になります。
(2) リポジトリのクローン。
$ git clone https://github.com/ggerganov/llama.cpp
$ cd llama.cpp
(3) ビルド。
$ make
(4) llama.cppフォルダのあるフォルダに移動。
今回は、llama.cppフォルダのあるフォルダで作業します。
$ cd ..
2. 変換するtransformersモデルの準備
今回は練習用に「meta-llama/Meta-Llama-3-8B-Instruct」を準備します。
(1) transformersモデルの準備。
$ git clone https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct
3. transformersモデルをggufに変換
「transformersモデル」を「gguf」に変換する手順は、次のとおりです。
(1) Pythonの仮想環境の準備。
今回は、Python 3.10の仮想環境を準備しました。
(2) Llama.cppの依存関係のインストール
$ pip install -r ./llama.cpp/requirements.txt
(3) transformersモデルをggufに変換。
「./gguf-model_f16.gguf」が生成されます。
「Llama 3」ではVocabにBPEが要求されたので指定しています。
$ python ./llama.cpp/convert.py ./Meta-Llama-3-8B-Instruct --vocab-type bpe --outtype f16 --outfile ./gguf-model_f16.gguf
4. gguf量子化
gguf量子化の手順は、次のとおりです。
(1) ggufの量子化。
「Meta-Llama-3-8B-Instruct.Q4_K_M.gguf」が生成されます。
$ ./llama.cpp/quantize ./gguf-model_f16.gguf ./models/Meta-Llama-3-8B-Instruct.Q4_K_M.gguf Q4_K_M
5. imatrix量子化
imatrix量子化の手順は、次のとおりです。
(1) iMatrix計算用データセットの準備。
よく使われるデータセットは、次の3つです。
今回は、「c4_en_ja_imatrix.txt」を使います。
(2) ggufからimatrixへの変換。
「./gguf-model.imatrix」が生成されます。
$ ./llama.cpp/imatrix -m ./gguf-model_f16.gguf -f ./c4_en_ja_imatrix.txt -o ./gguf-model.imatrix --chunks 32
(3) imatrixの量子化
「./Meta-Llama-3-8B-Instruct_IQ4_XS.gguf」が生成されます。
$ ./llama.cpp/quantize --imatrix ./gguf-model.imatrix ./gguf-model_f16.gguf ./Meta-Llama-3-8B-Instruct_IQ4_XS.gguf iq4_xs
この記事が気に入ったらサポートをしてみませんか?