LoginSignup
0
0

More than 3 years have passed since last update.

目次ページ

Last updated at Posted at 2020-03-06

Amazon の研究内容発信ページ

ユースケースごとに記事にいけるようにするための目次ページ

<目的>
SageMakerの公式ドキュメントがアレなので、機械学習エンジニア(というかSageMakerエンジニア)のための実際のMLシステム構築、運用に役立つ情報を記載していくために開設

<SageMakerでMLパイプラインを作成する時の鬼門>
1.カスタムコンテナ(コンテナの知識が必要、ECR、Docker)
2.学習、推論などのスクリプトの分割(SageMakerの仕様理解が必要)
この二つが、PoCでデータサイエンティストが書いた一つのノートブックから
MLシステムを構築するのに鬼門となる。。
特に1.dockerを理解し、SageMaker用の環境を作らねばならない。。

<参考>
https://qiita.com/odrum428/items/1788c4245fc2de4d58a8
https://qiita.com/triwave33/items/0a39e90068c57f1d2753

SageMakerの利点
・モデル開発が手軽にできて、データサイエンティストも嬉しい
・モデル開発が適切に管理されて、本番運用に繋げられて嬉しい
・データパイプラインや既存のAWSシステムとの連携が簡単で、データエンジニア(機械学習エンジニア)も嬉しい
・MLopsが効率的に実現できて、MLシステム運用者も嬉しい

<開発時>
データサイエンティストは、モデル開発をnotebookだけで完結させたい。
SageMaker用のAPIとか覚えたくない。
なので、開発はEC2上でnotobookで作ってもいいと思う。DataRobot使ってても別にいい。
業務ユーザーはExcel + QuickSightでもいい。
SageMaker notebookインスタンスだとちょっと高いし。
ローカルのmacでもよいでしょう。
そして、よいモデルを作るための設計図ができたら、
仕組み化するためにSageMakerの型に落とし込む。これはデータサイエンティストと、データエンジニアが連携して実施する。
学習も定期的に実施するなら、spot学習にした方がいいだろう。
推論はバッチ推論がよい。
SageMakerのよさの本質は、MLopsにある。
・開発したnotebookをどのようにSageMakerの型に移植すればよいか。がキモになる。
データ取得
前処理
モデル学習
- コンテナの中身を確認したい。ビルトインアルゴリズムのtrain.pyの内容をみたいなど。が発生する。
A.SageMaker にて提供している組み込みアルゴリズムのコンテナイメージは直接取得できません。

推論
後処理
評価
が含まれているので、これをどのように分解してSageMakerで運用できるようにするか。

■自身で作成したコンテナイメージをECRにpushする
以下に従い、notebookインスタンス上で実行してみた。
https://qiita.com/aokad/items/17a06c2384041bd60d16
エラーになった。IAMの権限が足らないらしい。
<メッセージ一部>
is not authorized to perform: ecr:InitiateLayerUpload on resource: arn:aws:ecr:us-east-2:

ここを参考にAmazonEC2ContainerRegistryFullAccessロールを付与したら解消した。
https://forums.aws.amazon.com/thread.jspa?threadID=223156

→ユースケースごとの最適なアーキテクチャがほしい。
リアルタイム推論が求められるケース
データがとてつもなく大きい場合
AIサービスを利用する場合
など

<モデル決定後>
開発されたモデルは、SageMaker用の学習スクリプトにして、
Spot学習などをすれば、コスト削減が可能。

■SageMakerで実現するMLシステム運用
データ収集

前処理

モデル学習

後処理

EDA

評価

モデルデプロイ

推論

モニタリング
Cloud Watch

■Studioの話
Auto Pilot

■AIサービス

■MLプロジェクトワークフローの話
企画

AWS S3にアップロードされたExcelファイルをLambdaで処理
https://qiita.com/akimai/items/d7f4c18e08347e46a18b

PoC
本番運用
MLops

■Kaggleの話
ベスト環境

■人材の話

■開発の話
SageMakerノートブックインスタンス上ではなく、
自身のMacBookProラップトップにてMLシステム開発を実施したい。どうすればよいか。
前処理、学習、後処理、推論をラップトップからSageMakerに命令したい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0