Amazon SageMaker について
はじめに
昨今では技術者だけではなく、ビジネスにおいても至る所で目にする機会の多い「AI(人工知能)」を実現するための技術として、機械学習というものがあります。機械学習とは、ある特定の分野に対して判断や予測を行うためのアルゴリズムを使用してデータの解析を行い、データの規則性や関係性を見つけ出す手法のことを指します。従来のシステムでこの機械学習を一から行うには、その複雑さやコスト面で大きな壁がありました。今回は機械学習に必要なプロセスを AWS 上で簡単かつ最小限のコストで行うことができるよう提供されているサービス、Amazon SageMaker についてまとめていきます。
Amazon SageMaker とは
Amazon SageMaker は機械学習モデルの構築からトレーニングや調整、そしてデプロイに至るまでの各プロセスを簡単に行うことができる完全マネージド型のサービスです。秒単位の使用料に応じた課金となるため、前払いや最低料金といったものはありません。以下の内容は、Amazon SageMaker の機能の一部となります。
- Amazon SageMaker Studio
Amazon SageMaker Studio は機械学習用に提供されているウェブベースの統合開発環境(IDE)です。この環境を使用することで、機械学習モデルの構築、トレーニング、デバッグ、デプロイ、モニタリングをすべて一か所で行うことができ、実験から本稼働に至るまでに必要なすべてのツールが用意されてます。 - Amazon SageMaker Ground Truth
機械学習モデル用に高品質なラベル付きトレーニングデータセットの構築を支援する機能です。 - Amazon SageMaker Experiments
機械学習における反復プロセスの整理、追跡、比較、評価を行う機能です。 - Amazon SageMaker Debugger
モデルのトレーニングを監視、記録、分析し、可視化を行う機能です。 - Amazon SageMaker Autopilot
Amazon SageMaker Autopilot は自動的に機械学習モデルのトレーニングおよび調整を行いモデルを構築する機能です。この機能を使用することで、機械学習の知識を持たないユーザーでも分類モデルと回帰モデルをすばやく構築できます。
Amazon SageMaker の開始方法
Amazon SageMaker を開始する際の作業の流れは以下の通りとなります。なお今回記載する方法はAWS のコンソール画面から操作を行います。
- Amazon S3 バケットの作成
モデルをトレーニングした際に生成されるモデルトレーニングデータやトレーニングジョブの出力であるモデルアーティファクトを格納するために、Amazon Simple Storage Service (Amazon S3) バケットを作成します。バケットを作成する際にバケット名に「sagemaker」を含めることで、ノートブックインスタンス作成時に自動的にアクセス許可を取得することができます。 - Amazon SageMaker ノートブックインスタンスの作成
ここではインスタンス名やインスタンスのタイプ、IAM ロールなどを設定します。
Amazon SageMaker ノートブックインスタンスとは、Jupyter ノートブックアプリを実行しているEC2インスタンスを指します。ノートブックインスタンスを使用することで、データの準備および処理や機械学習モデルのトレーニングとデプロイに使用できる Jupyter ノートブックの作成および管理を行うことができます。 - Jupyter ノートブックの作成
作成したノートブックインスタンスに Jupyter ノートブックを作成することで、必要な IAM ロールを取得するセルの作成や Amazon S3 バケットの名前を指定するセルを作成することができます。 - トレーニングデータのダウンロード、調査、および変換
データセットをノートブックインスタンスにダウンロードし、データを確認および変換してからS3バケットにアップロードします。 - モデルのトレーニング
モデルに適したアルゴリズムを選択し、トレーニングジョブを作成して実行します。 - モデルを Amazon SageMaker にデプロイ
トレーニングしたモデルをデプロイします。 - モデルの検証
新しいデータに対して正確な予測が生成されるようにモデルを検証します。 - Amazon SageMaker エンドポイントをインターネット向けアプリケーションに統合
エンドポイントにリクエストを送信するインターネット接続アプリケーションがある場合、モデルのエンドポイントをアプリケーションに統合します。
▼作成したリソースを削除する方法についても記載します。
- Amazon SageMaker コンソールから、エンドポイントの削除
作成したエンドポイントを選択し、「アクション」→「削除」で削除します。 - Amazon SageMaker コンソールから、エンドポイント設定の削除
作成したエンドポイント設定を選択し、「アクション」→「削除」で削除します。 - Amazon SageMaker コンソールから、モデルの削除
作成したモデルを選択し、「アクション」→「削除」で削除します。 - Amazon SageMaker コンソールから、ノートブックインスタンスの削除
作成したノートブックインスタンスを停止してから、「アクション」→「削除」で削除します。 - Amazon S3 コンソールから、S3バケットの削除
バケットの中身を削除してS3バケット自体を削除します。 - IAM コンソールから、IAM ロールの削除
ロール名が「AmazonSageMaker~」で始まるロールを削除します。 - Amazon CloudWatch コンソールから、Cloudwatch logs の削除
名前が /aws/sagemaker/ で始まるロググループをすべて削除します。
まとめ
Amazon SageMaker についてまとめました。AI技術は現在においても例えばショッピングサイトや動画サイトのおすすめの提供や自動車の自動運転などで使用されつつあり、今後はより多くの分野で活躍していくことが予想される技術です。このAI技術の一つの要素となる機械学習を習得するためには、前提としてプログラミング言語や数学、統計などの基本的な知識が必要と言われており、一から始めるに敷居の高い分野と言えます。しかし、Amazon SageMaker を利用することで機械学習に関する手間のかかる作業が不要となり、簡単に機械学習を始めることができるため非常に有用なサービスと言えるでしょう。