0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ローカルAI環境が動かない原因を一発で確認するCLIを作りました

0
Posted at

ローカル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を歓迎します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?