AWS Certified Machine Learning Engineer - Associate受験時の記録

## この記事の概要

2025/02/13 に「**AWS Certified Machine Learning Engineer - Associate
(MLA-C01)**」を受験しました。
その時の記録です。

## 試験の概要

![スクリーンショット 2025-02-08 15.44.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/bbf639fb-ccfc-b18e-e79a-4c54c2e7c002.png)

世の中のデータ活用やAIの専門知識に対する需要に合わせ、今年度は3つのAWS認定資格が追加されました。
その中のASSOCIATEレベルの資格です。
2024年からASSOCIATEレベルが5つに増えました。

AWSの公式ガイドには

> AWSクラウドを使用した機械学習 (ML) ソリューションとパイプラインの構築、運用化、デプロイ、保守についての受験者の能力を検証します。

とあります。※AWS公式より引用：[引用元](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-machine-learning-engineer-associate/AWS-Certified-Machine-Learning-Engineer-Associate_Exam-Guide.pdf)

以前からあるMLSに比べ、ML一般知識の問われる深さが浅くなった感じでしょうか？

**◼︎ 試験要項**

| 項目 | 値 |
|:-:|:-:|
| 問題数 | 65問 (うち15問は採点対象外) |
| 試験時間 | 90分 |
| 受験料 | ¥20,000 (税別) |
| 合格ライン | 100~1000点中720点 |
| 受験資格 | なし |
| 有効期限 | 3年 |

※料金は為替レートに合わせて毎年4月に見直されます。アソシエイト試験は2024年度¥5,000値上がりしました。

https://aws.amazon.com/jp/certification/policies/before-testing/#Exam_pricing

「AWS Certified AI Practitioner(AIF-C01)」の上位資格の位置付けのため、AIFを保持している状態でこの試験に合格するとAIFも合わせて期限が更新されます。

「AWS Certified Machine Learning - Specialty (MLS-C01) 」の下位資格という位置付けではないため、MLSとMLAは両方更新が必要です。

https://aws.amazon.com/jp/certification/recertification/


**◼︎ 出題範囲**

| 分野 | 出題割合 |
|:--|:--:|
| 第 1 分野: 機械学習 (ML) のためのデータ準備 | 28% |
| 第 2 分野: ML モデルの開発 | 26% |
| 第 3 分野: ML ワークフローのデプロイとオーケストレーション | 22% |
| 第 4 分野: ML ソリューションのモニタリング、保守、セキュリティ | 24% |


