Ollama

Ollama vs LM Studio 比較——ローカルLLM環境の選び方

Ollama vs LM Studio 比較——ローカルLLM環境の選び方

Ollama vs LM Studio 比較——ローカルLLM環境の選び方

この記事は約 10 分で読めます

📖 目次
  1. 📌 Ollama vs LM Studio 機能比較表
  2. 📌 Ollamaをパイプラインに組み込んで実感したこと
  3. 📌 LM Studioが光る場面——モデル選定フェーズ
  4. 📌 実測:qwen2.5:3bのレスポンス速度(M5 MacBook Pro)
  5. 📌 Ollamaで自動化パイプラインを動かすセットアップ(コピペ可)
  6. 📌 よくある質問
  7. 📌 まとめ

ローカルでLLMを動かしたい。でも「OllamaとLM Studio、どっちを入れればいいんだ」で詰まる人は多い。僕も最初に両方入れてみて、結局どちらを使うか半日悩んだ。

この記事でわかること:
– OllamaとLM Studioの具体的な違い(API・モデル管理・メモリ効率)
– 自動化パイプラインを組む場合はどちらが向いているか
– Macで実際に動かしたときのレスポンス比較
– コピペで使えるセットアップコマンドとpythonラッパー


Ollama vs LM Studio 機能比較表

項目 Ollama LM Studio
インターフェース CLI / REST API GUIメイン
API互換性 OpenAI互換エンドポイント(/v1/chat/completions) OpenAI互換あり
モデル追加方法 ollama pull モデル名 GUIでダウンロード
自動化との相性 高い(launchd / cronと組みやすい) 低め(GUIが前提)
メモリ管理 自動アンロード(デフォルト5分) 手動ロード/アンロード
モデル対応数 Ollama公式ライブラリ内のみ HuggingFaceから直接GGUF
macOS launchd対応 公式でlaunchdサービス化済み 非対応(常駐はGUI依存)
GPU加速(Apple Silicon) Metal対応済み Metal対応済み
設定ファイル Modelfile(任意) GUI設定
向いている用途 API自動化・常駐サービス モデル試し打ち・比較検証

Ollamaをパイプラインに組み込んで実感したこと

僕がOllamaに傾いた最大の理由は、launchdと相性がいいことだった。

MacBook Pro M5で brew services start ollama したら終わり。以降はOS起動のたびに自動で上がってくる。LM Studioはアプリを手動で立ち上げてから「Local Server」タブでスタートしないとAPIが生えてこない。自動化の文脈ではこれが致命的で、夜中にlaunchdで走るバッチが「LM Studioが起動してないから死亡」となる未来が容易に見えた。

Pythonから叩くコードも素直に書ける。

# コピペ可
import requests

def ask_ollama(prompt: str, model: str = "qwen2.5:3b") -> str:
    res = requests.post(
        "http://localhost:11434/api/generate",
        json={"model": model, "prompt": prompt, "stream": False, "options": {"think": False}},
        timeout=120,
    )
    res.raise_for_status()
    return res.json()["response"]

print(ask_ollama("今日のSNS投稿案を1つ出して"))

stream: False で同期レスポンスにしてある。パイプライン内で非同期が必要な場合は httpx.AsyncClient に差し替えるだけ。


LM Studioが光る場面——モデル選定フェーズ

正直に言うと、LM Studioには「試し打ちGUI」としての価値がある。

HuggingFaceから直接GGUFを落とせるので、「このモデル、日本語どのくらいいける?」を確かめるのが早い。OllamaはOllama公式ライブラリにないモデルをカスタムで入れようとするとModelfileをいじる手間がかかる。

僕の使い方は「LM Studioで触って良さそうならOllamaに移す」になった。HuggingFaceのモデルページでGGUFのファイル名を確認して、Ollamaにインポートする手順はこう。

# コピペ可
# HuggingFaceからGGUFを落としてOllamaにインポートする
curl -L https://huggingface.co/Qwen/Qwen2.5-3B-Instruct-GGUF/resolve/main/qwen2.5-3b-instruct-q4_k_m.gguf \
  -o ~/models/qwen2.5-3b.gguf

# Modelfile作成
cat > ~/models/Modelfile << 'EOF'
FROM /Users/YOUR_NAME/models/qwen2.5-3b.gguf
PARAMETER num_ctx 4096
EOF

ollama create qwen2.5-3b-custom -f ~/models/Modelfile
ollama run qwen2.5-3b-custom

実測:qwen2.5:3bのレスポンス速度(M5 MacBook Pro)

同じプロンプト「100字でSNS投稿案を出して」を10回投げた中央値。

Ollama (qwen2.5:3b, Metal)
  - 初回(コールドスタート): 1.8s
  - 2回目以降(ウォーム): 0.6〜0.9s

