はじめに

クラウドベースのLLMサービス(ChatGPT、Claude、Gemini等)は非常に便利ですが、機密情報を扱う開発現場やセキュリティポリシーが厳格な組織では、データの外部送信が許容されないケースがあります。そこで注目されているのが、ローカル環境で動作するLLM(Large Language Model)です。

本記事では、ローカルLLM環境構築のための2大ツールであるOllamaLM Studioを使った環境構築方法を解説します。モデル選定や量子化の基礎知識、VS Codeとの連携方法、そして社内開発アシスタントとしての活用例まで、実践的な内容をカバーします。

この記事を読むことで、以下のことが理解・実践できるようになります。

  • ローカルLLMのメリットと適用シーン
  • OllamaとLM Studioの導入・基本操作
  • モデル選定と量子化レベルの選び方
  • VS Code拡張機能を使った開発アシスタント構築
  • 社内利用における運用のベストプラクティス

ローカルLLMのメリットとユースケース

なぜローカルLLMが必要か

ローカルLLMを導入する主な理由は以下の通りです。

メリット 説明
データプライバシー 機密コードや顧客情報が外部に送信されない
オフライン動作 インターネット接続なしでAIを利用可能
コスト削減 API利用料が発生しない(初期のハードウェア投資は必要)
レイテンシ低減 ネットワーク遅延がなく、応答が高速
カスタマイズ性 独自データでのファインチューニングが容易

主なユースケース

ローカルLLMは以下のようなシーンで特に有効です。

  • 機密性の高いコードレビュー: 社内のプロプライエタリなコードをAIに分析させる
  • オンプレミス環境での開発支援: クラウド接続が制限された環境での開発
  • エアギャップ環境: 完全にインターネットから隔離されたセキュアな開発環境
  • 大量処理: API制限を気にせず、大量のファイル処理やバッチ分析を実行
  • カスタムAIアシスタント: 社内ドキュメントを学習させた専用アシスタントの構築

実行環境と前提条件

ローカルLLMを快適に動作させるには、一定のハードウェアスペックが必要です。

推奨スペック

項目 最低要件 推奨スペック
RAM 8GB 16GB以上(32GB推奨)
GPU VRAM 4GB 8GB以上
ストレージ 10GB空き SSD 50GB以上
CPU AVX2対応(x64) 最新世代のマルチコアCPU

対応OS

OS Ollama LM Studio
Windows x64 x64/ARM64
macOS Apple Silicon/Intel Apple Silicon(M1/M2/M3/M4)
Linux x64 x64/ARM64

モデルサイズとメモリの目安

モデルパラメータ数 必要RAM目安 代表的なモデル
1B〜3B 4GB〜8GB Gemma 3:1b、Llama 3.2:1b
7B〜8B 8GB〜16GB Llama 3.1:8b、Mistral 7B
13B〜14B 16GB〜24GB Phi 4:14b
32B〜70B 32GB〜64GB QwQ:32b、Llama 3.3:70b

OllamaによるローカルLLM構築手順

Ollamaは、ローカルLLMを最も簡単に導入・管理できるツールです。CLIベースで動作し、Docker的なアプローチでモデルを管理できます。

Ollamaのインストール

各OSに応じたインストール方法を紹介します。

Windows:

  1. Ollamaダウンロードページからインストーラーをダウンロード
  2. OllamaSetup.exeを実行してインストール

macOS:

  1. Ollamaダウンロードページから.dmgファイルをダウンロード
  2. アプリケーションフォルダにドラッグ&ドロップ

Linux:

1
curl -fsSL https://ollama.com/install.sh | sh

モデルのダウンロードと実行

インストール後、ターミナルで以下のコマンドを実行してモデルをダウンロードします。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Gemma 3(4Bパラメータ、3.3GB)を実行
ollama run gemma3

# 軽量なGemma 3(1B、815MB)を実行
ollama run gemma3:1b

