SKILL.md
[English](../../../../../../../plugins/machine-learning-ops/skills/ml-pipeline-workflow/SKILL.md) | 日本語
MLパイプラインワークフロー
データ準備からモデルデプロイメントまでの完全なエンドツーエンドMLOpsパイプラインオーケストレーション。
概要
このスキルは、完全なライフサイクルを処理する本番MLパイプラインを構築するための包括的なガイダンスを提供します: データ取り込み → 準備 → 学習 → 検証 → デプロイメント → 監視。
このスキルを使用する場合
- ゼロから新しいMLパイプラインを構築する
- MLシステムのワークフローオーケストレーションを設計する
- データ → モデル → デプロイメント自動化を実装する
- 再現可能な学習ワークフローをセットアップする
- DAGベースのMLオーケストレーションを作成する
- MLコンポーネントを本番システムに統合する
このスキルが提供するもの
コア機能
- パイプラインアーキテクチャ
- エンドツーエンドワークフロー設計 - DAGオーケストレーションパターン(Airflow、Dagster、Kubeflow) - コンポーネント依存関係とデータフロー - エラーハンドリングとリトライ戦略
- データ準備
- データ検証と品質チェック - 特徴量エンジニアリングパイプライン - データバージョニングと系統 - Train/validation/testの分割戦略
- モデル学習
- 学習ジョブオーケストレーション - ハイパーパラメータ管理 - 実験追跡統合 - 分散学習パターン
- モデル検証
- 検証フレームワークとメトリクス - A/Bテスト基盤 - パフォーマンスリグレッション検出 - モデル比較ワークフロー
- デプロイメント自動化
- モデルサービングパターン - カナリアデプロイメント - ブルーグリーンデプロイメント戦略 - ロールバックメカニズム
リファレンスドキュメンテーション
詳細なガイドについてはreferences/ディレクトリを参照してください:
- data-preparation.md - データクリーニング、検証、特徴量エンジニアリング
- model-training.md - 学習ワークフローとベストプラクティス
- model-validation.md - 検証戦略とメトリクス
- model-deployment.md - デプロイメントパターンとサービングアーキテクチャ
アセットとテンプレート
assets/ディレクトリには以下が含まれます:
- pipeline-dag.yaml.template - ワークフローオーケストレーション用のDAGテンプレート
- training-config.yaml - 学習設定テンプレート
- validation-checklist.md - デプロイメント前検証チェックリスト
使用パターン
基本的なパイプラインセットアップ
# 1. パイプラインステージを定義
stages = [
"data_ingestion",
"data_validation",
"feature_engineering",
"model_training",
"model_validation",
"model_deployment"
]
# 2. 依存関係を設定
# 完全な例はassets/pipeline-dag.yaml.templateを参照
本番ワークフロー
- データ準備フェーズ
- ソースから生データを取り込む - データ品質チェックを実行 - 特徴量変換を適用 - 処理済みデータセットをバージョニング
- 学習フェーズ
- バージョニングされた学習データをロード - 学習ジョブを実行 - 実験とメトリクスを追跡 - 学習済みモデルを保存
- 検証フェーズ
- 検証テストスイートを実行 - ベースラインと比較 - パフォーマンスレポートを生成 - デプロイメントを承認
- デプロイメントフェーズ
- モデルアーティファクトをパッケージ化 - サービング基盤にデプロイ - 監視を設定 - 本番トラフィックを検証
ベストプラクティス
パイプライン設計
- モジュール性: 各ステージは独立してテスト可能であるべき
- 冪等性: ステージの再実行は安全であるべき
- 可観測性: すべてのステージでメトリクスをログ
- バージョニング: データ、コード、モデルバージョンを追跡
- 障害ハンドリング: リトライロジックとアラートを実装
データ管理
- データ検証ライブラリ(Great Expectations、TFX)を使用
- DVCまたは類似ツールでデータセットをバージョニング
- 特徴量エンジニアリング変換を文書化
- データ系統追跡を維持
モデル操作
- 学習とサービング基盤を分離
- モデルレジストリ(MLflow、Weights & Biases)を使用
- 新しいモデルの段階的ロールアウトを実装
- モデルパフォーマンスドリフトを監視
- ロールバック機能を維持
デプロイメント戦略
- シャドウデプロイメントから開始
- 検証にカナリアリリースを使用
- A/Bテスト基盤を実装
- 自動ロールバックトリガーをセットアップ
- レイテンシとスループットを監視
統合ポイント
オーケストレーションツール
- Apache Airflow: DAGベースのワークフローオーケストレーション
- Dagster: アセットベースのパイプラインオーケストレーション
- Kubeflow Pipelines: KubernetesネイティブのMLワークフロー
- Prefect: 現代のデータフロー自動化
実験追跡
- 実験追跡とモデルレジストリ用のMLflow
- 可視化とコラボレーション用のWeights & Biases
- 学習メトリクス用のTensorBoard
デプロイメントプラットフォーム
- マネージドML基盤用のAWS SageMaker
- GCPデプロイメント用のGoogle Vertex AI
- Azureクラウド用のAzure ML
- クラウドに依存しないサービング用のKubernetes + KServe
段階的開示
基本から始めて徐々に複雑さを追加:
- レベル1: シンプルな線形パイプライン(data → train → deploy)
- レベル2: 検証と監視ステージを追加
- レベル3: ハイパーパラメータチューニングを実装
- レベル4: A/Bテストと段階的ロールアウトを追加
- レベル5: アンサンブル戦略を持つマルチモデルパイプライン
一般的なパターン
バッチ学習パイプライン
# assets/pipeline-dag.yaml.templateを参照
stages:
- name: data_preparation
dependencies: []
- name: model_training
dependencies: [data_preparation]
- name: model_evaluation
dependencies: [model_training]
- name: model_deployment
dependencies: [model_evaluation]
リアルタイム特徴量パイプライン
# リアルタイム特徴量のストリーム処理
# バッチ学習と組み合わせ
# references/data-preparation.mdを参照
継続的学習
# スケジュールに基づく自動再学習
# データドリフト検出によってトリガー
# references/model-training.mdを参照
トラブルシューティング
一般的な問題
- パイプライン障害: 依存関係とデータ可用性を確認
- 学習の不安定性: ハイパーパラメータとデータ品質を確認
- デプロイメント問題: モデルアーティファクトとサービング設定を検証
- パフォーマンス低下: データドリフトとモデルメトリクスを監視
デバッグ手順
- 各ステージのパイプラインログを確認
- 境界での入力/出力データを検証
- コンポーネントを単独でテスト
- 実験追跡メトリクスを確認
- モデルアーティファクトとメタデータを検査
次のステップ
パイプラインをセットアップした後:
- 最適化のためにhyperparameter-tuningスキルを探索
- MLflow/W&Bのためにexperiment-tracking-setupを学習
- サービング戦略のためにmodel-deployment-patternsを確認
- 可観測性ツールで監視を実装
関連スキル
- experiment-tracking-setup: MLflowとWeights & Biases統合
- hyperparameter-tuning: 自動化されたハイパーパラメータ最適化
- model-deployment-patterns: 高度なデプロイメント戦略