※**2025/01時点の最新バージョン**(Ver.1.4)のものです。
バージョンアップで範囲等は変更されるので、こちらも受験時は公式サイトをご確認ください。
[AWS Certified Machine Learning Engineer - Associate 認定](https://aws.amazon.com/jp/certification/certified-machine-learning-engineer-associate/)

## 勉強開始前の状態

AWSで動いているアプリの開発/運用の業務を7年程度、現在も継続中。
AWS認定は昨年までに14個取得済み。

- [AWS認定ソリューションアーキテクトを受験した時の話](https://qiita.com/aminosan000/items/24c6dff9532658a5c4d5)
- [AWS認定デベロッパーアソシエイトを受験した時の話](https://qiita.com/aminosan000/items/89bc76f77626314f3182)
- [AWS認定SysOpsアドミニストレーターアソシエイトを受験した時の話](https://qiita.com/aminosan000/items/b1765260e8ad1435a366)
- [AWS認定ソリューションアーキテクトプロフェッショナルを受験した時の話](https://qiita.com/aminosan000/items/f172b7add8303926bddc)
- [AWS認定DevOpsエンジニアプロフェッショナルを受験した時の話](https://qiita.com/aminosan000/items/ee2fe130bfca1164f4a5)
- [AWS認定セキュリティ - 専門知識を受験した時の話](https://qiita.com/aminosan000/items/435fc411a4d10cf6ba43)
- [AWS認定データベース - 専門知識を受験した時の話](https://qiita.com/aminosan000/items/1f2a8d5b7611a3d31247)
- [AWS認定アドバンストネットワーキング - 専門知識を受験した時の話](https://qiita.com/aminosan000/items/dfea62d2c6cc2763d15c)
- [AWS認定データ分析 - 専門知識を受験した時の話](https://qiita.com/aminosan000/items/307933b51494756386e8)
- [AWS認定機械学習 - 専門知識を受験した時の話](https://qiita.com/aminosan000/items/7cd2059b8b731d030b99)
- [AWS認定SAP on AWS - 専門知識を受験した時の話](https://qiita.com/aminosan000/items/5d0abe5815a927406c62)
- [AWS Certified Data Engineer - Associate受験時の記録](https://qiita.com/aminosan000/items/5a7314a04d1d69ec97c5)
- [AWS Certified AI Practitioner(AIF)受験時の記録](https://qiita.com/aminosan000/items/6bb6f3d96209dfb1b81c)

※CLFはAll Certificateのために後半で取得したので特に書くこともなく記事にしていません。

## 受験前に参考にした記事

https://dev.classmethod.jp/articles/how-to-pass-aws-certified-ai-ml/

新資格取得はAIF→MLAの順に受験してAI/ML関連の一般知識の理解度を少しずつ上げていくのが良さそうです。

## 勉強に使ったもの

### 1. WEB問題集(非公式)

AIFの受験時にセールで安くなっていたので、こちらも合わせて購入しておきました。
7.98USD(¥1,247)でした。
問題数は165問と少し少なめですが、買い切りでもアップデートはあるので今後増えていくと思います。(2025/02/08時点)

https://www.whizlabs.com/aws-certified-machine-learning-engineer-associate/

並べ替え問題は公式ドキュメントの手順をそのまま使っているようで、途中の順序を変えても正解になりそうな問題がいくつかあり、本番で本当にこのような問題が出題されるのかは疑問に思いました。


### 2. AWS公式練習問題

**[AWS Skill Builder](https://skillbuilder.aws/jp/)**で**無料**で提供されている20問の練習問題。**実試験に近い**内容が出題されるので今回も実施しておきます。

https://explore.skillbuilder.aws/learn/courses/19689/exam-prep-official-practice-question-set-aws-certified-machine-learning-engineer-associate-mla-c01-ri-ben-yu

1月はじめ頃にはなかった日本語のE-leaningも追加されていました。

![スクリーンショット 2025-02-08 16.01.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/39d23761-1a16-223d-c179-3966086b6e4b.png)

ちょっと内容を見てみましたが、動画は英語のものがそのまま使われていて動画内のテキストがすべて英語でした…
日本語字幕は有効にできますが、それだけだと辛いので今回は利用を見送りました。


### 3. AWSアカウント

学習の中で気になったところは**実際にマネコンやCLIで触って**確認します。

## 勉強(試験準備)の流れ
だいたいいつもの流れですが今回はAssociateレベルということで、ある程度の知識はすでにあるはずなので問題集を中心に進めていきます。

### 1. 試験ガイドを読む

今回もはじめに、公式サイトの[「**試験ガイド**」](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-data-engineer-associate/AWS-Certified-Data-Engineer-Associate_Exam-Guide.pdf)を読みます。

各分野の対象知識に「AWSの〜」の文字は少なく、MLSと同様AWSよりもAI関連の一般知識の学習が必要そうです。

また、AIFとMLAの2試験は出題方式として、いままでの選択問題以外に

- 順序付け
- 内容一致(ペアの選択)
- 導入事例(1シナリオに複数問題)

が増えたようです。

![スクリーンショット 2025-01-11 1.47.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/6b39bade-3245-0ce6-38df-54e9a16c1c85.png)

### 2. 関連知識の復習

AIF、MLSと試験範囲が近いので過去の学習時の記録を読み返しｔ思い出しました。
MLSは2年前なので、忘れている部分が多かったです。

https://qiita.com/aminosan000/items/5a7314a04d1d69ec97c5

https://qiita.com/aminosan000/items/7cd2059b8b731d030b99

### 3. 練習問題を解く
おおよその難易度や現在の理解度合いを測るのにちょうどいいので、早めに[練習問題](https://explore.skillbuilder.aws/learn/course/internal/view/elearning/21219/exam-prep-official-pretest-aws-certified-ai-practitioner-aif-c01-japanese)をやっておきます。
**無料**なので気軽に実施できます。

### 4. 問題集を解く
あとは問題をどんどん解いて

- 解答/解説でわからなかった部分を**調べる**。
- 覚えたほうが良さそうな部分は**ノート(デジタルのほうが速いのでデジタルで)に書き出す**。

を繰り返します。

今回は問題集165問を1周実施しました。

### 5. 復習
試験直前にノートの再確認をしました。

## 勉強時間
およそ**20時間**程度

## 受験後
結果はスコア**945**

![AWS MLA スコアレポート01](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/445cea47-aff7-4b1c-a916-0de9d553d7d5.png)

![AWS MLA スコアレポート02](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/fcc690e1-f0da-41a2-8165-fbac6fa9457c.png)

過去にMLS受験時に学習した範囲と近かったこともあり、比較的難易度は低く感じました。

今回、同一カテゴリのSPECIALTYとASSOCIATEが初めてできましたが、やはりASSOCIATEのほうが問題文の複雑さ的にも正解を選びやすい易しい形のものが多く、AWS以外の専門知識を問われる深さも浅くなっていましたね。


Ealy Adopterのバッジも滑り込みで獲得できました。

![AWS MLAバッジ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/49386300-2d19-410c-903f-a40d788e826d.png)

なんとか今年もAll Certificate継続できました :tada: 

![AWS Certifications](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/8523bf65-a230-4f48-8022-91542a5b4101.png)

AWS認定は毎年新しく追加される資格の受験と期限が来た資格の更新をしているとそれなりに勉強になるので、来年も続けていこうと思います。


## 勉強になったことメモ

試験のために勉強しながらまとめたノート
※ここに書いてあることは、あくまで私が理解が足りないと感じ、覚えたかったことだけです。試験範囲を網羅はしていません。


### AWSのAI/MLサービス

![スクリーンショット 2025-02-08 19.56.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/e16bac12-e838-a4d8-79b6-fead8926a76c.png)

AWSのホワイトペーパーには一覧が掲載されている。

<img src="https://docs.aws.amazon.com/ja_jp/whitepapers/latest/aws-overview/images/ai-stack.png" />

https://docs.aws.amazon.com/ja_jp/whitepapers/latest/aws-overview/machine-learning.html

### 機械学習基礎

機械学習は大きく

1. 前処理
1. 学習
1. 推論

のプロセスに分けられる。
前処理したデータから学習し、学習した結果を下にすい

![機械学習01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/06242db6-4a9f-4b14-b520-70bc361852f4.png)


### ハイパーパラメータ

#### バッチサイズ
機械学習ではデータセットを複数のグループに分割して学習する。
その際の1グループのデータの量をバッチサイズと呼ぶ。
バッチサイズが小さすぎると学習に時間がかかる。
バッチサイズが大きいほど、勾配が安定し、ノイズが少なくなるが、大きすぎるとメモリ不足や過学習がおきる可能性があるため、バランスを取る必要がある。

https://qiita.com/kenta1984/items/bad75a37d552510e4682

#### エポック
訓練データを何回使ったかを表す値。エポックが多すぎると過学習につながる。

https://zero2one.jp/ai-word/epoch/?srsltid=AfmBOooq-VvyQzzD4nQpw3P034etJ7BadCGok6LoDOUXhNKVZMKoNwb6

#### max_depth
ツリーモデルの学習時のツリーの深さ
この値の大きさによりデータセットに対する学習率が変化するため、大きくしすぎると過学習の原因となる。

https://qiita.com/R1ck29/items/50ba7fa5afa49e334a8f


### 正則化
- L1正則化：一部の特徴を削除(0に)する。重要でない特徴を削除することで過剰適合対策になる。
- L2正則化：すべての特徴の全体的な重み値を小さくする。

https://docs.aws.amazon.com/ja_jp/machine-learning/latest/dg/training-parameters1.html#regularization

### オーバーサンプリングとアンダーサンプリング
予測モデルのもとになるデータが不均衡データ(負または正が極端に少ない偏ったデータ)の場合、データ数をいずれかに合わせる(均衡化する)ことで予測精度を上げる。

https://qiita.com/tk-tatsuro/items/10e9dbb3f2cf030e2119

SageMaker Data Wranglerではランダムなオーバーサンプリング、アンダーサンプリングとSMOTEによるオーバーサンプリングができる。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/data-wrangler-transform.html#data-wrangler-transform-balance-data

### ドリフト
環境の変化などにより、モデルの精度が低下すること。

- コンセプトドリフト
- データドリフト

の2つに分けられる。

https://tech.datafluct.com/entry/20220323/1648028520

### プロンプトエンジニアリング手法

https://aws.amazon.com/what-is/prompt-engineering/


### スカラー/ベクトル/テンソル

- スカラー: 大きさのみを表す単一の値
- ベクトル: 複数のスカラーを表す1次元配列
- テンソル: スカラー、ベクトルなどを複数ひとまとめにした多次元配列

https://otafuku-lab.co/aizine/tensor-0917/

https://zero2one.jp/learningblog/machine-learning-matrix/?srsltid=AfmBOop_gP2xYh6NtslPhP531E1xBdjCtPUTVr-YYa9r-z2jWWzibr1r


### データ変換

https://docs.aws.amazon.com/ja_jp/machine-learning/latest/dg/data-transformations-reference.html


#### ハイパーパラメータ調整戦略
ハイパーパラメータチューニングではすべての組み合わせを検証することは現実的でないため、特定の戦略で特定の範囲内から組み合わせを検証し選択することになる。
その調整戦略として、主に3つの手法がある。

| 手法 | 概要 |
|:-:|:-:|
| グリッド検索 | カテゴリごとに値の範囲を指定し、それらすべて値の組み合わせを検証する。 |
| ランダム検索 | 訓練回数を指定し、その回数内でランダムに選択された組み合わせを検証する。 |
| ベイズ最適化 | 前回の結果を下に次の値を決めていくアルゴリズム |
| Hyperband | 中間結果と最終結果の両方を使用して、使用率の高いハイパーパラメータ構成にエポックを再割り当てし、パフォーマンスの低いものは自動的に停止する。 |

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/automatic-model-tuning-how-it-works.html


#### モデル圧縮
モデルのサイズを小さくするための手法がいくつかある
モデル最適化(model optimization)とも呼ぶ。

| 手法 | 概要 |
|:-:|:-:|
| Pruning（枝刈り） | モデルのサイズと複雑さを軽減、推論速度を向上しエネルギー消費を削減する。 |
| Quantize（量子化） | モデルの複雑さを完全に維持しながら、メモリ使用量を大幅に削減し、計算を高速化し、展開の柔軟性を高める。 |
| Knouledge Distillation（蒸留） | モデルを圧縮しながら精度を維持し、より大きな教師モデルからより小さなモデルの一般化を促進し、多用途で効率的なモデル設計をサポートする。 |

https://neptune.ai/blog/deep-learning-model-optimization-methods


#### 事前トレーニングバイアスメトリクス
モデルのトレーニング前にデータ内の偏りを測定するためにいくつかのデータバイアスメトリクスがある。

https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-measure-data-bias.html

また、トレーニング後のデータとモデルのバイアスメトリクスも用意されている。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/clarify-measure-post-training-bias.html


#### モデルの評価指標
モデルの種類ごとの評価指標一覧

| モデル | 評価指標 |
|:-:|:-:|
| 分類モデル | ・Recall<br>・Specificity<br>・Accuracy<br>・Precision<br>・FPR<br>・AUC<br>・F-measure |
| 回帰モデル | ・RMSE<br>・MSE<br>・MAE |

この試験の対策としては、それぞれの詳細まですべて覚える必要はなく

- 正誤判定などの分類問題は分類モデルの評価指標
- 将来の価格変動などの未来予測の場合は回帰モデル用の評価指標

といった、ユースケースにあった指標を選択できるよう分類 or 回帰どちらに属するかを覚える。

ただ、Recall、Precision、Accuracy、F-measureあたりは違いを覚え直しておく。

![機械学習02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140013/165f31c3-299c-44a4-a0d8-609113f7fbc7.png)

https://qiita.com/aminosan000/items/7cd2059b8b731d030b99#%E8%A9%95%E4%BE%A1%E6%8C%87%E6%A8%99%E3%83%A1%E3%83%88%E3%83%AA%E3%82%AF%E3%82%B9


### Amazon SageMaker

#### Amazon SageMaker AI推論オプション

| 推論オプション | 推奨ケース |
|:-:|:-:|
| リアルタイム推論 | 低レイテンシや高スループットが要求されるオンライン推論、最大60秒 |
| サーバーレス推論 | 断続的またはまれなトラフィックパターンを伴う処理、最大60秒 |
| バッチ変換 | 大量のデータが事前に利用可能で、永続的なエンドポイントが必要ない場合のオフライン処理、最小100MB以上の入力データが必要 |
| 非同期推論 | リクエストをキューに入れる必要がある推論、および大きなペイロードサイズや長時間の処理を要する推論、最大60分 |

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/deploy-model-options.html

#### サーバーレス推論のProvisioned Concurrency
サーバレス推論ではコールドスタートを減らすために同時実行数を事前に予約することができる。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/serverless-endpoints.html

#### スクリプトモード
SageMakerによる学習(トレーニング)は

- 組み込みアルゴリズム
- 独自スクリプト
- 独自コンテナ

の3つのやりかたがある。

https://nsakki55.hatenablog.com/entry/2022/06/08/205950

スクリプトモードでは事前に用意されたコンテナ上で独自スクリプトによる学習(トレーニング)を行わせる事ができる。

https://aws.amazon.com/jp/blogs/news/using-tensorflow-eager-execution-with-amazon-sagemaker-script-mode/

これから新しくモデル作成する場合は「組み込みアルゴリズム」
オンプレなど既存環境からの以降の場合、スクリプトのみであれば「独自スクリプト」、実行環境も独自のものを利用している場合「独自コンテナ」と、使い分ける。


#### SageMaker Inference Recommender
SageMakerのモデルに対し、負荷テストを行い、最適なインスタンスタイプと設定の推奨を提供する。

https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender.html

#### SageMakerの早期停止

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/automatic-model-tuning-early-stopping.html

#### 入力モードとストレージオプション
データセットの格納先としては

- S3
- EFS
- FSx

がある。
また、S3をストレージとする場合

- ファイルモード
- 高速ファイルモード
- パイプモード

の3つの入力モードがある。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/model-access-training-data.html

パイプモードではファイルのDLを行わずに、データを直接ストリーミング処理するため、スループット向上や使用ディスク領域の削減ができる。

https://aws.amazon.com/jp/blogs/machine-learning/using-pipe-input-mode-for-amazon-sagemaker-algorithms/

#### S3 Express One Zone
SageMakerモデルトレーニングなど、レイテンシーの影響を受けやすいアプリケーション用に設計されたS3のストレージクラス。
コンピューティングリソースと同一AZにファイルを格納できるため、可用性は99.5%に落ちるがデータアクセス速度は10倍になる。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/s3-express-one-zone.html

#### Amazon SageMaker Model Registry
モデルを保存し、管理する機能。

モデルの

- バージョン管理
- カタログ化
- CI/CD

などに活用できる。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/model-registry.html

- モデルグループ: モデルの登録先となるグループ
- モデルコレクション: モデルの分類や階層化、整理に利用できる。1つのグループを複数のコレクションに追加可能。

#### Amazon SageMaker Pipelines
SageMakerによるデータ準備、トレーニング、デプロイ、監視の一連の機械学習パイプラインを構築できる。
GUIまたはJSONでパイプラインを定義する。

<img src="https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/pipeline-full.png" />

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/pipelines-overview.html

#### Amazon SageMaker Debugger
SageMaker AIでモデルの問題を検出、修正するための機能。

- モデル出力テンソルを抽出しS3に保存
- オーバーフィット、活性化関数の飽和、勾配の消失など、モデル収束の問題を検出
- CloudWatch Eventsを使用し、検出された問題を自動修正するLambdaの実行
- Amazon SNSによるEメールまたはテキスト通知

などができる。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/train-debug-and-improve-model-performance.html#:~:text=Amazon%20SageMaker%20Debugger%20is,email%20or%20text%20notifications

https://dev.classmethod.jp/articles/yoshim-amazon-sagemaker-debugger-example/

#### Amazon SageMaker Feature Store
特徴量の作成、保存、共有を行うことができる機能。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/feature-store.html

#### Amazon SageMaker Clarify
モデルのパフォーマンスに影響を与える可能性のあるデータ分布の変化(データドリフト)を分析および識別できる。
新しい状況に対し、更新や再トレーニングするかを決定するための判断に利用できる。

また、モデルの説明可能性レポートを出力することもできる。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/clarify-configure-processing-jobs.html

#### Amazon SageMaker Canvas
ノーコードで機械学習による推論を行える機能。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/canvas.html

#### Amazon SageMaker Experiments
機械学習の実験を作成、管理、分析、比較できる機能。

https://docs.aws.amazon.com/sagemaker/latest/dg/experiments.html

#### マネージドウォームプール
機械学習 (ML) モデルトレーニングのハードウェアインスタンスを、ジョブ完了後の指定された期間、ウォーム状態に保つことができる。
この機能を利用すると、同じウォーム状態のインスタンスでモデルトレーニングの反復実験や連続したジョブを大規模に実行して、ジョブの起動レイテンシを最大8分の1に短縮できる。

https://aws.amazon.com/jp/about-aws/whats-new/2022/09/reduce-ml-model-training-job-startup-time-8x-sagemaker-training-managed-warm-pools/

#### ネットワーク分離モード

トレーニングジョブ/モデルの作成時や呼び出し時に`EnableNetworkIsolation`パラメータを有効にすることで、ネットワーク分離を有効にできる。
これによりコンテナ内の実行環境でインターネットやS3などへのアウトバウンド通信ができなくなる。また、AWS認証情報も利用できなくなる。

アウトバウンド通信の必要ないケースの場合、この機能でセキュリティの向上が期待できる。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/mkt-algo-model-internet-free.html

#### MLflow
MLflowはオープンソースの機械学習のライフサイクル管理ツールで、トレーニングや評価などの反復的な実験を効率化できる。

https://qiita.com/c60evaporator/items/e0eb1a0c521d1310d95d

SageMaker AIにはMLflow統合機能がある。

https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/mlflow.html

https://aws.amazon.com/it/blogs/machine-learning/managing-your-machine-learning-lifecycle-with-mlflow-and-amazon-sagemaker/

#### TensorBoad
TensorBoadはGoogleの機械学習OSSライブラリであるTensorFlowに付属する視覚化ツール
トレーニング中の中間テンソルの視覚化や分析によるデバッグやモデル最適化に利用できる。

https://deepage.net/tensorflow/2017/04/25/tensorboard.html

SageMaker AIには「Amazon SageMaker with TensorBoard」というTensorBoad統合機能がある。

https://aws.amazon.com/jp/blogs/machine-learning/amazon-sagemaker-with-tensorboard-overview-of-a-hosted-tensorboard-experience/


### Amazon Redshift

#### マテリアライズド・ビュー
マテリアライズド・ビューを利用するとクエリ結果を事前に保存することで繰り返されるクエリを高速化できる。

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/materialized-view-overview.html

https://dev.classmethod.jp/articles/20200307-amazon-redshift-materialized-views-ga/

マテリアライズド・ビューは`REFRESH`コマンドで更新することができる。
`CREATE`または`ALTER`文で`AUTO REFRESH YES`を指定することで自動更新も可能。

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/materialized-view-refresh.html

#### 権限の管理

`GRANT`コマンドで特定操作の許可やロールの付与を行う。

```sql
GRANT SELECT FOR TABLES IN DATABASE Sales_db TO alice WITH GRANT OPTION;
```

```sql
CREATE ROLE sample_role1;
GRANT ROLE sample_role1 TO user1;
```

ロールを別のロールに継承させることもできる。

```sql
CREATE ROLE sample_role2;
GRANT ROLE sample_role1 TO ROLE sample_role2;
```

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_GRANT-examples.html

他のロールを継承しているロールの削除時は`FORCE`の指定が必要

```sql
DROP ROLE sample_role2 FORCE;
```

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/r_DROP_ROLE.html

#### 動的データマスキング(DDM:Dynamic Data Masking)
データウェアハウス内の機密データを保護できる機能。
特定のユーザーまたはロールにカスタムの難読化ルールを適用するマスキングポリシーを適用できる。

https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/t_ddm.html


### Amazon Q in QuickSight
QuickSightにはAmazon Q統合機能がある。

https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/quicksight-gen-bi.html

Amazon QによるGenerative BI(生成系BI)機能が提供される。
対話形式での視覚化の構築や、データに対する質問を行うことができる。

https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/generative-bi-author-experience.html

### Amazon Bedrock
#### モデル評価メトリクス

| メトリクス | 用途 |
|:-:|:-:|
| RWK<br>(Real World Knowledge) | テキスト生成タスクの精度評価 |
| BERT<br>(Bidirectional Encoder Representations from Transformers) | テキスト要約タスクの精度評価 |
| F1 | 質問と回答タスクの精度評価 |
| BLEU<br>(BiLingual Evaluation Understudy) | 機械翻訳モデルの精度評価 |

https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/model-evaluation-report-programmatic.html

https://aws.amazon.com/jp/blogs/machine-learning/build-a-multilingual-automatic-translation-pipeline-with-amazon-translate-active-custom-translation/

#### 推論パラメータ
推論を実行する際にパラメータを指定することで回答を調整することができる。

| パラメータ | 概要 |
|:-:|:-:|
| Top-K | 次のトークンとして考慮する最も可能性の高い候補の数 |
| Top-P | 次のトークンとして考慮する最も可能性の高い候補の割合 |
| 温度<br>(Temperature) | 確率の低い回答候補の選択されやすさ |


https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/inference-parameters.html

#### モデルカスタマイズ
基盤モデル(FM)のカスタマイズ方法として

- ファインチューニング
- 事前トレーニングの継続

がある。事前トレーニングの継続では、類似した追加データでさらに学習させることができる。このアプローチはファインチューニングよりライトなカスタマイズとして活用できる。

https://aws.amazon.com/jp/blogs/machine-learning/best-practices-to-build-generative-ai-applications-on-aws/


### フェデレーテッドラーニング
地理的に分散した場所で独自のデータセットから並行してローカルモデルを開発し、それらを集約したグローバルモデルを作成する

https://aws.amazon.com/jp/blogs/machine-learning/machine-learning-with-decentralized-training-data-using-federated-learning-on-amazon-sagemaker/


### AWS Compute Optimizer
EC2、ECS、ASG、Lambda、RDSなどの利用状況を分析し、適正サイズの推奨事項を提供するサービス。

https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is-compute-optimizer.html

CPU使用率のヘッドルームと閾値、メモリ使用率の余裕、ルックバック期間などのオプションを指定できる。
※ヘッドルーム=将来的な増加を考慮した余白
※ルックバック期間=分析のために遡る期間

https://docs.aws.amazon.com/compute-optimizer/latest/ug/rightsizing-preferences.html


### 構造化データと非構造化データ
CSV、Parquetなどの行列のテーブル(表)形式にすることができるデータを「構造化データ」、音声や動画、JSONで表現するような属性がバラバラの形式のデータを非構造化データと呼ぶ。

https://aws.amazon.com/jp/compare/the-difference-between-structured-data-and-unstructured-data/


### JSON Lines

JSONを複数行出力するフォーマット
ファイル出力する場合、拡張子は`.jsonl`
列単位ではなく、行単位で分析するデータに適している。

https://blog.3qe.us/entry/2022/08/22/131127

### Parquet
Parquetは列志向のファイルフォーマット
`.parquet`のバイナリファイルなのでテキストエディタでは開けない。読み込みには専用のツールやPythonなどのアプリケーション内で分析用ライブラリなどを使う。
表形式にできるような矩形データだが、列単位で効率よく取り出す事ができるようになっている。

https://qiita.com/eitsupi/items/2e8383bedb2f3a076b12

列単位の分析はParquet、単純な非構造データをリアルタイム分析する場合などはJSON Linesが適している。