AWS  生成AI×Data Catalog  新機能について :Amazon DataZone AI recommendations

## はじめに
[Amazon DataZone](https://aws.amazon.com/jp/datazone/#:~:text=Amazon%20DataZone%20%E3%81%A8%E3%81%AF%E4%BD%95,%E3%81%99%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E7%AE%A1%E7%90%86%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%A7%E3%81%99%E3%80%82) は、AWS、オンプレミス、およびサードパーティのソース全体に保存されているデータを迅速かつ簡単にカタログ化、発見、共有、管理できるようにするデータ管理サービスです。今回紹介する[Amazon DataZone AI recommendations](https://aws.amazon.com/jp/blogs/news/new-generative-ai-capabilities-for-amazon-datazone-to-further-simplify-data-cataloging-and-discovery-preview/)はデータアセットとそのスキーマの詳細な説明、分析ユースケースといったメタデータを生成AIが自動で生成してくれる機能で、データカタログ作成プロセスの短縮が期待できます。

## 検証準備
#### データの用意

二つのCSVデータを使って検証を進めました。金額や日付が含まれていたり、値に特徴がありそうなものをあえて使用してAIがどのようにデータの説明文を生成するのか見ていこうと思います。


人口統計データ.csv(データ元：[人口動態調査/人口動態統計 速報](https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&toukei=00450011&tstat=000001028897&cycle=1&year=20230&month=24101211&tclass1=000001053058&tclass2=000001053059&tclass3val=0))
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615400/8ba61831-d83c-10a4-d88c-635dd4b5ee06.png)

JEOPARDY.csv(クイズ番組データ元：[楽しみながら学ぶサンプル](https://domo-support.domo.com/s/article/360043931814?language=ja))
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615400/f03fe9b6-8660-dd89-0ea7-68ae98485366.png)

#### カタログ作成までの流れ

1.S3にあるCSVをAWS Glue Crawlerで取得し、AWS Glue Data Catalogに登録
2.Glue内の Data CatalogをDataZone 内のdata catalogに統合
3.DataZoneにてデータアセットとして公開＆閲覧

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615400/6119d6a9-5571-6e1b-5c5e-4f9931a64f06.png)

## 検証
#### 検証１：ふつうに生成させてみる
前述のように作成したdata catalogに対して、生成ボタンをワンクリックするだけでそれについての説明文を生成AIが生成してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615400/2f0efc6b-562d-e745-c52d-8e64c98073d5.png)

生成結果の抜粋:人口統計データの概要
>The table contains demographic data on vital events such as marriages, divorces, births, deaths, and stillbirths across different regions of Japan. It provides granular statistics on these events at the prefecture, special ward, and designated city level, along with unique codes that identify each region. The data enables analysis of demographic and social trends across Japan's geographic divisions. Key metrics like birth rates, death rates, marriage rates, and divorce rates can be calculated from the data. 

各カラムの値が何を示しているか、分析ユースケースとして人口動態と社会傾向を示してくれています。項目もすべて一致しており、かなり優秀ですね！

#### 検証２：ファイル名・カラム名をマスク

検証１の結果より、ファイル名・カラム名からデータの中身を推測しているのでは？と感じたので、下記のイメージのようにカラム名を編集して同様の操作を行いました。
{地域コード,都道府県（特別区-指定都市再掲）,出生数,死亡数,死産数,婚姻件数,離婚件数}　
↓↓↓
{地域コード,column1,出生数,column2,死産数,婚姻件数,column3}

生成結果の抜粋:人口統計データの概要
>The table contains demographic data for different geographical regions, with each row representing a region and columns capturing information like marriage registrations, live births, stillbirths, and region codes. The value columns seem to be placeholders without clear meaning. Key metrics tracked include marriage registrations, live births, and stillbirths, which can be used to analyze birth rates, mortality, and nuptiality trends across regions. 

上記と検証１の結果を比較するとマスクした部分の情報は欠落しているものの全体として意味のある分を生成してくれただけでなく、その概要と分析ユースケースもしっかりと生成してくれています。**また、興味深いのが全てのカラム名をマスクした場合は全く意味のある文を生成してくれませんでした。。**

#### 検証３：カラム名を意味ありげなローカル用語に変更

例えば、
Air Date→ond, Category→ttlc（total caseを元に）, Value→vle
のように変更しました。これは少し極端ですが、実際に複数の単語の頭文字を単純に結合してローカル用語を生み出した結果、有識者に聞かないと何のことやらさっぱりなケースは少なくありません。

生成結果の抜粋:クイズデータの概要
>The jeopardy_glossary_csv table contains data related to questions, answers, and metadata from the American television game show Jeopardy. The ttlc column provides the category title for each question. ond gives the original air date for the episode. round indicates which round of the game the question is from. The question column contains the text read by the host, while answer has the correct response text. show number gives the episode number, and vle lists the dollar value of each question. 

検証２とは異なり、わからない単語をわからないなりに推測して文を組み立ててくれています。この結果から、カラム名だけでなく、**データの中身を見て生成してくれる場合があることがわかりました。** 

#### 検証４：ビジネス用語集を使う

DataZoneにはビジネス用語集という機能があり、ここに登録したローカル用語などをデータアセットなどと同じように検索し閲覧することが出来ます。これに登録した内容が生成結果に反映されるのかを確認してみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615400/8a00ec8f-bd3e-892f-0a9e-196721a54d24.png)

生成結果の抜粋:クイズデータの概要
>The jeopardy_glossary_csv table contains data related to questions asked on the Jeopardy game show. It includes the category title, original air date, round, question text, answer text, episode number, and dollar value for Jeopardy questions. The category title provides insight into the general topic of the question. The original air date allows tracking of when the question was asked

**あらかじめ定義した内容をもとに生成しており、大幅な精度向上が確認できました！！**


## まとめ

#### 全体を通して
1. DataZoneで組織内のデータをカタログ化して公開できる
2. DataZoneではデータ共有に関する権限を容易に管理できる
3. DataZone AI recommendations で面倒なメタデータ作成を補助

#### 詳細機能
1. Columnやdataなどのマスクされたカラム名を使用すると生成されない
2. vleやttlcなどのローカル用語や略語はデータの中身などから、推測・補完される場合がある
3. ビジネス用語集機能にあらかじめ用語を登録することで、生成精度を向上させることができる