ローカルLLM¶
- 目次
- ローカルLLM
はじめに¶
自然言語を理解し生成するAI技術の一つに、大規模言語モデル(Large Language Model: LLM)があります。
自然な文章となるように、単語の並び方に確率分布を持たせ、人の書いた文章を基に単語の出現確率をモデル化しています。
2017年に発表されたTransformer技術をベースとする深層学習で膨大なテキストデータの学習を行います。
LLMの適用例は、要約、翻訳、校正、レポート生成、質問対応、プログラミングコード生成などがあります。
LLMに基づくインターネット上のサービスとして、ChatGPT、Gemini、Copilotなどが提供されています。
このLLMを個人や企業がオンプレミスで保有する計算機で動作させることで、インターネット接続がなくても利用できるようにしたものがローカルLLMとなります。学習済みのLLMソフトウェアを動かし、追加の学習(ファインチューニング)をオンプレミス環境でインターネットから切り離した状況で行うことができます。そのため、社内資料などを外部に漏洩するリスクを避けることができます。
ローカルLLMを動かすには¶
PCのスペック¶
ローカルLLMの学習済みモデルは、深層学習におけるニューラルネットワーク内のニューロン間の接続の強さと、ニューロン出力に固定的に加算するバイアスなどをパラメータとして保持し、その総数をパラメータ数で表現しています。例えばパラメータ数4B(4 Billion: 40億)のモデルなら40億個の学習済みの重みとバイアスなどのパラメータで構成されています。学習時は1つのパラメータをFP16(16bit 浮動小数点数)で扱うことが一般的で、パラメータ数4Bの場合モデルのデータ量は8GB(40億×16bit÷8)となります。パラメータ数が大きくなると膨大なメモリを必要とします(130Bのモデルの場合、260GB以上)。
推論時は1つのパラメータを16bitより小さい値、例えば8bitや4bitと減らして多少粗い値としても結果に大きな影響がないので、1つのパラメータを表現するbit数(量子化)を小さくし(FP8、FP4など)、モデルのデータ量を小さくすることで使用するメモリを削減する手法が用いられています。
ローカルLLMではFP4の量子化を取るモデルがそこそこあり、例えばパラメータ数7Bで量子化4bitとするとデータ量は3.5GBとなります。
推論を実施するときは、基本的にはニューラルネットワークの重みとバイアスをすべて使って計算をするため、モデルのパラメータを全てメモリに展開しておきます1。計算をGPUで処理する場合は、GPUが持つVRAMの容量は少なくともモデルのパラメータ以上のサイズが必要となります。
LLMの推論ではパラメータ数に依存する回数の行列計算が実行されます。この計算を最も効率的に実行するハードウェア構成品がGPUとVRAMになります。最近のGPUでは行列計算用のテンソルコアが搭載され、多数の行列計算を並列実行することで高速化を果たしています。実用的な性能でLLMの推論を実行するには、GPUとVRAMを使用します。
CPUとメインメモリでも行列計算を実行することができますが、GPUとVRAMに比べると数倍から数十倍遅く、パラメータ数が大きいほどさらに遅さが広がっていきます。
次に、具体的なPCの構成を記載します。
1 MoE(Mixture of Experts)などすべてのパラメータを同時必要としない方式も登場している
Intel系 PC¶
Intel系PCでは、CPU内蔵のGPUは専用のメモリ(VRAM)を持っておらず、メインメモリの一部をGPU用に区分して使用します。そのため、GPUとメモリ間のデータ転送速度がVRAM搭載GPUに比べて遅くなります。
- NVIDIA GeForce RTX 5060/Tiは 448GB/sの帯域
- DDR5-5200メモリのデュアルチャネルで83.2GB/sの帯域
さらにCPU内蔵GPUの場合、CPUとGPUが同じメインメモリバスを共有するため、GPUが利用できる帯域は上述よりも遅くなります。
これらを考慮すると、ローカルLLMを動かすPCは専用のグラフィックスボードを搭載し、VRAM容量も16GB以上を持つのが望ましいです。
MacBook¶
Apple Mシリーズプロセッサ搭載のMacBookでは、CPUとGPUはメインメモリ/VRAMを統合したユニファイドメモリにアクセスします。ユニファイドメモリはCPUやGPUと同じSoC上に実装されており、メモリ帯域はM4チップで120GB/s、M4 Proで273GB/sとなっています。
32GBメモリを搭載したMacBookの場合、OSやアプリケーションが使用するメインメモリを残して後はVRAMとして動的に割当てることで16GB~24GBほどのVRAMをLLMの処理に使用することができます。
ソフトウェア¶
学習済みのローカルLLMモデルをダウンロードして実行するプラットフォームソフトウェアとして、Llama.cpp、Ollama、LM StudioやvLLMなどがあります。
Llama.cpp は名前の通りC++ソースコードで提供され、利用するにはコンパイル・ビルドをします。
Ollama、LM Studioは、インターネット上にあるLLMモデルをダウンロード・実行するツールです。Ollamaはコマンドラインから使うのが主体で、LM StudioはGUI環境から使うツールです。
vLLMは、Pythonのライブラリとして提供され、PagedAttention技術によりメモリ使用量を抑えつつLLMを動かすことなど運用での調整が可能で商用サービスで利用されます。
Ollamaのインストールと実行¶
ローカルLLMソフトウェア¶
オープンウェイト(学習済みAIモデルの重みのみを公開)ソースや無償で公開されているLLMのモデルがいくつもあります。
- 米 Meta社(旧Facebook)のLlama
- 米 Google社のGemma
- 米 Microsoft社のPhi
- 米 OpenAI社のgpt-oss
- 仏 Mistral AI社のMistral、Devstral
- 中 アリババクラウドのQwen
- 中 深度求策(DeepSeek)社のDeepSeek-R1
- 中 智譜AI(Zhipu AI)社のGLM
- 日ELYZA社の日本語対応 Llama
米Meta社のLlamaをベースに日本語能力向上 - 日Lightblue社のsuzume-llama
日本語チャットに最適化
選択の方針として、日本語処理の対応度合い、得意とするタスク、パラメータ数と量子化の度合い(どちらも実行に必要な計算機リソースに影響)などがあります。
ローカルLLM用モデルの調査メモ¶
ノートPCやそれに近い汎用のデスクトップPCで動く¶
小型のLLMでパラメータが1B〜4Bのもので、小さなVRAMでも動作します。
- Gemma 3n E4B
2025-06, 日本語対応, 汎用, 8B(実効4B), 32K, メモリ16GBのPCで動く(超省メモリ 3GB以上で動作可能) - Gemma 4 E4B
2026-04, 日本語対応, 推論, 8B(実効4.5B), 画像・動画・音声入力, 128K - Gemma 4 26B MoE(推論時3.8B)
256K, メモリ32GB以上のMac - Qwen3 0.6B / 1.7B / 4B
日本語対応 - Mistral 7B (量子化4bit)
- Phi-3 Mini 3.8B
高性能PCで動く¶
- gpt-oss-20b
汎用, 21B(アクティブ3.6B) - Llama 3.x 8B
汎用, 8B, 128K
日本語対応は限定的 - Llama 4 Scout 109B(アクティブ17B)
- Qwen2.5 7B
汎用, 7.6B, 131K - Qwen3 8B
- Mistral 7B
汎用, 7B, 32K
英語が最も得意 - Phi-3 Small 7B
- Phi 4 Mini 3.8B
AI向き高性能PCで動く¶
- Gemma 2 27B
- Gemma 3 27B
- Gemma 4 31B
- Mistral Small 3.1
マルチモーダル, 24B, 128K - Qwen 2.5 14B
汎用, 14B, 131K
日本語含む29言語対応、構造化データ、長文生成 - Qwen 3 32B
- Llama 4 Scount 109B(アクティブ17B) 8bit
- Phi 4 14B
コード生成¶
- CodeLlama 7B/13B/34B/70B
Meta社製、Llama 2にコーディング追加学習、100Kトークン - Codestral 22B
Mistral製、32Kトークン - DeepSeek Coder v3 1.5B/7B/33B
- Devstral 2 123B
コード生成に特化、256Kトークン - Devstral Small 2 24B
Devstral 2の軽量版、256Kトークン - Nemotron 3
- Qwen 2.5 coder 1.5B/3B/7B/14B/32B
コード生成に特化、32Kトークン - Qwen 3 coder 30B(MoE 3.3B)/480B(MoE 35B)
Agent、コード生成、256Kトークン - Qwen 3 Coder Next 80B(3B)
- StarCoder2 3B/7B/15B
Hugging FaceとServiceNow共同開発
Windows PC、VRAM 8GBでの候補
Qwen 2.5 Coder 7B
MacBook 32GBでの候補
Qwen 2.5 Coder 14B
Codestral 22B (Q4)
特定目的専用¶
- plamo-2-translate
英語→日本語翻訳に特化、長文に対応、プロンプト不要 - DeepSeek-R1 8B
複雑な推論タスクに特化, 8B(蒸留版), 128K
強化学習(RL学習) - Phi-4
STEM(数学、コーディング、推論)特化, 14B, 16K
英語中心 - QwQ
Qwenをベースに推論能力を高めた
日本語対応の度合い¶
- Qwen2.5やGemma 3など。Gemma 3はマルチモーダル(画像・音声)
- ELYZA-japanese-Llama-2 7B 2023年8月
Llama 2に日本語の追加学習をしたもの。 - Llama-3-ELYZA-JP 8B 2024年6月
Llama 3に日本語の追加学習をしたもの。
量子化(quantization)¶
モデルの重みを少ないビット数で表現することでメモリ使用量を削減します。また、計算コストも削減可能です。
- MXFP4
4.25bit/parameter、
MoE(Mixture of Experts)¶
全パラメータのうち、必要な部分のみ活性化することで、精度向上、計算コスト低減が見込まれます。
フォーマット¶
- GGUF(GPT-Generated Unified Format)
デファクト、llama.cpp、Ollama、LM Stuidoで使われている。CPU/GPUで動作、量子化適用モデル(4bit Q4_K_M)が多い。
- MLX(Apple MLX)
Apple Siliconに特化した形式
Ollamaで利用可能なモデル¶
多数あるので以下は抜粋
| No. | モデル名 | ライセンス | パラメータ数 | 量子化 | file size | VRAM |
|---|---|---|---|---|---|---|
| 1 | gpt-oss:20b | APL 2.0 | 20B | MXFP4 | 12GB | 16GB |
| 2 | gpt-oss:120b | APL 2.0 | 120B | MXFP4 | 40GB | 64GB |
| 3 | qwen3:4b | APL 2.0 | 4.02B | Q4_K_M | 2.5GB | 4GB |
| 4 | qwen3:8b | APL 2.0 | 8.19B | Q4_K_M | 5.2GB | 8GB |
| 4 | qwen3:14b | APL 2.0 | 14.8B | Q4_K_M | 9.3GB | 12GB |
| 5 | qwen3:30b | APL 2.0 | 30.5B | Q4_K_M | 19GB | 24GB |
| 6 | gemma3:4b | Gemma Terms | 4.3B | Q4_K_M | 3.3GB | 4GB |
| 7 | gemma3:12b | Gemma Terms | 12.2B | Q4_K_M | 8.1GB | 12GB |
| 8 | gemma3:27b | Gemma Terms | 27.4B | Q4_K_M | 17GB | 24GB |
| 9 | phi4:14b | MIT | 14.7B | Q4_K_M | 9.1GB | 12GB |
| 10 | deepseek-r1:8b | MIT | 8.19B | Q4_K_M | 5.2GB | 8GB |
PCのスペックについて¶
ローカルLLMの実行において重要となるハードウェアは、
- GPU
GPUのVRAM容量が重要となります。LLMのモデルのパラメータ数が大きいほど必要なメモリ量が大きくなります。
MacBookの場合¶
MacBookのアーキテクチャは、メインメモリとVRAMがどちらもユニファイドメモリ上に置かれます。GPUはCPUに統合されています。そこで、Apple siliconの種類名(M4 とか M5)と搭載メモリ量が重要です。
最初の一歩¶
Ollama on macBook Air M4(メモリ32GB)¶
- Ollama を Homebrew からインストールします。
- 使用するローカルLLMモデルを選択します。
- 日本語対応に優れるとされている Qwen シリーズで、最新の Qwen3 から動作しそうな範囲のパラメータとして 8Bまたは14Bを候補にします。ダウンロードサイズが5.2GB/9.3GBとなるのでまずは8Bモデルを動かしてみます。
Qwen3のモデルは Ollama リポジトリにアップされています。
https://ollama.com/library/qwen3
- 日本語対応に優れるとされている Qwen シリーズで、最新の Qwen3 から動作しそうな範囲のパラメータとして 8Bまたは14Bを候補にします。ダウンロードサイズが5.2GB/9.3GBとなるのでまずは8Bモデルを動かしてみます。
インストール手順¶
- ターミナルを開いて、Ollamaをフォアグラウンドで実行
ollama serve - 別なターミナルを開いて、Qwen3:8bモデルを実行
% ollama run qwen3:8b MLX: Failed to load symbol: mlx_metal_device_info pulling manifest pulling a3de86cd1c13: 100% ▕██████████████████▏ 5.2 GB : success >>> Send a message (/? for help)
$HOME/.ollama ディレクトリの下にLLMモデルがダウンロードされます。
ダウンロードが完了すると、プロンプトを受け付ける状態になります。
Ollama on Windows 11 Ryzen 7900X RTX4060¶
- OllamaサイトからWindows版インストーラをダウンロード
https://ollama.com/download/windows - インストーラーを実行
%LOCALAPPDATA%\Programs\Ollamaにインストールされる - スタートから Ollama を実行
簡素ながらGUIが起動、右下にLLMモデルの選択ドロップダウンリストがあります。メッセージを入力すると初回は選択したLLMモデルのダウンロードが始まります。今回は[qwen3:4b]を選択 - メッセージ欄に何かテキストを入れます(「こんにちは」)。qwen3 4Bのダウンロードが開始されます(2.3GB)。
- ダウンロードが完了すると推論が始まり応答が返ってきます。
ダウンロードは、%USERPROFILE%\.ollama\の下にされます。
LM Studio on MacBook Air M4 (メモリ32GB)¶
- LM Studio を Homebrew からインストールします。
- 使用するローカルLLMモデルを選択します。
- プログラミング(コード生成)に使用してみたいので、Qwen 2.5 coder 14B をダウンロード
- Qwen 2.5 coder 14B をロード
チャット利用¶
Chatタブからプロンプトを入力すると応答が返ってきます。
コード生成利用¶
IDEから利用します。
DeveloperタブからLocal Server で、右ペインの左上端の Status が Stoppedになっているので Startします。
するとサーバーURLが表示されるので、IDEからLM Studioに、このURLを設定して接続します。