Marketplaceに公開されているモデルをコンソール上から利用してみる:Amazon SageMaker Advent Calendar 2018

「Tensorflow hub」,「Marketplace」、「ビルトインアルゴリズム」と、「既存のアルゴリズムを素早く利用できるようにする仕組み」がSageMakerには色々用意されているなぁ、と感じました。
2018.12.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

概要

こんにちは、データインテグレーション部のyoshimです。
この記事は「クラスメソッド Amazon SageMaker Advent Calendar」の7日目の記事となります。

先日のre:inventで発表されたAWS Marketplace for Machine Learningについて、「料金体系」、「どのように使うか」について調べてみました。

Amazon SageMaker Resources in AWS Marketplace

目次

1.やること

「AWS Marketplace for Machine Learning」について把握したいというモチベーションから下記の2点を試してみました。

a.Marketplaceに公開されているモデルパッケージを使う際の料金体系について調べてみる

Marketplaceに公開されているモデルアルゴリズムは、「利用料金を支払うことで、既存のアルゴリズムを利用できるようになる」、というものであり、「モデルパッケージ」は「学習済みの結果を推論エンドポイントとして利用できる」ものですが、その際にどうしても「料金体系」が気になってしまいます。
どんな機械学習アルゴリズムが利用できるのか、よりも先にまずはこちらを確認する必要があると思ったので、少し調べてみました。
(2018年12月7日14:30に修正しました。)

b.Marketplaceに公開されているモデルパッケージを使ってみる。

実際に触ってみないとわからないだろう、と思いsklearnの決定木分析アルゴリズムを実際に使ってみました。
「なぜsklearnなのか」というと「利用料金が無料だったから」です。
自前のデータで学習を行い、推論用エンドポイントをデプロイするところまでをとりあえず試してみました。
また、今回は全ての作業を「コンソール画面上」からやってみました。
(いずれ、SageMakerSDKから操作する方法についてもご紹介しようと思います)
(2018年12月7日14:30に修正しました。)

・今回利用したパッケージ

2.「AWS Marketplace for Machine Learning」について

出来上がった「アルゴリズム・モデルパッケージ」が公開されており、それらを利用することで「機械学習を利用したプロダクトを迅速にリリース」することができるというものです。
(執筆時点で、200以上のアルゴリズムが公開されています) (執筆時点で、アルゴリズムとモデルパッケージを合わせて合計200個以上公開されています)

「アルゴリズム」はその名の通りモデルのアルゴリズムであり「自分のデータ等で学習させた後に」、学習結果をデプロイすることとなります。
一方、「モデルパッケージ」は既に学習ずみの結果を推論エンドポイントとしてデプロイする形になります。
参考:Amazon SageMaker Resources in AWS Marketplace (2018年12月7日14:30に追記しました。)

これらのアルゴリズム・モデルパッケージは「コンソール画面/jupyter notebook/SageMakerSDK/AWS CLI」等から利用可能です。

以上のようにとても便利なのですが、ノートブックインスタンスの稼働料金とは別に「利用料金(サブスクリプション費用)」を支払う必要がある点にはご注意ください。
(無料トライアル期間、を上手く使ってビジネス課題に適応しているか、を検証することをお勧めします)

お客様はアルゴリズムやモデルパッケージの利用に対しサブスクリプション費用と AWS のリソース使用料をお支払いいただきます。AWS マーケットプレイスは全ての購入したサブスクリプションに対して月々の一括請求明細を発行します。

引用:新発表 – AWS マーケットプレイスで機械学習アルゴリズムとモデルのパッケージを提供開始

また、使い方によってサブスクリプション料金が異なる場合もあります。この辺りは「アルゴリズム/モデル」「アルゴリズム/モデルパッケージ」によって異なるのでご注意ください。

詳細についてはAmazon SageMaker Resources in AWS Marketplaceをご参照ください。

3.Marketplaceに公開されているアルゴリズムを使ってみる

Marketplaceに公開されているモデルアルゴリズムの利用方法については、下記のようなフローになります。

引用:Using Algorithm and Model Package Resources

Marketplaceでアルゴリズムを購入した後、「トレーニングJOBを実行」、「モデルパッケージを作成」、「モデルを作成」、「デプロイ」といった流れになります。

ちなみに、今回利用する「sklearn」の「決定木分析」は「Software」の利用料金は不要で、単純にSageMakerの稼働に対しての課金になります。

3-1.MarketPlaceから目的のアルゴリズムをsubscriptionする

まずは、Marketplaceで目的のパッケージアルゴリズムを探します。
(2018年12月7日14:30に修正しました。)

続いて、「Continue to Subscribe」をクリック。

続いて利用料金を確認するページに移ります。
このページで利用料金を確認し、問題ないようであれば「Accept Offer」をクリックします。

少し待つと...

subscriptionが完了しました。

3-2.学習

subscriptionが完了すると、このようにアルゴリズムの欄に対象のモデルアルゴリズムが表示されています。

利用したいモデルアルゴリズムを指定して、「アクション」、「トレーニングジョブの作成」とクリックして、トレーニングジョブを作成していきます。

「トレーニングジョブの作成」のページになるので、こちらで必要な情報を指定します。
まずは、「ジョブ名」、「IAMロール」、「アルゴリズムのソース」、「アルゴリズムサブスクリプション」を指定します。

続いて、リソース設定です。
利用するアルゴリズムによっては「GPUインスタンス」を指定する必要がありますが、今回は「ml.m4.xlarge」を指定します。

続いて、「停止条件」には「JOB実行時間がどれくらいになったら停止するか」、「ネットワーク」、「ハイパーパラメータ」を指定します。
今回はデフォルトのまま進めます。

続いて、「入力データ」を指定します。学習に利用するデータが格納されているS3パスを指定しました。

最後に、「学習結果」を出力するs3パスを指定して、「トレーニングジョブの作成」をクリックします。

これで,学習が始まります。

学習が完了したら、評価指標も確認できます。
今回は明示的に「validation」データを指定した訳ではないのですが、デフォルトでvalidationデータを分割して評価してくれているようです。

3-3.推論エンドポイントのデプロイ

続いて、今学習した結果を用いて推論用エンドポイントをデプロイします。
まずはモデルパッケージを作成します。

続いて、「モデルパッケージ名」、「アルゴリズムのARN」等の推論の仕様を指定して「次へ」をクリックします。

続いて、「検証の仕様」を指定します。
今回はデフォルトのままモデルパッケージを作成します。
このページで何をやっているのか、ということはAmazon SageMaker Scans AWS Marketplace Training and Inference Containers for Security Vulnerabilitiesに記述がありました。
どうやら、「セキュリティチェック」をするための指定ができる項目のようです。今回は一旦、特にチェックをしないで先に進めます。

「モデルパッケージ」ができたら、エンドポイントを作成します。

モデル名、IAMロール等を指定して、

「次へ」をクリック

新しくエンドポイント設定を作成し、エンドポイント名を指定、

エンドポイント設定を作成した後、送信をクリック。

無事、エンドポイントが作成できました。

4.まとめ

今回は、とりあえずMarketplaceを試してみたい、と思ったのでお金もかからないsklearnを利用しましたが、もう少しどんなアルゴリズムがあるのかを調べてみたいですね。
また、コンソール画面上からでなく、ノートブックインスタンス上で実行する手順についても調べてご紹介していこうと思います。

本エントリーでご紹介する内容については以上になります。
最後までご覧いただきありがとうございました。