Skip to content

課題28: CreditAI MLOpsパイプライン - モデル開発から本番運用までの自動化

難易度: 🟡 中級


1. 分類情報

項目内容
難易度中級
カテゴリMLOps / 機械学習パイプライン
処理タイプバッチ
使用IaCTerraform
想定所要時間6-8時間

2. ビジネスシナリオ

企業プロファイル: 〇〇株式会社

項目内容
企業名〇〇株式会社
業種与信審査AIプラットフォーム
設立2020年
従業員数50名
本社東京
事業金融機関向け与信審査AI SaaS
顧客銀行・クレジットカード会社30社
年間審査件数500万件
API呼び出し1日20万件

現在のML開発プロセスの問題点

  • 開発から本番デプロイまで2週間
  • 手動作業によるミス発生
  • モデルのバージョン管理が不十分
  • 再現性の欠如(どの学習データで訓練したか不明)
  • モデル監視が手動
  • 規制対応(説明可能性)の工数大

目指す姿(MLOpsパイプライン)

Data Prep → Train → Eval → Register → Deploy → Monitor を自動化

  • コードプッシュから本番デプロイまで4時間
  • 完全自動化されたパイプライン
  • 全モデルのバージョン管理と追跡
  • 自動モデル監視とドリフト検出

規制要件(金融規制対応)

モデルガバナンス要件

1. モデルの追跡可能性(Traceability)

  • どのデータで学習したか
  • どのハイパーパラメータを使用したか
  • いつ、誰が承認したか

2. 説明可能性(Explainability)

  • 審査結果の理由を説明できること
  • SHAP値やFeature Importanceの記録

3. 公平性(Fairness)

  • 差別的バイアスがないことの検証
  • 定期的な公平性監査

4. 監査証跡(Audit Trail)

  • 全ての判断の記録
  • 7年間の保存義務

ビジネス要件と KPI

開発効率目標

指標現状目標改善
デプロイリードタイム2週間4時間98%↓
デプロイ頻度月1回週2回8倍↑
手動作業時間40時間/回2時間/回95%↓
ロールバック時間4時間15分94%↓

品質目標

指標現状目標基準
モデル精度(AUC)0.82> 0.85本番必須
推論レイテンシ500ms< 200msP99
エンドポイント可用性99.5%99.95%SLO
ドリフト検出時間7日< 1日自動

3. 学習目標

習得スキル

主要スキル

1. SageMaker Pipelines

  • パイプライン定義(Python SDK)
  • ステップの種類と使い分け
  • 条件分岐とパラメータ化
  • パイプラインの実行と監視

2. モデルレジストリとバージョン管理

  • Model Package Group
  • モデルの承認ワークフロー
  • メタデータ管理
  • リネージュ追跡

3. モデル監視

  • SageMaker Model Monitor
  • データ品質監視
  • モデル品質監視
  • バイアスドリフト検出

4. CI/CD for ML

  • CodePipeline / CodeBuild
  • GitOps ワークフロー
  • 自動テスト戦略
  • ブルー/グリーンデプロイ

副次スキル

  • Terraform によるMLOps基盤構築
  • EventBridge によるイベント駆動
  • 説明可能AI(SageMaker Clarify)
  • コスト最適化

4. 使用するAWSサービス

MLOpsコア

サービス用途重要度
SageMaker PipelinesMLパイプライン★★★★★
SageMaker Model Registryモデル管理★★★★★
SageMaker Model Monitorモデル監視★★★★☆
SageMaker Clarify説明可能性・公平性★★★★☆
SageMaker Experiments実験管理★★★☆☆

CI/CD

サービス用途重要度
CodeCommit / GitHubソースコード管理★★★★☆
CodePipelineCI/CDオーケストレーション★★★★★
CodeBuildビルド・テスト★★★★☆
EventBridgeイベント駆動★★★☆☆

インフラ

サービス用途重要度
TerraformIaC★★★★★
S3データ・アーティファクト★★★★★
IAMアクセス制御★★★★☆
CloudWatchログ・監視★★★★☆
SNS通知★★★☆☆

5. 前提条件と事前準備

必要な環境

bash
# Terraform バージョン確認
terraform --version
# Terraform v1.5.0 以上

# AWS CLI バージョン確認
aws --version
# aws-cli/2.x.x 以上

# Python環境
python3 --version
# Python 3.9以上

# 必要なPythonパッケージ
pip install sagemaker boto3 pandas scikit-learn

AWS環境の準備

bash
# 環境変数設定
export AWS_REGION=ap-northeast-1
export PROJECT_NAME=mlops
export ENVIRONMENT=dev

# 作業ディレクトリ作成
mkdir -p ~/mlops-mlops/{terraform,pipelines,scripts,tests}
cd ~/mlops-mlops

6. アーキテクチャ設計

MLOpsパイプライン全体像

