【AWS】SageMaker備忘録

## SageMakerとは

機械学習のワークフローであるラベル付け、開発、学習、モデル変換、推論デプロイを一貫して提供するマネージドサービス。

数分で開発環境を起動でき、必要なときだけ高性能マシンや分散マシン、GPUを使用して学習・推論ができる。

 1. S3へ学習データを置く
 1. 開発環境でモデル開発
 1. SageMakerに合わせた学習・推論コードへ変換する
 1. 変換コードを実⾏し、SageMakerマネージドのEC2/コンテナで学習・評価をする
 1. 推論エンドポイント(SageMakerマネージドEC2)にデプロイする

データ準備から推論モデルのデプロイまでのアーキテクチャー概要
 ![SageMaker_1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/1248d63a-980b-c71a-60bd-96b4568616b7.png)

## 開発環境の開始

1. SageMaker Domain をセットアップを押して、SageMaker Domainを作成する
  ![Sagemeker01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/b364852f-e8f8-d2e8-b17c-8bf2259ad5bf.png)
1. Domain -> ユーザープロファイルを選択する
  ![Sagemeker02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/d6fc59fd-fe87-11aa-f160-bb0f5127eff2.png)
1. 起動からStudioを起動する
1. +Create Studio Classic spaceを押して、Classic共有環境を立ち上げる
  ![Sagemeker03.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/b398e7fb-ffe5-acf1-fb51-b46698cb7257.png)
1. +Create JupyterLab spaceを押して、JupyterLab共有環境を立ち上げる
  ![Sagemeker04.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/1e5aceac-1aec-6f13-fa35-1cc04f088fdb.png)

## SageMakerの記法へのコード変換

![SageMaker_1123.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/eb44fa24-e6c9-082c-053b-e02f4aa967f4.png)

## SageMakerの各サービス

![SageMaker_112qwf3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/2c6ac2cb-56ea-5fb2-38c9-47aa4c0ac995.png)

### 自動化されたSageMaker

- [SageMaker Autopilot](https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/autopilot-automate-model-development.html)
  データの前処理からモデルの選択、ハイパーパラメータの最適化、学習、デプロイまでを全自動でできるAutoMLサービス
- [SageMaker JumpStart](https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/studio-jumpstart.html)
  オープンソースモデルをデプロイし仕様できるサービス

### SageMakerの学習環境

- [SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated.html)
  ML ワークフローを実行するためのIDL。
   - [SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html)
   - [SageMaker JupyterLab](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl.html)
   - [SageMaker Code Editor](https://docs.aws.amazon.com/sagemaker/latest/dg/code-editor.html)
- [SageMaker Notebook Instances](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html)
  Jupyter Notebookを使用できる
- [SageMaker Studio Lab](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lab.html)
  AWS アカウントにサインアップせずに、JupyterLabを使用できる
- [SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html)
  ノーコードで学習できる
- [SageMaker geospatial capabilities](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial.html)
  地理空間モデル用
- [RStudio on Amazon SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/rstudio.html)
  RStudioを使用できる
- [SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod.html)
  分散トレーニングサービス
- SageMaker Debugger
  デバッグサービス

#### 組み込みアルゴリズム

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

### データ準備

- Data Wrangler
  300を超える組み込みのデータ処理が含まれているため、コードを記述しなくても、特徴量をすばやく正規化、変換、および結合できる。
- EMR
- Glue

### データ処理
- SageMaker Processing
- SageMakerApache Spark

### 特徴量の保存

- SageMaker Feature Store

### 評価
 - SageMaker Clarify
 - SageMaker Model Monitor


### 推論モデルデプロイ
SageMakerのモデルデプロイは主に4つの方法を提供している。

- リアルタイム推論
  常時稼働な即時レスポンスが必要なデプロイオプション。
  SageMaker Endpoint, Multi-Model Endpoint, Multi-Container Endpoint
- サーバーレス推論
  コールドスタートのため、リアルタイムではないが、コストが安い。
- 非同期推論
  非同期処理のため、リアルタイムではない。
- バッチ推論
  低頻度・大量データ用らしい。よくわからん。

https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2022_Amazon-SageMaker-Inference-Part-3_1014_v1.pdf

![Sagemaker_pred1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/bac135b1-6ee3-a8c1-9a75-6dec299abca5.png)

![Sagemaker_pred2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483556/4e550427-7ff6-d141-f6d9-7c84696ac24d.png)

### CI/CD

 - SageMaker Pipelines

## まとめ
今回は、SageMakerについてまとめた。

## 参考文献

https://pages.awscloud.com/rs/112-TZM-766/images/AWS%E3%81%AE%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%82%B5%E3%83%BC%E3%83%92%E3%82%99%E3%82%B9%E3%81%A8Amazon%20SageMaker%20%E3%81%AE%E5%9F%BA%E7%A4%8E.pdf

## 補足

AWSの最新情報や各サービスの情報は、下記サイトを参照している。

https://aws.amazon.com/jp/new/?whats-new-content-all.sort-by=item.additionalFields.postDateTime&whats-new-content-all.sort-order=desc&awsf.whats-new-categories=*all&awsm.page-whats-new-content-all=1

https://aws.amazon.com/jp/events/aws-event-resource/archive/?cards.sort-by=item.additionalFields.SortDate&cards.sort-order=desc&awsf.tech-category=*all