MLA-C02 · LESSON 1

ML と AI のためのデータの準備28% · 3項目

ML と AI のためのデータの収集と保存、変換と特徴量エンジニアリング、データの品質の検証とバイアスの管理を学びます。

1.1データを収集して保存する

1.1 データを収集して保存する。

概念

ML のデータは、S3(データレイクの中心)、EFS・FSx for Lustre(高速な学習のための共有ファイル)、データベース、ストリーミング(Kinesis・MSK)から集めます。形式は、分析・学習の効率のために Parquet・ORC(列指向)や、SageMaker の学習用に RecordIO・TFRecord、JSON Lines などを選びます。RAG のためにはベクトルストアと、ナレッジベースのチャンク分割の戦略も設計します。

仕組み・手順

  1. データの所在と量・更新の頻度を確認する
  2. S3 にデータレイクを作り、形式とパーティションを決める
  3. 大量のデータの高速な学習には FSx for Lustre(S3 と連携)を使う
  4. ストリーミングのデータは Kinesis・Firehose で取り込む
  5. RAG 用の文書はチャンク分割(固定長・階層・セマンティック)を決めて取り込む

業務での例

学習のたびに 5 TB の画像を S3 から読み込む時間を短くするため、S3 にリンクした FSx for Lustre をマウントして学習ジョブから読む。

紛らわしい点・試験の注意

ミニクイズ

Q1. DynamoDB の本番のテーブルのデータを学習に使いたい。本番の読み込みの容量を使わずに取り出す方法として、最も適切なものはどれか。

  1. 本番のテーブルの読み込みの容量を最大にして、営業時間中にまとめて読み出す
  2. ポイントインタイムリカバリを有効にして、テーブルを S3 にエクスポートする
  3. アプリの画面から担当者がデータを手で書き写し、表計算のファイルにまとめる
  4. 学習のたびに本番のテーブルをスキャンして、全件を読み出すスクリプトを動かす
答えと解説を見る

正解:B ポイントインタイムリカバリを有効にして、テーブルを S3 にエクスポートする

DynamoDB の S3 へのエクスポートはポイントインタイムリカバリの機能を使い、テーブルの読み込みの容量を消費しない。

Q2. RDS のデータベースの大きな表を、分析と学習のために S3 に Parquet で取り出したい。本番への影響を小さくする方法として、最も適切なものはどれか。

  1. AWS DMS で本番のインスタンスから全件を読み、S3 に移す
  2. リードレプリカを作り、そこから CSV で S3 に書き出す
  3. RDS のスナップショットを S3 にエクスポートし、Parquet で出力する
  4. Glue の JDBC 接続で本番から表を読み、Parquet に変換する
答えと解説を見る

正解:C RDS のスナップショットを S3 にエクスポートし、Parquet で出力する

RDS のスナップショットのエクスポートは、本番のインスタンスに負荷をかけずに、データを Parquet で S3 に出力する。 【他の選択肢】DMS や Glue の JDBC 接続は本番のインスタンスから読むため負荷がかかる。リードレプリカは本番への影響は小さいが、追加の費用がかかり Parquet にもならない。

参考リンク

1.2データの変換、特徴量エンジニアリング、前処理

1.2 データ変換、特徴量エンジニアリング、前処理を実行する。

概念

前処理には、欠損値の処理(削除・補完)、外れ値の処理、スケーリング(標準化・正規化)、カテゴリ変数のエンコーディング(ワンホット・ラベル・ターゲット)、テキストのトークン化、データの分割があります。SageMaker Data Wrangler(画面での準備)、AWS Glue(ETL)、Glue DataBrew(ノーコードの整形)、SageMaker Processing を使い、作った特徴量は SageMaker Feature Store(オンライン・オフライン)で共有します。

仕組み・手順

  1. データを探索し、欠損・外れ値・分布を確認する
  2. 欠損値と外れ値を処理する
  3. 数値の特徴量をスケーリングし、カテゴリ変数をエンコードする
  4. 日付からの曜日など、新しい特徴量を作る
  5. Feature Store に登録し、学習と推論で同じ特徴量を使う

業務での例

解約予測のために、Data Wrangler で契約日から「契約期間(月)」を作り、プランをワンホットエンコードして、Feature Store のオンラインストアからリアルタイムの推論で使う。

