プロジェクト

全般

プロフィール

ローカル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
インストール手順
  • ターミナルを開いて、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を設定して接続します。


12日前に更新