AWS Certified Machine Learning Engineer - Associate (MLA-C01) 完全まとめシート
📘 AWS Certified Machine Learning Engineer - Associate (MLA-C01) 完全まとめシート
🎯 試験概要
| 項目 | 内容 |
|---|---|
| 試験コード | MLA-C01 |
| 試験時間 | 130分 |
| 問題数 | 65問(うち50問が採点対象、15問は未採点) |
| 合格スコア | 720/1000 |
| 形式 | 選択式・複数選択式・順序付け・マッチング・ケーススタディ |
配点比率(最重要:時間配分の基準)
| 分野 | 比率 | 内容 |
|---|---|---|
| 分野1 | 28% | MLのためのデータ準備 |
| 分野2 | 26% | MLモデルの開発 |
| 分野3 | 22% | MLワークフローのデプロイ・オーケストレーション |
| 分野4 | 24% | ML ソリューションのモニタリング・保守・セキュリティ |
📦 コンテンツ分野1: MLのためのデータ準備(28%)
1.1 データの取り込みと保存
🗂️ データフォーマット完全比較表
| フォーマット | 種類 | 特徴 | ユースケース | SageMaker対応 |
|---|---|---|---|---|
| CSV(Comma-Separated Values:カンマ区切り) | 行指向・テキスト | 人間可読、スキーマなし、圧縮効率低 | 小規模データ、表形式 | ◎(多くの組み込みアルゴリズム対応) |
| JSON(JavaScript Object Notation) | 行指向・テキスト | 階層構造、半構造化、冗長 | API、ログ、NoSQL | ◎ |
| JSON Lines (JSONL) | 行指向 | 1行1JSON、ストリーミング向き | 大規模ログ、ML入出力 | ◎ |
| Parquet(パーケイ) | 列指向・バイナリ | 圧縮率高、列単位アクセス高速、スキーマ内蔵 | 分析、ビッグデータ、Athena/Redshift Spectrum | ◎ |
| ORC(Optimized Row Columnar:最適化行列指向) | 列指向・バイナリ | Hive最適化、述語プッシュダウン、ACID | Hive、Hadoopエコシステム | ◎ |
| Avro(アヴロ) | 行指向・バイナリ | スキーマ進化対応、Kafka標準 | ストリーミング、メッセージング | ◎ |
| RecordIO-Protobuf | バイナリ | SageMaker組み込み向け、Pipe Mode最速 | SageMaker組み込みアルゴリズム | ◎ |
| TFRecord | バイナリ | TensorFlow標準 | TF DLトレーニング | ◎ |
| libsvm | テキスト | スパースデータ向け | XGBoost、Linear Learner | ◎ |
🔑 紛らわしい! Parquet vs ORC
| 観点 | Parquet | ORC |
|---|---|---|
| エコシステム | Spark / Hadoop / Athena 標準 | Hive 最適化 |
| 圧縮 | Snappy、Gzip、LZO | Zlib、Snappy |
| ネストデータ | 強い | やや弱い |
| AWS推奨 | Athena・Glue で主流 | Hive on EMR で主流 |
| 試験での選び方 | 「Athena」「分析クエリ」「Spark」→ Parquet | 「Hive」「ACID必要」→ ORC |
💡 行指向 vs 列指向 覚え方
- 行指向(CSV、JSON、Avro): トランザクション・ストリーミング向け。1行全部を読む処理が速い
- 列指向(Parquet、ORC): 分析向け。特定列だけ集計する処理が速い、圧縮が効く
⚠️ 試験頻出:RecordIO-Protobuf
- SageMaker組み込みアルゴリズム(XGBoost以外)の推奨フォーマット
-
Pipe Mode(パイプモード)で使用すると、S3から直接ストリーミングして高速トレーニング -
File Modeとの違い:File ModeはEBSにダウンロード→読み込み、Pipe Modeはストリーム
🪣 AWSストレージサービス完全比較
| サービス | 種類 | レイテンシ | スケール | 主用途 | ML向け |
|---|---|---|---|---|---|
| Amazon S3 | オブジェクト | 高(数十ms) | 無制限 | データレイク、長期保管 | データレイク基盤 |
| Amazon EBS(Elastic Block Store) | ブロック | 低(< 1ms) | TB級 | 単一EC2アタッチ | トレーニングインスタンスの一時データ |
| Amazon EFS(Elastic File System) | ファイル(NFS) | 低〜中 | PB級 | 複数AZ共有 | ノートブック共有、複数トレーニングジョブ |
| Amazon FSx for Lustre(ラスター) | ファイル(並列FS) | 超低 | PB級 | HPC・ML | 大規模トレーニング最速、S3連携可 |
| Amazon FSx for NetApp ONTAP | ファイル(NFS/SMB) | 低 | PB級 | エンタープライズNAS | レガシー連携 |
| Amazon FSx for Windows File Server | ファイル(SMB) | 低 | PB級 | Windows共有 | .NETアプリ連携 |
🔑 紛らわしい! S3 vs EFS vs FSx for Lustre(試験超頻出)
| シナリオ | 答え | 理由 |
|---|---|---|
| ペタバイト級のトレーニングデータを最高速で読みたい | FSx for Lustre | 並列ファイルシステム、サブミリ秒レイテンシ、S3とシームレス連携 |
| 複数のノートブック・トレーニングジョブから同じデータを共有 | EFS | NFSベース、複数同時マウント |
| 安価に大量データを長期保管 | S3 | コスト最安、ライフサイクル対応 |
| 単一トレーニングインスタンス用の一時データ | EBS | 低レイテンシだが単一アタッチのみ |
💡 S3関連の重要機能
| 機能 | 説明 | ユースケース |
|---|---|---|
| S3 Transfer Acceleration(転送高速化) | CloudFrontエッジ経由で長距離転送を高速化 | リモート拠点からの大容量アップロード |
| Multipart Upload(マルチパートアップロード) | 大ファイルを分割アップロード | 100MB以上推奨、5GB以上必須 |
| S3 Select / Glacier Select | SQLクエリでオブジェクト内データ抽出 | コスト削減、データ転送削減 |
| VPC Gateway Endpoint | プライベートにS3アクセス | セキュリティ要件 |
S3ストレージクラス比較
| クラス | 用途 | 最小保存期間 | 取り出し時間 | コスト |
|---|---|---|---|---|
| Standard | 頻繁アクセス | なし | 即時 | 高 |
| Intelligent-Tiering | 自動最適化 | なし | 即時 | 自動調整 |
| Standard-IA(Infrequent Access) | 月1回未満 | 30日 | 即時 | 中 |
| One Zone-IA | 月1回未満・再生成可能 | 30日 | 即時 | 中(安) |
| Glacier Instant Retrieval | 四半期アクセス | 90日 | ms | 低 |
| Glacier Flexible Retrieval | 年数回 | 90日 | 1分〜12時間 | 超低 |
| Glacier Deep Archive | 年1回以下 | 180日 | 12〜48時間 | 最低 |
💡 EBSボリュームタイプ
| タイプ | 用途 | IOPS |
|---|---|---|
| gp3 / gp2(General Purpose SSD) | 汎用 | 中 |
| io2 / io1(Provisioned IOPS SSD) | DB、高IOPS要件 | 高(最大256,000) |
| st1(Throughput Optimized HDD) | スループット重視 | 低・大容量 |
| sc1(Cold HDD) | コールド | 最安 |
🌊 ストリーミングデータ取り込み比較(試験超頻出)
| サービス | 種類 | 特徴 | 用途 |
|---|---|---|---|
| Kinesis Data Streams(KDS) | リアルタイム | シャードベース、自前コンシューマー、24時間〜365日保持、ms単位 | 低レイテンシ要件、複数アプリ並行処理 |
| Kinesis Data Firehose(現Amazon Data Firehose) | 準リアルタイム配信 | S3/Redshift/OpenSearch/Splunkへフルマネージド配信、最小バッファ60秒 | サーバーレスETL→ストレージ |
| Kinesis Data Analytics(現Amazon Managed Service for Apache Flink) | ストリーム処理 | SQL/Flinkでウィンドウ集計 | リアルタイム集計・異常検知 |
| Amazon MSK(Managed Streaming for Kafka) | Kafka互換 | より高スループット、複雑なルーティング | Kafkaエコシステム既存資産活用 |
| Amazon MSK Serverless | サーバーレスKafka | キャパシティ管理不要 | 可変ワークロード |
| Kinesis Video Streams | 動画ストリーム | 動画・音声・センサー時系列 | 監視カメラ、IoT動画 |
🔑 紛らわしい! KDS vs Firehose(試験頻出)
| 観点 | Kinesis Data Streams | Kinesis Data Firehose |
|---|---|---|
| レイテンシ | 真のリアルタイム(< 1秒) | 準リアルタイム(最小60秒バッファ) |
| 管理 | シャード管理必要 | フルマネージド・サーバーレス |
| 配信先 | コンシューマー自前実装 | S3/Redshift/OpenSearch/HTTP/Splunk直結 |
| データ保持 | 24時間〜365日 | 配信のみ(保持なし) |
| 用途 | リアルタイム異常検知、複数アプリ消費 | データレイク取り込み、ログ集約 |
⚠️ よく出るシナリオ
- 「リアルタイムでS3にログ集約、運用負荷最小」→ Firehose
- 「リアルタイム不正検知、ms単位」→ KDS + Lambda or Flink
- 「既存Kafkaを移行」→ MSK
- 「監視カメラ映像をMLで解析」→ Kinesis Video Streams + Rekognition Video
🔧 SageMaker Data Wrangler / Feature Store
SageMaker Data Wrangler
- GUIベースのデータ準備ツール
- 300+の組み込み変換
- S3、Athena、Redshift、Snowflake、Salesforce、JDBC等から取込
- 「Quick Model」機能で即時モデル評価
- 処理ジョブをSageMaker Processing Jobに変換可能
SageMaker Feature Store(試験頻出)
| ストア種類 | 特徴 | 用途 |
|---|---|---|
| Online Store(オンラインストア) | 低レイテンシ(数ms)、最新値のみ | リアルタイム推論時の特徴量取得 |
| Offline Store(オフラインストア) | S3上Parquet、履歴全保持 | トレーニング、バッチ推論 |
- 特徴量の一貫性:トレーニング時と推論時で同じ特徴量定義を使用→「training-serving skew」(学習・推論の乖離)防止
- Feature Group:論理単位、レコードID + イベント時刻 + 特徴量列
- Time Travel:過去時点の特徴量再現
1.2 データ変換と特徴量エンジニアリング
🧹 データクリーニング手法
欠損値処理
| 手法 | 説明 | 適用 |
|---|---|---|
| 削除 | 行/列を削除 | 欠損が少ない(< 5%) |
| 平均値補完 | 数値の平均で埋める | 正規分布データ |
| 中央値補完 | 中央値で埋める | 外れ値の影響を避けたい |
| 最頻値補完 | カテゴリ変数 | カテゴリデータ |
| KNN補完 | 近傍データから推定 | パターン保持 |
| 回Regression補完 | 他特徴量から予測 | 関係性を活用 |
| 前方/後方埋め(forward/back fill) | 時系列で直前/直後の値 | 時系列データ |
外れ値検出
| 手法 | 説明 |
|---|---|
| Zスコア(標準得点) | 平均から標準偏差何個分離れているか、|Z| > 3 で外れ値 |
| IQR(四分位範囲) | Q1-1.5×IQR、Q3+1.5×IQR の外側 |
| Isolation Forest | 木構造で異常を孤立化 |
| Random Cut Forest (RCF) | SageMaker組み込み、ストリーミング対応 |
| DBSCAN | 密度ベースクラスタリング |
⚙️ 特徴量エンジニアリング手法
スケーリング・正規化(試験頻出)
| 手法 | 公式例・概念 | 範囲 | 適用 |
|---|---|---|---|
| Min-Max Normalization(正規化) | (x - min) / (max - min) | 0〜1 | 範囲を揃えたい、ニューラルネット |
| Standardization / Z-score(標準化) | (x - 平均) / 標準偏差 | 平均0、分散1 | 正規分布仮定、SVM、線形回帰 |
| Robust Scaling | (x - median) / IQR | - | 外れ値が多い場合 |
| Log Transformation(対数変換) | log(x+1) | - | 右に歪んだ分布、収入・人口等 |
| Box-Cox変換 | - | - | 正規化、正値のみ |
| Yeo-Johnson変換 | - | - | 正規化、負値も可 |
🔑 紛らわしい! Normalization vs Standardization
- Normalization (Min-Max): 範囲指定(通常0-1)、外れ値に弱い、画像ピクセル値(0-255→0-1)等
- Standardization (Z-score): 平均0・分散1、外れ値にやや強い、特徴量のスケールが大きく異なる場合
ビニング・分割
| 手法 | 説明 |
|---|---|
| 等幅ビニング(Equal Width) | 値の範囲を等分割 |
| 等頻度ビニング(Equal Frequency) | サンプル数を等分割 |
| カスタムビニング | ドメイン知識ベース(年齢→子供/成人/シニア) |
🔤 エンコーディング手法比較(試験超頻出)
| 手法 | 説明 | 次元 | 注意点 |
|---|---|---|---|
| One-Hot Encoding | カテゴリごとに0/1列を作成 | カテゴリ数だけ増加 | 高次元化、多重共線性 |
| Label Encoding | カテゴリ→整数(赤=0、青=1、緑=2) | 1列 | 誤って順序関係を学習させる |
| Ordinal Encoding | 順序ありカテゴリ→整数 | 1列 | 順序がある場合のみ |
| Binary Encoding | 整数化→二進数→各桁を列に | log2(n)列 | 中間、One-Hotより次元少 |
| Target / Mean Encoding | カテゴリごとに目的変数の平均値 | 1列 | リーク注意、CV必須 |
| Frequency Encoding | カテゴリの出現頻度 | 1列 | 情報損失の可能性あり |
| Hash Encoding | ハッシュ関数で固定次元 | 指定次元 | 衝突あり |
| Embedding | 学習可能ベクトル表現 | 任意 | DNN、高基数カテゴリ |
🔑 紛らわしい! One-Hot vs Label Encoding
- One-Hot: 順序関係のないカテゴリ(色、国、商品)→誤った順序学習を防ぐ
- Label: 順序のあるカテゴリ(低/中/高、☆1/☆2/☆3)
💡 テキストエンコーディング(NLP)
| 手法 | 説明 |
|---|---|
| Bag of Words (BoW) | 単語出現回数 |
| TF-IDF | 単語頻度 × 逆文書頻度、文書特有語を強調 |
| N-gram | N個連続単語 |
| Word2Vec / GloVe | 単語埋め込み |
| Tokenization(トークン化) | テキスト→トークン分割 |
| BPE(Byte-Pair Encoding) | サブワード分割、GPT系 |
| WordPiece | サブワード、BERT系 |
| SentencePiece | 言語非依存サブワード |
🛠️ データ変換ツール比較(試験超頻出)
| ツール | 種類 | 強み | 弱み |
|---|---|---|---|
| AWS Glue | サーバーレスETL | Sparkベース、データカタログ、ジョブブックマーク、PySpark/Scala、Glue Studio(GUI) | コードが必要 |
| AWS Glue DataBrew | ノーコードGUI | 250+変換レシピ、視覚的、PIIマスキング | カスタム処理不可 |
| SageMaker Data Wrangler | ML特化GUI | 300+変換、Quick Model、Feature Store連携 | スケール限定 |
| Amazon EMR | マネージドHadoop | Spark/Hive/Presto/HBase、フル制御 | 運用負荷あり |
| AWS Lambda | サーバーレス関数 | 軽量、イベント駆動、15分制限 | 大規模不可 |
| AWS Batch | バッチコンピューティング | 大規模バッチ | リアルタイム不可 |
| Amazon Athena | サーバーレスクエリ | S3に対してSQL | 変換書き戻し制限 |
🔑 紛らわしい! Glue vs Glue DataBrew vs Data Wrangler
| シナリオ | 答え |
|---|---|
| エンジニアがPySparkコードでETL自動化 | AWS Glue |
| ビジネスアナリストがノーコードでデータクリーニング | Glue DataBrew |
| データサイエンティストがMLパイプライン前処理を視覚的に作成 | SageMaker Data Wrangler |
| 大規模カスタムSparkジョブ | Amazon EMR |
| 軽量ストリーミング変換 | Lambda |
Glueの主要コンポーネント
- Glue Data Catalog:メタデータカタログ、Athena/Redshift Spectrum共有
- Glue Crawler:S3スキャンしてスキーマ自動推論→カタログ登録
- Glue Job:ETLジョブ(Python Shell / Spark)
- Glue Workflow:ジョブのオーケストレーション
- Glue Streaming ETL:Kinesis/Kafkaストリーム処理
- Glue Studio:ビジュアルジョブエディタ
- Glue Schema Registry:Avro/JSON/Protobufスキーマ管理
🏷️ データラベリングサービス比較
| サービス | 説明 | 用途 |
|---|---|---|
| SageMaker Ground Truth | 人間ラベラー+アクティブラーニング(自動ラベリング)、最大80%自動化 | 大規模ラベリング、コスト削減 |
| SageMaker Ground Truth Plus | AWSが代行するフルマネージドラベリング | リソースなし、専門ラベラー必要 |
| Amazon Mechanical Turk (MTurk) | クラウドソーシング(Workerに依頼) | 低コスト、品質ばらつき |
| Amazon A2I(Augmented AI) | 低信頼度予測のヒューマンインザループ | レビューワークフロー |
| プライベートワーカー | 自社の人員 | 機密データ |
| ベンダーマネージドワーカー | AWS Marketplaceベンダー | 専門性 |
⚠️ Ground Truthのアクティブラーニング
まず人間が一部ラベリング ➡ モデルが残りを自動ラベリング ➡ 自信ない部分のみ人間レビュー。データ量が増えるほどコスト効率が向上します。
1.3 データの完全性とモデリング準備
⚖️ トレーニング前バイアスメトリクス(SageMaker Clarify)
| メトリクス | 略 | 説明 | 値域 |
|---|---|---|---|
| Class Imbalance | CI | クラス不均衡。(na - nd) / (na + nd) | -1〜1 |
| Difference in Proportions of Labels | DPL | ファセット間の陽性ラベル比率差 | -1〜1 |
| Kullback-Leibler Divergence | KL | 分布間距離(非対称) | 0〜∞ |
| Jensen-Shannon Divergence | JS | KLの対称版 | 0〜log(2) |
| Lp-norm | LP | L1(マンハッタン)、L2(ユークリッド)距離 | 0〜∞ |
| Total Variation Distance | TVD | L1の半分 | 0〜1 |
| Kolmogorov-Smirnov | KS | 累積分布の最大差 | 0〜1 |
| Conditional Demographic Disparity | CDD | 条件付き不均衡 | -1〜1 |
⚖️ トレーニング後バイアスメトリクス
- DPPL (Difference in Positive Proportions in Predicted Labels):予測ラベル比率差
- DI (Disparate Impact):80%ルール、< 0.8 で問題あり
- DCO (Difference in Conditional Outcome)
- RD (Recall Difference):再現率差
- DAR (Difference in Acceptance Rates) / DRR (Difference in Rejection Rates)
- AD (Accuracy Difference) / TE (Treatment Equality)
- GE (Generalized Entropy)
⚠️ SageMaker Clarifyのできること
- Pre-training bias:データの偏り検出
- Post-training bias:モデル予測の偏り検出
- Explainability:SHAP値による特徴量寄与度
- Online Explainability:リアルタイム推論の説明
- Model Monitor 連携:本番でのバイアス・特徴量寄与ドリフト監視
⚖️ 不均衡データ対策
- オーバーサンプリング:少数クラスを増やす
- SMOTE:KNN補間で合成サンプル生成
- ADASYN:SMOTEの改良、分類困難サンプル重視
- アンダーサンプリング:多数クラスを減らす(Tomek Links / ENN で境界サンプル削除)
- クラス重み付け:損失関数で少数クラスを重くする
- Focal Loss:簡単サンプルを軽く、困難を重くする
- 異常検知アルゴリズム使用:超不均衡時に有効
🔐 データ暗号化・プライバシー
| 種類 | 説明 |
|---|---|
| At Rest(保管時暗号化) | S3、EBS等のストレージ上のデータ |
| In Transit(転送時暗号化) | TLS/HTTPS、VPN |
| In Use(使用時暗号化) | Nitro Enclaves、SGX |
S3暗号化方式
| 方式 | キー管理 | 説明 |
|---|---|---|
| SSE-S3 | AWS管理 | 最も簡単、AES-256 |
| SSE-KMS(推奨) | KMS(顧客管理可) | 監査ログ、ローテーション |
| SSE-C | 顧客提供キー | キー管理は顧客責任 |
| CSE(Client-Side Encryption) | 顧客側暗号化 | アップロード前に暗号化 |
| DSSE-KMS | 二重暗号化 | コンプライアンス厳格時 |
PII / PHI関連サービス
| サービス | 用途 |
|---|---|
| Amazon Macie | S3上のPII自動検出、機密データ分類 |
| Amazon Comprehend | テキストからPII検出・編集(redact) |
| AWS Glue DataBrew | PIIマスキング機能 |
| AWS Lake Formation | きめ細かなアクセス制御、列レベル・行レベル |
- PII:個人識別情報(氏名、SSN、メールアドレス等)
- PHI:保護対象医療情報(HIPAA対象、診断・処方等)
- データレジデンシー:データを特定地域内に保管する規制(GDPR等)
✅ データ品質検証
| ツール | 説明 |
|---|---|
| AWS Glue Data Quality | DQDL(Data Quality Definition Language)でルール定義、Glueジョブ統合 |
| DataBrew Data Profile | 統計プロファイル、自動的に品質スコア生成 |
| Deequ(Amazonオープンソース) | Sparkベース品質検証 |
データ分割
| 分割法 | 説明 |
|---|---|
| ホールドアウト | 訓練/検証/テスト(典型 70/15/15、80/10/10) |
| Stratified Sampling(層化抽出) | クラス比率を保ったまま分割、不均衡データ必須 |
| K-Fold交差検証 | K分割し、各回1つを検証用 |
| Time Series Split | 時系列データ、未来漏洩防止 |
| Group K-Fold | 同一グループを同フォールドに保持 |
⚠️ データリーク(Data Leakage)注意点
- テスト用データの統計(平均・分散)を訓練前処理に使わない
- Target Encodingは訓練データのみで計算する
- 時系列:未来データを訓練に使わない
🧠 コンテンツ分野2: MLモデルの開発(26%)
2.1 モデリングアプローチの選択
🤖 ML学習タイプ
| 種類 | 説明 | 例 |
|---|---|---|
| 教師あり学習(Supervised) | ラベル付きデータから学習 | 分類、回帰 |
| 教師なし学習(Unsupervised) | ラベルなしからパターン発見 | クラスタリング、次元削減、異常検知 |
| 半教師あり学習 | 少量ラベル+大量ラベルなし | 擬似ラベリング |
| 自己教師あり学習 | データ自身からラベル生成 | BERT、SimCLR |
| 強化学習(Reinforcement Learning) | 報酬最大化 | ゲームAI、ロボット |
| 転移学習(Transfer Learning) | 既存モデルを別タスクに適用 | ファインチューニング |
📚 SageMaker組み込みアルゴリズム完全リスト
| アルゴリズム | カテゴリ | 用途 | 入力フォーマット |
|---|---|---|---|
| XGBoost | 教師あり | 分類・回帰(表形式最強) | CSV、libsvm、Parquet、RecordIO |
| Linear Learner | 教師あり | 分類・回帰(線形) | RecordIO、CSV |
| K-Means | 教師なし | クラスタリング | RecordIO、CSV |
| K-NN (k-Nearest Neighbors) | 教師あり | 分類・回帰 | RecordIO、CSV |
| PCA | 教師なし | 次元削減 | RecordIO、CSV |
| Factorization Machines | 教師あり | レコメンド、スパースデータ | RecordIO |
| Random Cut Forest (RCF) | 教師なし | 異常検知(ストリーミング対応) | RecordIO、CSV |
| IP Insights | 教師なし | IPアドレス異常検知 | CSV |
| DeepAR | 時系列 | 時系列予測(RNN) | JSON Lines |
| BlazingText | NLP | Word2Vec、テキスト分類(高速) | テキスト、JSON |
| Object2Vec | 埋め込み | 汎用埋め込み | JSON |
| Seq2Seq | NLP | 機械翻訳、要約 | RecordIO |
| LDA / NTM | 教師なし | トピックモデリング | RecordIO、CSV |
| Image Classification | CV | 画像分類(ResNet等) | RecordIO、画像 |
| Object Detection | CV | 物体検出(SSD) | RecordIO、画像 |
| Semantic Segmentation | CV | ピクセル単位分類 | 画像 |
⚠️ 試験頻出のアルゴリズム選択
| シナリオ | 推奨 |
|---|---|
| 表形式データの分類 | XGBoost |
| クレジットカード不正のリアルタイム検知 | Random Cut Forest |
| 顧客のクラスタリング | K-Means |
| 商品レコメンド(スパース) | Factorization Machines or Amazon Personalize |
| ニュース記事のトピック分類 | LDA / NTM / BlazingText |
| 売上の未来予測 | DeepAR / Amazon Forecast |
🎨 AWS AIサービス(マネージドML)
| サービス | 用途 |
|---|---|
| Amazon Comprehend | NLP:感情分析、エンティティ抽出、キーフレーズ、PII検出 |
| Amazon Translate | ニューラル機械翻訳(リアルタイム+バッチ) |
| Amazon Transcribe | 音声→テキスト(ASR)、話者識別、PII編集 |
| Amazon Polly | テキスト→音声(TTS)、SSML対応 |
| Amazon Lex | チャットボット(Alexaと同エンジン) |
| Amazon Rekognition | 画像・動画:顔認識、物体検出、コンテンツモデレーション |
| Amazon Textract | OCR、フォーム・表抽出、ID書類解析 |
| Amazon Personalize | レコメンデーション(Amazon.comと同技術) |
| Amazon Forecast | 時系列予測(マネージド、DeepAR+等) |
| Amazon Bedrock | 基盤モデル(Claude、Llama等)のマネージドAPI |
🔑 紛らわしい! Comprehend vs Translate vs Transcribe vs Polly
- Comprehend: テキスト分析(感情・エンティティ・トピック)
- Translate: テキスト翻訳(言語A→言語B)
- Transcribe: 音声→テキスト(STT)
- Polly: テキスト→音声(TTS)
🔍 解釈可能性(Interpretability / Explainability)
| モデル | 解釈性 | 性能 |
|---|---|---|
| 線形回帰、ロジスティック回帰 | 高 | 低〜中 |
| 決定木(単一) | 高 | 中 |
| ランダムフォレスト / XGBoost | 中 | 高 |
| ニューラルネット | 低 | 高 |
- SHAP:ゲーム理論ベース、特徴量寄与度を公平配分(Clarifyで採用)
- LIME:局所線形近似で個別の予測を説明
2.2 モデルのトレーニングと改良
⏱️ トレーニング時間短縮手法
- Early Stopping(早期停止):検証損失が改善しなくなったら自動停止
- データ並列 (SMDDP) / モデル並列 (SMDMP):AWSに最適化された分散学習環境
- 混合精度学習:FP16/BF16を活用し、メモリ削減と速度2倍を達成
🔑 紛らわしい! File Mode vs Pipe Mode vs Fast File Mode
| モード | 動作 | 速度 | 用途 |
|---|---|---|---|
| File Mode | 全データをEBSにダウンロードしてから読込 | 遅い起動 | 小〜中規模データ |
| Pipe Mode | S3から直接ストリーミング、ダウンロード不要 | 起動速い | 大規模、RecordIO推奨 |
| Fast File Mode | POSIX互換ファイルとしてマウントしオンデマンド読込 | 速い | 大規模、既存コード変更不要 |
🎛️ 正則化手法比較(試験頻出)
| 手法 | 説明 | 効果 |
|---|---|---|
| L1正則化 (Lasso) | 重みの絶対値ペナルティ | 不要な重みを完全に0にする ➡ 特徴量選択 |
| L2正則化 (Ridge) | 重みの二乗ペナルティ | 重み全体を小さく、滑らかに ➡ 多重共線性の抑制 |
| Dropout | 訓練時に確率pでニューロンを無効化 | 過学習防止、アンサンブル効果 |
🎯 ハイパーパラメータチューニング
- ベイズ最適化 (Bayesian Optimization):過去の結果から次を賢く予測(SageMaker AMTのデフォルト)
- Hyperband:リソースを効率的に配分し、見込みのない設定を早期停止
🎯 ファインチューニング(生成AI関連)
| 手法 | 説明 | コスト |
|---|---|---|
| Full Fine-Tuning | 全パラメータを更新 | 超高 |
| LoRA / QLoRA | 低ランク行列を追加学習、モデル本体はフリーズ | 低(メモリ激減) |
| RAG | ファインチューニングせず、外部知識を検索してプロンプトに注入 | 最低(再学習不要) |
2.3 モデルパフォーマンスの分析
📐 分類メトリクス(試験超頻出)
【混同行列(Confusion Matrix)】
予測陽性 予測陰性
実陽性 TP(真陽性) FN(偽陰性) ← 見逃し
実陰性 FP(偽陽性) TN(真陰性) ← 誤検出
| メトリクス | 意味 | 重視すべきシナリオ |
|---|---|---|
| Accuracy(正解率) | 全体の正答率 | 均衡データ |
| Precision(適合率) | 陽性予測の正確さ(偽陽性を減らしたい) | スパムフィルタ(重要メールを誤判定したくない) |
| Recall(再現率・感度) | 実陽性の検出率(偽陰性を減らしたい) | がん診断、不正取引検知(見逃しが致命的) |
| F1 Score | PrecisionとRecallの調和平均 | 不均衡データ、両方のバランス |
| AUC | ROC曲線下面積(1=完璧、0.5=ランダム) | 閾値に依存しないモデル全体のバランス評価 |
📐 回帰メトリクス
- MAE:誤差の絶対値の平均。外れ値に頑健。
- MSE:誤差の二乗の平均。大きな誤差を強く罰する。
- RMSE:MSEの平方根。単位が元データと同じで解釈しやすい。
🚢 コンテンツ分野3: MLワークフローのデプロイとオーケストレーション(22%)
3.1 デプロイインフラの選択
🎯 SageMakerエンドポイント種類完全比較(超頻出)
| 種類 | レイテンシ | 規模 | ペイロード | タイムアウト | ユースケース |
|---|---|---|---|---|---|
| Real-time Inference | 低(ms) | 常時稼働 | 最大6MB | 60秒 | 24/7低レイテンシ、リクエスト多 |
| Serverless Inference | 中(コールドスタート有) | 自動スケール | 最大4MB | 60秒 | トラフィックが不定期、コスト最小化 |
| Asynchronous Inference | 高(数分) | キュー管理 | 最大1GB | 1時間 | 動画や大ファイル処理、長時間処理 |
| Batch Transform | オフライン | 一括処理 | 無制限(S3) | 制限なし | 夜間の1000万件一括スコアリングなど |
🏗️ 推論パイプライン / マルチモデル
- Inference Pipeline:前処理 ➡ 推論 ➡ 後処理を1つのエンドポイントに統合(最大15コンテナ)
- Multi-Model Endpoint (MME):単一エンドポイントで数千の同種モデルを動的にロード、コスト大幅削減
- Multi-Container Endpoint (MCE):単一エンドポイントで異なるフレームワークのコンテナを共存
3.2 インフラの作成とスクリプト化 / 3.3 CI/CD
🔑 紛らわしい! Code系サービス
- CodeCommit:Gitリポジトリ(ソース管理)
-
CodeBuild:ビルド・テストの実行環境(
buildspec.yml) - CodeDeploy:デプロイ自動化(ブルー/グリーン等)
- CodePipeline:上記をつなぐ全体ワークフローのオーケストレーション
🎯 デプロイ戦略(試験頻出)
- Blue/Green(青/緑):新環境(緑)を完全に構築してからトラフィックを切り替え。ロールバックが最速。
- Canary(カナリア):最初に少量のトラフィック(例: 5%)だけ新版に流し、問題なければ100%にする。
- Shadow(シャドウ):本番トラフィックを複製して新版に送信するが、応答は破棄。ユーザーへの影響ゼロでテスト可能。
🔑 紛らわしい! SageMaker Pipelines vs Step Functions vs MWAA
- SageMaker Pipelines:ML特化型のDAG(有向非巡回グラフ)ワークフローツール。SageMakerと完全統合。
- Step Functions:汎用的なサーバーレスステートマシン。AWS全サービスを組み合わせたビジネスロジック向け。
- MWAA (Managed Apache Airflow):データエンジニアリング向けの強力なPythonベースのオーケストレーター。
🔐 コンテンツ分野4: 監視・保守・セキュリティ(24%)
4.1 モデル推論の監視
📊 モデルドリフト4種(試験頻出)
| ドリフト種類 | 説明 | 例 |
|---|---|---|
| Data Drift(データドリフト) | 入力データ(X)の分布変化 | ユーザー層の年齢変化、季節変動 |
| Concept Drift(コンセプトドリフト) | X ➡ Y の関係性の変化 | 社会情勢の変化による購買行動の激変 |
| Label Drift | 出力(Y)の分布変化 | 不正アクセスの発生率自体の急増 |
| Model Quality Drift | モデル精度の低下 | 上記の結果として発生するパフォーマンス低下 |
🩺 SageMaker Model Monitor 4タイプ
- Data Quality:入力データの統計プロファイル(平均・欠損率など)をベースラインと比較監視。
- Model Quality:実ラベル取得後、精度・再現率などの指標を監視(Ground Truthラベルが必要)。
- Bias Drift / Feature Attribution Drift:Clarifyと連携し、予測の偏りやSHAP値の変化を本番環境で監視。
4.2 インフラ・コスト監視と最適化
🔑 紛らわしい! CloudTrail vs CloudWatch vs Config vs X-Ray(試験超頻出)
| サービス | 目的 | 主な問い |
|---|---|---|
| CloudTrail | API呼び出しの監査ログ記録 | 「誰が、いつ、何の操作をしたか?」 |
| CloudWatch | リソースのメトリクス、ログ収集、アラーム | 「CPU使用率は?」「エラーログの内容は?」 |
| Config | AWSリソースの構成履歴・コンプライアンス管理 | 「セキュリティグループの変更履歴は?」 |
| X-Ray | アプリケーションの分散トレーシング | 「このリクエストはどの処理で遅延しているか?」 |
4.3 セキュリティとネットワーク
🔑 紛らわしい! Security Group vs NACL
- Security Group(セキュリティグループ):インスタンス単位の制御、ステートフル(戻りの通信は自動許可)、許可ルールのみ。
- NACL(ネットワークACL):サブネット単位の制御、ステートレス(戻り通信も明示的に許可が必要)、許可・拒否ルール。
🔑 紛らわしい! Secrets Manager vs Parameter Store
- Secrets Manager:有料。DB認証情報などの暗号化。自動ローテーション機能あり。
- Parameter Store:基本無料。シンプルな設定値や環境変数の管理(ローテーションなし)。
🌐 VPCエンドポイントの使い分け
- Gateway Endpoint:S3とDynamoDB専用。無料。
- Interface Endpoint (PrivateLink):SageMaker APIなど、その他多くのAWSサービス用。有料。
📚 付録: 頻出シナリオ問題と解答パターン抜粋
| # | シナリオ | 解答(選択肢の選び方) |
|---|---|---|
| 1 | リアルタイム性が必要、ペイロード最大1GB、処理時間が10分かかる | Asynchronous Inference |
| 2 | トラフィックが断続的、アイドル時のコストを0にしたい | Serverless Inference |
| 3 | 1000万件のデータを夜間に一括でスコアリングしたい | Batch Transform |
| 4 | S3に蓄積された大容量データを最高速で読み込んで分散訓練したい | FSx for Lustre + Pipe Mode |
| 5 | S3上にある大量の画像データを、コストを抑えつつラベリングしたい | SageMaker Ground Truth + アクティブラーニング |
| 6 | 本番環境の推論エンドポイントで、新しいモデルをリスクゼロでテストしたい | Shadow Variant(シャドウデプロイ) |
| 7 | インターネットに一切接続しない、完全に閉鎖されたML環境を構築したい | VPC Mode + Network Isolation Mode 有効化 |
| 8 | S3バケット内に保存されているPII(個人情報)を自動的に検出・分類したい | Amazon Macie |
| 9 | トレーニングデータと本番データで特徴量の乖離(Skew)を防ぎたい | SageMaker Feature Store |
| 10 | モデルの予測プロセスについて、どの特徴量が寄与したか説明責任を果たしたい | SageMaker Clarify (SHAP値) |