Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Amazon SageMakerが存在しない世界線 のAWS上で実現する機械学習基盤
Search
貞松政史
June 08, 2023
Technology
0
210
Amazon SageMakerが存在しない世界線 のAWS上で実現する機械学習基盤
2023/06/03 JAWS-UG Okayama 2023のピンチヒッターセッション
※内容はAKIBA.AWS ONLINE #9の再演です
貞松政史
June 08, 2023
Tweet
Share
More Decks by 貞松政史
See All by 貞松政史
Amazon Forecast亡き今、我々がマネージドサービスに頼らず時系列予測を実行する方法
sadynitro
0
570
今日のハイライトをシステマティックに
sadynitro
1
51
はじめてのレコメンド〜Amazon Personalizeを使った推薦システム超超超入門〜
sadynitro
1
1.5k
予知保全利用を目指した外観検査AIの開発 〜画像処理AIを用いた外観画像に対する異常検知〜
sadynitro
0
770
20230904_GoogleCloudNext23_Recap_AI_ML
sadynitro
0
780
Foundation Model全盛時代を生きるAI/MLエンジニアの生存戦略
sadynitro
0
870
Amazon SageMakerが存在しない世界線のAWS上で実現する機械学習基盤
sadynitro
0
1.8k
みんな大好き強化学習
sadynitro
0
1.1k
機械学習エンジニアはMLOpsの夢を見るか?
sadynitro
0
1.3k
Other Decks in Technology
See All in Technology
グループポリシー再確認
murachiakira
0
160
ISUCONにPHPで挑み続けてできるようになっ(てき)たこと / phperkaigi2025
blue_goheimochi
0
140
Dapr For Java Developers SouJava 25
salaboy
1
130
バクラクでのSystem Risk Records導入による変化と改善の取り組み/Changes and Improvement Initiatives Resulting from the Implementation of System Risk Records
taddy_919
0
220
Amazon GuardDuty Malware Protection for Amazon S3を使おう
ryder472
2
100
Symfony in 2025: Scaling to 0
fabpot
2
170
ClineにNext.jsのプロジェクト改善をお願いしてみた / 20250321_reacttokyo_LT
optim
1
1.3k
モンテカルロ木探索のパフォーマンスを予測する Kaggleコンペ解説 〜生成AIによる未知のゲーム生成〜
rist
4
1.1k
銀行でDevOpsを進める理由と実践例 / 20250317 Masaki Iwama
shift_evolve
1
110
初めてのPostgreSQLメジャーバージョンアップ
kkato1
0
390
KCD Brazil '25: Enabling Developers with Dapr & Backstage
salaboy
1
120
Cloud Native PG 使ってみて気づいたことと最新機能の紹介 - 第52回PostgreSQLアンカンファレンス
seinoyu
1
180
Featured
See All Featured
KATA
mclloyd
29
14k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Statistics for Hackers
jakevdp
798
220k
The Invisible Side of Design
smashingmag
299
50k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Thoughts on Productivity
jonyablonski
69
4.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.6k
A Tale of Four Properties
chriscoyier
158
23k
Product Roadmaps are Hard
iamctodd
PRO
52
11k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
12
1.4k
Into the Great Unknown - MozCon
thekraken
36
1.7k
Producing Creativity
orderedlist
PRO
344
40k
Transcript
Amazon SageMakerが存在しない世界線 のAWS上で実現する機械学習基盤 2023.06.03 JAWS-UG Okayama 2023 1
2 ⾃⼰紹介 info award ˞.BDIJOF-FBSOJOHΧςΰϦ • ఃদ ࢙ʢαμϚπ Ϛαγʣ •
5XJUUFSJE!TBEZ@OJUSP • Ϋϥεϝιουגࣜձࣾ %"ࣄۀຊ෦ ػցֶशνʔϜ Ϛωʔδϟʔ • ΦΧϠϚίϯϐϡʔλαΠΤϯεϥϘओ࠵
3 AWSで… AWSで機械学習と⾔えば Amazon SageMaker︕
4 本当に…︖ 本当にそれだけ︖
5 状況は様々 • 現在の環境をそのまま流⽤したい • 部分的に⼩さく始めたい • サービスのお作法を気にしたくない • コストが気になる
• 他の環境への移植も考慮したい
6 ご紹介します Amazon SageMakerを使⽤しない アーキテクチャをご紹介
7 おしながき • 機械学習基盤に必要な要素 • 仮想マシンを使うアーキテクチャ • コンテナを活⽤したアーキテクチャ • サーバーレスアーキテクチャ
• パイプライン処理やCI/CDを考える • 実験管理やモニタリングはどうする︖
8 機械学習基盤に必要な要素 • 機械学習基盤に必要な要素 • 仮想マシンを使うアーキテクチャ • コンテナを活⽤したアーキテクチャ • サーバーレスアーキテクチャ
• パイプライン処理やCI/CDを考える • 実験管理やモニタリングはどうする︖
9 MLOpsを考慮した機械学習基盤 MLOps: 機械学習における継続的デリバリーと⾃動化のパイプライン https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning Google Cloudが定義するMLOps (レベル別) • MLOpsレベル
0 : ⼿動プロセス • MLOpsレベル 1 : MLパイプラインの⾃動化 • MLOpsレベル 2 : CI/CDパイプラインの⾃動化
10 機械学習基盤に必要な要素 データ蓄積 デプロイ 推論実⾏ 学習パイプライン 評価 検証 推論 学習
前処理 データ 抽出 再学習 トリガー ロギング モニタリング 実験管理 特徴量ストア
11 仮想マシンを使うアーキテクチャ • 機械学習基盤に必要な要素 • 仮想マシンを使うアーキテクチャ • コンテナを活⽤したアーキテクチャ • サーバーレスアーキテクチャ
• パイプライン処理やCI/CDを考える • 実験管理やモニタリングはどうする︖
12 Amazon EC2を利⽤ (⾮推奨) • 如何ようにでもできる • データ抽出、前処理、学習、 推論、デプロイまで1台でも 完結できる
(⾮推奨) • とはいえ実装コスト、管理 コストが爆増 • 少なくとも各処理フェーズ ごとにコンテナで管理する べき Amazon EC2 Database Amazon S3
13 コンテナを活⽤したアーキテクチャ • 機械学習基盤に必要な要素 • 仮想マシンを使うアーキテクチャ • コンテナを活⽤したアーキテクチャ • サーバーレスアーキテクチャ
• パイプライン処理やCI/CDを考える • 実験管理やモニタリングはどうする︖
14 コンテナを利⽤したコンピューティング • Amazon ECS • フルマネージドなコンテナオーケストレーション • AWS Fargateをコンピューティング環境とするサーバー
レスなコンテナ実⾏ • AWS Batch • ジョブキューやコンピューティング環境、実⾏パラメー タ等を定義したバッチジョブのパッケージ • 実際に実⾏されるのはECSタスク • 実⾏環境はAWS Batchによって制御される
15 Amazon ECSを利⽤した学習・推論環境 • Amazon ECRからコンテナ イメージを取得して実⾏ • 定義されたタスクを呼び出し •
コンピューティング環境と してEC2とFargateが選択 できる Amazon S3 Amazon ECS AWS Fargate Amazon EC2 Database OR Amazon ECR Amazon API Gateway AWS Lambda
16 Amazon ECSを利⽤するメリット・デメリット • メリット • 実⾏環境や処理をコンテナに押し込めているのでポータ ビリティが⾼い • コンピューティング環境のスケーラビリティが⾼い
• Fargateを利⽤したサーバーレスなコンテナ実⾏ • デメリット • EC2利⽤(主にGPU利⽤想定)の場合はコスト⾼め • コールドスタート含めオーバーヘッドがある
17 AWS Batchを利⽤した学習・推論環境 • ジョブキュー、コン ピューティング環境、 ジョブ定義等を設定 • 定義されたジョブを呼 び出し
• 裏側でECSタスクが実 ⾏される Amazon S3 Amazon ECS AWS Fargate Amazon EC2 Database OR Amazon ECR Amazon API Gateway AWS Lambda AWS Batch Amazon EventBridge
18 AWS Batchを利⽤するメリット・デメリット • メリット • ECSのメリットをそのまま享受できる • EC2利⽤でもプロビジョニングから停⽌まで実⾏制御してくれる 為コスト低め
• スポットインスタンス利⽤でコストを下げる選択肢もある • ジョブキューを搭載しているので、⼤量の同時実⾏制御に向いて いる • デメリット • オーバーヘッドがかなりかかる為、⼩さな処理をたくさん実⾏す るようなワークロードには向かない
19 サーバーレスアーキテクチャ • 機械学習基盤に必要な要素 • 仮想マシンを使うアーキテクチャ • コンテナを活⽤したアーキテクチャ • サーバーレスアーキテクチャ
• パイプライン処理やCI/CDを考える • 実験管理やモニタリングはどうする︖
20 AWS Lambda (コンテナデプロイ)を利⽤ ;JQ ίϯςφ ετϨʔδॴ S3 ECR ετϨʔδαΠζ্ݶ
Ϧʔδϣϯ୯Ґ 75GB (上限緩和可能) ECRのクォータに準拠 ΞʔςΟϑΝΫταΠζ্ݶ 250 MB (展開後) 10 GB -BZFSରԠ あり なし ίʔυॺ໊ あり なし Lambda Functionのデプロイ形式の違いによる制限の違い https://aws.amazon.com/jp/builders-flash/202103/new-lambda-container-development/
21 AWS Lambdaを利⽤する場合の注意事項 • アーティファクトサイズ上限10GB • 同時実⾏数上限1000(同⼀アカウント同⼀リージョン内) • タイムアウト時間上限15分 •
メモリ割り当て上限10GB • Lambda Functionから「ファイル書き込み」ができる領域 は「/tmp」のみ (かつストレージ上限10GB) • Lambda⽤のコンテナイメージ作成時に幾つかお作法が存 在する(Dockerfileの書き⽅など)
22 AWS Lambdaを利⽤した推論エンドポイント • Lambda Functionで学習済みモデルを読み 込んで推論処理を実⾏する • コンテナ⾃体に学習済みモデルファイルを 詰め込むとファイルサイズが膨らむので、
S3に配置して実⾏時に読み込む⽅式 を推奨 • API Gatewayのタイムアウトが最 ⼤29秒なので、実際にはLambda Functionの処理を呼び出した段階でレスポ ンスを返して⾮同期に処理することを想定 Amazon S3 Amazon ECR Amazon API Gateway AWS Lambda
23 パイプライン処理やCI/CDを考える • 機械学習基盤に必要な要素 • 仮想マシンを使うアーキテクチャ • コンテナを活⽤したアーキテクチャ • サーバーレスアーキテクチャ
• パイプライン処理やCI/CDを考える • 実験管理やモニタリングはどうする︖
24 AWS CodePipeline・AWS CodeBuildを利⽤ • コードリポジトリに対するプッシュをトリガー • 最新のコードで再学習を実⾏ • 学習済みモデルをデプロイ
開発者 AWS CodeBuild AWS CodePipeline Amazon EventBridge AWS CodeCommit GitHub OR Event AWS CodeDeploy AWS Cloud 推論実⾏ 環境 学習実⾏ 環境
25 実験管理やモニタリングはどうする︖ • 機械学習基盤に必要な要素 • 仮想マシンを使うアーキテクチャ • コンテナを活⽤したアーキテクチャ • サーバーレスアーキテクチャ
• パイプライン処理やCI/CDを考える • 実験管理やモニタリングはどうする︖
26 Amazon AthenaやAmazon DynamoDBを利⽤ • 管理したいデータ • 学習データセット本体 (保存先) •
特徴量 • ハイパーパラメータ • コスト重視 (サーバーレスでストレージコストが安価) • SageMaker Feature Storeも裏側はAthena Amazon Athena Amazon DynamoDB
27 Amazon CloudWatchやAmazon EventBridgeを利⽤ • CloudWatchのカスタムメトリクスを使⽤して必要なデータを送信 • メトリクス値を利⽤してCloudWatch Alarmを設定 •
EventBridge経由で再学習をトリガー • SNS経由で通知を送信 開発者 AWS CodeBuild AWS CodePipeline Amazon EventBridge Event AWS CodeDeploy AWS Cloud 推論実⾏ 環境 学習実⾏ 環境 Amazon CloudWatch カスタムメトリクス送信 Amazon SNS
28 まとめ
29 まとめ • 機械学習基盤の要件は様々 • 幾つかの選択肢として、Amazon SageMakerを 利⽤しないアーキテクチャについてご紹介 • AWSのサービスを組み合わせることで要件を満たす
環境を柔軟に構築 • ポータビリティを重視して、主要な処理をコンテナ に押し込める⽅針が筋としては良さそう
30