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
110
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 貞松政史
20230904_GoogleCloudNext23_Recap_AI_ML
sadynitro
0
580
Foundation Model全盛時代を生きるAI/MLエンジニアの生存戦略
sadynitro
0
680
Amazon SageMakerが存在しない世界線のAWS上で実現する機械学習基盤
sadynitro
0
1.1k
みんな大好き強化学習
sadynitro
0
840
機械学習エンジニアはMLOpsの夢を見るか?
sadynitro
0
1.1k
AWSのAIサービスインテグレーション - AIの仕組みを活用した課題解決
sadynitro
0
910
実践Amazon SageMaker - 全体像からユースケースまで
sadynitro
0
2.2k
Amazon Forecast Getting Start
sadynitro
0
1.1k
Amazon Forecast Getting Start
sadynitro
0
1.4k
Other Decks in Technology
See All in Technology
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
3
610
Android Target SDK 35 (Android 15) 対応の概要
akkie76
0
110
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
210
Kernel MemoryでAzure OpenAI Serviceとお手軽データソース連携
mitsuzono
1
260
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
180
JAWS-UG Bedrock Claude Night
yamahiro
3
620
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
170
エンジニアのキャリアをちょっと楽しくする3本の軸/Three Pillars to Make an Engineer's Career More Enjoyable
kwappa
0
2.8k
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
4
990
Compose Compiler Metricsを使った実践的なコードレビュー
tomorrowkey
1
220
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
360
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
840
Featured
See All Featured
Code Review Best Practice
trishagee
55
15k
Done Done
chrislema
178
15k
Atom: Resistance is Futile
akmur
259
25k
Testing 201, or: Great Expectations
jmmastey
28
6.4k
Infographics Made Easy
chrislema
238
18k
Thoughts on Productivity
jonyablonski
58
3.8k
A designer walks into a library…
pauljervisheath
200
23k
GitHub's CSS Performance
jonrohan
1025
450k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
Bash Introduction
62gerente
604
210k
Designing for humans not robots
tammielis
248
25k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
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