Dataiku LLMメッシュをつかってRAGをつくってみた
(この記事は2024年3月時点のものになります)
1.はじめに
前回のブログでもご紹介しましたが、Dataikuに新たにLLMメッシュという新機能が追加されました。
Dataiku新機能 LLMメッシュをつかってレビュー分析をやってみた
LLM とは大規模自然言語処理モデルを意味し、話題のOpenAI社のGPTなどが代表的なモデルです。
LLMメッシュは様々なLLMを利用してアプリケーションを大規模で効率的に構築することができるという機能です。
前回のブログに引き続き、LLMメッシュの活用事例としてRAGを作ってみようと思います。
2.RAGとは
LLMモデルにモデルの作成に使われていない社内文書や最新のデータといった外部からの情報を組み合わせ、LLMの生成する結果をモデルの学習に使用していない最新のデータに基づいた結果に調整したり、インプットした内部の資料ベースのものに更新することもできます。

この技術のことをRAG(Retrieval Augmented Generation)と言います。
3.pdfのテキストの読み込み
今回は外部の情報としてpdfからのテキストを読み取ったものを使います。
今回は以下のようなサンプルを作成しました。

ここでは、テキスト抽出をDataikuのプラグインを用いることにより実装します。
プラグインは画面右にある設定画面から入れることができます。

プラグインをクリックしたら、テキスト抽出を実装することができるプラグインをインストールします。(今回は以下のプラグインをインストールしました)

プラグインをインストールすると、テキスト抽出のためのレシピが使えるようになります。

赤枠で囲まれたアイコンをクリックしてテキストを抽出します。

抽出した結果が以下のようになります。

textという列にあるものが抽出したテキストになります。
次はこのテキストを埋め込みします。
4.埋め込み
埋め込みとはテキストをコンピュータでも扱えるように数値に変換することです。各単語に数値を割り当て、チャットボットや検索エンジンなど自然言語処理において扱いやすい形にします。
Dataiku上ではLLMレシピから埋め込みを選択し、埋め込みを実行できます

つぎにKnowledge columnで対象となるtextを選択します。

実行すると以下のようなフローになります

フローができたら赤枠で囲まれたアイコンをクリックします。
クリックすると以下のような画面に遷移します。

Retrieval-augmented LLMsから+ADD AUGMENTED LLMを選択します。
選択肢したらLLMからLLMメッシュで設定したものを選択します。
LLMメッシュの設定の仕方は以下が参考になります。
Dataiku新機能 LLMメッシュをつかってレビュー分析をやってみた

次にCore settingsで埋め込みに使うモデルを設定します。以下の画像は参考です。

大方の設定は終わったので画面右端にあるPARENT RECIPEをクリックします。

クリックすると最初の設定画面に戻り、画面左下端に実行ボタンがあるのでクリックします

実行ボタンを押したら、フローへ戻ります。
5.RAGの実装
読み込んだテキストを埋め込みしたものを用いて、RAGを実装します。
画面上部にある緑色のマークからPrompt Studiosを選択します。

Prompt Studiosを選択し、画面が遷移するので、画面右端にあるNEW PROMPT STUDIOを選択します

選択したらCREATEを選択しプロジェクトを作成します。

プロジェクトを選択するとプロンプトの入力の仕方を設定できる選択画面が現れます。
今回はPrompt without inputsを選択します。

Prompt designの横にあるLLMから使うモデルを選択します。
今回は先ほど設定した埋め込みを用いるため、Retrieval augmentedから選択します

選択したらPromptを入力します。今回は以下のようなプロンプトを試しました。

入力したプロンプトを実行します。プロンプト入力画面の右下にあるRUNを選択すると結果がResponseに生成されます。
実際に入力したプロンプトに対して以下のような結果が生成されました。

埋め込みしたソースをもとに、回答が生成されているのが分かります。
また、どのソースから回答を引っ張ているかも表示されています。
6.終わりに
今回はpdfからテキストを抽出し簡単なRAGを実装してみました。
知りたいことを入力すると、マニュアルなどの社内ドキュメントをもとに回答してくれるようなアプリケーションも、Dataikuを活用すれば自分の手で作成することができるかもしれません。
RAGを使えばいままで時間をかけていた作業も効率的に行えます。
例えば、膨大な時間をかけていた社内文書の検索もRAGを使うことによって簡単にほしい文書もみつけることができ、大幅な時間短縮につながります。
また、コールセンターやヘルプデスクへ来た質問に対して回答を探す場合についても、RAGを使えば効率的に業務を行うことができます。
みなさんもRAGを使ってどのようなことを効率化できそうか考えてみてはいかがでしょうか?
Discussion