紛らわしい点・試験の注意

ミニクイズ

Q1. SageMaker Feature Store で、Web の画面からの推論のたびに顧客の最新の特徴量を数ミリ秒で取り出したい。使うべきものはどれか。

  1. AWS Artifact
  2. Amazon S3 Glacier
  3. オフラインストア
  4. オンラインストア
答えと解説を見る

正解:D オンラインストア

オンラインストアは低い遅延で最新の特徴量を返す。オフラインストアは S3 に履歴を保存し、学習のデータの作成に使う。

Q2. データの漏えい(リーケージ)の説明として誤っているものはどれか。

  1. 評価の精度が高く出るので、漏えいがあっても本番での性能は同じように高い
  2. 漏えいがあると、評価の精度が実際よりも高く見えてしまう
  3. 予測の時点では手に入らない情報が、学習データの特徴量に含まれてしまうこと
  4. 時系列のデータをランダムに分けると、漏えいが起きやすい
答えと解説を見る

正解:A 評価の精度が高く出るので、漏えいがあっても本番での性能は同じように高い

漏えいがあると評価の精度は見かけ上高くなるが、本番ではその情報が手に入らないので性能が大きく下がる。

参考リンク

1.3データの品質を検証し、バイアスを管理する

1.3 データ品質を検証し、バイアスを管理する。

概念

データの品質は、AWS Glue Data Quality(ルールで完全性・一意性・値の範囲を検査)や Data Wrangler のレポートで確認します。バイアスは、SageMaker Clarify の学習前のバイアスの指標(クラスの不均衡 CI、ラベルの割合の差 DPL など)で測ります。不均衡なデータには、リサンプリング(オーバー・アンダー)や SMOTE などの合成、重み付けで対処します。ラベル付けには SageMaker Ground Truth を使います。

仕組み・手順

  1. 品質のルール(欠損率・値の範囲)を定義し、パイプラインで検査する
  2. Clarify で、属性(性別・年齢など)ごとのデータの偏りを測る
  3. 不均衡なクラスはリサンプリングや重み付けで対処する
  4. ラベルの品質を Ground Truth と複数の作業者の確認で上げる
  5. 個人情報は匿名化・マスキングする

業務での例

不正検出のデータで不正が 0.5% しかないため、学習データの不正のサンプルを SMOTE で増やし、評価は元の分布のテストデータで行う。

紛らわしい点・試験の注意

ミニクイズ

Q1. SageMaker Clarify の学習の前の指標「クラスの不均衡(CI)」が示すものとして、最も適切なものはどれか。

  1. 学習を終えたモデルの予測の精度が、時間とともに下がっている度合い
  2. 学習ジョブの実行の時間が、予定よりも長くかかっている度合い
  3. 比べるグループ(例:性別)の間で、データの件数が偏っている度合い
  4. データのファイルの大きさが、ストレージの上限を超えている度合い
答えと解説を見る

正解:C 比べるグループ(例:性別)の間で、データの件数が偏っている度合い

CI はグループの間のサンプルの数の偏りを表す。偏りが大きいと、少ないグループで性能が下がりやすい。

Q2. 数十万枚の画像のラベル付けの費用を下げたい。人の作業者の品質は保ちたい。最も適切な方法はどれか。

  1. ラベル付けの作業は行わずに、画像のファイル名から内容を推測して、その推測をそのまま正しいラベルとして使う
  2. すべての画像を 1 人の作業者に任せ、確認の作業も同じ人に行ってもらうことにする
  3. Ground Truth の自動のラベル付けを使い、モデルが自信のあるものは自動で、残りを人がラベル付けする
  4. 画像の枚数を 100 枚に減らして、残りの画像は学習にまったく使わないことにする
答えと解説を見る

正解:C Ground Truth の自動のラベル付けを使い、モデルが自信のあるものは自動で、残りを人がラベル付けする

Ground Truth の自動のラベル付け(能動学習)は、確信度の高いデータを自動でラベル付けし、人の作業の量と費用を減らす。

参考リンク

レッスンは当サイトがAWS 認定の公式ページと公式試験ガイドをもとに独自に作成したもので、試験の内容を保証するものではありません。製品の仕様は変わることがあるため、参考リンク先の最新情報を確認してください。

ご利用上の注意(非公式・独自問題・合格保証なし)