第5~8回では、チュートリアルを使って「Amazon SageMaker」の基本的な使い方を紹介しました。今回からは数回に分け、昨年「AWS re:Invent 2019」で発表された新機能「Amazon SageMaker Studio」について解説していきます。

目標は、以下の2点を理解していただくことです。

  • Amazon SageMaker Studioの概要と基本的な利用方法がわかる
  • Amazon SageMaker Autopilotなどの関連機能の概要や基本的な利用機能がわかる

Amazon SageMaker Studioとは何か?

Amazon SageMaker Studioは、Amazon SageMakerの提供する統合開発環境(IDE)です。

Amazon SageMaker StudioのGUI

Amazon SageMaker StudioのGUI

同イベントでは、Amazon SageMaker Studioのほかにもたくさんの追加機能が発表されました。以下に、主な新機能の概要を示します(いくつかの機能は次回以降で解説するので、ここでは概要の提示に留めます)。

  • Amazon SageMaker Notebooks:Amazon SageMaker Studioに統合されたフルマネージドなノートブック
  • Amazon SageMaker Experiments:学習ジョブの実行履歴や設定、結果の一元管理
  • Amazon SageMaker Debugger:学習の監視、記録、分析と異常の検知
  • Amazon SageMaker Autopilot:AutoML機能による機械学習モデルの自動構築
  • Amazon SageMaker Model Monitor:本番環境にデプロイした推論エンドポイントの継続的な監視

Amazon SageMaker Studioは、これらの機能とシームレスに連携して機械学習モデルの開発/学習/推論に加え、維持/運用まで含めて効率的に行うことができます。

AWSのMLスタック

AWSのMLスタック(AWS社主催のセミナー資料などを参考に作成)

Amazon SageMaker Studioが登場した背景

前述の通り、Amazon SageMaker StudioはIDEとしての機能を提供します。前回までにAmazon SageMakerの基本的な使い方を説明しましたが、開発環境に相当するものは「ノートブックインスタンス」でした。すなわち、Amazon SageMakerを利用する場合の開発スタイルは次の2種類があります。

  • ノートブックインスタンスを利用する(従来からの開発スタイル)
  • Amazon SageMaker Studioを利用する(新しい開発スタイル)

ここからはAmazon SageMaker Studioがもたらす変化について詳細を見ていきたいと思います。まずは、従来型のノートブックインスタンスを利用する開発スタイルにまつわる課題(下図にオレンジ色の吹き出しで記載)を見ていきましょう。

Amazon SageMakerを利用する際の課題とその所在

Amazon SageMaker を利用する際の課題とその所在

以下の表に課題の詳細をまとめました。上図の吹き出しの番号と対応付けて確認してください。

項番 主な関連工程 問題点
1 開発維持/運用
  • 利用者がノートブックインスタンスのサイジングを行い、作成する必要がある
  • ノートブックインスタンスのリソースの利用状況のモニタリングを継続的に行い、必要に応じてスケールアップなどの対処を行う必要がある
2 全体
  • 開発は主にノートブックインスタンス上で行うが、過去に実行した学習ジョブの結果や現在デプロイされている推論エンドポイントの情報を確認したい場合は、コマンドを実行するか、AWSマネジメントコンソールでのページ遷移が必要となる
  • 学習を繰り返す度に機械学習モデルが増えるので、ハイパーパラメータや精度などの情報の一元管理をしたくなるが、AWS マネジメントコンソールではそれができない。ExcelやJupyterなど情報を管理する仕組みを用意する必要がある
3 開発維持/運用
  • 開発者の増員とともにIAMユーザーの数が増えるため、作成や管理が必要となる。機械学習を専門とするエンジニアなどAmazon SageMaker以外のサービスの操作が不要な場合でもIAMユーザーの払い出しが必要となる
  • 当然、AWS マネジメントコンソールへのログインとAmazon SageMakerへの画面遷移が必要である

Amazon SageMaker Studioの導入メリット

上述した課題はいずれも価値を生まないだけでなく、開発者にとってはストレスとなるため、可能な限りなくしたい作業です。Amazon SageMaker Studioは、これらの課題に対するソリューションを提供してくれます。

ノートブックインスタンスの作成/管理が不要

Amazon SageMaker Studioでは、「Amazon SageMaker Notebooks」というJupyterLabベースのフルマネージドなノートブックが提供されます。ノートブックインスタンスと同様の特徴、Amazon SageMaker Notebooksに固有の特徴について、それぞれ順に示します。

