Closed3

llama.cppでGGUF変換やってみた

kun432kun432

とりあえずディレクトリ作成

$ mkdir llama_cpp_convert && cd llama_cpp_convert

pyenvがすでに設定済み。venvとdirenvは簡単に設定できるようにしてある。手順はここ

仮想環境作ってactivateする。

$ mkvenv
(llama_cpp_convert) $

llama.cppをクローン。venvのディレクトリはレポジトリの外にしたかったので、こういう順序にしている。

$ git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp

GPUオフロード有効で、makeする。CUDAの設定もすでに実施済みとする。

$ make LLAMA_CUDA=1

変換に必要なpythonパッケージをインストール

$ pip install -r requirements.txt

ではGGUFに変換していく。変換対象のモデルは以下を使う。

https://huggingface.co/selfrag/selfrag_llama2_13b

自分の場合はモデルは/data/hf_models以下に全部保存することにしているので、そこにダウンロード。

$ cd /data/hf_models
$ git lfs install
$ git clone https://huggingface.co/selfrag/selfrag_llama2_13b

ダウンロードが完了したらllama.cppのディレクトリに戻ってまずGGUFに変換。モデルと同じ場所にGGUFファイルが作成される。

$ python convert.py /data/hf_models/selfrag_llama2_13b
(snip)
Wrote /data/hf_models/selfrag_llama2_13b/ggml-model-f32.gguf
$ ls -lt /data2/hf_models/selfrag_llama2_13b/ggml-model-f32.gguf
-rw-rw-r-- 1 kun432 kun432 52064858592  327 20:44 /data/hf_models/selfrag_llama2_13b/ggml-model-f32.gguf

GGUFファイルを量子化する。Q4_K_Mで。

$ ./quantize /data/hf_models/selfrag_llama2_13b/ggml-model-f32.gguf ./models/selfrag_llama2_13b.Q4_K_M.gguf Q4_K_M
(snip)
llama_model_quantize_internal: model size  = 49652.21 MB
llama_model_quantize_internal: quant size  =  7500.96 MB

main: quantize time = 160393.14 ms
main:    total time = 160393.14 ms

作成された。

$ ls -lt ./models/selfrag_llama2_13b.Q4_K_M.gguf
-rw-rw-r-- 1 kun432 kun432 7866070144  327 20:50 models/selfrag_llama2_13b.Q4_K_M.gguf

試してみる。

$ ./main \
    -m ./models/selfrag_llama2_13b.Q4_K_M.gguf \
    --temp 0.0 \
    --top-p 1.0 \
    -n 100 \
    -p "### Instruction:\nCan you tell me the difference between llamas and alpacas?\n### Response:\n" \
    -ngl 99 \
    -e
### Instruction:
Can you tell me the difference between llamas and alpacas?
### Response:
Sure![Retrieval]<paragraph>Here are some of the key differences between llamas and alpacas:

1.[Retrieval]<paragraph>Size:2.3.4.5.[Utility:5] [end of text]

いけてるっぽい。

このスクラップは2ヶ月前にクローズされました