Pipeline ドキュメント
Pipeline は「アイドル中のGPUを余すところなく使う」軽量 batch fleet です。MIG が使えない GPU (RTX 4090 / A6000 / L4 等) でも、1枚に複数 workload を同居させ、単一ジョブでは 40–60% アイドルになる GPU を取り戻します。1–10 GPU の AI チーム向けです。
本ドキュメントは、制御プレーン / ワーカー / Web UI / プラグインSDK / Storage SDK / REST API のリファレンスです。最新のソースコードに追従しています。左のサイドバーから 各トピックへ移動できます。
特徴
- ループ処理 (1 行 → 1 タスク) を fleet で並列実行します。
- ワークロード定義は GUI から登録します (executor =
shell/python_module)。 - スケジューラ (priority + weight) と、需要ドリブンの自動オーケストレーター (supervisor)。
- ライブログ / メトリクス / フロー図 / 再起動ボタン / デプロイまで Web UI で完結します。
- 単一プロセス mode (SQLite 1 ファイル) で動き、worker 追加でスケールアウトします。
位置づけ — 何であって、何でないか
Pipeline は「ループ処理 (1行 = 1タスク) を fleet で回す」ための最小限の土台です。エンジニアの直感に合わせると、次の位置にいます。
| ツール | 役割 | Pipeline との違い |
|---|---|---|
| cron + シェル | 時刻起動 | Pipeline はキューと fleetを持ち、並列度・リトライ・可視化が付く。 |
| Celery / RQ | タスクキュー | 思想は近い。Pipeline はGUI 第一で、ワークロード登録・監視・デプロイまで Web UI で完結。broker は SQLite/MariaDB。 |
| Airflow | DAG スケジューラ | Pipeline は DAG/依存管理を持たない。「同種タスクを大量に捌く」一段の並列実行に特化して軽い。 |
| Ray | 分散実行 + actor | Pipeline は actor モデルを持たない。「Ray の単純な半分」= GPU 同居でスループットを稼ぐバッチ用途に絞る。 |
向いている: 同じ処理を大量の入力に対して回す (クロール・推論・変換)、1〜10 GPU の同居でアイドルを埋めたい、Python は書けなくても SQL は読めるオペレータに運用を渡したい。
向いていない: タスク間に複雑な依存関係 (DAG) がある、ミリ秒級の低レイテンシ RPC、ステートフルな actor が要る — これらは Airflow / Ray などが適します。
クイックスタート
評価やローカル開発では、単一プロセス mode が最短です。
# 制御プレーン + in-process worker + Web UI を1プロセスで起動
pipeline run --dev
# → http://localhost:8000 (SQLite: ./pipeline.db、ワンタイム管理者PWが表示されます)
本番では制御プレーンと worker を分けて動かします (設定リファレンス)。
# 制御プレーン (ホストA)
pipeline run --db-url sqlite:///./pipeline.db --port 8000
# 各GPUホストで worker を起動 (pull型 — 起動するだけで自動 join します)
pipeline worker --control-url http://hostA:8000
次に読む
用語とアーキテクチャ
制御プレーン / worker / workload / キュー / タスクの関係とライフサイクル。
Web UI 画面ガイド
Dashboard・Flow図・Throughput・Workloads ほか全画面の使い方。
プラグインSDK
plugin.yaml と setup/process/cleanup 契約、self_loop 型の作り方。
REST API
タスク投入・workload 管理・メトリクスの HTTP エンドポイント。