CPU環境でgpt-oss-20bを動かしたときのメモ

TL;DR

  • llama.cpp + gpt-oss-20B はローカルLLMとして実用的
  • 24GB RAM + 4コア CPUで動作
  • コンテキストが多くなってくるとCPUのみでは少し厳しい

環境

Oracle Cloud InfrastructureのAlways Free枠で構築したAmpere A1 Computeを利用

  • OS: Oracle Linux 9
  • CPU: 4コア
  • RAM: 24GB

手順

1. llama.cppをビルド

1
2
3
git clone https://github.com/ggml-org/llama.cpp
cmake -B build -DGGML_NATIVE=ON -DBUILD_SHARED_LIBS=OFF
cmake --build build --config Release -j$(nproc)

2. モデルのダウンロード

1
2
cd models/
wget https://huggingface.co/ggml-org/gpt-oss-20b-GGUF/resolve/main/gpt-oss-20b-mxfp4.gguf

3. 実行

1
~/llama.cpp/build/bin/llama-server --host 0.0.0.0 --port 8080 -m ~/llama.cpp/models/gpt-oss-20b-mxfp4.gguf --jinja -ngl 0 -t 4 -b 2048 -ub 2048 -c 2048

結果

パフォーマンス

コンテキスト量で変わるが、だいたい 8~12 token/sec くらいの生成速度だった