第1分野: 機械学習(ML)のためのデータ準備 (28%)
タスク1.1: データを取り込んで保存する
対象知識
- データ形式と取り込みメカニズム(Parquet, JSON, CSV, ORC, Avro, RecordIOなど)
- AWSの主要データソース(S3, EFS, FSx for NetApp ONTAPなど)
- ストリーミングデータソース(Kinesis, Apache Flink, Apache Kafkaなど)
- ストレージオプション(ユースケースとトレードオフ)
対象スキル
- 適切なストレージサービスからデータを抽出
- データアクセスパターンに基づいた適切なデータ形式の選択
- SageMaker Data WranglerおよびFeature Storeへのデータ取り込み
- 複数ソースからのデータマージ
- 容量とスケーラビリティに関する問題のトラブルシューティング
学習ポイント
- データ形式の選択: データアクセスパターンに基づいて適切なフォーマット(Parquet、JSON、CSV、ORCなど)を選択する
- ストレージの選択: コスト、パフォーマンス、データ構造に基づいて初期考慮事項を決定
- Feature Store: フィーチャーグループを作成し、レコードを取り込み、トレーニング用データセットを作成
模擬試験問題
S3のCSVファイルを機械学習トレーニングデータにする前処理手順(3ステップ)
問題: S3にあるCSVファイルを機械学習のトレーニングデータにする目的でデータ前処理を行いたい。データには未入力なフィールドも結構ある。適切な3ステップは?
解答:
- Glueクローラーでスキーマと利用可能な列を推論する
- データカタログを作成(欠損値を推論するわけではない)
- Glue DataBrewを使ってデータクリーニングや特徴量エンジニアリングを実施する
- S3バケットに保存
- バケット分けるかパス分けるだけかはよくわからん。たぶんバケット分ける
SageMaker Feature Storeでの特徴量作成・管理の初期3ステップ
問題: SageMaker Feature Storeで特徴量の作成・管理を始めるはじめの3ステップは?
解答:
- フィーチャーグループを作成する
- データのスキーマ、ストレージオプション、インデックスもここで定義
- レコードを取り込む
- レコードは通常のトレーニングデータ1行のこと
- レコード単位で履歴みたいな扱いで管理する
- トレーニング用のデータセットを作成するためにストアにアクセスする
- トレーニングデータセットを作成
- レコードから作成。いつのデータから特徴量を生成するかの絞り込みができる
- モデルの学習に必要な特徴量の取得ができる
トレーニングインスタンスとストレージの選択
重要ポイント:
- トレーニングのインスタンスは可用性よりもレイテンシを重視しても良い(クラスタープレイスメントなど)
- トレーニングデータのストレージとしてEFSもLustreと近い使い方はできるが、レイテンシで劣るのでまず選ばない
タスク1.2: データを変換し、特徴量エンジニアリングを実行する
対象知識
- データクリーニングおよび変換手法(外れ値検出、欠損データ補完、結合、重複排除など)
- 特徴量エンジニアリング手法(スケーリング、標準化、特徴量分割、ビニング、ログ変換、正規化など)
- エンコーディング手法(ワンホット、バイナリ、ラベル、トークン化など)
- データ調査・可視化ツール(SageMaker Data Wrangler、Glue、Glue DataBrewなど)
- ストリーミングデータ変換サービス(Lambda、Sparkなど)
- データアノテーションおよびラベリングサービス
対象スキル
- AWSツールを使用したデータ変換
- 特徴量の作成と管理
- データの検証とラベリング
学習ポイント
- Glue DataBrew: 事前定義されたデータマスキングと変換が可能
- Glue DataBrewの要件: 同じフォルダ内には同じ拡張子のファイルだけ(整理が必要な場合がある)
模擬試験問題
データの前処理で機密情報のマスキング
問題: データの前処理で、順序が意味のある特徴量と破棄できない機密情報がある。機密データのマスキングをしたい。
解答: Glue DataBrew
本番環境での推論データの正規化
問題: 本番環境での推論データをトレーニングデータと同じ方法で正規化したい。
重要性:
- モデルの予測精度を保つのに重要
- データドリフトを検出しやすくもなる
タスク1.3: データの完全性を確保し、モデリングに向けてデータを準備する
対象知識
- トレーニング前のバイアスメトリクス(クラス不均衡CI、ラベル比率の差DPLなど)
- クラス不均衡に対処する戦略(合成データ生成、リサンプリングなど)
- データ暗号化手法
- データの分類、匿名化、マスキング
- コンプライアンス要件(PII、PHI、データレジデンシーなど)
対象スキル
- データ品質の検証(Glue DataBrew、Glue Data Qualityの使用)
- データバイアスの特定と対策(SageMaker Clarifyの使用)
- 予測バイアス軽減のためのデータ準備
- モデルトレーニングリソースへのデータ設定
模擬試験問題
Redshift内の機密データの匿名化
問題: Redshift内の機密データについて、元のデータを変換せず、匿名化したデータをデータストアに保存せずにデータサイエンティストに提供したい。
解答: ⭕️ Redshiftの動的データマスキング機能を使う
- ユーザーごとにアクセスレベルが設定できる
- 権限がないカラムにアクセスするクエリ結果はマスキングされる
不正解: ❌ マスキングロジックを含めたマテリアライズドビューを作って読み取り権限を与える
- マテリアライズドビューはデータを新しく保存する点でNG
- リアルタイム性が損なわれるのも要件と相談
バイアスドリフトの検証ワークフロー
問題: 運用中のモデルについて、オンラインでバイアスドリフトが発生してないか検証するワークフローを実行したい。
解答: ⭕️ アプリケーションからLambdaを呼び出して、SageMaker Clarifyジョブを実行する
不正解: ❌ Lambda関数からSageMakerの組み込みイメージであるsagemaker-model-monitor-analyzerを実行する