# DeepSeek-R1(推論特化モデル)を実行
ollama run deepseek-r1

# コード生成向けCode Llamaを実行
ollama run codellama

初回実行時にモデルが自動ダウンロードされ、完了後すぐにチャットが開始されます。

基本的なCLIコマンド

Ollamaの主要コマンドを以下に示します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 利用可能なモデル一覧を表示
ollama list

# モデルをダウンロード(実行せずにダウンロードのみ)
ollama pull llama3.2

# モデルを削除
ollama rm llama3.2

# 現在実行中のモデルを確認
ollama ps

# モデルを停止
ollama stop llama3.2

# モデルの詳細情報を表示
ollama show llama3.2

REST APIの利用

OllamaはローカルでREST APIサーバーを起動し、プログラムから呼び出すことができます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# テキスト生成API
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Pythonで素数判定関数を書いてください"
}'

# チャットAPI
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    { "role": "user", "content": "TypeScriptとは何ですか?" }
  ]
}'

Pythonからの利用例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import requests
import json

def chat_with_ollama(prompt: str, model: str = "llama3.2") -> str:
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={"model": model, "prompt": prompt, "stream": False}
    )
    return response.json()["response"]

# 使用例
result = chat_with_ollama("Dockerfileのベストプラクティスを3つ教えて")
print(result)

カスタムモデルの作成(Modelfile)

OllamaではModelfileを使って、既存モデルをカスタマイズできます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Modelfile
FROM llama3.2

# パラメータ設定
PARAMETER temperature 0.7
PARAMETER top_p 0.9

# システムプロンプト
SYSTEM """
あなたは経験豊富なシニアソフトウェアエンジニアです。
コードレビュー、設計相談、技術的な質問に対して、
具体的で実践的なアドバイスを提供してください。
回答は日本語で行ってください。
"""

カスタムモデルを作成して実行:

1
2
3
4
5
# カスタムモデルを作成
ollama create my-code-assistant -f ./Modelfile

# カスタムモデルを実行
ollama run my-code-assistant

LM StudioによるローカルLLM構築手順

LM Studioは、GUIベースでローカルLLMを管理・実行できるデスクトップアプリケーションです。直感的なインターフェースで、Hugging Faceからのモデルダウンロードやチャット、APIサーバー機能を提供します。

LM Studioのインストール

  1. LM Studioダウンロードページにアクセス
  2. お使いのOSに対応したインストーラーをダウンロード
  3. インストーラーを実行してセットアップ完了

システム要件

OS 要件
macOS Apple Silicon(M1/M2/M3/M4)、macOS 13.4以上、16GB RAM推奨
Windows x64/ARM64、AVX2対応CPU、16GB RAM推奨、4GB以上のGPU VRAM推奨
Linux x64/ARM64、Ubuntu 20.04以上、AppImage形式

