Amazon SageMakerにおけるAmazon S3の利用場面について

はじめに

Amazon SageMakerを利用する際は、Amazon S3を頻繁に利用します。そこで、本記事では、Amazon S3を利用する主な場面について紹介します。ですが、まずAmazon SageMakerの概要や特長についてまとめておきます。

Amazon SageMakerとは

Amazon SageMakerは、機械学習モデルを迅速な構築とトレーニング、デプロイができるようにするフルマネージド型サービスです。Amazon SageMakerを利用すると、1つのツールセットで機械学習用に使用できる全コンポーネントが提供され、モデルを本番環境へ送り出すまでの時間や手間、費用を削減できます。

Amazon SageMakerのプロセスごとの主な特長を以下に示します。

1. モデルの作成

  • Amazon SageMaker Studio - Amazon SageMaker Studioでは、すべての機械学習のワークフローをビジュアルインターフェースで実行できます。モデルの構築やトレーニング、デプロイに必要な各ステップに対して完全なアクセス、管理、可視性が提供されます。また、データのアップロードや新規ノートブックの作成、モデルのトレーニングと調整、ステップ間での移動などを素早く実行し、結果の比較や本番環境へのデプロイなどを一箇所から実行できます。
  • Amazon SageMaker Studio Notebooks - 簡単かつ素早くスピンアップができる Juputer Notebook です。コンピューティングリソースはフレキシブルで、使用可能なリソース量を簡単に増減させることができます。これにより、作業を中断することなく、バックグラウンドで自動的に変更が反映されます。また、他の人とのNotebookの共有が容易です。
  • Amazon SageMaker Autopilot - Amazon SageMaker Autopilotでは、機械学習モデルを自動的に構築できます。数クリックで、「自動的に未加工データを検証し、機能プロセッサーを適用し、最適なアルゴリズムセットを選出、その後、複数のモデルをトレーニングおよび調整し、パフォーマンスの追跡とパフォーマンスに基づくモデルのランク付けを行う」という処理が実行できます。
  • Amazon SageMaker Ground Truth - フルマネージド型のデータのラベリングサービスです。カスタムされたもの、もしくは組み込み済みのデータラベリング ワークフローを使用すると、Amazon SageMaker Ground Truthコンソールから数分でラベリングが開始できます。3D点群や動画、画像、テキストをはじめとする、様々なユースケースをサポートしています。

2. モデルのトレーニング

  • Amazon SageMaker Experiments - 機械学習モデルへの繰り返し処理を追跡および調整するのに役立ちます。入力パラメータや構成、結果等を自動的に補足し、これらを「実験結果(experiments)」として保存することで、繰り返し作業を管理しやすくなります。
  • Amazon SageMaker Debugger - モデル精度の改善のために、トレーニングや評価、混同行列、学習勾配などのリアルタイムメトリクスをトレーニング中に自動取得し、トレーニング処理を明確化します。取得したメトリクスは、Amazon SageMaker Studioで確認できます。

3. モデルのデプロイ

  • ワンクリックデプロイ - Amazon SageMakerを本番稼働用環境へ簡単にデプロイして、リアルタイムデータやバッチデータに対する予測の生成を開始できます。Amazon MLインスタンスは複数のアベイラビリティゾーン間で自動スケーリングされ、ユーザーは、ワンクリックで冗長性に優れたインスタンスにモデルをデプロイできます。インスタンスタイプとインスタンスの最大数と最小数を指定すると、残りの作業は Amazon SageMakerによって自動的に実行されます。また、HTTPSエンドポイントのセットアップも自動的に行われます。
  • Amazon SageMaker Model Monitor - 機械学習モデルの品質についてリアルタイムの継続的な監視を行います。 エンドポイントから予測リクエストと応答を簡単に収集し、本番稼働用環境で収集されたデータを分析し、トレーニングもしくは検証データと比較して偏差を検出できます。これにより、コンセプトドリフトによる機械学習モデルのパフォーマンスの低下に対応できます。
  • Amazon Augmented AI (Amazon A2I) - 人による機械学習予測のレビューに必要なワークフローを簡単に構築できます。Amazon SageMakerで構築した機械学習モデル用に独自のワークフローを作成することができ、モデルが信頼性の高い予測を作成できない場合に、人を介したレビューを行うことができます。

Amazon SageMakerとAmazon S3について

以下では、Amazon SageMakerにおいてAmazon S3を利用する場面を紹介します。

Amazon SageMaker Studio Notebooks

Amazon SageMaker Studio Notebooks から、Amazon S3 や Amazon Glue をはじめとする、他のAWSサービスにアクセスすることができます。例えば、抽出・変換・ロードを行うフルマネージド型サービスのAWS Glueを利用すると、Amazon RDSやAmazon DynamoDB、Amazon RedShiftからデータを簡単にAmazon S3に移動して解析することができます。

データ形式の変換後のアップロード先

データセットをモデルのトレーニングに使用する前に、データセットを確認して事前処理を行う作業があります。例えば、勾配ブーストツリーアルゴリズムの XGBoostアルゴリズムでは、トレーニング入力にLIBSVM形式かCSV形式を使用します。そのため、トレーニングデータセットの形式が numpy.array の場合、データセットを numpy.array形式から CSV形式に変換を行います。この変換したデータセットはAmazon S3バケットへアップロードされます。

モデルのトレーニング

モデルのトレーニングでは、Amazon S3バケットに保存されるデータを使用します。そのため、トレーニングを開始するためにAmazon S3バケットに保存されているデータ場所を指定します。

モデルのトレーニングが終了すると、以下に示す2つが生成され、Amazon S3バケットに保存されます。

  • モデルトレーニングデータ
  • モデルトレーニング時にAmazon SageMakerが生成するモデルアーティファクト

バッチ変換

バッチ変換は、例えば、「データセット全体の推論を取得し、推論のインデックス作成行い、リアルタイムで推論を提供する」といった場合に使用します。

バッチ変換におけるAmazon S3は、次のような役割があります。

  • 変換するデータの取得先
  • トレーニング済みモデルとデータセットを使用して作成したバッチ変換ジョブの保存先
  • バッチ変換によって取得した推論の保存先

そのため、バッチ変換ジョブの作成時には、これらに関するパス指定が求められます。

モニタリング

Amazon SageMakerに関するモニタリングには、前述のAmazon SageMaker Model Monitorを使用したものを含め、いくつか手段があります。その1つとして、Amazon CloudWatch LogsとAWS CloudTrailを統合したものがあります。AWS CloudTrailが指定したAmazon S3バケットへログファイルを保存する一方で、Amazon CloudWatch Logsは、モデルのステータスを監視するログファイルを収集し、モデルの品質が事前に設定したしきい値に達すると通知をしてくれます。

機械学習ストレージボリュームの暗号化

暗号化されたAmazon S3バケットをモデルアーティファクトやデータに使用し、AWS KMSのキーをAmazon SageMaker Studio Notebooks や、トレーニングジョブ、エンドポイントに渡すことで、接続されている機械学習ストレージボリュームを暗号化できます。

まとめ

本記事では、まずAmazon SageMakerの概要や特長をまとめた後に、Amazon SageMakerにおけるAmazon S3の利用場面に関して紹介しました。もちろん、Amazon SageMakerでは、Amazon S3以外にも、多数のサービスと連携しているため、様々なユースケースに対応することができます。機械学習モデルの構築等を考えている方は、利用してみてはいかがでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です