去年のre:inventでも機能の追加が多く発表されたAmazon SageMaker。なんだかんだあってAmazon SageMakerの調査・技術検証を進められていませんでしたが、久しぶりにさわってみるとかなり便利になっていました。Amazon SageMakerは、正直言うとデータサイエンティスト・機械学習エンジニアのための開発環境という性格が強いように感じています。しかし、SageMaker自身が強化され機械学習初学者でも意外に使いこなせちゃう??かもしれません。今回紹介するAmazon SageMaker JumpStartもそんな機能の1つです。
1. Amazon SageMaker JumpStartとは???
Amazon SageMaker JumpStartとはAmazon SagemMaker Studioの機能の1つで、サンプルノートブックやトレーニング済みのモデルを検索しワンクリックで立ち上げることができます。それだけでなく Solution
というのも用意されており、これはユースケースに合わせてAmazon SageMakerを含めたアーキテクチャをワンクリックでデプロイすることができます。
機械学習の知識がなくとも用途によって検索、そしてワンクリックで開始、モデルの評価でがきるのはとても便利です。また Solution
によってアーキテクチャの検討の負荷が下がるのはもちろん、その構成を参考に独自のアーキテクチャを構築するのもありかもしれません(利用料については注意ですね)。
1.1 Amazon SageMaker JumpStartでできること
前述した通り、ワンクリックでモデルや Solution
のデプロイができます。 Solution
はいくつか種類があり用途によって選択します。サンプルデータを使用してモデルをトレーニングするものもありますが、自前のデータを前処理する必要があるもの・そのアーキテクチャもデプロイされるものもあるようです。データはあるがどう初めていいかわからない、とりあえずSegaMakerを評価したい、PoCしたいという場合に有効そうです。 Solution
については次の 2. 実際に使ってみた
で実際にデプロイして利用してみます。JumpStartで提供されているモデルは見たところ、大きく分けてTextのモデルと画像のモデルがあるようです。そしてこの画像の方は196個も用意されています!
トップ画面ではモデルについては以下の項目が確認できます。自身が持つデータセットでモデルを調整したいなら、ファインチューニングが可能なものを選択すべきですね。クリックすると詳細の確認、デプロイやファインチューニングの実行ができます。
項目 | 説明 |
---|---|
Task | モデルで何ができるか |
Dataset(Pre-taraining Dataset) | 学習に利用したデータセット |
Fine-tunable | ファインチューニング可能か |
Source | どこにソースがあるか |
1.2 サンプルのNotebookもある
地味にありがたいのはサンプルのnotebookもあるといことです。Amazon SageMakerのサンプルはGitHubで公開されていますが、ノートブックインスタンスではJupyter NotebookもしくはJupyterLab上から即座にクローンできる機能がありました。しかし、かつてのAmazon SageMaker Studioにはその機能がありませんでした。ノートブックインスタンスほどサンプルの量はありませんが、組み込みアルゴリズムを試す分には十分ですね。これから増えたりするのかな??
2. 実際に使ってみた
今回は実際に Solution
を立ち上げてJumpStartの使いがってを検証したいと思います。
2.1 Solutionの選択・デプロイ
まずは Solution
を選択します。このブログ執筆時点(2021/06)で16の Solution
が利用できます。手書き文字認識や時系列予測、金融取引の不正検知などさまざまなジャンルの Solution
が用意されています。
Solution
をクリックするとその詳細が確認できます。 Solution
の概要やデプロイされるアーキテクチャ、ライセンスなどが確認できます。目的に合った Solution
があれば利用しましょう。今回は Demand Forecasting
を利用します。 Solution
の詳細画面でLaunchします。
!
デプロイの進捗が確認できる画面が開きます。JumpStartでがリソースのデプロイにCloudFormationが利用されており、CloudFormationスタック一覧ではそれっぽいスタックが確認できます。たまにLaunchがエラーとなることがありますが、JumpStart側ではエラー内容が確認できないようであるため、CloudFormationスタック側でエラー内容を確認する必要があります。
デプロイが完了すると以下のような表示になり、「Open Notebook」をクリックで Solution
を利用するためのNotebookを開くことができます。また、大変親切なことに「Delte all resources」で `Solution
のデプロイで作成されたリソースの削除が可能です。
2.2 notebookで作業
立ち上げたnotebookのコードを順に実行しトレーニング・モデルの評価を実施します。すべての Solution
でnotebookも提供されるかどうかは未確認ですが、あらかじめコードや説明、ワークフローが記載されたnotebookが提供されているのは大変ありがたいです。
詳しい作業内容はnotebookのままなので記載しませんが、今回の Solution
は以下の流れでした。この作業内容は Solution
によってことなります。
順番 | 作業 |
---|---|
1 | データをS3へ配置 |
2 | 前処理・特徴量エンジニアリングのコンテナを準備 |
3 | 2のコンテナをAmazon SageMaker Processingで実行し、前処理・特徴量エンジニアリング |
4 | モデルのトレーニングと評価 |
5 | モデルをエンドポイントへデプロイ、エンドポイントのテスト |
6 | 予測と可視化 |
3. 使ってみた感想
Solution
という名前ですが何かを解決するものというより、ユースケースに合わせたnotebookとアーキテクチャのサンプルのように感じました。ユースケースに合う Solution
があるのであれば、1からアーキテクチャを検討する手間は省けるかもしれません。場合によってはデータだけ置き換えるだけで機械学習プロジェクトが開始できるかも。。。?
今回は Solution
を試しに利用しましたが、次回はJumpStartで提供されているモデルを利用してみたいと思います。ある程度SageMakerの各コンポーネントを理解しているのであればモデルの利用は大変便利かもしれません。
Yusuke Mine(書いた記事を見る)
I get drunk but it's not enough 'Cause the morning comes and you're not my baby.