🚀 ML Lab MCP
ML Lab MCPは、MLモデルのトレーニング、ファインチューニング、実験を行うための包括的なMCP(Model Context Protocol)サーバーです。AIアシスタントを完全なMLエンジニアリング環境に変えましょう。
✨ 主な機能
統一された資格情報管理
- APIキー(Lambda Labs、RunPod、Mistral、OpenAI、Together AIなど)の暗号化ボールト
- AES暗号化を伴うPBKDF2キー導出
- 資格情報を平文で保存することはありません
データセット管理
- ローカルファイルまたはクライアント提供のコンテンツ(JSONL、CSV、Parquet)からデータセットを登録
- サーバーのファイルシステムにアクセスせずに直接データセットをアップロード
- 自動スキーマ推論と統計
- トレーニング/検証/テストの分割
- テンプレートベースの変換
実験追跡
- SQLiteベースの実験データ保存
- バージョン管理と比較
- 設定を変更して実験を分岐
- 完全なメトリクス履歴
マルチバックエンドトレーニング
- ローカル:transformers + peft + trlを使用したローカルGPUトレーニング
- Mistral API:Mistralモデルのネイティブファインチューニング
- Together AI:ホスト型ファインチューニングサービス
- OpenAI:GPTモデルのファインチューニング
クラウドGPUプロビジョニング
- Lambda Labs:H100、A100インスタンス
- RunPod:スポットおよびオンデマンドGPU
- プロバイダー間の自動価格比較
- コストと可用性に基づくスマートルーティング
リモートVPSサポート
- 任意のSSHアクセス可能なマシン(Hetzner、Hostinger、OVH、自宅サーバー、大学クラスター)を使用
- 自動環境設定
- rsyncを介したデータセット同期
- tmuxでトレーニングを実行(切断しても継続)
- 月額料金からの時間当たりの費用計算
コスト見積もり
- すべてのプロバイダーにわたる事前トレーニングコスト見積もり
- リアルタイムの価格照会
- モデルとデータセットのサイズに基づく時間見積もり
Ollama統合
- ファインチューニングされたGGUFモデルをOllamaにデプロイ
- Ollamaレジストリからモデルを取得
- MCPから直接チャット/推論テスト
- モデル管理(一覧表示、削除、コピー)
Open WebUI統合
- システムプロンプトを使用してモデルプリセットを作成
- 知識ベース管理(RAG)
- Open WebUIを通じたチャット(設定と知識を適用)
- シームレスなOllama ↔ Open WebUIワークフロー
📦 インストール
pip install ml-lab-mcp
pip install ml-lab-mcp[training]
pip install ml-lab-mcp[cloud]
pip install ml-lab-mcp[training,cloud,dev]
🚀 クイックスタート
1. 初期化とボールトの作成
ml-lab init
ml-lab vault create
2. プロバイダーの資格情報を追加
ml-lab vault unlock
ml-lab vault add --provider lambda_labs --api-key YOUR_KEY
ml-lab vault add --provider mistral --api-key YOUR_KEY
3. Claude Code / Claude Desktopで設定
MCPの設定に以下を追加します:
{
"mcpServers": {
"ml-lab": {
"command": "ml-lab",
"args": ["serve"]
}
}
}
💻 使用例
基礎的な使用法
pip install ml-lab-mcp
pip install ml-lab-mcp[training]
pip install ml-lab-mcp[cloud]
pip install ml-lab-mcp[training,cloud,dev]
高度な使用法
ml-lab init
ml-lab vault create
ml-lab vault unlock
ml-lab vault add --provider lambda_labs --api-key YOUR_KEY
ml-lab vault add --provider mistral --api-key YOUR_KEY
{
"mcpServers": {
"ml-lab": {
"command": "ml-lab",
"args": ["serve"]
}
}
}
📚 詳細ドキュメント
MCPツール
資格情報
| ツール |
説明 |
creds_create_vault |
暗号化された資格情報ボールトを作成 |
creds_unlock |
パスワードでボールトを開く |
creds_add |
プロバイダーの資格情報を追加 |
creds_list |
設定されたプロバイダーを一覧表示 |
creds_test |
資格情報が機能することを検証(Lambda Labs、GCP、OpenAIをサポート) |
データセット
| ツール |
説明 |
dataset_register |
ローカルファイルからデータセットを登録 |
dataset_register_content |
クライアント提供のコンテンツ(CSV、JSON、JSONL、Parquet)からデータセットを登録 |
dataset_list |
すべてのデータセットを一覧表示 |
dataset_inspect |
スキーマと統計を表示 |
dataset_preview |
サンプルをプレビュー |
dataset_split |
トレーニング/検証/テストの分割を作成 |
dataset_transform |
テンプレート変換を適用 |
実験
| ツール |
説明 |
experiment_create |
新しい実験を作成 |
experiment_list |
実験を一覧表示 |
experiment_get |
実験の詳細を取得 |
experiment_compare |
複数の実験を比較 |
experiment_fork |
変更を加えて実験を分岐 |
トレーニング
| ツール |
説明 |
train_estimate |
プロバイダー全体のコスト/時間を見積もる |
train_launch |
トレーニングを開始 |
train_status |
実行状態を確認 |
train_stop |
トレーニングを停止 |
インフラストラクチャ
| ツール |
説明 |
infra_list_gpus |
価格付きで利用可能なGPUを一覧表示 |
infra_provision |
クラウドインスタンスをプロビジョニング |
infra_terminate |
インスタンスを終了 |
リモートVPS
| ツール |
説明 |
vps_register |
VPSを登録(ホスト、ユーザー、キー、GPU情報、月額料金) |
vps_list |
登録されたすべてのVPSマシンを一覧表示 |
vps_status |
VPSの状態を確認(オンライン、GPU、実行中のジョブ) |
vps_unregister |
VPSを登録から削除 |
vps_setup |
VPSにトレーニング依存関係をインストール |
vps_sync |
データセットをVPSに同期 |
vps_run |
VPSでコマンドを実行 |
vps_logs |
VPSからトレーニングログを取得 |
Ollama
| ツール |
説明 |
ollama_status |
Ollamaの状態を確認(実行中、バージョン、GPU) |
ollama_list |
Ollama内のモデルを一覧表示 |
ollama_pull |
レジストリからモデルを取得 |
ollama_deploy |
GGUFをOllamaにデプロイ |
ollama_chat |
モデルとチャット |
ollama_delete |
モデルを削除 |
Open WebUI
| ツール |
説明 |
owui_status |
Open WebUIの接続を確認 |
owui_list_models |
モデル設定を一覧表示 |
owui_create_model |
モデルプリセットを作成(システムプロンプト、パラメータ) |
owui_delete_model |
モデル設定を削除 |
owui_list_knowledge |
知識ベースを一覧表示 |
owui_create_knowledge |
知識ベースを作成 |
owui_add_knowledge_file |
知識ベースにファイルを追加 |
owui_chat |
Open WebUIを通じてチャット |
セキュリティ
| ツール |
説明 |
security_audit_log |
最近の監査ログエントリを表示 |
security_audit_summary |
監査活動の概要を取得 |
security_tailscale_status |
Tailscale VPNの接続を確認 |
security_ssh_key_rotate |
VPSのSSHキーをローテーション |
creds_expiry_check |
資格情報の有効期限を確認 |
creds_rotate |
プロバイダーの資格情報をローテーション |
Codex統合(Executor LLM)
| ツール |
説明 |
codex_status |
Codex CLIが利用可能かどうかを確認 |
codex_analyze_error |
Codexにエラーを分析させ、修正提案を得る |
codex_generate_training_script |
実験設定からトレーニングスクリプトを生成 |
codex_fix_code |
Codexにトレーニングコードの問題を修正させる |
codex_optimize_config |
品質/速度/メモリのためにトレーニング設定を最適化 |
codex_debug_training |
ログからトレーニング問題をデバッグ |
codex_run |
Codexで任意のタスクを実行 |
アーキテクチャ:知能と実行の分離
- Planner LLM (Claude):推論、アーキテクチャ、トレードオフ
- Executor LLM (Codex):正確なコード編集 + CLI作業
- World tools (ML Lab):データ、トレーニング、インフラ、デプロイメント
深層思考分析(Ollama推論モデル)
| ツール |
説明 |
thinking_analyze |
推論モデル(DeepSeek R1、QwQ)を使用して深層分析を実行 |
thinking_schedule |
自動分析をスケジュール(トレーニング後、毎日、毎週) |
thinking_reports |
分析レポートを一覧表示して取得 |
分析タイプ:
training - 損失曲線、収束、ハイパーパラメータを分析
experiment - 実験を比較し、改善案を提案
activity - 監査ログをパターン/異常についてレビュー
cost - コスト効率分析と推奨事項
dataset - データ品質とトレーニング適合性
スケジュール頻度:
after_training - トレーニング完了時に自動分析
hourly / daily / weekly - 定期的なレビュー
レポートは~/.cache/ml-lab/reports/に保存され、過去の参照に使用できます。
サンプルワークフロー
ユーザー: カスタマーサポートデータでLlama 3.1 8Bをファインチューニングしてください
Claude: Llama 3.1 8Bのファインチューニングを手伝います。まず、あなたのデータを確認します。
[dataset_registerを使用して./support_data.jsonlを読み込む]
15,000サンプルが見つかりました。コストを見積もります:
[train_estimateを使用]
| プロバイダー | 時間 | コスト | 可用性 |
|---------------|--------|--------|--------------|
| vps:hetzner-01| ~4h | $0.28* | アイドル |
| ローカル (4090) | ~12h | $0 | 準備完了 |
| Lambda H100 | ~2h | $5.50 | 3台利用可能 |
| Together API | ~4h | $12 | キューに入っています |
*月額$200からの償却
どれを選びますか?
ユーザー: Lambda Labsを使用します
Claude: [experiment_createを使用し、その後backend=lambdaでtrain_launchを使用]
トレーニングを開始しました!実行ID: abc123
進捗状況を監視し、完了したら知らせます。
アーキテクチャ
src/ml_lab/
├── server.py # MCPサーバーのエントリーポイント (61のツール)
├── credentials.py # 暗号化された資格情報ボールト
├── cli.py # コマンドラインインターフェイス
├── backends/
│ ├── base.py # トレーニングバックエンドインターフェイス
│ ├── local.py # ローカルGPUトレーニング
│ ├── mistral_api.py # MistralファインチューニングAPI
│ ├── together_api.py # Together AI API
│ ├── openai_api.py # OpenAIファインチューニングAPI
│ └── vertex_api.py # Google Vertex AI (Gemini)
├── cloud/
│ ├── base.py # クラウドプロバイダーインターフェイス
│ ├── lambda_labs.py # Lambda Labs統合
│ ├── runpod.py # RunPod統合
│ ├── modal_provider.py # Modal統合
│ └── remote_vps.py # 汎用SSH VPSサポート (+ Tailscale)
├── storage/
│ ├── datasets.py # データセット管理
│ └── experiments.py # 実験追跡
├── inference/
│ ├── ollama.py # Ollama統合
│ ├── openwebui.py # Open WebUI統合
│ └── thinking.py # 深層思考分析 (DeepSeek R1, QwQ)
├── integrations/
│ └── codex.py # Codex CLI統合 (executor LLM)
├── security/
│ └── audit.py # 監査ログ
└── evals/
└── benchmarks.py # 評価スイート
🔧 技術詳細
セキュリティ
- 資格情報はFernet(AES-128-CBC)で暗号化されます。
- PBKDF2-SHA256キー導出(480,000回の反復)
- ボールトファイルのパーミッションは600に設定されています(所有者のみ読み書き可能)
- APIキーは暗号化されずにログに記録または送信されることはありません。
- 監査ログ:すべての機密操作は
~/.cache/ml-lab/audit.logに記録されます。
- 資格情報の有効期限:自動追跡とローテーションのリマインダー
- Tailscaleサポート:VPS接続に必要なオプションのVPN
- SSHキーのローテーション:失敗時にロールバックする自動ローテーション
サポートされているプロバイダー
コンピュートプロバイダー
- Lambda Labs (H100, A100, A10)
- RunPod (H100, A100, RTX 4090)
- Modal (サーバーレスGPU関数)
ファインチューニングAPI
- Mistral AI (Mistral, Mixtral, Codestral)
- Together AI (Llama, Mistral, Qwen)
- OpenAI (GPT-4o, GPT-3.5)
- Google Vertex AI (Gemini 1.5 Pro, Gemini 1.5 Flash)
モデルハブ
- Hugging Face Hub
- Replicate
- Ollama (ローカルGGUFモデル)
🤝 コントリビューション
コントリビューションを歓迎します!ガイドラインについてはCONTRIBUTING.mdを読んでください。
📄 ライセンス
PolyForm Noncommercial 1.0.0 - 個人使用には無料です。商用ライセンスについてはお問い合わせください。
詳細についてはLICENSEを参照してください。