モデルのダウンロード

  1. LM Studioを起動
  2. 左サイドバーの「Models」タブをクリック
  3. 検索バーでモデル名を検索(例: llama, qwen, deepseek
  4. ダウンロードしたいモデルの量子化バージョンを選択
  5. 「Download」ボタンをクリック

チャット機能の利用

  1. 左サイドバーの「Chat」タブを選択
  2. 上部のモデルセレクターからロードするモデルを選択
  3. 「Load Model」をクリック
  4. テキスト入力欄にプロンプトを入力してチャット開始

ローカルAPIサーバーの起動

LM StudioはOpenAI互換のAPIサーバーを提供します。

  1. 左サイドバーの「Developer」タブを選択
  2. 使用するモデルを選択してロード
  3. 「Start Server」をクリック
  4. デフォルトでhttp://localhost:1234でAPIが利用可能

OpenAI SDKからの呼び出し例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from openai import OpenAI

# LM StudioのローカルAPIに接続
client = OpenAI(
    base_url="http://localhost:1234/v1",
    api_key="not-needed"  # ローカルAPIはAPIキー不要
)

response = client.chat.completions.create(
    model="local-model",  # ロード済みのモデル名
    messages=[
        {"role": "system", "content": "あなたは優秀なプログラマーです"},
        {"role": "user", "content": "Pythonでクイックソートを実装してください"}
    ]
)

print(response.choices[0].message.content)

MCPサーバー連携

LM StudioはMCP(Model Context Protocol)クライアントとして動作し、外部ツールとの連携が可能です。これにより、ファイルシステムへのアクセスやWeb検索などの機能を追加できます。

モデル選定と量子化のポイント

量子化(Quantization)とは

量子化は、モデルの重みを低精度の数値形式に変換することで、モデルサイズを削減しメモリ使用量を抑える技術です。

量子化レベル ビット数 サイズ削減率 品質への影響
F16 16bit なし 最高品質
Q8_0 8bit 約50% ほぼ影響なし
Q6_K 6bit 約62% 軽微な影響
Q5_K_M 5bit 約69% 軽微な影響
Q4_K_M 4bit 約75% 中程度の影響
Q3_K_M 3bit 約81% 顕著な影響
Q2_K 2bit 約87% 大きな影響

用途別モデル選定ガイド

用途 推奨モデル サイズ 備考
一般的なコード補完 Qwen 2.5 Coder 7B 4.7GB バランスの良いコード生成
高度な推論タスク DeepSeek-R1 4.7GB〜 思考プロセスを表示
軽量な日常利用 Gemma 3:4b 3.3GB 高速で実用的
コードレビュー Llama 3.1:8b 4.7GB 汎用性が高い
ドキュメント生成 Mistral 7B 4.1GB 文章生成に強い
高精度な複雑タスク QwQ:32b 20GB リソースが必要だが高精度

モデル選定のベストプラクティス

  1. まず軽量モデルで試す: 7B〜8Bクラスから始めて、必要に応じてスケールアップ
  2. 量子化レベルはQ4_K_M以上を推奨: Q4未満では品質低下が顕著
  3. コード生成には専用モデル: Code Llamaや Qwen Coderなどの特化モデルを選択
  4. VRAMに余裕があればQ5以上: 品質と速度のバランスが最適

VS Code連携と開発アシスタント活用例

ローカルLLMをVS Codeと連携することで、プライベートな開発アシスタントを構築できます。

Continue拡張機能のセットアップ

Continueは、VS CodeとJetBrains IDEでローカルLLMを活用できるオープンソースの拡張機能です。

インストール手順:

  1. VS Codeの拡張機能マーケットプレイスで「Continue」を検索
  2. 拡張機能をインストール
  3. サイドバーにContinueアイコンが表示される

Ollamaとの連携設定:

設定ファイル(~/.continue/config.json)を編集:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
{
  "models": [
    {
      "title": "Ollama - Llama 3.2",
      "provider": "ollama",
      "model": "llama3.2"
    },
    {
      "title": "Ollama - Code Llama",
      "provider": "ollama",
      "model": "codellama"
    }
  ],
  "tabAutocompleteModel": {
    "title": "Ollama - Autocomplete",
    "provider": "ollama",
    "model": "qwen2.5-coder:7b"
  }
}

LM Studioとの連携設定:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
  "models": [
    {
      "title": "LM Studio Local",
      "provider": "openai",
      "apiBase": "http://localhost:1234/v1",
      "apiKey": "not-needed",
      "model": "local-model"
    }
  ]
}

開発アシスタントとしての活用例

コード説明の取得:

  1. コードを選択
  2. Ctrl+L(Mac: Cmd+L)でContinueチャットを開く
  3. 「このコードを説明して」と入力

コードリファクタリング:

  1. 改善したいコードを選択
  2. チャットで「このコードをリファクタリングして、可読性を向上させて」と指示

テストコード生成:

  1. テスト対象の関数を選択
  2. 「この関数のユニットテストをpytestで書いて」と依頼

インラインコード補完:

