
Ollama vs LM Studio 比較——ローカルLLM環境の選び方
ローカルで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/bin/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のハイブリッド運用——コスト試算付き #