Closed3
llama.cppでGGUF変換やってみた
とりあえず自分でもやってみる。
とりあえずディレクトリ作成
$ 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に変換していく。変換対象のモデルは以下を使う。
自分の場合はモデルは/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 3月 27 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 3月 27 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ヶ月前にクローズされました