第2分野: MLモデルの開発 (26%)
タスク2.1: モデリングアプローチを選択する
対象知識
- ビジネス上の問題を解決するためのMLアルゴリズムの機能と適切な使用
- AWS AIサービス(Translate、Transcribe、Rekognition、Bedrockなど)の活用
- モデル選択またはアルゴリズム選択時の解釈可能性
- SageMakerの組み込みアルゴリズムと適用タイミング
対象スキル
- 使用可能なデータと問題の複雑さからMLソリューションの実現可能性を判断
- 特定の問題を解決するための適切なMLモデルやアルゴリズムの比較と選択
- 組み込みアルゴリズム、基盤モデル、ソリューションテンプレートの選択
- コストに基づくモデル/アルゴリズムの選択
- 一般的なビジネスニーズを解決するAIサービスの選択
学習ポイント
- Amazon Q Business: ブロックフレーズで特定キーワード(競合他社名など)を除外できる
模擬試験問題
Amazon Comprehendカスタムモデルのクロスアカウントコピー
問題: Comprehendカスタムモデルをクロスアカウントでコピーしたい。
解答:
- リソースベースIAMポリシーを作成して、ComprehendのImportModelAPIを使って別のアカウントにコピーする
- コピー元: ポリシー内でコピー先アカウントへのアクセス許可
- コピー先: 適切な権限設定
タスク2.2: モデルをトレーニングおよび改良する
対象知識
- トレーニングプロセスの要素(エポック、ステップ、バッチサイズなど)
- モデルトレーニング時間を短縮する方法(早期停止、分散トレーニングなど)
- モデルサイズに影響する要因
- モデルのパフォーマンスを向上させる方法
- 正則化手法の利点(ドロップアウト、重み減衰、L1/L2など)
- ハイパーパラメータのチューニング手法(ランダム検索、ベイズ最適化など)
- モデルのハイパーパラメータとパフォーマンスへの影響
- SageMaker外部で構築されたモデルをSageMakerに取り入れる方法
対象スキル
- SageMakerの組み込みアルゴリズムと一般的なMLライブラリを使用したMLモデル開発
- SageMakerスクリプトモードでのモデルトレーニング
- 事前トレーニング済みモデルのファインチューニング
- ハイパーパラメータチューニングの実行
- モデルのオーバーフィット、アンダーフィット、壊滅的忘却の防止
- 複数のトレーニングモデルを組み合わせたパフォーマンス向上
- モデルサイズの縮小
- モデルバージョンの管理
模擬試験問題
学習時の損失が収束しないとき
問題: 学習時の損失が収束しない場合の対処法は?
解答: ⭕️ 学習率を減らす
- 高すぎると最適な損失最小点に到達する前に通り過ぎて振動する
- 小さくするとより安定して収束する
- デメリット: 学習速度は遅くなる
不正解: ❌ 早期停止を導入する
- 収束してないので効果は薄い
- そもそも目的は過学習を防ぐこと
XGBoostでの過学習の可能性への対処
問題: XGBoostでの不正検出モデルで過学習の可能性(トレーニングの精度は高いが未知のデータで精度が低い)。学習方法の修正は?
解答: ⭕️ max_depthを減らす
- モデルの複雑さは減る
- あまり深いツリーを作ると複雑に捉えすぎるので汎化性能が低くなる
- 高いとモデルの収束は早くなるが、過学習のリスクが高まる
- 副次的効果: 小さな木構造になるのでトレーニング速度や推論速度が向上する
トレーニング中のノード間通信の暗号化
問題: トレーニング中のノード間通信を暗号化したい。
解答: ⭕️ トレーニングクラスターでノード間通信の暗号化を有効にする
不正解: ❌ KMSのキーをアタッチする
- そもそも通信中の暗号化にKMSのキーは使わない
- HTTPS通信できるようにとかgRPCチャネル設定したりとかする
外部APIトークンのローテーション
問題: 外部APIのトークンをローテーションしたい。
解答: Secrets Managerに保存して使用する
- Lambda関数を定期的に呼び出して更新するように設定できる
タスク2.3: モデルのパフォーマンスを分析する
対象知識
- モデル評価手法とメトリクス(混同行列、ヒートマップ、F1スコア、正解率、適合率、再現率、RMSE、ROC、AUCなど)
- パフォーマンスベースラインの作成方法
- モデルのオーバーフィットとアンダーフィットの特定方法
- SageMaker Clarifyで使用可能なメトリクス
- 収束の問題
対象スキル
- 評価メトリクスの選択と解釈、モデルバイアスの検出
- モデルのパフォーマンス、トレーニング時間、コスト間のトレードオフ評価
- AWSサービスを使用した再現可能な実験
- シャドウバリアントと本番稼働用バリアントのパフォーマンス比較
- SageMaker Clarifyを使用したモデル出力の解釈
- SageMakerモデルデバッガーを使用したモデル収束のデバッグ
学習ポイント
ポジネガ系二値分類の指標
ポジティブな予想の指標:
ネガティブ系:
- 再現率(Recall)
- ネガと予想した中で実際にポジだった割合?
- 品質管理で重要
- 精度
- ネガと予想した中で実際にネガだった割合
- 医療診断で重要
全体の指標:
- F1スコア
- 正確性と再現率の調和平均
- どちらも重要な場合に使う
偽陰性のコストが高いときに重視する指標
解答: 高い再現率(Recall)
模擬試験問題
XGBoost予測モデルでのF1スコア低下の原因
問題: XGBoost予測モデルで顧客のサブスクリプション解約可能性を予測している。F1スコアの変更もモニタリングしてる。モデル品質のベースライン分析時にF1スコアの閾値の更新があった。更新から数ヶ月更新する必要がなかったが、最近になってF1スコアが大幅に低下した。原因として考えられるのは?
解答: ⭕️ 学習に使う顧客データにコンセプトドリフトが発生した
不正解:
- ❌ モデルの複雑さが不十分で、ベースラインデータのパターンを捉えきれていない
- ❌ ベースライン計算時に誤った正解ラベル(ground truth)が与えられた
- 数ヶ月F1スコアに影響がなかったので原因と考えづらい
シャドウテスト
問題: 新しいMLモデルを本番相当の環境でテストしたいが、本番ユーザーへの影響は与えたくない。
解答: シャドウテスト
- 新しいモデル(シャドウバリアント)に本番と同じデータを送信して比較する
- SageMakerのエンドポイント構成にシャドウバリアントという設定項目がある