「LLM-jp-3」を「gguf」に変換する手順をまとめました。
1. Llama.cppのインストール
Llama.cppのインストール手順は、次のとおりです。
(1) Xcodeのインストール。
「Llama.cpp」は、インストール時に環境にあわせてソースからビルドして利用するため、MacではXcodeのビルドツールが必要になります。
(2) リポジトリのクローン。
$ git clone https:
$ cd llama.cpp
(3) ビルド。
$ make
(4) 作業フォルダに戻る。
今回は、llama.cppフォルダが配置されてるフォルダで作業します。
$ cd ..
2. 変換するtransformersモデルの準備
今回は「llm-jp/llm-jp-3-1.8b-instruct」を準備します。
(1) transformersモデルの準備。
$ git clone https://huggingface.co/llm-jp/llm-jp-3-1.8b-instruct
(2) 「tokenizer.model」の準備。
「llm-jp/llm-jp-tokenizer」から「llm-jp-tokenizer-100k.ver3.0b1.model」をダウンロードして、「llm-jp-3-1.8b-instruct」フォルダに「tokenizer.model」という名前で配置します。
配置しないとgguf変換時に以下のエラーがでました。
FileNotFoundError: File not found: llm-jp-3-1.8b-instruct/tokenizer.model
3. transformersモデルをggufに変換
「transformersモデル」を「gguf」に変換する手順は、次のとおりです。
(1) Pythonの仮想環境の準備。
$ python -m venv env
$ source env/bin/activate
(2) Llama.cppの依存関係のインストール
$ pip install -r ./llama.cpp/requirements.txt
(3) transformersモデルをggufに変換。
$ python ./llama.cpp/convert_hf_to_gguf.py ./llm-jp-3-1.8b-instruct --outfile ./gguf-model_f16.gguf --outtype f16
「gguf-model_f16.gguf」が生成されます。
(4) 動作確認。
$ ./llama.cpp/llama-cli -m './gguf-model_f16.gguf' -p '
### 指示:
まどか☆マギカでは誰が一番かわいい?
### 応答:
' -n 512
「llama.cpp/examples/llama.swiftui」「llama.cpp/examples/llama.android」を使ってiPhone・Androidで推論することもできます。
4. gguf量子化
(1) gguf量子化 (Q4_K_M)
$ ./llama.cpp/llama-quantize ./gguf-model_f16.gguf ./llm-jp-3-1.8b-instruct.Q4_K_M.gguf Q4_K_M
「llm-jp-3-1.8b-instruct.Q4_K_M.gguf」が生成されます。
(2) 動作確認。
$ ./llama.cpp/llama-cli -m './llm-jp-3-1.8b-instruct.Q4_K_M.gguf' -p '
### 指示:
まどか☆マギカでは誰が一番かわいい?
### 応答:
' -n 512
5. imatrix量子化
(1) iMatrix計算用データセットの準備。
よく使われるデータセットは、次の3つです。
今回は、「c4_en_ja_imatrix.txt」を使います。
(2) ggufからimatrixへの変換。
$ ./llama.cpp/llama-imatrix -m ./gguf-model_f16.gguf -f ./c4_en_ja_imatrix.txt -o ./gguf-model.imatrix --chunks 32
「gguf-model.imatrix」が生成されます。
(3) imatrix量子化 (IQ4_XS)。
$ ./llama.cpp/llama-quantize --imatrix ./gguf-model.imatrix ./gguf-model_f16.gguf ./llm-jp-3-1.8b-instruct_IQ4_XS.gguf iq4_xs
「llm-jp-3-1.8b-instruct_IQ4_XS.gguf」が生成されます。
(5) 動作確認。
./llama.cpp/llama-cli -m './llm-jp-3-1.8b-instruct_IQ4_XS.gguf' -p '
### 指示:
まどか☆マギカでは誰が一番かわいい?
### 応答:
' -n 512
関連