Amazon SageMaker
機械学習モデルの構築、学習、デプロイを一貫して行えるフルマネージドプラットフォーム
何ができるか
Amazon SageMaker は、機械学習 (ML) モデルの開発ライフサイクル全体をカバーするフルマネージドプラットフォームです。データの準備、モデルの構築、学習 (トレーニング)、チューニング、デプロイ、監視までの一連の作業を 1 つのサービス内で完結できます。Jupyter ノートブックによる対話的な開発環境、組み込みアルゴリズム、自動モデルチューニング、ワンクリックデプロイなどの機能を提供しています。
どのような場面で使うか
商品レコメンデーションエンジンの構築、画像認識・分類モデルの開発、自然言語処理 (チャットボット、感情分析)、需要予測、不正検知、異常検知、時系列データの予測分析など、機械学習を活用するあらゆるプロジェクトで利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
料理教室の完全装備キッチンに例えるとわかりやすいでしょう。食材の下ごしらえ (データ準備) から、レシピの開発 (モデル構築)、試作 (学習)、味の調整 (チューニング)、お客さんへの提供 (デプロイ) まで、すべての工程に必要な道具と設備が揃ったキッチン (SageMaker) です。プロの料理人でなくても、ガイドに従えば料理を完成させられます。
SageMaker とは
Amazon SageMaker は、機械学習の専門家から初心者まで、あらゆるレベルの開発者が ML モデルを構築・デプロイできるプラットフォームです。従来、機械学習プロジェクトではデータの前処理、学習環境の構築、モデルのデプロイなど、多くの手作業が必要でした。SageMaker はこれらの作業を自動化・簡素化し、開発者がモデルの品質向上に集中できる環境を提供します。
主な機能
SageMaker Studio は、Web ブラウザから利用できる統合開発環境 (IDE) で、ノートブック、実験管理、モデルレジストリなどの機能を 1 つの画面で操作できます。SageMaker Autopilot は、データを渡すだけで自動的に最適なモデルを構築する AutoML 機能です。SageMaker JumpStart は、事前学習済みモデルやソリューションテンプレートを提供し、ゼロからモデルを構築する手間を省きます。
学習とデプロイ
SageMaker の学習ジョブは、指定したインスタンスタイプ (GPU インスタンスなど) で自動的に学習環境を構築し、学習が完了したら環境を自動的に削除します。学習中だけ課金されるため、GPU インスタンスを常時稼働させる必要がありません。学習済みモデルは、リアルタイム推論エンドポイント、バッチ変換、サーバーレス推論など、用途に応じたデプロイ方式を選択できます。
はじめかた
SageMaker を使い始めるには、SageMaker コンソールで SageMaker Studio を起動します。JumpStart から事前学習済みモデルを選択すれば、数クリックでモデルをデプロイできます。独自のモデルを構築する場合は、ノートブックインスタンスを起動し、Jupyter ノートブック上で Python コードを記述します。SageMaker SDK を使えば、数行のコードで学習ジョブの実行やモデルのデプロイが可能です。
Azure・オンプレミスとの比較
AWS の優位点
- SageMaker Autopilot によるデータを渡すだけの AutoML 機能と、JumpStart の 300 以上の事前学習済みモデルにより、ML の専門知識がなくてもモデル構築からデプロイまで完結できる
- 学習ジョブ完了後に GPU インスタンスを自動削除する仕組みにより、自前構築で発生する GPU サーバーの常時稼働コストを排除し、学習時間分だけの課金で済む
- SageMaker Studio の統合開発環境でデータ準備、実験管理、モデルレジストリ、デプロイまでを一画面で操作でき、Jupyter Notebook 単体では実現できない ML ライフサイクル全体の管理を提供する
注意点
- GPU インスタンスは高額なため、学習ジョブの完了後にインスタンスが停止されていることを確認すること
- リアルタイム推論エンドポイントは常時稼働で課金されるため、トラフィックが少ない場合はサーバーレス推論を検討すること
- 機械学習の基礎知識がなくても Autopilot や JumpStart で始められるが、モデルの品質向上には ML の基本的な理解が必要
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。