Amazon SageMaker CanvasのReady-to-useモデルからAWSのMLサービスを利用する

Ready-to-useモデルを使うことで、AWSのほかの機械学習サービスの一部をCanvasの単一のコンソールから検索・利用可能です。
2024.04.08

データアナリティクス事業本部 インテグレーション部 機械学習チームの鈴木です。

Amazon SageMaker Canvasは機械学習やコーディングに深い知見がなくてもコンソールから簡単にモデルの構築からSageMakerのMLOps機能が利用できるサービスです。

ホームページやテーブルデータに対するトレーニングの料金が新しくなり、ますますアツいサービスになってきたので、私もSageMaker Canvasの各種機能を改めて確認しています。

今回はCanvasの機能の中でも誰でも一番触りやすいであろうReady-to-useモデルの機能を試してみたのでご紹介します。

Ready-to-useモデルとは

機能について

SageMaker CanvasのUIからAmazon Rekognition・Amazon Comprehendなどの既存のAWSサービスを利用して、すぐにML機能を利用することができます。

現在サポートしている機能は以下になります。

記事執筆時点で、以下の機能がありました。

  • 感情分析
  • テキストからのエンティティの抽出
  • テキストの言語検出
  • テキストファイル内の個人情報検知
  • 画像内のオブジェクト検出
  • 経費分析
  • IDドキュメント分析
  • ドキュメント分析
  • ドキュメントクエリ

※ ただしリージョンによって一部機能が使えない場合がある

ちょうど1年ほど前の2023年3月31日に公開された機能で、比較的新しいものになります。

前提条件

前提条件として、SageMaker Studioのドメインで、Canvasの Ready-to-use モデルを有効にするがONになっている必要があります。

こちらは各ドメインのドメインの設定 > 全般設定より編集を押して、ステップ4 Canvasの設定から確認できます。

ステップ4 Canvasの設定

これにより、ドメインに設定した実行ロールにAmazonSageMakerCanvasAIServicesAccessポリシーがアタッチされるので、Ready-to-useモデルで連携する各種AWSのMLサービスが利用できるというわけです。

画像内のオブジェクト検出を使ってみる

今回は新コンソールから画像内のオブジェクト検出を例に使い方を確認してみました。

1. 画像内のオブジェクト検出機能へのアクセス

まずはSageMaker Canvasのホームページにアクセスしました。Explore ready-to-use-modelsをクリックしました。(左メニューのReady-to-useからも行けます。)

SageMaker Canvasのホームページ

SageMaker Canvasのホームページには、SageMaker StudioよりCanvasを起動してアクセスしました。SageMaker Studioもre:Invent2023で新しいものが発表されております。

Ready-to-use models画面で、利用できるモデルを検索できます。今回はObject detection in imagesを選択しました。Powered by Amazon Rekognitionなどの記載から、どのAWSのサービスと統合されたものかが分かります。

Ready-to-use models画面

Object detection in imagesを開くと、Single predictionの画面が開きます。サンプル画像から、画像中の物体が検出される機能がよく分かります。Upload Imageで自分の画像をアップロードして物体検出を行うことが可能です。

Single predictionサンプル

2. 推論の実行

各推論の結果

Single predictionでは、アップロードボタンよりアップロードした画像に対して物体検出を行うことができました。

Single predictionの実行結果

Batch predictionでは、データセットにアップロードした画像に対してまとめて物体検出を行うことができました。

バッチ推論の結果

Batch predictionはあらかじめ作成したデータセットを選択して実行することとなります。

データセットの選択

batch predictionの結果一覧

Batch prediction向けのデータセットの作成と削除

データセットはBatch predictionの画面からそのまま作成するか、Data WranlerのDatasetのページから作成することとなります。

データセット作成

作成方法としては、例えばローカルからファイルをまとめてアップロードできます。

ファイルのアップロード

ところで削除するときは、Ready-to-useモデルで推論結果が残っているとデータセットは削除できませんでした。この場合、Ready-to-useモデルで推論結果を削除してからデータセットも削除できました。

Batch prediction結果の取得

Batch predictionの結果一覧の3点リーダーより、CSVまたはZipファイルにて結果をファイルとして取得できます。

今回試した結果だと、CSVは以下のようになっていました。ある程度信頼度が高い結果について画像ごとにまとまっており大変使いやすいです。

CSVの出力

ZipファイルではJSON形式の結果が格納されていました。

predictions % tree
# .
# ├── IMG_0803
# │   ├── AllLabels.csv
# │   ├── LabelCategories.csv
# │   └── LabelDetection.json
# └── IMG_0818
#     ├── AllLabels.csv
#     ├── LabelCategories.csv
#     └── LabelDetection.json

Ready-to-useモデルのユースケース

機械学習サービスのインターフェースとして

Ready-to-useモデルとして統合された機械学習サービスの機能であれば、SageMaker Canvasのコンソール1つから横断的に検索し、誰でも手軽に利用することができる点が強みだと思いました。

例えば今回利用した機能は以下のRekognitionのラベル検出デモ画面と同様です。機械学習サービスに詳しくないユーザーが自分の実施したいタスクを考えて適切なサービスを利用するのは大変ですが、SageMaker Canvasのコンソール1つから利用できるのであれば、Canvasの使い方だけ覚えればよいので簡単ですね。

rekognitionのラベル検出デモ

また、画面上からデータセットに対してバッチ処理でまとめて推論を行うことができるのもとても便利な点です。この機能のおかげで、機械学習サービスに詳しくなくてもファイルをまとめてアップロードすればとりあえず複数のデータに対して処理を実行することができます。データセットで推論対象を管理できる点も大きなポイントです。

一方で、Ready-to-useモデルから利用できない機能もあります。例えばRekognitionの画像のモデレーション機能などです。こういった機能を利用したい場合は各種機械学習サービスのページから利用を開始することとなります。また、Rekognitionなど統合しているサービスのモデルのカスタマイズ機能も同様ですね。

自動化について

記事執筆時点だと、Ready-to-useモデルは自動化には対応していないようでした。以下のガイドにも手動の実行方法のみ記載されていました。

冒頭に掲載したAmazon Web Services ブログにもあるように、どちらかというとビジネスアナリストが手動で推論を実行する想定の機能となっているようです。

処理を自動化したい場合は、各種機械学習サービスとStep Functionsなどオーケストレーターを使用し、開発を行う必要がありそうでした。

最後に

Amazon Sagemaker CanvasのReady-to-useモデルの使い方とユースケースについて確認しました。Rekognitionなどほかの機械学習サービスをCanvasから簡単に利用できる機能でとても良いなと感じました。現状は手動での推論に対応しており、Sagemaker Canvasの機能で管理されるデータセットを対象とすることで、推論実施時の対象をまとめて指定できる点もポイントだと思います。

参考になりましたら幸いです。