プロジェクト

全般

プロフィール

ローカルLLM

はじめに

自然言語を理解し生成するAI技術の一つに、大規模言語モデル(Large Language Model: LLM)があります。
自然な文章となるように、単語の並び方に確率分布を持たせ、人の書いた文章を基に単語の出現確率をモデル化しています。
2017年に発表されたTransformer技術をベースとする深層学習で膨大なテキストデータの学習を行います。
適用例は、要約、翻訳、校正、レポート生成、質問対応、プログラミングコード生成などがあります。
インターネット上のサービスとして、ChatGPT、Gemini、Copilotなどが提供されています。

このLLMを、個人や企業がオンプレミスで保有する計算機でインターネット接続がなくても利用できるようにしたものがローカルLLMとなります。学習済みのLLMソフトウェアを動かし、追加の学習(ファインチューニング)をオンプレミス環境でインターネットから切り離した状況で行うことができます。そのため、社内資料などを外部に漏洩するリスクを避けることができます。

ローカルLLMを動かすには

PCのスペック

LLMはモデルが保有する学習可能な重みの総数をパラメータ数で表現しています。例えばパラメータ数4Bのモデルなら40億個の学習可能な重みで構成されています。LLMを動かすと、パラメータ数に依存する行列計算が実行されます。この計算を最も効率的に実行するハードウェア構成品がGPUとVRAMになります。特に最近のGPUでは行列計算用のテンソルコアが搭載され、多数の行列計算を並列実行することで高速化を果たしています。
CPUとメインメモリでも行列計算を実行することができますが、GPUに比べると数倍から数十倍遅く、パラメータ数が大きいほどさらに遅さが広がっていきます。

CPUとメインメモリについては、モデルを読み込みメモリ上に保持しデータの前処理を実施する部分に使われるので、そこそこのCPUスペックと、モデルのサイズ以上のメモリが必要になります(もちろんOSや他のソフトウェアの動作に必要な分を加えます)。

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モデルをダウンロードして実行するプラットフォームソフトウェアとして、OllamaやvLLMなどがあります。研究開発、PoCなどの検証用に簡単で使いやすいOllamaと、商用サービスでガッチリ動かすvLLMといった特性があります。

Ollamaのインストールと実行

ローカルLLMソフトウェア

オープンソースや無償で公開されているLLMのモデルがいくつもあります。

  • 米 Meta社(旧Facebook)のLlama
  • 米 Google社のGemma
  • 米 Microsoft社のPhi
  • 米 OpenAI社のgpt-oss
  • 仏 Mistral AI社のMistral
  • 中 アリババクラウドのQwen
  • 中 深度求策(DeepSeek)社のDeepSeek-R1
  • 中 智譜AI(Zhipu AI)社のGLM
  • 日ELYZA社の日本語対応 Llama
  • 日Lightblue社のsuzume-llama
    日本語チャットに最適化

選択の方針として、日本語処理の対応度合い、得意とするタスク、パラメータ数と量子化の度合い(どちらも実行に必要な計算機リソースに影響)などがあります。

ローカルLLM用モデルの調査メモ

ノートPCやそれに近い汎用のデスクトップPCで動く

小型のLLMでパラメータが1B〜4Bのもので、小さなVRAMでも動作します。

  • Gemma 3n E4B
    2025-06, 日本語対応, 汎用, 8B(実効4B), 32K, メモリ16GBのPCで動く(超省メモリ 3GB以上で動作可能)
  • Qwen3 0.6B / 1.7B / 4B
    日本語対応
  • Mistral 7B (量子化4bit)
  • Phi-3 Mini 3.8B
高性能PCで動く
  • gpt-oss-20b
    汎用, 21B(アクティブ3.6B)
  • Llama 3.1 8B
    汎用, 8B, 128K
    日本語対応は限定的
  • Llama 4 Scout 109B(アクティブ17B)
  • Qwen2.5 7B
    汎用, 7.6B, 131K
  • Qwen3 8B
  • Mistral 7B
    汎用, 7B, 32K
    英語が最も得意
  • Phi-3 Small 7B
AI向き高性能PCで動く
  • Mistral Small 3.1
    マルチモーダル, 24B, 128K
  • Qwen 2.5 14B
    汎用, 14B, 131K
    日本語含む29言語対応、構造化データ、長文生成
  • Qwen 3 32B
  • Llama 4 Scount 109B(アクティブ17B) 8bit
特定目的専用
  • plamo-2-translate
    英語→日本語翻訳に特化、長文に対応、プロンプト不要
  • DeepSeek-R1 8B
    複雑な推論タスクに特化, 8B(蒸留版), 128K
    強化学習(RL学習)
  • Phi-4
    STEM(数学、コーディング、推論)特化, 14B, 16K
    英語中心
  • QwQ
    Qwenをベースに推論能力を高めた
  • Qwen 2.5 coder
    コード生成に特化、14B
日本語対応の度合い
  • 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)

全パラメータのうち、必要な部分のみ活性化することで、精度向上、計算コスト低減が見込まれます。

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
4 qwen3:8b APL 2.0 8.19B Q4_K_M 5.2GB
4 qwen3:14b APL 2.0 14.8B Q4_K_M 9.3GB
5 qwen3:30b APL 2.0 30.5B Q4_K_M 19GB
6 gemma3:4b Gemma Terms 4.3B Q4_K_M 3.3GB
7 gemma3:12b Gemma Terms 12.2B Q4_K_M 8.1GB
8 gemma3:27b Gemma Terms 27.4B Q4_K_M 17GB
9 phi4:14b MIT 14.7B Q4_K_M 9.1GB
10 deepseek-r1:8b MIT 8.19B Q4_K_M 5.2GB

PCのスペックについて

ローカルLLMの実行において重要となるハードウェアは、

  • GPU
    GPUのVRAM容量が重要となります。LLMのモデルのパラメータ数が大きいほど必要なメモリ量が大きくなります。
MacBookの場合

MacBookのアーキテクチャは、メインメモリとVRAMがどちらもユニファイドメモリ上に置かれます。GPUはCPUに統合されています。そこで、Apple siliconの種類名(M4 とか M5)と搭載メモリ量が重要です。

最初の一歩

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モデルがダウンロードされます。
ダウンロードが完了すると、プロンプトを受け付ける状態になります。

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\ の下にされます。


約1ヶ月前に更新