ローカルAIはかなり身近になってきました。
Ollama、vLLM、SGLang、Dify、Open WebUI などを使えば、自分のPCやGPUサーバー上でLLMを動かすこともできます。
ただ、実際に環境を作ってみると、モデル以前のところで詰まることが多いです。
たとえば、
- CUDA / NVIDIA driver は正しく見えているか
- Ollama のAPIは起動しているか
- vLLM や SGLang の OpenAI互換エンドポイントは正しいか
- Dify からローカルモデルに接続できるか
- Docker daemon は動いているか
- そもそもこのマシンでどの程度のローカルAI用途が現実的か
こうした確認を毎回手作業で行うのは少し面倒です。
そこで、ローカルAIスタックの状態を一括で確認し、次に何を試すべきかを表示する CLI ツールとして InferDoctor を作りました。
InferDoctor とは
InferDoctor は、ローカルAI環境の診断とセットアップ補助を行うためのオープンソースCLIツールです。
できることは大きく分けて次のようなものです。
- ローカルAIスタックのヘルスチェック
- GPU / CUDA / Docker / endpoint の確認
- Ollama、vLLM、SGLang、Dify、Open WebUI などの軽量チェック
- ハードウェア容量の目安表示
- モデルサイズの適合目安
- ローカルAIアプリ用スターターテンプレートの生成
- テンプレートの検証
- smoke test
- dry-run ベースのセットアップ計画
ローカルAIランタイムそのものを置き換えるものではありません。
Ollama、vLLM、SGLang、Dify、Open WebUI などを使う前に、環境の状態を確認し、つまずきポイントを見つけるためのツールです。
インストール
PyPI に公開しています。
pip install inferdoctor
まず実行してみる
inferdoctor
実行すると、ローカルAIスタックの状態をまとめて表示します。
たとえば、次のような項目を確認します。
- System
- NVIDIA
- CUDA
- Ollama
- vLLM
- SGLang
- llama.cpp
- LM Studio
- Xinference
- Dify
- Open WebUI
- Docker
出力には、全体のヘルススコア、各コンポーネントの状態、そして優先して確認すべき “Top Fixes” が表示されます。
よくある確認例
Ollama や vLLM などの状態を見る
inferdoctor
カスタマーサポート用のローカルAI構成を考える
inferdoctor stack plan --goal customer-service --vram 24
ローカルAIアプリのテンプレートを作る
inferdoctor template create customer-service --output ./customer-service-demo
生成したテンプレートを検証する
inferdoctor template validate ./customer-service-demo
テンプレートの smoke test を実行する
inferdoctor template smoke-test ./customer-service-demo
モデルサイズの目安を見る
inferdoctor model fit --size 14b --quant q4 --vram 24
スターターテンプレート
InferDoctor には、いくつかのローカルAIアプリ用スターターテンプレートがあります。
たとえば、
- customer-service
- restaurant-ordering
- local-doc-qa
- personal-kb
- meeting-notes
- openai-compatible-api
- ollama-chat
- dify-rag
- open-webui
- vllm-api
- sglang-api
などです。
テンプレートは、いきなり本番アプリを作るためのものではなく、ローカルAIアプリを試すための出発点として用意しています。
生成されるプロジェクトには、README、設定ファイル、サンプルデータ、プロンプト、トラブルシューティングメモなどが含まれます。
できることと、できないこと
InferDoctor は便利ですが、何でも自動化するツールではありません。
できること:
- ローカルAI環境の状態を確認する
- 何が動いていて、何に注意が必要かを表示する
- 次に試すべきコマンドを提案する
- ローカルAIアプリのスターターテンプレートを生成する
- 生成したテンプレートを検証する
- ハードウェアとモデルサイズの大まかな目安を出す
できないこと:
- モデルを自動ダウンロードする
- Ollama や vLLM などのランタイムを自動インストールする
- 実際の推論性能をベンチマークする
- 特定モデルが必ず動くと保証する
- システム設定を勝手に変更する
基本方針として、InferDoctor は軽量で、read-only を基本にしています。
なぜ作ったか
ローカルAIを試していると、モデルの性能以前に、環境まわりで時間を取られることが多いです。
- endpoint のURLが違う
- "/v1/models" が404になる
- Docker CLI はあるが daemon が動いていない
- CUDA toolkit はないが NVIDIA driver はある
- Dify からローカルモデルにつながらない
- vLLM / SGLang のポートが違う
こうした問題は一つ一つ見ると小さいですが、初心者にとってはかなり大きな壁になります。
InferDoctor は、この最初の壁を少し下げるためのツールです。
Links
GitHub:
PyPI:
今後
今後は、さらに以下を改善していく予定です。
- テンプレートの追加
- Docker Compose 生成の改善
- Dify / Open WebUI 連携例
- 日本語ドキュメント
- ローカルRAG向けのセットアップ例
- コミュニティテンプレートの仕組み
フィードバックやIssueを歓迎します。