今回はVRAMの容量別でおすすめのローカルLLMのモデルを動作させる方法を紹介します。


ローカルLLM総集編

本連載では、幾度となくローカルLLMを紹介しています。


昨年と今年の記事だけをピックアップしてもこれだけあります。第877回を除いて筆者が執筆しています。興味がOllamaからllama.cppに移行しているのがわかりやすいですね。

これは筆者がローカルLLMに対して強い興味を抱いているからですが、動かしていて面白いというのもあります。クラウドサービスはそもそもUbuntuかどうかは関係ないので本連載の対象外である、という点も大きいですが。

記事も多岐にわたるため、これまでに紹介したGPU、紹介しなかったGPUも含めて、GPUのメーカーとVRAMの容量別でおすすめのモデルの使い方をまとめます。いわば現時点の総集編です。


使用するPC

今回使用するPCの詳細は次のとおりです。





メーカー
型番
備考




CPU
AMD
Ryzen 7 5700X



メモリー
Crucial
CT2K32G4DFD832A
64GB


マザーボード
MSI
MPG B550I GAMING EDGE WIFI



CPUファン
サイズ
SHURIKEN2



グラフィックボード
本文参照
本文参照



SSD1
MSI
SPATIUM S270 SATA 2.5″ 960GB
NVIDIA用


SSD2
KIOXIA
TC10480G02
AMD用


SSD3
CFD
CSSD-S6L512MGAX
Intel用


電源ユニット
Silver Stone
SX700-PT



電源ユニットケーブル
Silver Stone
SST-PP05-E



電源ユニットマウンター
Silver Stone
SST-PP08B



ケース
Silver Stone
SG13B


Ubuntuのバージョンは24.04.4 LTSです。


llama.cppの準備

LLMを動作させるのはllama.cppとします。バイナリの用意はGPUのメーカー別に分かれるので個別に紹介します。


NVIDIA CUDA

llama.cppではUbuntuのNVIDIA CUDA用バイナリは配布していないので、自前でビルドする必要があります。

おおむね第891回のとおりですが、NVIDIAドライバーのバージョンは現時点で最新バージョンの590としています(図1)。


図1 執筆段階での最新版は590

CUDAのバージョンも最新の13.2としています。インストール方法は次のとおりです。


$ ~/Downloads/
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
$ sudo apt install ./cuda-keyring_1.1-1_all.deb
$ sudo apt update
$ sudo apt install cuda-toolkit-13-2

nvidia-smiコマンドでは、なぜか13.1と表示されています(図2)。


図2 CUDA Versionがなぜか13.1になっている

llama.cppのビルドコマンドは次のとおりです。


$ sudo apt install -y git git-lfs cmake g++ libcurlpp-dev
$ mkdir ~/git
$ cd ~/git
$ git clone https://github.com/ggml-org/llama.cpp.git
$ cd llama.cpp
$ CUDACXX=/usr/local/cuda-13.2/bin/nvcc cmake -B build-cuda -DGGML_CUDA=ON
$ cmake –build build-cuda –config Release -j 16

実際に実行するコマンドは今回の例だと~/git/llama.cpp/build-cuda/bin/以下にあります。


AMD ROCm

llama.cppのリリースページを見ると、Linuxのところに「Ubuntu x64 (ROCm 7.2)」があります。これがRadeon用のバイナリです。換言すると、自前でビルドする必要はありません。

もちろんこれを使用してもいいのですが、llamacpp-rocmというAMDによる独自のllama.cppがあるので、こちらを使用します。対応GPUが多いというメリットもあります。

複数のバイナリが用意されており、GPU毎に使用するものが異なるため、Supported Devicesを参考にダウンロードしてください。

ダウンロードしたバイナリをunzipコマンドで展開する場合、カレントフォルダーにファイルやフォルダーを展開してしまうので、事前にフォルダーを作成するなど気をつけてください。また実行ファイルに実行権限が付けられていないので、chmod +x llama-*を実行してください。

また重要な点として、実行前に次のコマンドで現在使用しているユーザーをrenderグループに所属させてください。


sudo usermod -a -G render $USER

実行後は再起動してください。


Intel oneAPI

第904回で紹介しているので、ここでは省略します。


Vulkan

速度はさておきllama.cppをビルドするのが面倒だという場合には、リリースページの「Ubuntu x64 (Vulkan)」を使用するという手もあります。「⁠Ubuntu x64 (Vulkan)」をクリックしてダウンロードしてください。場合によってはVUlkanのほうが速いこともある、というのは第904回のとおりです。また今回検証はしていませんが、Radeonでもその傾向があります。


VRAM6〜8GBのGPU

では具体的なVRAM容量別での使い方を紹介します。


使用するモデル

VRAMが6〜8GBのグラフィックボードで動作するおすすめのモデルは、Qwen3.5-9Bです。Q4_K_Mで量子化したものでいいでしょう。チャットを使用するのであればこのくらいがミニマムで、これよりも小さいモデルになると快適にはなりますが実用は厳しいと言わざるを得ません。

またQwen3.5-9BはInstructとThinkingの両対応なのも特徴です。Instructは入力した文章をそのまま解釈して結果を返します。一方Thinkingは入力した文章を一旦解釈し、結果を返します。前者のほうが速いですが、後者のほうがより正解に近い結果を返す傾向にあります。

