はじめに
前回は、SageMaker Pipelines と MLOps について整理しました。
SageMaker Pipelines では、データ前処理、モデル学習、評価、条件判定、モデル登録といった一連の流れを、パイプラインとして自動化・管理できることを確認しました。
今回は、その中でも モデル登録 に関係する重要な仕組みである
SageMaker Model Registry について整理します。
機械学習モデルは、一度作って終わりではありません。
実務では、モデルを何度も学習し直したり、別の特徴量を使ったり、ハイパーパラメータを変えたりしながら、複数のモデル候補を作ります。
その結果、以下のような疑問が出てきます。
- どのモデルが最新なのか
- どのモデルを本番で使っているのか
- どのデータで学習したモデルなのか
- どの評価指標で合格と判断したのか
- 誰が本番利用を承認したのか
- 以前のモデルに戻したい場合、どれを使えばよいのか
このようなモデル管理の課題を整理するために使われるのが、Model Registry です。
本記事では、
- Model Registry とは何か
- なぜモデルのバージョン管理が必要なのか
- Model Package / Model Package Group の考え方
- 承認フロー
- Pipelines との関係
- 実務や試験での見られ方
を、初心者にも分かりやすく整理します。
🎯 対象読者
- SageMaker Model Registry の役割を理解したい方
- モデルのバージョン管理を整理したい方
- MLOps の基本を学んでいる方
- SageMaker Pipelines と Model Registry の関係を知りたい方
- AWS の AI / ML 系資格を勉強している方
🧩 まず結論:Model Registry は「本番候補モデルを管理する台帳」
Model Registry は、簡単に言うと、
学習済みモデルをバージョン付きで登録し、評価結果や承認状態と一緒に管理するための仕組み です。
一言で言うと、以下のように覚えると分かりやすいです。
Model Registry = モデルのバージョン管理台帳
モデルを学習するたびに、新しいモデル成果物が作られます。
しかし、すべてのモデルをそのまま本番に出すわけではありません。
通常は、
モデルを学習する
↓
評価する
↓
条件を満たしたモデルを登録する
↓
承認する
↓
本番へデプロイする
という流れになります。
Model Registry は、この「登録されたモデル候補」を整理して管理する場所です。
🧠 なぜモデル管理が必要なのか?
機械学習では、モデルが1つだけ存在することはあまりありません。
実務では、以下のように複数のモデルが生まれます。
- 初回に作ったモデル
- 特徴量を追加したモデル
- ハイパーパラメータを変えたモデル
- 新しいデータで再学習したモデル
- 別のアルゴリズムを試したモデル
- 本番障害時に戻したい旧モデル
このようなモデルをきちんと管理しないと、後から混乱します。
たとえば、
どのモデルを本番に出したのか分からない
前回より精度が上がった理由が分からない
問題が起きたときに戻せない
誰が承認したモデルなのか分からない
といった状態になります。
Model Registry を使うことで、モデルをバージョンごとに整理し、
評価結果や承認状態と一緒に管理しやすくなります。
📦 Model Package とは?
Model Registry で重要な概念の1つが Model Package です。
Model Package は、簡単に言うと、
登録された1つのモデルバージョン です。
たとえば、解約予測モデルを何度も学習した場合、以下のように複数の Model Package が作られます。
| Model Package | 説明 |
|---|---|
| version 1 | 初回学習モデル |
| version 2 | 特徴量を追加したモデル |
| version 3 | 新しいデータで再学習したモデル |
| version 4 | ハイパーパラメータを調整したモデル |
それぞれの Model Package には、モデル成果物の場所や評価情報、承認状態などを関連づけられます。
🗂 Model Package Group とは?
Model Package Group は、
同じ目的のモデルをまとめて管理するグループ です。
たとえば、以下のようなイメージです。
churn-prediction-model
├── version 1
├── version 2
├── version 3
└── version 4
この場合、
churn-prediction-model
が Model Package Group で、その中に version 1、version 2、version 3 という Model Package が登録されます。
つまり、
Model Package Group = モデルシリーズ
Model Package = その中の1つのバージョン
と考えると分かりやすいです。
🧾 Model Registry に登録する情報
Model Registry では、単にモデルファイルだけを保存するわけではありません。
モデルを本番候補として判断するために必要な情報も一緒に管理します。
代表的な情報は以下です。
| 情報 | 説明 |
|---|---|
| モデル成果物 | S3 に保存された学習済みモデルファイル |
| コンテナイメージ | 推論に使うイメージ |
| 評価指標 | accuracy、F1 score、RMSE など |
| 学習ジョブ情報 | どの Training Job から作られたか |
| モデルバージョン | version 1、version 2 など |
| 承認状態 | Approved / Rejected / Pending など |
| メタデータ | 説明、用途、タグなど |
このような情報を一緒に管理することで、
「どのモデルを、なぜ本番に出すのか」を判断しやすくなります。
✅ 承認状態とは?
Model Registry では、モデルに承認状態を設定できます。
代表的には以下のような状態です。
| 状態 | 意味 |
|---|---|
| Pending Manual Approval | 承認待ち |
| Approved | 承認済み |
| Rejected | 却下 |
この承認状態を使うことで、
評価されたモデルをすぐに本番に出すのではなく、必要に応じて人間の確認を挟むことができます。
たとえば、以下のような運用です。
Pipeline がモデルを学習・評価
↓
条件を満たしたモデルを Model Registry に登録
↓
承認者が評価結果を確認
↓
Approved に変更
↓
デプロイパイプラインが本番へ反映
このようにすることで、安全にモデルを本番へ出しやすくなります。
🚦 なぜ承認フローが重要なのか?
機械学習モデルは、評価指標が良ければ必ず本番に出してよいわけではありません。
たとえば、以下のような確認が必要になることがあります。
- 評価指標は本当に改善しているか
- 特定のユーザー層に偏った結果になっていないか
- 本番で使う特徴量と一致しているか
- 推論レイテンシーは問題ないか
- コストは許容範囲か
- セキュリティやコンプライアンスに問題はないか
- 既存モデルより本当に置き換える価値があるか
このような確認を行うために、承認フローが役立ちます。
特に金融、医療、人事、保険のような領域では、
モデルを本番へ出す前の確認が非常に重要になります。
🔁 SageMaker Pipelines との関係
Model Registry は、SageMaker Pipelines とセットで理解すると分かりやすいです。
前回整理したように、Pipelines では以下の流れを作れます。
Processing Step
↓
Training Step
↓
Evaluation Step
↓
Condition Step
↓
Register Model Step
この最後の Register Model Step で、条件を満たしたモデルを Model Registry に登録します。
たとえば、以下のような流れです。
モデルを学習する
↓
F1 score を計算する
↓
F1 score >= 0.80 か確認する
↓
条件を満たしたら Model Registry に登録する
つまり、Model Registry は、Pipeline の結果として作られたモデルを管理する場所です。
🧪 具体例:解約予測モデルの管理
顧客の解約予測モデルを例に考えます。
初回モデル
Model Package Group: churn-prediction
Model Package: version 1
F1 score: 0.76
Approval Status: Approved
このモデルを本番にデプロイしたとします。
改善モデル
その後、特徴量を追加して再学習したところ、F1 score が改善しました。
Model Package Group: churn-prediction
Model Package: version 2
F1 score: 0.82
Approval Status: Pending Manual Approval
この時点では、まだ本番には出しません。
担当者が評価結果や影響範囲を確認し、問題なければ Approved に変更します。
本番反映
version 2 が Approved になる
↓
デプロイパイプラインが version 2 を本番 Endpoint に反映
このように、Model Registry を使うと、
どのモデルが承認済みで、どのモデルが本番候補なのかを管理しやすくなります。
🔄 ロールバックにも役立つ
Model Registry は、問題が起きたときのロールバックにも役立ちます。
たとえば、新しいモデル version 3 を本番に出したあと、
予測結果に問題があることが分かったとします。
この場合、以前の安定版である version 2 に戻したいことがあります。
Model Registry でバージョン管理していれば、
version 3 で問題発生
↓
version 2 のモデル情報を確認
↓
version 2 を再デプロイ
という対応がしやすくなります。
モデルのバージョンが管理されていないと、
どのファイルに戻せばよいのか分からなくなる可能性があります。
🧭 Model Registry と S3 の違い
ここで混乱しやすいのが、Model Registry と S3 の違いです。
モデル成果物自体は、通常 S3 に保存されます。
一方で、Model Registry は、モデル成果物そのものを単に置く場所というより、
モデルに関する情報を整理して管理する台帳のようなものです。
| 項目 | S3 | Model Registry |
|---|---|---|
| 主な役割 | ファイル保存 | モデル管理 |
| 保存するもの | モデル成果物、データなど | モデルバージョン、承認状態、メタデータ |
| 意味づけ | ファイル単位 | 本番候補モデル単位 |
| 用途 | ストレージ | MLOps 管理 |
覚え方としては、以下です。
S3 = モデルファイルの置き場所
Model Registry = モデルを管理する台帳
☁️ AWS 試験での見られ方
AWS の AI / ML 系試験では、Model Registry は MLOps、モデル管理、本番デプロイ前の管理の文脈で出てきやすいです。
特に、以下のようなキーワードが出たら意識するとよいです。
「モデルのバージョンを管理したい」
この場合は Model Registry が候補になります。
モデルバージョン
モデル履歴
本番候補の管理
「承認されたモデルだけをデプロイしたい」
この場合も Model Registry が重要です。
Approval Status
Approved
Pending Manual Approval
承認済みのモデルだけをデプロイ対象にする運用ができます。
「SageMaker Pipelines の最後でモデルを登録したい」
この場合は Register Model Step と Model Registry を考えます。
Pipeline
↓
評価
↓
条件判定
↓
Model Registry に登録
「過去のモデルに戻したい」
モデルバージョンが管理されていれば、ロールバックしやすくなります。
version 管理
以前の安定版へ戻す
👨💻 実務目線で見ると
実務では、モデル管理は非常に重要です。
なぜなら、本番で使うモデルには説明責任が必要になるからです。
たとえば、以下のような質問に答えられる必要があります。
- 今、本番で使っているモデルはどれか
- そのモデルはいつ学習されたのか
- どのデータで学習されたのか
- 評価指標はどれくらいだったのか
- 前のモデルと比べて何が改善されたのか
- 誰が承認したのか
- 問題が起きたらどのモデルに戻すのか
Model Registry を使うと、これらを整理しやすくなります。
特に、チームでモデルを運用する場合や、複数のモデルを本番で使う場合は、
モデル管理の仕組みがないと運用がかなり難しくなります。
🧠 ここは特に覚えたいポイント
覚え方 1
Model Registry = モデルのバージョン管理台帳
覚え方 2
Model Package Group = モデルシリーズ
Model Package = 1つのモデルバージョン
覚え方 3
Approved = 本番デプロイ候補
Pending Manual Approval = 承認待ち
Rejected = 却下
覚え方 4
S3 = モデルファイルの置き場所
Model Registry = モデル情報と承認状態を管理する場所
覚え方 5
Pipelines の Register Model Step で Model Registry に登録する
✅ まとめ
今回は、SageMaker Model Registry について整理しました。
重要なポイントは以下です。
- Model Registry は、学習済みモデルをバージョン付きで管理する仕組み
- モデル成果物だけでなく、評価指標、メタデータ、承認状態も管理できる
- Model Package は、登録された1つのモデルバージョン
- Model Package Group は、同じ目的のモデルをまとめるグループ
- 承認状態により、本番デプロイ前の確認フローを作れる
- SageMaker Pipelines の Register Model Step とセットで使われる
- モデルのバージョン管理は、ロールバックや説明責任にも役立つ
- S3 はモデルファイルの置き場所、Model Registry はモデル管理の台帳として考えると分かりやすい
機械学習モデルを実務で運用するには、
モデルを作るだけでなく、
どのモデルを、いつ、なぜ本番に出したのかを管理すること が重要です。
Model Registry は、そのための MLOps の中心的な仕組みの1つです。
📌 次回予告
次回は、モデルの公平性や説明可能性に関係する
- SageMaker Clarify
- Bias
- Explainability
- Feature Importance
- Responsible AI
について整理します。
モデルがなぜその予測をしたのか、偏りがないかを確認するための考え方を見ていきます。