◆ノートブックインスタンスと同様の特徴

  • JupyterLabベースのノートブック環境が提供されるため、同じ要領で開発をすることができる。既存のノートブックファイルの持ち込みも可能である
  • AWS SDK for Python(Boto 3)やAmazon SageMaker Python SDKなどの開発に必要なSDKやツールがプリインストールされている
  • カーネル(パッケージ管理ツール「Conda」による仮想的な実行環境)が提供される
Amazon SageMaker NotebooksのLauncher画面

Amazon SageMaker NotebooksのLauncher画面

Amazon SageMaker Notebooksで選択可能なカーネル

Amazon SageMaker Notebooksで選択可能なカーネル

◆Amazon SageMaker Notebooksに固有の特徴

  • 利用者が明示的にノートブックインスタンスを作成する必要がない
  • 「高速起動タイプ (Fast Launch)」と呼ばれるインスタンスタイプが用意されており、通常は2分以内に起動するよう設計されている
  • 永続的な記憶領域としてAmazon EFSが利用されており、ノートブックをシャットダウンしてもほかのユーザーやサービスからファイルにアクセス可能である
  • 「ローカルモード」(後述)での実行がサポートされていない
  • ワークロード(対象)に合わせてインスタンスタイプ(汎用/コンピューティング最適化/高速コンピューティング)を選択することができる。変更も数クリックで可能である
Amazon SageMaker Notebooksのインスタンスタイプの選択

Amazon SageMaker Notebooksのインスタンスタイプの選択

開発/学習/推論の大部分の作業がAmazon SageMaker Studioで完結

Amazon SageMaker Studioでは、機械学習ワークフローの大部分のタスクをカバーしており、利用者はAmazon SageMaker Studioだけで作業を完結することができます。

機械学習ワークフローにおけるAmazon SageMaker Studioのカバー範囲

機械学習ワークフローにおけるAmazon SageMaker Studioのカバー範囲

従来型の開発スタイルで機械学習モデルの開発を進める場合は、以下のいずれかの方法で対応します。

  • ノートブックからPythonのコードかAWS CLIで操作する(前回紹介した方法)
  • AWSマネジメントコンソール(Amazon SageMakerのコンソール)で画面操作をする

機械学習モデルは一度学習して終わることはなく、精度の改善のために試行錯誤を何度も繰り返します。その結果、下図のように学習ジョブ(トレーニングジョブ)を多数作成することになります。

Amazon SageMakerのコンソール画面(トレーニングジョブ)

Amazon SageMakerのコンソール画面(トレーニングジョブ)

このようにジョブが増えてくると、ハイパーパラメータなどの条件やその条件で実行した際の精度を把握しきれなくなるため、情報を整理して一覧化したくなります。しかし、Amazon SageMakerでは検索機能は提供されているものの、情報を一元管理する機能は提供されていませんでした。情報の参照にはそれぞれのページへの遷移が必要であり、ExcelやJupyterで管理する仕組みを実装する必要がありました。

Amazon SageMakerの検索機能

Amazon SageMakerの検索機能

下図に示すように、Amazon SageMaker Studioでは情報を一元管理する機能が提供され、画面遷移することなく情報を参照できるようになりました。情報は自動で追加/更新されて一覧化されるため、利用者はそれを参照するだけです。ドリルダウンして詳細な情報を参照したり、グラフを作成したりすることもできます。

Amazon SageMaker Studioの学習ジョブの一覧

Amazon SageMaker Studioの学習ジョブの一覧

Amazon SageMaker Studioの学習ジョブの詳細(AWS Settings)

Amazon SageMaker Studioの学習ジョブの詳細(AWS Settings)

IAMユーザーを持たない利用者でも利用が可能

Amazon SageMaker Studioでは、AWS Single Sign-On(SSO)をサポートしており、外部のIDプロバイダと連携してユーザーの認証を行うことができます。もちろん通常のAWSサービスと同様にIAMユーザーでの利用も可能です。

Amazon SageMaker Studioのセットアップ画面

Amazon SageMaker Studioのセットアップ画面

AWS SSOは SAML 2.0をサポートしており、Active Directoryなどの既存のディレクトリサービスのほか、GitHubやSlackなどのアプリケーションと連携することも可能です。また、Amazon SageMaker Studioに直接アクセスするためのURLが払い出されます。

