Amazon SageMaker CanvasのChat for data prepを使い、チャットで分析やデータ変換を作成してみた

Amazon SageMaker CanvasのChat for data prepを使うと、チャットでお願いした分析やデータ変換をプレビュー付きで生成してくれて、フローに採用するようなこともできるので、とんでもなく便利な機能でした!
2023.12.07

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

re:Invent 2023で、SageMaker Canvasが自然言語による指示をサポートしました。SageMaker CanvasのUIからチャットによりデータの分析ができるようになりました。

この機能についてご紹介します。

この記事について

SageMaker Canvasの自然言語による指示を受け付ける機能として、Chat for data prepが実装されました。

この機能によりユーザーはチャットにテキストを入力するだけで、Canvas上でデータを分析し、独自のデータ変換を定義できるようになりました。

この記事では、実際にChat for data prepを使ってみて、設定周りや、どのような使用イメージになりそうかをご紹介します。

また、SageMaker Studioも大幅リニューアルされたので、Canvas使用に関わるところについては軽く触れられればと思います。

Chat for data prepについて

SageMaker CanvasのData WranglerのフローのUIで、チャットにやりたいことを入力すると生成系AIが分析例およびデータ変換例を提案してくれる機能です。実際に可視化されたプレビューまで確認可能です。

提案された内容は、分析やデータ変換として採用可能です。提案されたコードの編集もサポートしているので、どうしてもうまくお願いできなくてちょっとイメージと違うものが出てくるという場合でも直すことができます。

開発者ガイドとしては以下のものが公開されています。管理者向けの確認事項も記載されているので、利用を検討されている方はご確認ください。

記事執筆時点では、米国東部(バージニア北部)、米国西部(オレゴン)、および欧州(フランクフルト)のAWSリージョンで利用可能です。また、Amazon BedrockおよびそのうちAnthropic Claudeモデルへのアクセスも必要となります。ドメインに設定したSageMakerの実行ロールにAmazonSageMakerCanvasAIServicesAccessが必要です。

Bedrockの準備

Anthropic Claudeモデルへのアクセス準備

Bedrockで使用できるように準備をする必要があります。Claudeモデルへのアクセス準備については、以下のブログが分かりやすいのでご確認ください。

今回は、BedrockのModel AccessでAnthropicのモデルがAccess grantedになっていることを前提として進めます。

モデルへのアクセス有効化

SageMaker Canvasの立ち上げまで

1. ドメインの作成

新しいSageMaker Studioを使うので、SageMakerのコンソールからドメインを作成しました。ドメイン作成の機能も新しくなっています。

シングルユーザー向けの設定から作成しました。

ドメインの作成

しばらく待って作成が完了すると、ドメインが作成されたので、デフォルトのユーザーで新しいSageMaker Studioを起動しました。

Studio起動

AmazonSageMakerCanvasAIServicesAccessポリシーについては、このクイックセットアップで作成されるSageMakerの実行ロールには既にアタッチされていたため、特に対応は不要でした。

2. SageMaker Canvasの開始

SageMaker Studioの画面で、左上のApplicationsからCanvasを開きました。

SageMaker Studio

Run Canvasをクリックし、起動を待ちました。

Canvasの起動

Canvasの準備ができたらOpen CanvasでCanvasを開きました。

Open Canvas

データセットとフローの作成

1. データセットの作成

今回はUCI Machine Learning RepositoryのIris Data Setをローカルからアップロードしてデータセットを作成しました。

このデータセットは、下記リンクにて公開されています。

  • https://archive.ics.uci.edu/ml/datasets/iris

データが格納されているiris.dataはCSVヘッダーがないので、自分でヘッダーをつけて、ファイル名もiris.csvとしました。

コンソールよりData Wranglerを開き、Createを押しました。

 Create Dataset1

今回はTabularを押しました。

 Create Dataset2

 データセット名を入力しました。

データセット名を入力

ローカルよりブラウザにドラッグ&ドロップでiris.csvをアップロードし、Create datasetを押しました。

アップロードとデータセット作成

このように作成されました。

作成されたデータセット

2. データフローの作成

Data WranglerからData flowsタブを開き、Create a data flowをクリックしました。

Create a data flow

ポップアップでデータフロー名を入力しました。

データフロー名を入力

To get started...ということでデータセットを選ぶように指定があるので、Select existing datasetより先ほど作成したデータセットを選びました。

Select existing dataset1

Select existing dataset2

このように読み込めました。

データセット読み込み後

Chat for data prepの使用

1. チャットで分析の生成

Chat for data prepを押すことでチャットが開きました。Anthropic Claudeモデルへのアクセスができる状態であれば、以下のように質問例が出てきました。

質問例

試しにあるカラムのユニークな値の数を聞いてみました。少しの間、待ちました。

ユニークなカラムの数の質問

すぐに回答が返ってきて、3つとのことで正解でした。

ユニークなカラムの数の答え

ヒストグラムを出してくれるようにお願いをしてみると、可視化結果とコードを生成してくれました。

ヒストグラム

コードはタブを開くと確認でき、編集もできました。

生成されたコード

Add to analyticsを押すと、分析に追加することも可能でした。

2. チャットでデータ変換の生成

データ変換に関することを依頼すると、コードを生成して試してみてくれました。

データ変換

Add to stepsを押すと、ステップとしてフローに登録できました。

データ変換の登録

SageMaker Canvasの停止

停止と確認

SageMaker StudioのCanvasの画面より、Stop Canvasを押して停止しました。

停止

Running instancesで起動している該当のインスタンスがなくなったことを確認しました。

停止完了

最後に

SageMaker Canvasの自然言語による指示を受け付ける機能である、Chat for data prepについて、実際に触ってみたので使用イメージをご紹介しました。

テキストから分析やデータ変換のプレビューとコード例を生成してくれるため、非常に柔軟かつ簡単に機械学習のための分析や前処理が可能になる素晴らしいアップデートだと思いました。SageMaker Studioのリニューアルも合わさり、全体的に格段に使いやすくなっており、どんどんとSageMaker Studio Canvasを使って分析をしていきたいなと思いました。

また、ではこれで自分でコードを書くデータサイエンティストの活躍の場が狭くなるのかというとそんなことはなく、生成されたコードは編集も可能でカスタマイズできるので、非常に細かな実装についていちいち調べることなく効率的に分析・データ変換作業を進められるように支援してくれるとても強力な機能だと感じました。普段あまりCanvasを使っていない、実装が得意な方にもぜひ一度触ってみて、自分の業務が効率化されそうか試してみて頂きたいなと思いました。

チャットのバックエンドにいる生成系AIについては、記事執筆時点では明らかにAnthropic Claudeモデルを使っているように見える(アクセス設定が必要なため)ため、チャットの内容については日本語でも問題ないように推測されます。チャットに使用する言語についてはガイドには明記がないため、ここではできるかもというところにとどめます。生成された分析やデータ変換が期待通りであることが正解になると思うので、使いやすい言語で利用してみて、結果があっていることを確認すると良いと思います。