LM Studio (Qwen2.5 3B Q4_K_M)
  - 初回: 2.1s
  - 2回目以降: 0.8〜1.1s

体感では同程度。ただしOllamaはデフォルトで「最後のリクエストから5分でモデルをアンロード」する設定になっている。常時起動で使いたい場合は OLLAMA_KEEP_ALIVE=-1 を環境変数にセットする必要がある。

# launchd plist に追記する場合
<key>EnvironmentVariables</key>
<dict>
  <key>OLLAMA_KEEP_ALIVE</key>
  <string>-1</string>
</dict>

これを知らずに「なぜか2回目の呼び出しが遅い」で30分溶かした。


Ollamaで自動化パイプラインを動かすセットアップ(コピペ可)

launchdで毎朝Ollamaを使ったバッチを走らせる構成の骨格。

<!-- ~/Library/LaunchAgents/com.taito.ollama-batch.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.taito.ollama-batch</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/b​in/python3</string>
    <string>/Users/YOUR_NAME/Documents/AI_Automation_Base/01_Scripts/batch_job.py</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>7</integer>
    <key>Minute</key>
    <integer>0</integer>
  </dict>
  <key>EnvironmentVariables</key>
  <dict>
    <key>OLLAMA_HOST</key>
    <string>http://localhost:11434</string>
  </dict>
  <key>StandardOutPath</key>
  <string>/tmp/ollama-batch.log</string>
  <key>StandardErrorPath</key>
  <string>/tmp/ollama-batch-err.log</string>
</dict>
</plist>
launchctl load ~/Library/LaunchAgents/com.taito.ollama-batch.plist

LM Studioでこれと同じことをやろうとすると、GUIが前提なのでlaunchdから直接APIを叩ける状態を維持するのが難しい。シェルスクリプトでLM Studioのバイナリを起動→待機→APIを叩くという手順を踏む必要があり、現実的じゃない。


よくある質問

OllamaとLM Studio、両方入れてもいい?

両立できる。ポートが違う(Ollama: 11434、LM Studio: 1234)ので衝突しない。「モデル試し打ちはLM Studio、本番パイプラインはOllama」の分担が現実的。ただしどちらもMetalでGPUを使うので、同時起動するとメモリが食い合う。M2以上の16GB以上あれば実用になる。

WindowsでもOllamaは使える?

使える。ただしlaunchd統合はmacOS専用。Windowsならタスクスケジューラかwinsw(Windows Service Wrapper)で常駐化が必要になる。Windowsメインならその手間を許容できるか確認してから入れた方がいい。

HuggingFaceの最新モデルをOllamaで動かしたい

Ollama公式ライブラリにないモデルはModelfile経由でインポートできる。GGUFフォーマットが必要。LM Studioの方がこの点では柔軟で、HuggingFaceから直接DLしてGUI上で動かせる。

Ollamaのメモリ使用量を下げたい

コンテキスト長(num_ctx)を減らすと効く。デフォルト2048を1024に下げると体感で30〜40%メモリが減る。精度はやや落ちる。短いSNS投稿生成なら1024で十分。

日本語精度はどちらが高い?

ツールの問題ではなくモデルの問題。同じGGUFファイルを使えば精度は同じ。日本語が強いモデルは qwen2.5、gemma3あたりが今のところ安定している。


まとめ

  • 自動化パイプラインを組むならOllamaが唯一の選択肢に近い(launchd・CLI・APIの三点セットが揃っている)
  • LM Studioは「モデルを試す」GUIとして価値がある——本番投入前の検証フェーズに使う
  • 両者を併用して「試し打ちはLM Studio → 本番はOllama」のルーティングが現実解
  • Ollamaの「5分でアンロード」問題は OLLAMA_KEEP_ALIVE=-1 で解消できる
  • レスポンス速度は同じモデルなら大差ない(M5 MacBook Proで0.6〜1.1s)
  • HuggingFaceの最新GGUFを使いたいときはLM Studioの方が手順が少ない

この記事を読んだあなたに:
– Ollamaをlaunchdで常駐させる設定手順まとめ #
– qwen2.5とgemma3、日本語精度を実測比較した話 #
– Claude APIとOllamaのハイブリッド運用——コスト試算付き #



📘 この記事のテーマをさらに深掘りした本

ローカルLLM完全攻略:M2 Macで動かすAIシステム構築術

Ollamaのメモリ管理から量産パイプラインまで詰まりポイントを全解説

Kindleで読む →


👨‍💻
一ノ瀬泰斗
AI自動化エンジニア / Python個人開発者

Claude Code × Ollama × launchd で SNS・ブログ・KDPを全自動化。実測データと失敗談を軸に、月5万円収益化のリアルな記録を発信中。