例えば、機械学習は専門的な知識が必要であるため、外部からエンジニアを一時的に雇用する場合があるかと思います。AWS SSOを利用すると、下記のようなメリットがあります。

  • 管理者目線:IAMユーザーを作成する必要がないため、管理する対象を増やさずに済む
  • 開発者目線:AWSマネジメントコンソールへのログインとAmazon SageMaker Studioへの画面遷移という一手間を省くことができる
    • なお、AWS SSOは2020年9月に東京リージョンに対応したので、Amazon SageMaker Studioが東京リージョンに対応した後にはこの方法も選択肢に含めることができます

      ※ 参考:Amazon Web Servicesブログ「AWS Single Sign-Onが東京リージョンで利用できるようになりました」。

      ノートブックインスタンスとAmazon SageMaker Studioの使い分け

      ここまでAmazon SageMaker StudioやAmazon SageMaker Notebooksの導入メリットについて見てきました。機械学習モデルの開発を強力にサポートしてくれるので、これから開発しようという方や、Amazon SageMaker Studioのメリットに魅力を感じたという方は、一度利用してみると良いでしょう(本稿執筆時点では東京リージョンに対応していませんが、東京リージョンで対応されることが前提です)。

      ただし、細かな違いや制約があるため、それらを踏まえてもビジネス要件が満たせ、メリットを享受できることを確認した上で利用してください。

      例えば、料金です。Amazon SageMaker Studioも背後でインスタンスが稼働しており、そのインスタンスに対する課金は発生します。インスタンスに対する費用は同一水準で提供されていますが、ストレージに違いがあります。

      ノートブックインスタンスはMLストレージ(EBSボリュームに相当)、Amazon SageMaker StudioはAmazon EFSを利用します。Amazon EFSのほうが割高であるため、同一構成とした場合はAmazon SageMaker Studioを利用したほうがコスト高です。割高である分、ここまでに紹介したメリットを享受できるため、差額はそれに対する費用だと考えると良いと思います。

      参考までに、バージニア北部リージョンでの価格をまとめておきます。ただし、料金は見直されることがあるため、最新情報は公式サイトの「Amazon SageMakerの料金」で確認してください。

      ◆インスタンスの料金の例(バージニア北部リージョン)

      インスタンスタイプ 料金
      ml.t3.medium [USD/時間] 0.0582
      ml.g4dn.xlarge [USD/時間] 0.7364
      ml.m5.large [USD/時間] 0.1344
      ml.c5.large [USD/時間] 0.119

      ◆MLストレージの料金 (ノートブックインスタンスで利用)

      MLストレージ 料金
      汎用 (SSD) ストレージ [USD/GB・月] 0.14

      ◆Amazon EFSの料金(Amazon SageMaker Studioで利用)

      Amazon EFSのストレージクラス 料金
      標準ストレージ [USD/GB・月] 0.30
      低頻度アクセスストレージ [USD/GB・月] 0.025
      低頻度アクセスリクエスト [転送 GB あたり] 0.01
      プロビジョニングスループット [MB/秒・月] 6.00

      また、先に触れたように、Amazon SageMaker Studioはローカルモードをサポートしていません。ローカルモードとは、学習や推論をノートブックインスタンス上でテストする機能です。

      Amazon SageMakerでの学習や推論は、それぞれ専用のインスタンスを作成して、そのインスタンス上で処理を行います。そのため、ノートブックインスタンスの費用とは別に学習と推論の費用もかかります。開発したコードの妥当性が確認できていない状況で大規模にテストをすると、費用がかさんでしまう可能性があることは否めません。

      今後のアップデートでローカルモードが追加される可能性はありますが、少なくとも現在はサポートしていない点に注意が必要です。

      * * *

      今回はAmazon SageMaker StudioやAmazon SageMaker Notebooksの概要を中心に解説しました。次回からは実際にAmazon SageMaker Studioを使っていきたいと思います。

      著者紹介


      菊地 貴彰 (KIKUCHI Takaaki) - 株式会社NTTデータ
      システム技術本部 デジタル技術部
      Agile プロフェッショナル担当

      大学・大学院では、機械学習を専攻。ベイズ的枠組みを用いて、複数の遺伝子のデータから遺伝子どうしの相互作用ネットワークの推定に関する研究を行った。

      株式会社NTTデータに入社後は、法人や金融のシステム開発のシステム基盤担当としてキャリアを積み、現在はデジタル技術やAgile開発を専門に扱う組織でシステム開発全般を担当する。
      2019, 2020 APN AWS Top Engineers, Japan APN Ambassador 2020に選出に選出。

      本連載の内容に対するご意見・ご質問はtwitter: @kikuchitk7まで。