はじめに
ここまでの内容では、機械学習の基本概念や評価指標、データ前処理について整理してきました。
今回からは、少し AWS 寄りの内容として、
Amazon SageMaker の基本的な流れを整理します。
AWS Certified Machine Learning Engineer - Associate(MLA-C01)を学習するうえで、SageMaker は非常に重要なサービスです。
ただし、最初から細かい機能をすべて覚えようとすると混乱しやすいため、まずは以下の3つを押さえるのがおすすめです。
- Training
- Endpoint
- Batch Transform
一言で言うと、
Training = モデルを学習する
Endpoint = リアルタイムに予測する
Batch Transform = まとめて予測する
というイメージです。
本記事では、SageMaker の基本的な流れを、初心者にも分かりやすく整理します。
🎯 対象読者
- SageMaker をこれから学び始める方
- Training / Endpoint / Batch Transform の違いを整理したい方
- AWS の AI / ML 系資格を勉強している方
- 機械学習モデルを AWS 上でどう扱うのか知りたい方
- リアルタイム推論とバッチ推論の違いを理解したい方
🧩 まず結論:SageMaker の基本は「学習して、予測に使う」
SageMaker の基本的な流れは、かなりシンプルに整理できます。
Training
↓
モデル作成
↓
Endpoint または Batch Transform
↓
予測結果を利用
もう少し具体的に書くと、以下のような流れです。
データを S3 に保存する
↓
SageMaker Training Job を起動する
↓
学習用インスタンスでモデルを学習する
↓
学習済みモデルを S3 に保存する
↓
Endpoint または Batch Transform で予測する
つまり、SageMaker では
- モデルを学習する処理
- 学習済みモデルを使って予測する処理
を分けて考えると理解しやすくなります。
🏋️ Training とは?
Training とは、
データを使って機械学習モデルを学習させる処理 です。
SageMaker では、この学習処理を Training Job として実行します。
一言で言うと
Training = データから規則を学習する
例えば、顧客の購買データを使って、
「この顧客は商品を購入しそうか」を予測するモデルを作る場合を考えます。
このとき、過去の顧客データと購入結果を使って、モデルに規則を学習させます。
📦 SageMaker Training Job の基本的な流れ
SageMaker Training Job の流れは、以下のように考えると分かりやすいです。
1. 訓練データを S3 に置く
2. SageMaker Training Job を起動する
3. SageMaker が学習用インスタンスを起動する
4. インスタンス上でアルゴリズムや学習コードを実行する
5. 学習が完了するとモデルファイルを生成する
6. モデルファイルを S3 に保存する
ポイントは、SageMaker が学習用の環境を用意してくれることです。
自分で EC2 を立てて、ライブラリを入れて、学習環境を管理することもできますが、
SageMaker Training Job を使うと、学習処理をジョブとして管理しやすくなります。
🪣 なぜ S3 がよく出てくるのか?
SageMaker では、S3 が非常によく出てきます。
理由は、S3 が以下のような役割を持つからです。
| 用途 | 説明 |
|---|---|
| 入力データの保存 | 訓練データを S3 に置く |
| モデル成果物の保存 | 学習後のモデルファイルを S3 に保存する |
| バッチ推論の入力 | 予測対象データを S3 に置く |
| バッチ推論の出力 | 予測結果を S3 に保存する |
つまり、SageMaker を使うときは、
S3 はデータとモデルの置き場所 として理解すると分かりやすいです。
🧠 Training で学習されるもの
Training Job では、モデルがデータからパターンを学習します。
例えば、以下のような関係を学びます。
- 年齢が高い顧客は、ある商品を買いやすい
- 購入回数が多い顧客は、解約しにくい
- 過去の取引パターンから不正の可能性がある
- 画像の特徴から猫か犬かを判定する
もちろん、実際にはもっと複雑な計算が行われますが、
最初は「データから規則を学ぶ処理」と考えれば十分です。
🌐 Endpoint とは?
Endpoint とは、
学習済みモデルを API のように呼び出して、リアルタイムに予測するための仕組み です。
一言で言うと
Endpoint = すぐに予測結果を返すための API
例えば、ユーザーがローン申請をした瞬間に、
システムがすぐにリスクを判定したい場合を考えます。
ユーザーが申請する
↓
申請データを Endpoint に送る
↓
モデルがリスクを予測する
↓
結果をすぐ返す
このように、すぐに結果が必要な場合は Endpoint が向いています。
🧪 Endpoint の具体例
例えば、ローン審査システムでは、ユーザーが申請フォームを送信したあと、
システムがすぐに以下のような判断をしたい場合があります。
このユーザーの信用リスクは高いか?
この申請を自動承認してよいか?
追加確認が必要か?
このようなケースでは、モデルを Endpoint としてデプロイしておき、
アプリケーションからリアルタイムに呼び出します。
Endpoint が向いている場面
| 場面 | 理由 |
|---|---|
| Web アプリから即時判定したい | ユーザー操作にすぐ応答する必要がある |
| API としてモデルを使いたい | 他システムから呼び出しやすい |
| 低レイテンシーが必要 | すぐに結果を返す必要がある |
| オンライン推論を行いたい | リクエストごとに予測する |
Endpoint は、いわゆる リアルタイム推論 に向いています。
⚠️ Endpoint の注意点
Endpoint は便利ですが、常に起動しているリソースが必要になる場合があります。
そのため、リクエストが少ない場合でも、
構成によってはコストが発生し続けることがあります。
特に、常時起動型のリアルタイム Endpoint では、
予測リクエストがない時間帯でもインスタンスが稼働している点に注意が必要です。
つまり、
すぐに返したい → Endpoint
コストを抑えたい / まとめて処理したい → Batch Transform
という考え方が重要になります。
📦 Batch Transform とは?
Batch Transform とは、
大量のデータをまとめて予測するための仕組み です。
一言で言うと
Batch Transform = まとめて予測する
Endpoint のように、リクエストごとにすぐ結果を返すのではなく、
S3 に置かれたデータをまとめて処理し、予測結果を S3 に保存します。
🧪 Batch Transform の具体例
例えば、会社が毎晩、100万人分の顧客データを分析したいとします。
目的は以下のようなものです。
- どの顧客の信用リスクが高いか
- どの顧客が解約しそうか
- どの顧客にどの商品をおすすめするか
この場合、ユーザーにリアルタイムで結果を返す必要はありません。
S3 に顧客データを置く
↓
夜間に Batch Transform Job を起動する
↓
100万人分をまとめて予測する
↓
結果を S3 に保存する
↓
翌日の業務で利用する
このようなケースでは、Batch Transform が向いています。
🧭 Endpoint と Batch Transform の違い
Endpoint と Batch Transform は、どちらも学習済みモデルを使って予測する仕組みです。
ただし、使いどころが違います。
| 項目 | Endpoint | Batch Transform |
|---|---|---|
| 目的 | リアルタイム予測 | 一括予測 |
| 入力 | 1件ずつ、または少量のリクエスト | S3 上の大量データ |
| 出力 | すぐにレスポンスを返す | 結果を S3 に保存 |
| 向いている場面 | Web/API、即時判定 | 夜間処理、大量データ処理 |
| コスト感 | 常時稼働リソースに注意 | 必要なときだけジョブ実行 |
| レイテンシー | 低い | 即時性は不要 |
覚え方は以下です。
Endpoint = 今すぐ1件ずつ予測
Batch Transform = 後でまとめて予測
🔁 SageMaker の基本フロー
SageMaker の全体像を流れで見ると、以下のようになります。
訓練データを S3 に保存
↓
Training Job でモデルを学習
↓
学習済みモデルを S3 に保存
↓
用途に応じて使い分け
├─ Endpoint:リアルタイム予測
└─ Batch Transform:一括予測
この流れを理解しておくと、SageMaker 関連の問題がかなり読みやすくなります。
☁️ AWS 試験での見られ方
AWS の AI / ML 系試験では、SageMaker の Training、Endpoint、Batch Transform は基本中の基本です。
特に、以下のような観点で問われる可能性があります。
Training Job
モデルを学習する処理
入力データは S3
学習後のモデル成果物も S3
Training Job は、モデルを作るための処理です。
予測結果を返すための仕組みではありません。
Endpoint
リアルタイムに予測結果を返す
API のように使う
低レイテンシーが必要な場面に向く
ユーザー操作にすぐ反応する必要がある場合は Endpoint を考えます。
Batch Transform
大量データを一括予測する
入力も出力も S3 を使う
リアルタイム性が不要な場面に向く
毎日夜間にまとめて予測するようなバッチ処理では Batch Transform が向いています。
👨💻 実務目線で見ると
実務では、モデルを作ることよりも、
そのモデルをどのように業務システムで使うか が重要になります。
例えば、同じ解約予測モデルでも、使い方によって構成が変わります。
ケース 1:ユーザー操作時にすぐ予測したい
ユーザーが画面操作
↓
アプリが Endpoint を呼び出す
↓
すぐ予測結果を返す
この場合は Endpoint が向いています。
ケース 2:毎晩まとめて全顧客を予測したい
夜間に顧客データを S3 に出力
↓
Batch Transform Job を実行
↓
予測結果を S3 に保存
↓
翌朝の営業リストに使う
この場合は Batch Transform が向いています。
ケース 3:まずモデルを作りたい
過去データを S3 に準備
↓
Training Job を実行
↓
モデル成果物を S3 に保存
この場合は Training Job が中心になります。
つまり、SageMaker を理解するときは、
学習なのか、リアルタイム推論なのか、バッチ推論なのか を分けて考えることが大切です。
🧠 ここは特に覚えたいポイント
覚え方 1
Training = モデルを学習する
覚え方 2
Endpoint = リアルタイム予測
覚え方 3
Batch Transform = 一括予測
覚え方 4
Training の入力データと出力モデルは S3 を使うことが多い
覚え方 5
すぐ返すなら Endpoint
まとめて処理するなら Batch Transform
✅ まとめ
今回は、SageMaker の基本的な全体像として
- Training
- Endpoint
- Batch Transform
を整理しました。
重要なポイントは以下です。
- Training は、データを使ってモデルを学習する処理
- SageMaker Training Job では、学習用インスタンス上でモデルを学習する
- 学習済みモデルは S3 に保存される
- Endpoint は、学習済みモデルを API のように使ってリアルタイム予測する仕組み
- Batch Transform は、大量データをまとめて予測する仕組み
- Endpoint は即時応答が必要な場面に向いている
- Batch Transform は夜間処理や大量データの一括処理に向いている
SageMaker を学ぶときは、まず
Training でモデルを作り、Endpoint または Batch Transform で予測する
という基本の流れを押さえることが大切です。
📌 次回予告
次回は、SageMaker でデータを扱うときに重要な
- Data Wrangler
- データ加工
- 特徴量
について整理します。
モデルを学習する前に、データをどのように整えるかを AWS のサービス視点で見ていきます。