DataRobotでRAGを活用した生成AIを作ってみる

# 概要
AutoMLツールとして有名なDataRobotで、RAGを活用した生成AI機能が簡単に構築できると聞いたため使ってみた。

# やること
DataRobotにてRAGを活用した生成AI機能を構築してみて、ツールの使用感を確かめる。

RAGに使用するデータは、効果がわかりやすいように、RAGなしのGPT-3.5では回答できない直近データを使用する。具体的には、2024/11/7に環境省より発表された「ブルーカーボンに関する重点調査について」の資料を利用することにした。
（ https://www.env.go.jp/press/press_03968.html ）

# 環境準備
DataRobotではDataRobot AI Platform フリートライアルという、30日間無料のトライアル環境が提供されるため、環境はそちらを利用。

無料トライアルは下記リンクから、氏名・生年月日・メアド・会社名等を記入してフォームを送信し、概ね10分程度で返信される登録メールからパスワードを設定することで使用可能になる。
https://www.datarobot.com/trial

# 用語
あまり聞きなじみのない用語がいくつか出てきたのでまとめておく。
| 用語 | 説明 |
|:-------------|:-----|
|ワークベンチ|複数のユースケ―スをまとめて管理する場所|
|ユースケ―ス|データセットやノートブックを管理するコンテナ|
|データレジストリ　|格納したデータセットのカタログ|
|ブループリント|テンプレートのようなもので、RAGや利用するLLMなどをテンプレートに沿って選ぶだけで、生成AI機能が実装できる|

# 手順
構築の手順は、大きく以下の流れ。ログインまでの手順は割愛する。

1.　データ投入
2.　ベクターDBの構築
3.　LLMブループリントの構築
4.　検証

# 使ってみる

### １. データ投入

・まずは右上にカーソルを当て、ワークベンチを開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/2fe8df10-d2fb-9047-356a-0d8d785a303e.png)

・次に、新しいユースケ―スを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/376e48dd-89aa-4a0f-788f-e9f673d3034b.png)

・データを追加を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/53c355ed-d738-9f71-bace-c07c27cabe43.png)

・アップロード ＞ ローカルデータをアップロード、を押下しデータレジストリにデータを設定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/c0970174-7eac-b498-c51e-20f455771c43.png)

・データを選択して、「ユースケ―スに追加」を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/ea800624-edb5-5405-8276-7b25960808ed.png)

・以上の手順で、RAGのインプットとなるデータがユースケ―スに配置される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/7c5f32a6-c1b1-faf1-cdc4-83688db6f41a.png)



### ２. ベクターDBの確認

・ベクターDBタブを選択し、「ベクターデータベースを作成」を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/aaa0637c-932a-f91f-88a2-1edea7d8032a.png)

・ベクターデータベースの名前とデータソースを確定し、ベクターデータベースを作成、を押下（チャンクに関する設定も可能）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/6f6235e2-988e-57e2-f63e-5e5068aeecbc.png)

・ベクターDB作成中。構築には少し時間がかかる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/512cf4b3-7855-cbeb-0ddc-8034c8106d49.png)

・たったこれだけの手順で、ベクターDB完成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/21b3221e-fe85-5468-0da6-d8ee8fa1cd11.png)

### ３. LLMブループリントの設定

・プレイグラウンドタブを選択し、「プレイグラウンドを追加」を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/2c603e30-ee14-b3b0-b792-035b00315dd3.png)

・「LLMブループリントの作成」を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/0b9e732b-b009-22ea-53d1-e1f76ffbc03e.png)

・LLMを選択（ここではGPT-3.5 Turboを選択）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/9268043d-3d2d-b058-9bd0-885791f32f91.png)

・設定＞ベクターDBタブを選択し、先ほど作成したベクターDBを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/ebdaf165-359d-bfe4-48ff-ce7751c1d271.png)

・プロンプトタブにてシステムプロンプトを指定することも可能（ここでは指定せずに保存）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/9173ffd2-6dd4-52f2-6d19-968378ad7a17.png)

<br>
以上、たったこれだけの操作でRAGの作成からLLMの設定まで完了。
直感的かつ少ないステップで構築できる。


### ４. 検証
・作成したブループリント内で、プロンプトの送信が可能。RAGに設定したデータに関する質問をすると、データ通り回答される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/786faa22-de6b-124d-d6a2-126d0e95cbbc.png)

・また、最大で3種類のブループリントの結果を比較することが可能。
例えば以下は、練習1がRAGあり、練習2はRAGなしの比較である。RAGのないGPT-3.5では適切な回答が返せていないことがわかる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3952017/4bbb251a-394e-ba87-be3b-94d5ef94802b.png)


# 感想
特に躓く点もなく、総計1時間もかからない程度で構築できた。
複数のブループリントを並べて評価できるのも便利。
今回はチューニング等は実施していないが、今後試してみたい。