llama.cpp
やはりC/C++製のLLM推論エンジンが本命かなぁ、あらま;
投稿フォーム:
お名前: ニックネームでも何でもかまいません(必須)
パスワード: なりすまし防止のため利用して下さい(任意)
記事:
 
キャンセル 受取側の処理に時間がかかる場合があります
09 owa #e8faefa 2026/10/12 00:36 prob:0.0%
GGUFファイル作成 ■ 準備 1. venv仮想環境を最新にする 2. llama.cppで必要なモジュールをインストール (venv) ~/git$ pip install -r llama.cpp/requirements.txt 3. モデル(gemma-4-E4B-it)を取得 (venv) ~/git$ git clone https://huggingface.co/google/gemma-4-E4B-it Cloning into 'gemma-4-E4B-it' ... (venv) ~/git$ ls gemma-4-E4B-it/ llama.cpp/ venv/ ■ GGUF作成 4. まずGGUFを作成 (venv) ~/git$ llama.cpp/convert_hf_to_gguf.py gemma-4-E4B-it/ (venv) ~/git$ ls gemma-4-E4B-it/*.gguf Gemma-4-E4B-It-7.5B-BF16.gguf 5. 量子化(4bit) (venv) ~/git$ IN=gemma-4-E4B-it/Gemma-4-E4B-It-7.5B-BF16.gguf (venv) ~/git$ OUT=gemma-4-E4B-it/Gemma-4-E4B-It-7.5B-BF16-q4_k_m.gguf (venv) ~/git$ llama.cpp/build-cpu/bin/llama-quantize $IN $OUT q4_K_M ... 数分かかる (venv) ~/git$ du -m gemma-4-E4B-it/*.gguf 14,356MB Gemma-4-E4B-It-7.5B-BF16.gguf 5,089MB Gemma-4-E4B-It-7.5B-BF16-q4_k_m.gguf これまでも、このq4モデルを併用してました。
08 owa #e8faefa 2026/10/07 01:40 prob:0.0%
llama-cppサーバに接続 クライアント側からつなぐ説明を追加; まず OpenAI モジュールをインストール (venv) ~/llamapy$ pip install openai ソースコード(client.py) ________________________________________________________________________________ from openai import OpenAI client = OpenAI( base_url="http://{host2}:8000/v1", # {host2}はllama-cppサーバのアドレス api_key="sk-no-key-required", # llama-cpp-pythonでは空でも動く ) prompts = [ {"role":"system", "content":"あなたはMLBの選手です。"}, {"role":"user", "content":"正しく立つことを知ってますか?"}, ] response = client.chat.completions.create( model="local-model", # サーバー側で指定されたモデル名(任意) messages=prompts, temperature=0.7, # 高いほど多様な返答 ) print(response.choices[0].message.content) ________________________________________________________________________________ ■ 実行 (venv) ~/llamapy$ python client.py ああ、もちろんだ。 プロの世界で生き残るには、技術以前に「正しい立ち方」が基本中の基本だからな。 ...
07 owa #e8faefa 2026/10/06 01:28 prob:0.0%
llama-cpp-python鯖 ローカルLLMサーバとして起動してみました。 インタフェース(API)はOpenAI互換だそうです。 👉 https://llama-cpp-python.readthedocs.io/en/latest/server/ (venv) ~/llamapy$ python -m llama_cpp.server --model /data/models/gemma-4-12b-it-qat-q4_0.gguf --host 0.0.0.0 --port 8000 --verbose false --n_gpu_layers 99 --n_ctx 4096 --flash_attn true INFO: Started server process [32685] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) ________________________________________________________________________________ 外のマシンからhttp経由で会話ができます。 ようやくローカルLLMを利用できる環境が整いました(^.^; 今は麓。これから山を登ります。 Gradioなど、便利なツールがいろいろあるみたい。 でも、それは、また別の話...
06 owa #e8faefa 2026/10/04 01:50 prob:0.0%
llama-cpp-python実行サンプル ■ ソースコード (sample.py) ________________________________________________________________________________ from llama_cpp import Llama model='/data/models/gemma-4-12b-it-qat-q4_0.gguf' llm = Llama( model_path=model, # 自分のモデルに合わせてね! n_ctx=2048, # コンテキスト長(入力最大トークン数)...VRAMが余ってるならもっと大きく! n_gpu_layers=-1, # GPUを使う場合強烈に効く(-1:可能な限り使う、0:CPUのみ) verbose=False, # 詳細なログ出力しない(default=True) flash_attn=True # GPU次第。最新のCUDA設定では効くとか? ) prompts = [ {"role":"system", "content":"あなたは綺麗なお姉さんです。"}, {"role":"user", "content":"フリーレンのこと知ってますか?"}, ] output = llm.create_chat_completion( messages=prompts, temperature=0.7, # 高いほど多様な返答 ) print(output['choices'][0]['message']["content"]) ________________________________________________________________________________ ■ 実行 (venv) ~/llamapy$ python sample.py ええ、もちろん知っているわ。 『葬送のフリーレン』のことね。とても素敵で、少し切ない物語よね。 時を忘れて旅をするエルフの魔法使い... gemma-4-12b は、結構新しいモデルのようですわ(^^;
05 owa #e8faefa 2026/10/04 01:34 prob:0.0%
llama-cpp-python 勢いでインストールした 配布元👉 https://github.com/abetlen/llama-cpp-python ヒント👉 https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md ■ まず仮想環境作成 ~$ mkdir llamapy ~$ cd llamapy ~/llamapy$ python3 -m venv venv ~/llamapy$ source venv/bin/activate (venv) ~/llamapy$ python -m pip install --upgrade pip ■ llama-cpp-python のインストール (CUDAホストに対応) llama-cpp (CUDA版)を先にビルドしてて良かったと思う。同じ CMAKE オプションを使います (venv) ~/llamapy$ export CMAKE_ARGS='-DGGML_CUDA=ON -DGGML_CUDA_NCCL=OFF -DCMAKE_CUDA_ARCHITECTURES="86"' (venv) ~/llamapy$ pip install llama-cpp-python --no-cache-dir ソースからビルドするので、15分くらいかかりました... まずはllama-cppのビルド(cmake)を試して置くのが吉と思います。 一度失敗してから、再ビルドするには環境クリアなども必要です。 (venv) ~/llamapy$ pip install --upgrade --force-reinstall llama-cpp-python --no-cache-dir
04 owa #e8faefa 2026/10/03 17:30 prob:0.0%
CPU/CUDA/Vulkanの比較 ベンチマークを試してみました pp512 (Prompt Processing): 512トークンの入力速度 tg128 (Token Generation): 128トークンの生成速度 モデルは最初に定義して置きます ~/git/llama.cpp$ Model=/data/models/gemma-4-12b-it-qat-q4_0.gguf ■ CPUホスト ~/git/llama.cpp$ time build-cpu/bin/llama-bench -m "$Model" | model | size | params | backend | threads | test | t/s | | -------------- | -------: | ------: | ------- | ------: | ----: | ----------: | | gemma4 ?B Q4_0 | 6.48 GiB | 11.91 B | CPU | 4 | pp512 | 6.94 ± 0.10 | | gemma4 ?B Q4_0 | 6.48 GiB | 11.91 B | CPU | 4 | tg128 | 3.77 ± 0.03 | real 10m16.274s user 40m10.284s sys 0m3.167s ________________________________________________________________________________ ■ CUDAホスト ~/git/llama.cpp$ time build-cuda/bin/llama-bench -ngl 99 -m "$Model" | model | size | params | backend | ngl | test | t/s | | -------------- | -------: | ------: | ------- | --: | ----: | -------------: | | gemma4 ?B Q4_0 | 6.48 GiB | 11.91 B | CUDA | 99 | pp512 | 2507.27 ± 100. | | gemma4 ?B Q4_0 | 6.48 GiB | 11.91 B | CUDA | 99 | tg128 | 53.23 ± 0.07 | real 0m16.226s user 0m15.372s sys 0m0.845s ________________________________________________________________________________ ■ Vulkanホスト ~/git/llama.cpp$ time build-vulkan/bin/llama-bench -ngl 99 -m "$Model" | model | size | params | backend | ngl | test | t/s | | -------------- | -------: | ------: | ------- | --: | ----: | -------------: | | gemma4 ?B Q4_0 | 6.48 GiB | 11.91 B | Vulkan | 99 | pp512 | 1707.19 ± 0.69 | | gemma4 ?B Q4_0 | 6.48 GiB | 11.91 B | Vulkan | 99 | tg128 | 51.26 ± 0.06 | real 0m18.138s user 0m8.368s sys 0m0.969s
03 owa #5b7a147 2026/10/03 16:25 prob:0.0%
Vulkanも試してみた 参考👉 AMDローカルLLMホスティングにおけるROCm vs Vulkan:2026年版ガイド https://www.glukhov.org/ja/llm-hosting/comparisons/amd-rocm-vs-vulkan-llm-hosting/ ■ Vulkanホスト対応でビルド(CPU版ビルド後の環境です) ~/git/llama.cpp$ sudo apt install libvulkan-dev glslc glslang-tools spirv-headers ~/git/llama.cpp$ cmake -B build-vulkan -DGGML_VULKAN=ON ~/git/llama.cpp$ cmake --build build-vulkan --config Release -j 4 ■ コンソールから実行(モデルは同じ) ~/git/llama.cpp$ Model=/data/models/gemma-4-12b-it-qat-q4_0.gguf ~/git/llama.cpp$ build-vulkan/bin/llama-cli -m "$Model" _______________________________________________________ > こんにちは↵ こんにちは!何かお手伝いできることはありますか? 質問や相談など、何でもお気軽にどうぞ。 > /exit↵ _______________________________________________________ これも速い! 約50トークン/秒くらい。
02 owa #e8faefa 2026/10/03 01:02 prob:0.0%
CUDAホスト対応ビルド NVIDIAグラボならこれがベストか ■ 事前確認 ~$ nvidia-smi CUDA Version: 13.2 (対応する nvcc の最大バージョンらしい) ~$ nvcc -V release 12.0, V12.0.140 ■ CUDAホスト対応でビルド(CPU版ビルド後の環境です) ~/git/llama.cpp$ sudo apt install nvidia-cuda-toolkit ~/git/llama.cpp$ cmake -B build-cuda -DGGML_CUDA=ON -DGGML_CUDA_NCCL=OFF -DCMAKE_CUDA_ARCHITECTURES="86" [注意1] nccl (マルチGPU) について警告が出ます -DGGML_CUDA_NCCL=OFF を追加 [注意2] Linux Mint 22.3 の nvcc V12.0 は古いらしい、エラーになる -DCMAKE_CUDA_ARCHITECTURES="86" を追加 失敗したらbuild-cudaを削除し、原因を修正し "cmake -B build-cuda ..." を繰り返します ~/git/llama.cpp$ rm -rf build-cuda ~/git/llama.cpp$ cmake -B build-cuda -DGGML_CUDA=ON ... そしてビルド ~/git/llama.cpp$ cmake --build build-cuda --config Release -j 4 ■ コンソールから実行(モデルは同じ) ~/git/llama.cpp$ Model=/data/models/gemma-4-12b-it-qat-q4_0.gguf ~/git/llama.cpp$ build-cuda/bin/llama-cli -m "$Model" _______________________________________________________ > こんにちは↵ こんにちは!何かお手伝いできることはありますか? ご質問や、相談したいこと、またはただの雑談など、何でもお気軽にお話しください。 > /exit↵ _______________________________________________________ さすがに速い! 約50トークン/秒くらい。
01 owa #e8faefa 2026/10/03 01:01 prob:0.0%
llama.cppインストール CPUホスト版なら、大きなGPUが無くても動くらしい ■ まずは llama.cpp をダウンロード ~$ sudo apt install git git-lfs ~$ mkdir git ~$ cd ~/git ~/git$ git clone https://github.com/ggml-org/llama.cpp.git ~/git$ ls llama.cpp/ ~/git$ cd llama.cpp/ ■ CPUホストに設定してビルド ~/git/llama.cpp$ sudo apt install cmake g++ libcurlpp-dev ccache libssl-dev ~/git/llama.cpp$ cmake -B build-cpu ~/git/llama.cpp$ cmake --build build-cpu --config Release -j 4 ■ コンソールから実行 gemma-4-12bモデル(ggufファイル)をダウンロード https://www.kaggle.com/models/google/gemma-4/gguf そして起動 ~/git/llama.cpp$ Model=/data/models/gemma-4-12b-it-qat-q4_0.gguf ~/git/llama.cpp$ build-cpu/bin/llama-cli -m "$Model" _______________________________________________________ build : b11294-185103dcf model : /data/models/gemma-4-12b-it-qat-q4_0.gguf ftype : Q4_0 modalities : text available commands: /exit or Ctrl+C stop or exit /regen regenerate the last response /clear clear the chat history /read <file> add a text file /glob <pattern> add text files using globbing pattern _______________________________________________________ > こんにちは↵ こんにちは!何かお手伝いできることはありますか? > /exit↵ _______________________________________________________ 毎秒数トークンでした。