Continue拡張機能では、タブキーでのインラインコード補完が利用可能です。tabAutocompleteModelに高速なモデルを設定することで、リアルタイムのコード補完が実現できます。

その他のVS Code連携オプション

拡張機能 特徴
Twinny GitHub Copilot代替、Ollamaネイティブ対応
Llama Coder シンプルなCopilot代替
AI Toolkit Microsoft公式のAIツールキット

社内開発アシスタントの構築例

実際の社内環境でローカルLLMを活用するための構成例を紹介します。

基本構成

┌─────────────────────────────────────────────────────────────┐
│                     開発者ワークステーション                     │
│  ┌──────────────┐    ┌──────────────┐    ┌──────────────┐  │
│  │   VS Code    │────│   Continue   │────│    Ollama    │  │
│  │   + 拡張機能  │    │   Extension  │    │    Server    │  │
│  └──────────────┘    └──────────────┘    └──────────────┘  │
│                                                │             │
│                                          ┌─────┴─────┐      │
│                                          │ローカルLLM │      │
│                                          │(Llama 3.2) │      │
│                                          └───────────┘      │
└─────────────────────────────────────────────────────────────┘

チーム共有サーバー構成

複数の開発者がローカルネットワーク経由でLLMを共有する構成です。

┌─────────────────────────────────────────────────────────────┐
│                        LLMサーバー                           │
│  ┌──────────────────────────────────────────────────────┐  │
│  │                    Ollama Server                      │  │
│  │              http://192.168.1.100:11434              │  │
│  │                                                       │  │
│  │    ┌─────────┐  ┌─────────┐  ┌─────────────────┐    │  │
│  │    │Llama 3.2│  │DeepSeek │  │  Code Llama     │    │  │
│  │    │   8B    │  │   R1    │  │    34B          │    │  │
│  │    └─────────┘  └─────────┘  └─────────────────┘    │  │
│  └──────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘
                              │
              ┌───────────────┼───────────────┐
              │               │               │
     ┌────────┴───────┐ ┌────┴────┐ ┌───────┴────────┐
     │ 開発者A        │ │ 開発者B │ │ 開発者C        │
     │ (VS Code)      │ │(JetBrains)│ │ (VS Code)     │
     └────────────────┘ └─────────┘ └────────────────┘

外部ネットワーク公開の設定

Ollamaをネットワーク上の他のマシンからアクセス可能にするには、環境変数を設定します。

Linux/macOS:

1
2
3
4
5
# ~/.bashrc または ~/.zshrc に追加
export OLLAMA_HOST=0.0.0.0:11434

# Ollamaを再起動
systemctl restart ollama  # systemdの場合

Windows:

システム環境変数にOLLAMA_HOST0.0.0.0:11434として設定し、Ollamaを再起動します。

セキュリティ考慮事項

社内でローカルLLMを運用する際のセキュリティベストプラクティスを示します。

項目 推奨事項
ネットワーク分離 LLMサーバーは開発用VLANに配置
アクセス制御 ファイアウォールでアクセス元IPを制限
ログ管理 利用ログを記録して監査可能に
モデル管理 承認済みモデルのみ使用を許可
定期更新 Ollamaとモデルを定期的にアップデート

まとめ

本記事では、OllamaとLM Studioを使ったローカルLLM環境の構築方法を解説しました。

ローカルLLMは、データプライバシーを確保しながらAIの恩恵を受けられる強力なソリューションです。特にセキュリティ要件が厳しい環境や、大量のコード処理が必要なシーンで威力を発揮します。

まずは8GBクラスの軽量モデルから始めて、用途に応じてスケールアップしていくことをお勧めします。VS CodeのContinue拡張機能と組み合わせることで、完全にプライベートな開発アシスタントを構築できます。

今後のローカルLLMの発展により、さらに高性能なモデルがより少ないリソースで動作するようになることが期待されます。ぜひ本記事を参考に、プライベートAI開発環境の構築に挑戦してみてください。

参考リンク