概要
- ローカルLLM のセットアップ体験談と実用性について解説
- Ollama・llama.cpp・LM Studio など複数ツールの比較と選定ポイント
- Qwen 3.5-9B モデルを中心に設定例やチューニング方法を紹介
- Pi・OpenCode の設定ファイル例と実際のユースケース
- SOTAモデルとの比較 やローカル運用のメリット・デメリットを具体例で説明
ローカルLLM環境の構築と選定ポイント
- ローカルで動作するLLM を使うことで、インターネット接続なしでの基本的なタスク・リサーチ・プランニングが可能
- 大手USテック企業への依存軽減 という観点でも意義あり
- セットアップは簡単ではなく、 Ollama・llama.cpp・LM Studio など複数の実行方法から選択する必要
- それぞれに 対応モデル・制約・癖 が存在
- モデル選定時は メモリ使用量・コンテキストウィンドウ長・動作速度 などのバランスが重要
- 64K以上(理想は128K以上)のコンテキストウィンドウを目指す
モデル選定と動作検証
- Qwen 3.6 Q3・GPT-OSS 20B・Devstral Small 24B など大きめのモデルはメモリには収まるが実用性に難
- Gemma 4B は動作するがツール利用に難あり
- Qwen 3.5-9B(4b量子化) が最もバランス良好
- 約40トークン/秒 の速度、 thinking有効化・ツール利用成功・128Kコンテキストウィンドウ
- 24GB Macbook Pro でも他のアプリと併用可能
推奨設定例(Thinkingモード・コーディング用途)
- 温度(temperature): 0.6
- top_p: 0.95
- top_k: 20
- min_p: 0.0
- presence_penalty: 0.0
- repetition_penalty: 1.0
- thinking有効化には Prompt Template に
{%- set enable_thinking = true %}を追加
Pi・OpenCodeの設定例
- Piのmodels.json例
{ "providers": { "lmstudio": { "baseUrl": "http://localhost:1234/v1", "api": "openai-completions", "apiKey": "lm-studio", "models": [ { "id": "qwen3.5-9b@q4_k_s", "reasoning": true, "compat": { "thinkingFormat": "qwen-chat-template" } } ] } } } - thinking表示を隠すには
settings.jsonに"hideThinkingBlock": trueを追加 - OpenCodeのopencode.json例
{ "$schema": "https://opencode.ai/config.json", "provider": { "lmstudio": { "npm": "@ai-sdk/openai-compatible", "name": "LM Studio (local)", "options": { "baseURL": "http://127.0.0.1:1234/v1" }, "models": { "qwen3.5-9b@q4_k_s": { "name": "Qwen 3.5 9B Q4_K_S", "tools": true, "context_length": 131072, "max_tokens": 32768 } } } }, "model": "lmstudio/qwen3.5-9b@q4_k_s" }
Pi・OpenCodeの使い勝手比較
- Pi は動作がやや軽快だが、設定の自由度が高い反面、 初期設定に時間がかかる 傾向
- OpenCode は設定が明快で、ツール統合も容易
SOTAモデルとの比較と運用ワークフロー
- Qwen 3.5 9B (Q4) はSOTAモデルに比べて 長期的・複雑な問題解決 は苦手
- 1回で全てを任せるのではなく、 逐次的・対話的なワークフロー が有効
- モデルに細かく指示しながら進める運用
- SOTAモデルは 思考のオフロード が容易だが、ローカルモデルは ユーザーの関与度が高まる
- ローカルモデルでも リサーチアシスタント・ラバーダック・プログラミング知識の即時参照 などには十分活用可能
実際の利用例
- Elixir linter(Credo)の警告修正提案
length(list) > 0をlist != []へ修正指示、モデルが該当箇所を正確に編集
- git conflictの解決提案
- 依存パッケージのバージョン競合を認識し、選択肢を提示
- ただし 自動編集やrebase操作の一部で失敗 することもあり
ローカルLLMのメリット・デメリットと今後
- インターネット不要 で、飛行機内作業も可能
- コストは電気代のみ、サブスクリプション不要
- 環境負荷もデータセンター利用よりは低減
- 自由なカスタマイズ・実験の楽しさ
- SOTAモデルのような 劇的な生産性向上 は難しいが、 自分の思考や計画力を活かした利用 ができる
- LLMとの付き合い方としてより持続可能でポジティブ
- 失敗も含めて楽しい、今後も発展が期待される分野