Amazon SageMaker JumpStartを使って機械学習プロジェクトを始める: Solution編 - サーバーワークスエンジニアブログ

Amazon SageMaker JumpStartを使って機械学習プロジェクトを始める: Solution編

記事タイトルとURLをコピーする

去年のre:inventでも機能の追加が多く発表されたAmazon SageMaker。なんだかんだあってAmazon SageMakerの調査・技術検証を進められていませんでしたが、久しぶりにさわってみるとかなり便利になっていました。Amazon SageMakerは、正直言うとデータサイエンティスト・機械学習エンジニアのための開発環境という性格が強いように感じています。しかし、SageMaker自身が強化され機械学習初学者でも意外に使いこなせちゃう??かもしれません。今回紹介するAmazon SageMaker JumpStartもそんな機能の1つです。

aws.amazon.com

f:id:swx-mine:20210624121933p:plain

1. Amazon SageMaker JumpStartとは???

aws.amazon.com

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 が用意されています。

f:id:swx-mine:20210617113928p:plain
さまざまなSolutionが用意されている
いづれかの Solution をクリックするとその詳細が確認できます。 Solution の概要やデプロイされるアーキテクチャ、ライセンスなどが確認できます。目的に合った Solution があれば利用しましょう。今回は Demand Forecasting を利用します。 Solution の詳細画面でLaunchします。
f:id:swx-mine:20210617113959p:plain
Launchをクリックしてデプロイ!
! デプロイの進捗が確認できる画面が開きます。JumpStartでがリソースのデプロイにCloudFormationが利用されており、CloudFormationスタック一覧ではそれっぽいスタックが確認できます。たまにLaunchがエラーとなることがありますが、JumpStart側ではエラー内容が確認できないようであるため、CloudFormationスタック側でエラー内容を確認する必要があります。
f:id:swx-mine:20210617114229p:plain
デプロイの進捗が確認できる
f:id:swx-mine:20210617114436p:plain
それっぽいスタック
デプロイが完了すると以下のような表示になり、「Open Notebook」をクリックで Solution を利用するためのNotebookを開くことができます。また、大変親切なことに「Delte all resources」で `Solution のデプロイで作成されたリソースの削除が可能です。
f:id:swx-mine:20210617114806p:plain
デプロイが完了

2.2 notebookで作業

立ち上げたnotebookのコードを順に実行しトレーニング・モデルの評価を実施します。すべての Solution でnotebookも提供されるかどうかは未確認ですが、あらかじめコードや説明、ワークフローが記載されたnotebookが提供されているのは大変ありがたいです。

f:id:swx-mine:20210624110315p:plain
今回試したSolutionには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.