flagrelease-entrance-flagos について
flagrelease-entrance-flagosは、GPUコンテナでLLMのデプロイ、検証、性能テストを順に実行します。マルチチップGPUスタックを検証するチーム向けで、ゲート条件に沿って結果をまとめます。
主な機能
- 01インストール・環境・モデルの順次検証
- 02対象モデルでのマルチチップスタック比較
- 035種類のプロファイルでベンチマーク実行
- 04構造化された状態とエラーのレポート
- 05タイムアウトとゲートによる失敗処理
活用シーン
- 01マルチチップGPUのデプロイ検証
- 02スタック有無でモデルの動作を比較
- 03ベンチマーク結果とデプロイ状態の集約
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ flagos-ai/ skills --skill flagrelease-entrance-flagosインストール後、Claude Code で/flagrelease-entrance-flagosを入力して読み込まれたか確認します。
同梱ファイルreferences/pipeline-state.md
詳細
FlagRelease パイプラインオーケストレーター
マルチチップ GPU バックエンド向けの、LLM のデプロイとテストをエンドツーエンドで実行するパイプラインです。 4 つのサブスキルを順番にオーケストレーションし、最終レポートを作成します。
スキルの構成要素
flagrelease/
├── SKILL.md # This file — orchestration flow
└── references/
└── pipeline-state.md # Pipeline state schema, gate logic, data flow
サブスキル(それぞれ個別に呼び出し可能):
../install-stack/ # Step 2: Install 5 packages
│ ├── SKILL.md
│ ├── scripts/
│ │ ├── detect_network.py # Probe GitHub/PyPI, return mirror config
│ │ ├── collect_env_info.py # Python/glibc/arch/vendor/disk info
│ │ ├── select_flagtree_wheel.py # Match vendor+python+glibc → wheel
│ │ └── validate_packages.py # Import-test all 5 packages
│ └── references/
│ ├── vendor-mappings.md # FlagCX make flags, adaptor names
│ └── network-mirrors.md # Mirror config rules
../env-verify/ # Step 3: Qwen3-0.6B smoke test
│ ├── SKILL.md
│ ├── scripts/
│ │ ├── run_offline_inference.py # Phase A: offline inference test
│ │ └── test_serve_mode.py # Phase B: serve + health + chat test
│ └── references/
│ └── error-classification.md # Layer-based error classification
../model-verify/ # Step 4: Target model ± multi-chip
│ ├── SKILL.md
│ ├── scripts/
│ │ └── diff_analysis.py # Compare Run A vs Run B results
│ └── references/
│ └── multichip-errors.md # Multi-chip error patterns
../perf-test/ # Steps 5+6: Accuracy + Performance
│ ├── SKILL.md
│ ├── scripts/
│ │ ├── run_benchmark.py # Run single benchmark profile
│ │ └── run_all_benchmarks.py # Run all profiles + summarize
│ └── references/
│ └── benchmark-profiles.md # Profile definitions and metrics
パイプラインの概要
[Prerequisite: /gpu-container-setup already done by another team]
│
▼
install-stack → Install 5 packages (vLLM, FlagTree, FlagGems, FlagCX, plugin)
│ scripts: detect_network, collect_env_info, select_flagtree_wheel
│
│ GATE: vLLM + plugin must succeed
▼
env-verify → Smoke test with Qwen3-0.6B (FlagGems/CX OFF)
│ scripts: run_offline_inference, test_serve_mode
│
│ Verify Layers 0-3
▼
model-verify → Target model test (OFF then ON), diff analysis
│ scripts: run_offline_inference, test_serve_mode, diff_analysis
│
│ Determine which stack works (full vs base)
▼
perf-test → Accuracy (placeholder) + Performance benchmarks
│ scripts: run_benchmark, run_all_benchmarks
▼
Final Report
前提条件
以下の条件を満たす Docker コンテナーが実行中であること:
- PyTorch がインストールされ、GPU にアクセスできる
- コンテナー名がわかっている(例:
flagrelease-worker)
このコンテナーは、別のチームが管理する /gpu-container-setup によって作成されます。
実行フロー
状態スキーマとゲートロジックの詳細については、references/pipeline-state.md をお読みください。
Step 0:初期コンテキストの収集
コンテナー名をユーザーに尋ねます(または実行中のコンテナーを検出します):
docker ps --format '{{.Names}}' | head -10
コンテナーが実行中であることを確認します:
docker inspect --format='{{.State.Status}}' <CONTAINER> | grep -q running
パイプラインの状態を初期化します(references/pipeline-state.md を参照)。
Step 1:ソフトウェアスタックのインストール
../install-stack/SKILL.md を読み、その手順に従います。
install-stack スキルでは、以下を実行します:
scripts/collect_env_info.pyをコンテナーにコピーして、ベンダー、Python、glibc の情報を取得scripts/detect_network.pyをコンテナーにコピーして、ミラー設定を取得scripts/select_flagtree_wheel.pyを使用して FlagTree 用のパッケージを選択し、5 つのパッケージを順番にインストール- コンテナー内で
scripts/validate_packages.pyを実行して、最終ステータスを取得
ゲートチェック: gate_passed が false(vLLM またはプラグインのインストール失敗)の場合、パイプラインを停止します。
インストールエラーを報告し、FAIL とします。
結果をパイプラインの状態に保存します。
Step 2:環境の検証
../env-verify/SKILL.md を読み、その手順に従います。
env-verify スキルでは、以下を実行します:
- Qwen3-0.6B をダウンロード(キャッシュにない場合)
scripts/run_offline_inference.pyをコンテナーにコピーして、フェーズ A を実行scripts/test_serve_mode.pyをコンテナーにコピーして、フェーズ B を実行references/error-classification.mdを使用してエラーを分類
判断: 致命的なエラーがある場合は停止します。致命的でない場合は記録して続行します。
結果をパイプラインの状態に保存します。
Step 3:モデルの検証
../model-verify/SKILL.md を読み、その手順に従います。
このステップは対話形式です — ユーザーにモデルのパスを尋ねます。
model-verify スキルでは、以下を実行します:
- ユーザーからモデル情報を取得(AskUserQuestion)
- Run A と Run B で
run_offline_inference.pyとtest_serve_mode.pyを再利用 scripts/diff_analysis.pyを実行して結果を比較recommended_stack(full/base/none)を判定
判断: recommended_stack が none(Run A が失敗)の場合は停止します。
結果を(model_path、tp_size、recommended_stack を含めて)パイプラインの状態に保存します。
Step 4:パフォーマンステスト
../perf-test/SKILL.md を読み、その手順に従います。
perf-test スキルでは、以下を実行します:
- 推奨スタックで vllm serve を起動
scripts/run_all_benchmarks.pyをコンテナーにコピーして、5 つのプロファイルを実行- メトリクスを収集し、サマリーテーブルを作成
結果をパイプラインの状態に保存します。
Step 5:最終レポート
パイプラインの状態からすべての結果をまとめ、最終レポートを作成します:
{
"status": "PASS | PARTIAL | FAIL",
"pipeline": "flagrelease",
"container": "<name>",
"vendor": "<vendor>",
"model": "<path>",
"tensor_parallel_size": 8,
"steps": {
"install_stack": { "status": "...", "packages": {...} },
"env_verify": { "status": "...", "phase_a": "...", "phase_b": "..." },
"model_verify": { "status": "...", "run_a": "...", "run_b": "...", "recommended_stack": "..." },
"perf_test": { "status": "...", "profiles_passed": "5/5", "summary_table": "..." }
},
"errors": [...],
"conclusion": "Pipeline completed. ..."
}
以下の項目を明確にまとめてユーザーに提示します:
- インストールに成功/失敗したパッケージ
- ベーススタックが動作するかどうか
- マルチチップスタックが動作するかどうか(動作しない場合は失敗したコンポーネント)
- パフォーマンスの数値(サマリーテーブル)
- レイヤー分類を含むすべてのエラー
全体ステータス:
PASS— すべてのステップに成功し、完全なマルチチップスタックが動作PARTIAL— スタックを縮退させるとモデルが動作する、または一部のパフォーマンスプロファイルが失敗FAIL— モデルをサーブできない(ゲート失敗または Run A の失敗)
設計ルール
- すべての操作にタイムアウトを設定する — ハングを許可しません
- すべてのエラーを捕捉する — ステップ、フェーズ、レイヤー、原因を正確に記録します
- 成功または構造化エラーレポートを伴って、パイプラインを必ず完了する
- サブステップの失敗によって、無関係なステップをスキップしない(ゲート失敗の場合を除く)
- 直接アクセスに失敗した場合は、ネットワークでミラーを使用する
- スクリプトは JSON を出力する — 構造化され、解析可能で、実行間で比較できます