コマンドの実行例は次のとおりです。まずはInstructから。


$ ./build-cuda/bin/llama-server –model ~/Downloads/Qwen3.5-9B-Q4_K_M.gguf –ctx-size 16384 –temp 0.6 –top-p 0.95 –top-k 20 –min-p 0.00 –port 8080

Thinkingにするには、このコマンドを実行します。


$ ./build-cuda/bin/llama-server –model ~/Downloads/Qwen3.5-9B-Q4_K_M.gguf –ctx-size 16384 –temp 0.6 –top-p 0.95 –top-k 20 –min-p 0.00 –port 8080 –reasoning on

使用するGPU

ここで使用するGPUは次のとおりです。


NVIDIA GeForce RTX 3050

第876回で使用したGeForce RTX 3050 LP 6Gです。この頃は25000円程度で購入できたのですが、今は1万円くらい上がっているようで、正直今から買うならもう少し出してGeForce RTX 5050のほうがいいような気はします。

ベンチマークの結果は図3とおりです。


図3 GeForce RTX 3050での結果


AMD Radeon 6600 XT

AMD Radeon 6600 XTは廃番になって久しいですが、7600や9060のVRAM 8GBモデルと見立ててください。

llamacpp-rocmのSupported Devicesによると、Radeon 6000シリーズはgfx103Xということなので、「⁠llama-(⁠リビジョン⁠)⁠-ubuntu-rocm-gfx103X-x64.zip」をダウンロードし、展開します。

あとは前述のとおりに展開し、実行できる状態にしてください。

ベンチマークの結果は図4のとおりです。


図4 Radeon RX 6600 XTでの結果


VRAM12GBのGPU
使用するモデル

VRAMが12GBのグラフィックボードで動作するおすすめのモデルは、第902回で紹介したgpt-oss-20bです。またその派生版であるGPT-OSS Swallow 20bでもいいでしょう。

ダウンロード元や起動時のオプションは第902回をご覧ください。とはいえVRAMが16GB前提のオプションで、12GBではコンテキストサイズを減らす必要がありました。


$ ./llama-server -m ~/Downloads/gpt-oss-20b-mxfp4.gguf –threads -1 –ctx-size 8192 –jinja -ngl 99 –flash-attn on –port 8080 –temp 1.0 –top-p 1.0 –top-k 0.0 –no-mmap –fit on –no-warmup

使用するGPU
NVIDIA GeForce RTX 3060

第817回で使用したGeForce RTX 3060 AERO ITX 12G OCはVRAMが12GBあるので、2世代前のモデルであってもまだまだ活用できる機会があります。

ベンチマークの結果は図5のとおりです。


図5 GeForce RTX 3060での結果


Intel Arc B860

第904回で紹介したばかりなので、詳細は省略します。

参考のため、Vulkanでのベンチマーク結果を図6に掲載します。


図6 Intel Arc B580のVulkanでの結果


VRAM16GBのGPU
使用するモデル

Qwen 3.5はパラメータ数によってさまざまなモデルがリリースされています。いろいろ試してみた結果、27Bがベストであるという結論に達しました。レビューを見ていても同じ結論に達しているものが少なからずあります。とはいえ27BはVRAMが16GBだと少し荷が重く、Q3_K_Mで量子化したものを使用する必要があります。よって、Q4_K_Mで量子化されたモデルを使用するよりも、精度が落ちることになります。

また27Bは比較的重いモデルで、VRAMが16GBのミドルローのグラフィックボードには若干荷が重いです。筆者のメインPCではRadeon RX 7800 XTを使用しており、このクラスだと快適に動作しています。速度よりも精度を重視してモデルを選択しているということをご承知おきください。

実行例は次のとおりです。


$ ./llama-server -m ~/Downloads/Qwen3.5-27B-Q3_K_M.gguf –threads -1 –ctx-size 16768 –port 8080 –temp 0.7 –top-p 0.8 –top-k 20 –min-p 0.00 –presence_penalty 1.0 –no-warmup –no-mmap –fit on

使用するGPU
NVIDIA GeForce RTX 5060 Ti

第891回で紹介した、GeForce RTX 5060 Ti 16G VENTUS 2X OC PLUSを使用します。

ベンチマークの結果は図7のとおりです。


図7 GeForce RTX 5060 Tiでの結果


AMD Radeon RX 9060 XT

第868回と第891回で紹介したRD-RX9060XT-E16GB/DFを使用します。

llamacpp-rocmのSupported Devicesによると、Radeon 6000シリーズはgfx120Xということなので、「⁠llama-(⁠リビジョン⁠)⁠-ubuntu-rocm-gfx120X-x64.zip」をダウンロードし、展開します。

あとは前述のとおりに展開し、実行できる状態にしてください。

ベンチマークの結果は図8のとおりです。


図8 Radeon RX 9060 XTでの結果。正直常用は厳しい


llama-serverの接続先

今回の例では、llama-serverはポート8080で接続できるようにしています。もし変更したい場合は、「⁠–port」オプションを変更してください。

また接続元もlocalhostに限定しています。どこからでも接続できるようにしたい場合は、「⁠–host」オプションを追加してください。どこからでもアクセスできるようにしたい場合は「–host 0.0.0.0」とします。