見出し画像

Google Colab で Llama.cpp + Vicuna-v1.5 を試す

「Google Colab」で「Llama.cpp + Vicuna-v1.5」を試したのでまとめました。


1. Vicuna-v1.5のGGMLモデル

「Vicuna-v1.5」で提供されている「GGML」モデルは、次の4つです。

TheBloke/vicuna-7B-v1.5-GGML
TheBloke/vicuna-7B-v1.5-16K-GGML
TheBloke/vicuna-13B-v1.5-GGML
TheBloke/vicuna-13B-v1.5-16K-GGML

2. Colabでの実行

Colabでの実行手順は、次のとおりです。

(1) モデルのダウンロード。
今回は、「vicuna-7b-v1.5.ggmlv3.q4_K_M.bin」を使います。

!wget https://huggingface.co/TheBloke/vicuna-7B-v1.5-GGML/resolve/main/vicuna-7b-v1.5.ggmlv3.q4_K_M.bin

(2) Llama.cppのインストール。

!git clone https://github.com/ggerganov/llama.cpp
%cd llama.cpp
!mkdir build
%cd build
!cmake .. -DLLAMA_CUBLAS=ON
!cmake --build . --config Release
!cp bin/main ..
%cd ..

(3) 推論の実行。

!./main -m ../vicuna-7b-v1.5.ggmlv3.q4_K_M.bin --temp 0.1 -p "User:日本語で回答してください。富士山の高さは? Assistant:" -ngl 32 -b 512
system_info: n_threads = 2 / 2 | AVX = 1 | AVX2 = 1 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 | 
sampling: repeat_last_n = 64, repeat_penalty = 1.100000, presence_penalty = 0.000000, frequency_penalty = 0.000000, top_k = 40, tfs_z = 1.000000, top_p = 0.950000, typical_p = 1.000000, temp = 0.100000, mirostat = 0, mirostat_lr = 0.100000, mirostat_ent = 5.000000
generate: n_ctx = 512, n_batch = 512, n_predict = -1, n_keep = 0


 User:日本語で回答してください。富士山の高さは? Assistant: 富士山の高さは3,776メートルです。 [end of text]

llama_print_timings:        load time =  1412.65 ms
llama_print_timings:      sample time =    23.92 ms /    21 runs   (    1.14 ms per token,   878.07 tokens per second)
llama_print_timings: prompt eval time =  1027.44 ms /    31 tokens (   33.14 ms per token,    30.17 tokens per second)
llama_print_timings:        eval time =   963.55 ms /    20 runs   (   48.18 ms per token,    20.76 tokens per second)
llama_print_timings:       total time =  2020.69 ms

パラメータなどについては、以下を参照。



この記事が気に入ったらサポートをしてみませんか?