AWS エバンジェリストシリーズ AWSの基礎を学ぼう
前提で必要になりそうだと思った知識
GAN
GAN:敵対的生成ネットワークとは何か ~「教師なし学習」による画像生成
Seq2Seq
Sequence To Sequence( Seq2Seq )
Long short-term memory
RNN
第6回 RNN(Recurrent Neural Network)の概要を理解しよう(TensorFlow編)
CNN
定番のConvolutional Neural Networkをゼロから理解する
vgg16
resnet50
AWS Web Servicesの機械学習サービス(Sagemakerのみ抜粋)
https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html#whatis-features
SageMaker Studio
モデルの構築、学習、デプロイ、分析をすべて同じアプリケーションで行うことができる統合的な機械学習環境を提供する
SageMaker Canvas
コーディング経験のない人でもモデルを構築し、それを使って予測することができる自動MLサービス
SageMaker Ground Truth Plus
ラベリングアプリケーションの構築やラベリング作業者の管理を自前で行うことなく、高品質のトレーニングデータセットを作成するためのターンキーデータラベリング機能
SageMaker Training Compiler
SageMakerで管理されたスケーラブルなGPUインスタンスでディープラーニングモデルを高速にトレーニング
SageMaker Studio Universal Notebook
SageMaker Studioから直接、シングルアカウントおよびクロスアカウント構成のAmazon EMRクラスタを簡単に検出、接続、作成、終了、管理する
SageMaker Serverless Endpoints
MLモデルをホスティングするためのサーバーレスエンドポイント。容量は自動拡張、エンドポイント側でインスタンスタイプの選択、スケーリングポリシーの管理が不要
SageMaker Inference Recommender
利用者のMLモデルやワークロードを使用するための推論インスタンスタイプや構成(インスタンス数、コンテナパラメータ、モデルの最適化など)の推奨を得る
SageMaker Model Registry
機械学習モデルのデプロイメントのためのバージョン管理、アーティファクトとリネージのトラッキング、承認ワークフロー、およびクロスアカウントサポート
SageMaker Projects
SageMakerのプロジェクトを使って、CI/CDでエンドツーエンドのMLソリューションを作成する
SageMaker Model Building Pipelines
SageMakerのジョブと直接統合された機械学習パイプラインの作成と管理する
SageMaker ML Lineage Tracking
機械学習の系統(Lineage)を追跡する
SageMaker Data Wrangler
SageMaker Studioでデータのインポート、分析、準備、フィーチャリングを行う
SageMaker Feature Store
機能と関連するメタデータを一元的に保存するため、機能の発見と再利用ができる。
オンラインストアは低レイテンシー、リアルタイム推論のユースケースに使用でき、オフラインストアはトレーニングやバッチ推論に使用することができる
SageMaker Clarify
潜在的なバイアスを検出することで機械学習モデルを改善し、モデルが行う予測の説明を支援する
SageMaker Edge Manager
エッジデバイスのカスタムモデルの最適化、フリートの作成と管理、効率的なランタイムによるモデルの実行が可能になる
SageMaker Ground Truth
機械学習とともに作業者を用いてラベル付きデータセットを作成することで、高品質な学習データセットを提供する
Amazon Augmented AI(Amazon A2I)
ML 予測のヒューマンレビューに必要なワークフローを構築する
SageMaker Studio Notebooks
AWSシングルサインオン(AWS SSO)連携、高速起動、シングルクリック共有などを実現した次世代SageMakerノートブック
SageMaker Experiments
実験の管理および追跡
SageMaker Debugger
学習プロセス全体を通して、学習パラメータとデータを検査する
SageMaker Autopilot
機械学習の知識がないユーザーでも、分類や回帰のモデルを素早く構築する
SageMaker Model Monitor
Production環境のモデル(エンドポイント)を監視・分析し、データドリフトやモデル品質の逸脱を検出する
SageMaker Neo
機械学習モデルを一度学習させれば、クラウドやエッジのどこにいても実行できる
SageMaker Elastic Inference
リアルタイム推論を得るためのスループットを高速化し、レイテンシーを低減する
Reinforcement Learning
エージェントがその行動の結果として受け取る長期的な報酬を最大化する
Preprocessing
データの解析と前処理、フィーチャーエンジニアリングへの取り組み、そしてモデルの評価する
Batch Transform
データセットを前処理し、永続的なエンドポイントが不要な場合は推論を実行し、入力レコードと推論を関連付けて結果の解釈を支援する
SageMaker Studio Lab
オープンソースのJupyterLabをベースにした環境で、AWSの計算資源を利用できる無料サービス
SageMaker JumpStart
精選された1クリックソリューション、ノートブックの例、デプロイ可能な事前学習済みモデルを通じて、SageMakerの機能と性能を学ぶことができる。
座学パート
ボケて
ハンズオンパート
- https://github.com/aws-samples/bokete-denshosen
(もしこのブログを見て実施される方で、GitHubアカウントをお持ちの方は上記のリポジトリからForkしてください)- 実施環境(Region)はN.Virginia, Oregon, Ohio, TokyoなどSageMakerが利用可能な環境であればどこでも
自分が作成したモデルで作成したボケて
{{< tweet user="midnight480" id="1527897050750529537" >}}
ハンズオン実施内容
{{< message_box color="warning" >}}
当日は、AWS SA針原さんを始め、AWSのエンジニアの方々のサポートがあったためできました。
また上記のGitHub リポジトリには2022年5月26日現在手順がありませんが、今後追加される可能性があります。
{{< /message_box >}}
- はじめ
- 私の場合は、SageMaker Domainを作成していなかったため、SageMaker Instanceを起動しました
- Notebook instanceから新規ml.m5.xlargeを指定
- IAM Roleは新規、S3はAnyを指定
- Public Repoで以下のGithubを指定
- Notebook instanceがInServiceになったら、Open JupyterLabから開く。
- set kernelはこのファイルに記載されているものに従う
- 私の場合は、SageMaker Domainを作成していなかったため、SageMaker Instanceを起動しました
- おわり
- 作成したリソースを残しつつ、モデルを削除したくない場合は
predictor.delete_endpoint()
をSageMaker上で実施- 再度起動するときに、Deploy Modelからやり直せばOK.
- Processing, Trainingは放置しても自動で削除
- NotebookはインスタンスをStoppedになってDelete.
- Inference > Models と S3 にある学習データ、CloudWatch logs に作成されるロググループの削除も忘れずに.
- 作成したリソースを残しつつ、モデルを削除したくない場合は
注意事項
SageMakerのクォータはAWSサポートに確認が必要
- AWSコンソールでは上限緩和(VPCの数など)を確認が可能ですが、SageMakerは確認ができません
- 自分が今回4つ申請したSageMakerの上限緩和申請のうち、一つは既に適用済みとのことで...AWSサポートさまにはお手数おかけしましたm(_ _)m
{{< tweet user="midnight480" id="1527909594416447494" >}}
Tips
Jupyter Notebookの冗長になる出力を短縮
- 何もしなければ出力がつらつらと長くなります
- 左側のバーを選択することで出力が短縮されます
Python3.6のライブラリ警告
- 途中で実行すると赤く表示されるので驚きました
- Python3.6で利用されるAWS boto3ライブラリは2022年5月30日までのサポートとなるので警告が表示されます
- ただし実行したS3へのオブジェクトコピー処理は以下のように成功しているので問題ありません
まとめ
今回、SageMakerをちゃんと触ることになって、今まで自分があまり触れてこなかったサービスですので非常に参考になりました。
また、SageMaker=機械学習サービスというざっくりとしたイメージしか持っていないままイベントに参加はまずいと思って、
事前にどのような機能があるのかAWS Docsを見た上でイベントに臨んだので、少しは説明されている内容に付いていくことができました。
機械学習は中身を知らなくても利用できるようになってきたとは思いますが、
そこはエンジニアなので、やはり基礎を抑えるためにも改めて数式と戦ってみようと思いました。
このようなテンプレートを公開して個人でできるようになっているのはすごいなと改めて思いました。