シニアだけどChat with RTXを試してみた
どうも、駆け出しシニアのHot3DegC(ホットサンド)です。
今日は、Chat with RTXを使ったRAG(Retrieval-Augmented Generation)を試してみました。(アレコレやり過ぎたので、シンプルにやり直しました。)
RAG(Retrieval-Augmented Generation)とは
まず、RAGは情報検索(Retrieval)とテキスト生成(Generation)の能力を組み合わせた技術となります。
生成モデルが持っている事前に学習した情報に基づく生成能力に加えて、RAGは大量の外部情報から関連情報を検索(Retrieval)して、その情報を元にテキストを生成(Generation)する技術となります。
この技術が発展してもっと手軽に活用出来るようになれば、独自ノウハウなどの外部に公開したくない情報をAIモデルに後付け情報として備えることが出来るようになると思っています。
今回の試した流れ
今回は、追加した外部情報が正しく情報検索(Retrieval)されて、モデルに問い合わせた内容に対して、正確にテキスト生成(Generation)されるのかを試してみたいと思います。
準備したものは、私こと『Hot3DegC』のプロフィール内容がかかれたテキスト文書で、それをつかって下記の流れで作業を実施しました。
プロフィールをMarkDown形式のファイルで準備(拡張子が.mdです)
何も手を加えていない状態の『Chat with RTX』で、「Hot3DegCの名前の由来について教えて下さい。」と質問を実施。
外部情報の配置場所に指定されているフォルダにプロフィールファイルを配置して、同じ質問を改めて質問を実施。
プロフィールファイルの拡張子をテキストファイル形式(.txt)に編集して、同じ質問を改めて質問を実施。
プロフィールファイルを1つ下の階層に移動させて、同じ質問を改めて質問を実施。
何がしたかったかというと、『Chat with RTX』が指定出来る外部のデータセットは、.txtと.pdfと.docなのですが、同じテキスト形式の,mdファイルは認識してくれるのか確認したいのとどれぐらい手軽に追加出来るのかと下位のフォルダに配置された情報も情報検索(Retrieval)されるのかが知りたかったのです。
中でも下位フォルダの情報検索(Retrieval)は非常に興味があり、これが出来れば非エンジニアの方でも気軽にRAGの技術を活用出来て、一気にローカルLLMモデルの利用が推進されるのではと個人的に思っています。
本来はベクトルデータベースをLLMモデルに連携させるんでしょうけど、そうなると非エンジニア層にはとってもハードルが上がっちゃいますよね。
試した結果がこちら
1.プロフィールをMarkDown形式のファイルで準備(拡張子が.mdです)
2.何も手を加えていない状態の『Chat with RTX』で、「Hot3DegCの名前の由来について教えて下さい。」と質問を実施。
「Hot3DegC」という名前についての情報は存在しないっていうようなことが解答されましたね。
3.外部情報の配置場所に指定されているフォルダにプロフィールファイルを配置して、同じ質問を改めて質問を実施。
因みにですか、情報を追加したら、[Dataset]エリアの右上にある[Refresh dataset]ボタンを押下してください。
これを押さないと、情報を追加しても検索してくれません。
なぜかと言うと、追加情報にベクトル値というものを付与して、質問に対する回答に類似する情報を検索するためなのですが、このあたりのお話はとても難しく私はうまく説明出来ないので、割愛させてください。
『Parsing nodes』 が『30 /30』となっており、フォルダ内にはtxtファイルが30とmdファイルが2ファイル存在しているので、サポートファイルを拡張子で判断しているようですね。
その後に続く、『Generating embeddings』が、各nodesファイルのベクトル値を算出しているのではと推測しております。
少し丁寧な文章にニュアンスになりましたが、変わらず情報がないといわれています。
当然ですよね。mdファイルしか追加していなくて、認識されていないんですもんね。
4.プロフィールファイルの拡張子をテキストファイル形式(.txt)に編集して、同じ質問を改めて質問を実施。
『Parsing nodes』 が『31 /31』となりましたね。きちんと追加情報に含められたようです。
で、今度は何やらそれらしい回答が得られました。しかも、参照したファイルに追加したファイル名が正しく記載されていますね。
『Reference files:Hot3DegCプロフィール.txt』って出てますね。
が、日本語の追加情報を与えれば、日本語で回答してくれるかと思ったのですが…
気を取り直して、続けてみましょう。
5.プロフィールファイルを1つ下の階層に移動させて、同じ質問を改めて質問を実施。
お!下位のフォルダに移動させても認識してくれているようです。
ですよね。それぐらい出来ますよね。普通、再帰的にフォルダ検索しますよね。
非常に嬉しい!!
追加する情報をカテゴリー別にフォルダを分けて管理出来るってことだし、プロジェクトフォルダを指定すれば、プロジェクト情報をまるっと検索してくれるってことなんで、夢が広がりますね。
最後に感想
如何でしたでしょうか。
私は今回の結果には非常に満足しております。
色んな意味で可能性が広がったんじゃないかと思います。
本当はもっと色々な検証結果を載せたかったのですが、検証することに夢中になり、キャプチャーやデータが散らかっているので、余裕ができ次第お知らせ出来ればと思います。
それでは、最後まで読んでいただき有難うございました。
引き続き頑張っていきますので、応援のほど宜しくお願いします。
よろしければサポートお願いします!頂いたサポートは記事テーマのツールやアプリの購入費に使わせていただきます!レビュー希望のツールなどあればコメント頂けると嬉しいです。