【AWS】手を動かしながら学ぶAWS Amazon SageMaker Canvas

## はじめに


この記事では 手を動かしながらAWSが提供するAmazon SageMaker Canvas（以下、SageMaker Canvas）を学習していく記事です。主な内容としては実践したときのメモを中心に書きます。
（忘れやすいことなど）誤りなどがあれば書き直していく予定です。

## SageMaker Canvasで生成AIが使えるようになったとさ

最近ですが、下記のようなアップデートが紹介されました。

[Amazon SageMaker Canvas で生成系AIを利用できるようになりました](https://aws.amazon.com/jp/blogs/news/new-no-code-generative-ai-capabilities-now-available-in-amazon-sagemaker-canvas/)

> SageMaker Canvas は、生成系 AI を使用してコンテンツを生成および要約するための基盤モデル ( FM ) を、簡単に使えるモデルとしてサポートするようになりました。自然言語を会話型チャットインターフェイスと併用すると、説明文、レポート、ブログ投稿の作成、質問への回答、メ自然言語を会話型チャットインターフェイスと併用すると
〜以下略

そもそもSageMaker Canvasって何でしたっけ？

## SageMaker Canvasとは

簡単に説明するとノーコードで機械学習が扱えるサービス
AWS公式サイトでは以下のように紹介されています。

> 機械学習による正確な予測をコード不要で生成

> Amazon SageMaker Canvas を利用すると、ビジネスアナリストやデータサイエンスチームは、コードを 1 行も記述することなく、独自のモデルを構築できます。リグレッションや予測などの一般的なユースケース向けの ML モデルを構築できます。さらに、生成系 AI ソリューションをサポートするために、コンテンツ生成、テキスト抽出、テキスト要約のための Amazon Bedrock の基盤モデル (FM) または Amazon SageMaker JumpStart のパブリック FM にアクセスして評価できます。

> Canvas は、Claude、Titan、Jurassic などの Amazon Bedrock の FM と、Falcon や MPT などの SageMaker JumpStart のパブリックモデルをサポートします。

[参考](https://aws.amazon.com/jp/sagemaker/canvas/)

ビジネスアナリストやデータサイエンスチームは、コードを 1 行も記述することなく？
生成系 AI ソリューションをサポートするために、コンテンツ生成、テキスト抽出、テキスト要約のための Amazon Bedrock？

Claude、Titan、Jurassic などの Amazon Bedrock の FM？
Falcon や MPT などの SageMaker JumpStart のパブリックモデル？

ナニモワカラナイ・・・・順番に見ていきましょう。

## 「コードを 1 行も記述することもなく」とは

これは簡単にいえば、我々の業界でいうところの`ノーコード（No Code）`というものです。
説明にもあるとおり、`ビジネスアナリストやデータサイエンスチーム`はコードを書かずに分析したいという要望があったりします。

卓越したデータサイエンスチームなどでは統計言語のRやクエリ言語のSQL、プログラミング言語のPythonをJupyterから使うなどもできる場合がありますが、手軽に分析したいという要件であれば、コードを書かずに実現したいということがニーズとしてあります。

そこでコードを書かずに済むノーコードという概念が生まれるのですが、コードをちょっとだけなら書いても良いということであれば、ローコードという概念もあります。

ローコードについても説明したいところですが、今回は割愛します。

## Amazon Bedrockとは

そんなSageMaker Canvasですが、どうやらAmazon Bedrockというサービスに対応しているそうです。紹介文には以下のような記述があります。

> コンテンツ生成、テキスト抽出、テキスト要約のための Amazon Bedrock の基盤モデル (FM) または Amazon SageMaker JumpStart のパブリック FM にアクセスして評価できます。

> Canvas は、Claude、Titan、Jurassic などの Amazon Bedrock の FM と、Falcon や MPT などの SageMaker JumpStart のパブリックモデルをサポートします。

Amazon Bedrock は、AI21 Labs、Anthropic、Cohere、Meta、Stability AI、Amazon などの大手 AI 企業が提供する高性能な基盤モデル (FM) を単一の API で選択できるフルマネージド型サービスです。

フルマネージドでAIが利用できるサービスという認識で問題ありません。厳密には基盤モデルのAPIをフルマネージドで提供してくれるサービスです。

[Amazon Bedrock - 参考](https://aws.amazon.com/jp/bedrock/)

以下の3つはAIのモデルという解釈で良いのでAmazon Bedrock は以下のようなAIを提供するサービスといえます。

> Claude、Titan、Jurassic

### 補足：Claudeとは

元OpenAIのエンジニアが開発したより人間に近い対話型AIです。
AIスタートアップ企業Anthropic（アンスロピック）が開発し、2023年3月に初めて公開されました。

開発元のAnthropicは、ChatGPTやDALL-E 2（画像生成AI）などを開発したOpenAIの元社員が設立し、Googleから出資を受けています。

2023年5月には、10万トークン*（約7万5,000単語相当）に対応し、人が約5時間かけて読み解く文書を、わずか1分で読み、分析できるようになり、

2023年9月末にはAmazonから40億ドルの投資を受けると発表されました。

なお、Claudeの後継、Claude2は2023年7月11日に公開されたAnthropicの新たなAIモデルで、従来のClaudeに比べ、記憶力や、数学、推論、コーディングスキルが大幅に向上しています。

2023年10月にはAmazon Bedrockを通してClaudeを東京リージョンで利用できるようなりました。

### 補足：Titanとは

簡単に説明するとAWSが内製しているつよつよ基盤モデルです。
AWSの公式サイトでは以下のように説明されています。

> AWS によって大規模なデータセットで事前トレーニングされた FM ファミリーであり、さまざまなユースケースをサポートするように構築された強力な汎用モデル

[Amazon Titan - 参考](https://aws.amazon.com/jp/bedrock/titan/)

### 補足：Jurassic

簡単に説明するとAI21 Labs が提供する基盤モデルのことです。多くの言語に対応しており、テキストから画像を生成できます。

[AWS で生成系 AI を使用した構築のための新ツールを発表 - 参考](https://aws.amazon.com/jp/blogs/news/announcing-new-tools-for-building-with-generative-ai-on-aws/)

## とりあえず触ってみよう

### まずはAWSマネジメントコンソールにログイン

AWSマネジメントコンソールにログインして、[Sagemaker Canvas](https://ap-northeast-1.console.aws.amazon.com/sagemaker/home?region=ap-northeast-1#/canvas-landing)を開きます。

`Open Canvas`をクリックします。

![Screenshot 2023-11-12 at 21.52.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527543/a5892095-1076-1bb5-1949-31f93a89d2a4.png)

起動には5分くらいかかりましたのでしばらく待ちましょう。

![Screenshot 2023-11-12 at 21.53.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527543/7b3f9636-44ef-1ffd-694a-97a695ffc457.png)

起動すると下記のようなカッコイイ画面が表示されます。

![Screenshot 2023-11-12 at 21.59.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527543/e229e025-87a7-b4cd-a6f8-e0aedcff0ba2.png)

生成AIでClaudeを使ってみようと思いましたが、操作画面に出てこなかったので今回は他の機能を試してみます。

## Language detectionを使ってみる

検索ボックスに`Language detection`と入力し、`Language detection`をクリックします。

![Screenshot 2023-11-12 at 23.20.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527543/0d08d948-a574-6be1-a179-b7a33242ea2e.png)

Language detectionは入力した言語が何語でどれくらいの含まれているのかを検知します。
こんな文字列を入力してみましょう。

```text
たとえば、bigな案件に対応したとしてどれくらいのTimeを消費するのか。
Time is Moneyで考えて欲しい。
そこらへんTogetherでdiscussionしていないか？
```

![Screenshot 2023-11-12 at 23.23.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527543/86fe6c1b-d647-b5d6-9e7f-1ba7a5eca615.png)

## Personal information detectionを使ってみる

個人情報っぽいものを特定するモデルです。
名前、架空の電話番号、それっぽい住所を入れて動作を確認してみましょう。

```text
Yamada
山田
020-564-0132
Tokyo Toranomon

Toranomon hills
```

実行結果

![Screenshot 2023-11-12 at 23.30.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527543/dbd78cb5-2c5e-c9f2-c291-7eaaca42deff.png)

![Screenshot 2023-11-12 at 23.29.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527543/22db723f-5b41-a145-425a-1e46e4d51120.png)

![Screenshot 2023-11-12 at 23.29.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527543/93539b9c-7ba9-40f9-81a7-7d90533b3ce6.png)

しっかりそれっぽい情報にラベルをつけてくれました。

## 他のモデル

他にも`Text detection in images`という画像から文字列を検出するものもありますが
別の機会にやりたいと思います。

## 注意事項

Sagemaker Canvasを起動するとセッションが確立されます。
ログアウトをしておけば、料金は発生しません。逆を言うとログアウトせずにバツ閉じで閉じてしまうと
セッションが終了しませんので料金が発生します。

ちなみにログアウトする前に下記の内容が表示されます。

> Log out to release Canvas resources and stop session charges. Your datasets and built models will not be affected. Any automated jobs will stop running while logged out. You will get the latest features when you re-launch the app.

訳
> ログアウトしてCanvasリソースを解放し、セッション課金を停止します。データセットとビルドされたモデルに影響はありません。ログアウト中は自動ジョブの実行は停止されます。アプリを再起動すると、最新の機能が利用できます。

## まとめ

今回はAmazon SageMaker Canvasを触りました。
`IAM Identity Center`と`AWS organization`、Sagemaker Studioをすでに利用していたこともあってすぐに起動して利用できました。

生成AIのClaudeを利用しようと思いましたが、環境が良くないのかClaudeを使ったチャットを検証できませんでした。
なぜ動かないのかできないのかは追って検証したいと思います。（たぶん、設定の問題）

※Bedrockのモデルアクセスは有効にして試していますが、Canvas上で選択できず。

ただ、生成AIじゃなくても手軽に他のサービス（Amazon ComprehendやAmazon Rekognition）のモデルが利用できるのでとてもすごいサービスだと思いました。

ここに生成AIのサポートが加わるとすごいなと思います。
※一応、設定周りを見直せば、できるはず！

次の機会にリベンジしたいと思います。

## おわり