コンポーネント役割
GitHub Codeソースコード管理
CodeBuildLint・テスト実行
S3 Artifactビルドパッケージ保存
Data Prepデータ前処理
Trainモデル学習
Evalモデル評価
Clarify Biasバイアスチェック
ConditionAUC・バイアス条件判定
Register Modelモデル登録
Model Registryモデルバージョン管理
Manual/Auto Approval承認プロセス
Deploy to Staging/Production各環境へのデプロイ
Data/Model/Bias Qualityモニタリング
CloudWatch Alarmアラート発報
SNS/PagerDuty通知配信

7. トラブルシューティング演習

演習7-1: パイプライン失敗

状況: SageMaker Pipelineの実行が「TrainModel」ステップで失敗している。

エラーログ:

ClientError: Data download failed for channel 'train'.
Please ensure that the role has s3:GetObject permission
for the following resources:
s3://mlops-ml-artifacts-dev-xxx/processing/train/

課題:

  1. エラーの原因を特定してください
  2. IAMポリシーを修正してください
  3. パイプラインを再実行して成功を確認してください

演習7-2: モデルドリフト検出

状況: Model Monitorからデータドリフトアラートが発生した。推論精度の低下が懸念される。

モニタリングレポート:

Feature項目
annual_incomeBaseline mean450,000
annual_incomeCurrent mean520,000
annual_incomeDrift score0.35 (threshold: 0.2)
employment_yearsBaseline distributionNormal
employment_yearsCurrent distributionBimodal
employment_yearsDrift score0.42 (threshold: 0.2)

課題:

  1. ドリフトの原因を分析してください
  2. 対応方針(再学習 or モデル調整)を決定してください
  3. 自動再学習トリガーの設計を検討してください

8. 設計課題

設計課題8-1: Feature Store統合

課題: SageMaker Feature Storeを導入し、特徴量の管理と再利用を効率化してください。

要件:

  • オンラインストア(推論時のリアルタイム取得)
  • オフラインストア(学習時のバッチ取得)
  • 特徴量のバージョン管理とリネージュ
  • 複数モデル間での特徴量共有

成果物:

  1. Feature Group設計
  2. 特徴量取り込みパイプライン
  3. Terraformテンプレート

9. 発展課題

発展課題9-1: マルチモデルA/Bテスト

シナリオ: 新しいアルゴリズム(LightGBM)のモデルを本番環境で段階的に検証したい。

技術要件:

  • トラフィックの10%を新モデルに振り分け
  • リアルタイムの精度比較
  • 統計的有意性の自動判定
  • 勝者モデルへの自動切り替え

成果物:

  1. A/Bテストアーキテクチャ
  2. Production Variantの設定
  3. 自動判定Lambdaの実装

10. 学習のまとめ

学習チェックリスト

SageMaker Pipelines

  • パイプラインをPython SDKで定義できる
  • 各種ステップ(Processing, Training等)を使い分けられる
  • 条件分岐とパラメータ化ができる
  • パイプラインのデバッグができる

Model Registry

  • Model Package Groupを作成できる
  • モデルのバージョン管理ができる
  • 承認ワークフローを設定できる
  • モデルメタデータを管理できる

Model Monitor

  • Data Quality監視を設定できる
  • Model Quality監視を設定できる
  • ベースラインを作成できる
  • アラートを設定できる

CI/CD

  • CodePipelineでMLパイプラインを統合できる
  • 自動テスト戦略を設計できる
  • Blue/Greenデプロイを実装できる
  • ロールバック戦略を設計できる

11. コスト見積もり

想定コスト(月額)

開発環境

項目数量月額(USD)
SageMaker Pipelines10実行/月$5
Training Jobs20時間/月$5
Processing Jobs10時間/月$2
CodePipeline1パイプライン$1
CodeBuild100分/月$0.50
S3 Storage50GB$1.15
小計約 $15

本番環境想定

項目数量月額(USD)
Endpoint (ml.m5.large)2台 × 24h$210
Model Monitor720時間$72
SageMaker Pipelines8実行/月$40
Training Jobs (週次)16時間/月$4
CodePipeline1パイプライン$1
S3 Storage500GB$11.50
CloudWatchログ・メトリクス$20
小計約 $359(約 ¥54,000)

リソースのクリーンアップ

bash
# Terraformリソース削除
cd ~/mlops-mlops/terraform
terraform destroy -auto-approve

# SageMakerリソースの手動削除(エンドポイント等)
aws sagemaker delete-endpoint --endpoint-name mlops-production-endpoint
aws sagemaker delete-endpoint-config --endpoint-config-name mlops-endpoint-config-dev

# S3バケット削除
aws s3 rb s3://mlops-ml-data-dev-${ACCOUNT_ID} --force
aws s3 rb s3://mlops-ml-artifacts-dev-${ACCOUNT_ID} --force

echo "Cleanup completed!"

次の課題: 課題29

前の課題: 課題27