Amazon SageMaker CanvasのChat for data prepを使い、チャットで分析やデータ変換を作成してみた
データアナリティクス事業本部 機械学習チームの鈴木です。
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を起動しました。
AmazonSageMakerCanvasAIServicesAccess
ポリシーについては、このクイックセットアップで作成されるSageMakerの実行ロールには既にアタッチされていたため、特に対応は不要でした。
2. SageMaker Canvasの開始
SageMaker Studioの画面で、左上のApplicationsからCanvasを開きました。
Run Canvas
をクリックし、起動を待ちました。
Canvasの準備ができたらOpen Canvas
で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
を押しました。
今回はTabular
を押しました。
データセット名を入力しました。
ローカルよりブラウザにドラッグ&ドロップでiris.csv
をアップロードし、Create dataset
を押しました。
このように作成されました。
2. データフローの作成
Data Wrangler
からData flows
タブを開き、Create a data flow
をクリックしました。
ポップアップでデータフロー名を入力しました。
To get started...ということでデータセットを選ぶように指定があるので、Select existing dataset
より先ほど作成したデータセットを選びました。
このように読み込めました。
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モデルを使っているように見える(アクセス設定が必要なため)ため、チャットの内容については日本語でも問題ないように推測されます。チャットに使用する言語についてはガイドには明記がないため、ここではできるかもというところにとどめます。生成された分析やデータ変換が期待通りであることが正解になると思うので、使いやすい言語で利用してみて、結果があっていることを確認すると良いと思います。