- test llama2 7B & 70B via llama.cpp - end0tknr's kipple - web写経開発
- install llama-cpp-python to miniconda3 py310 & windows 11 & gpu - end0tknr's kipple - web写経開発
上記 2つのentry の続きとして、 llama-cpp-python & Llama2 7B/70B を windows 11 & gpu から日本語で 試しています。
使用した python scriptと、その実行結果は以下の通りで、
- Llama2 70B は回答までの時間を要する割に
- Llama2 7Bも 70Bも、正解率はまぁまぁ(全くNGではない)で、同等
- 現時点であれば、Llama2 7B を使うかな?
といった印象です。
python script
#!python # -*- coding: utf-8 -*- from llama_cpp import Llama llama2_models = [ {"name":"llama-2-7b-chat.ggmlv3.q4_K_M.bin", "n_gqa":1}, {"name":"llama-2-70b-chat.ggmlv3.q4_K_M.bin", "n_gqa":8} ] questions = ["富士山の高さは?", "日本の首相は?", "山手線1周の距離は?"] prompt_tmpl = """### Instruction: %s ### Response:""" def main(): for llama2_model in llama2_models: llm = Llama( model_path="./llama_model/"+llama2_model["name"], n_gqa=llama2_model["n_gqa"] ) for question in questions: prompt = prompt_tmpl % (question) print( prompt ) # 推論実行 output = llm( prompt, temperature=0.1, stop=["Instruction:", "Input:", "Response:", "\n"], echo=True ) print(output["choices"][0]["text"]) if __name__ == '__main__': main()
実行結果 - Llama2 7B
ggml_init_cublas: found 1 CUDA devices: Device 0: NVIDIA GeForce RTX 4090, compute capability 8.9 llama.cpp: loading model from ./llama_model/llama-2-7b-chat.ggmlv3.q4_K_M.bin llama_model_load_internal: format = ggjt v3 (latest) llama_model_load_internal: n_vocab = 32000 llama_model_load_internal: n_ctx = 512 llama_model_load_internal: n_embd = 4096 llama_model_load_internal: n_mult = 256 llama_model_load_internal: n_head = 32 llama_model_load_internal: n_head_kv = 32 llama_model_load_internal: n_layer = 32 llama_model_load_internal: n_rot = 128 llama_model_load_internal: n_gqa = 1 llama_model_load_internal: rnorm_eps = 5.0e-06 llama_model_load_internal: n_ff = 11008 llama_model_load_internal: freq_base = 10000.0 llama_model_load_internal: freq_scale = 1 llama_model_load_internal: ftype = 15 (mostly Q4_K - Medium) llama_model_load_internal: model size = 7B llama_model_load_internal: ggml ctx size = 0.08 MB llama_model_load_internal: using CUDA for GPU acceleration llama_model_load_internal: mem required = 4193.33 MB (+ 256.00 MB per state) llama_model_load_internal: offloading 0 repeating layers to GPU llama_model_load_internal: offloaded 0/35 layers to GPU llama_model_load_internal: total VRAM used: 288 MB llama_new_context_with_model: kv self size = 256.00 MB 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 | ### Instruction: 富士山の高さは? ### Response: llama_print_timings: load time = 1439.23 ms llama_print_timings: sample time = 30.02 ms / 26 runs ( 1.15 ms per token, 865.97 tokens per second) llama_print_timings: prompt eval time = 1439.19 ms / 19 tokens ( 75.75 ms per token, 13.20 tokens per second) llama_print_timings: eval time = 4320.29 ms / 25 runs ( 172.81 ms per token, 5.79 tokens per second) llama_print_timings: total time = 5842.54 ms ### Instruction: 富士山の高さは? ### Response: 富士山の高さは、標高3,776メートルです。 ### Instruction: 日本の首相は? ### Response: Llama.generate: prefix-match hit llama_print_timings: load time = 1439.23 ms llama_print_timings: sample time = 48.95 ms / 23 runs ( 2.13 ms per token, 469.87 tokens per second) llama_print_timings: prompt eval time = 1767.30 ms / 12 tokens ( 147.28 ms per token, 6.79 tokens per second) llama_print_timings: eval time = 5188.66 ms / 22 runs ( 235.85 ms per token, 4.24 tokens per second) llama_print_timings: total time = 7136.22 ms ### Instruction: 日本の首相は? ### Response: 日本の現在の首相は、安倍晋三です。 ### Instruction: 山手線1周の距離は? ### Response: Llama.generate: prefix-match hit llama_print_timings: load time = 1439.23 ms llama_print_timings: sample time = 59.83 ms / 29 runs ( 2.06 ms per token, 484.72 tokens per second) llama_print_timings: prompt eval time = 2640.26 ms / 19 tokens ( 138.96 ms per token, 7.20 tokens per second) llama_print_timings: eval time = 6515.77 ms / 28 runs ( 232.71 ms per token, 4.30 tokens per second) llama_print_timings: total time = 9383.92 ms ### Instruction: 山手線1周の距離は? ### Response: The distance around the Yamanote Line in one circuit is approximately 108.6 kilometers (67.5 miles).
実行結果 - Llama2 70B
llama.cpp: loading model from ./llama_model/llama-2-70b-chat.ggmlv3.q4_K_M.bin llama_model_load_internal: warning: assuming 70B model based on GQA == 8 llama_model_load_internal: format = ggjt v3 (latest) llama_model_load_internal: n_vocab = 32000 llama_model_load_internal: n_ctx = 512 llama_model_load_internal: n_embd = 8192 llama_model_load_internal: n_mult = 4096 llama_model_load_internal: n_head = 64 llama_model_load_internal: n_head_kv = 8 llama_model_load_internal: n_layer = 80 llama_model_load_internal: n_rot = 128 llama_model_load_internal: n_gqa = 8 llama_model_load_internal: rnorm_eps = 5.0e-06 llama_model_load_internal: n_ff = 28672 llama_model_load_internal: freq_base = 10000.0 llama_model_load_internal: freq_scale = 1 llama_model_load_internal: ftype = 15 (mostly Q4_K - Medium) llama_model_load_internal: model size = 70B llama_model_load_internal: ggml ctx size = 0.21 MB llama_model_load_internal: using CUDA for GPU acceleration llama_model_load_internal: mem required = 40028.46 MB (+ 160.00 MB per state) llama_model_load_internal: offloading 0 repeating layers to GPU llama_model_load_internal: offloaded 0/83 layers to GPU llama_model_load_internal: total VRAM used: 704 MB llama_new_context_with_model: kv self size = 160.00 MB 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 | ### Instruction: 富士山の高さは? ### Response: llama_print_timings: load time = 31549.46 ms llama_print_timings: sample time = 40.00 ms / 21 runs ( 1.90 ms per token, 524.99 tokens per second) llama_print_timings: prompt eval time = 31549.41 ms / 19 tokens ( 1660.50 ms per token, 0.60 tokens per second) llama_print_timings: eval time = 42422.84 ms / 20 runs ( 2121.14 ms per token, 0.47 tokens per second) llama_print_timings: total time = 74083.31 ms ### Instruction: 富士山の高さは? ### Response: 富士山の高さは3,776メートルです。 ### Instruction: 日本の首相は? ### Response: Llama.generate: prefix-match hit llama_print_timings: load time = 31549.46 ms llama_print_timings: sample time = 1.90 ms / 1 runs ( 1.90 ms per token, 526.87 tokens per second) llama_print_timings: prompt eval time = 16564.29 ms / 12 tokens ( 1380.36 ms per token, 0.72 tokens per second) llama_print_timings: eval time = 0.00 ms / 1 runs ( 0.00 ms per token, inf tokens per second) llama_print_timings: total time = 16568.69 ms ### Instruction: 日本の首相は? ### Response: ### Instruction: 山手線1周の距離は? ### Response: Llama.generate: prefix-match hit llama_print_timings: load time = 31549.46 ms llama_print_timings: sample time = 51.05 ms / 26 runs ( 1.96 ms per token, 509.28 tokens per second) llama_print_timings: prompt eval time = 26497.14 ms / 19 tokens ( 1394.59 ms per token, 0.72 tokens per second) llama_print_timings: eval time = 52091.80 ms / 25 runs ( 2083.67 ms per token, 0.48 tokens per second) llama_print_timings: total time = 78729.78 ms ### Instruction: 山手線1周の距離は? ### Response: 山手線1周の距離は約34.5kmです。