汎用RAG
この2日間、コードの修正に苦労したけど、ようやく完成した。
特徴としてはこれまでモデル一つからの取り出しでしたが、これだとモデルの学習に時間がかかることから、モデルを分割して、自己、相互の類似性をネットワークで取得することにした。
当初のコードは5倍以上に膨らみ、ここでは掲載できません。
新システムの特徴
従来のRAGシステムでは、単一のモデルからデータを取り出していました。しかし、この方法ではモデルの学習に時間がかかるという課題がありました。そこで私は、モデルを分割し、自己および相互の類似性をネットワークで取得する新しい手法を開発しました。
開発には丸2日間かかり、コードは当初の5倍にも膨らみましたが、その甲斐あって素晴らしい成果が得られました。
類似性ネットワークの威力
この新システムの最大の利点は、クエリで直接ヒットしないデータでも、データ間の関係性から引き出せることです。例えば、買い物リストの例で考えてみましょう。
-
従来のシステム:
特定の品名を入力すると、その品名を含む記録しか取得できません。 -
新システム:
類似性ネットワークを使うことで、同じ店での他の買い物記録など、より広範囲のデータを取得できます。
つまり、直接的な単語マッチングだけでなく、関連性の高い情報も柔軟に取得できるようになったのです。
実用例:サザエさんの検索システム
具体的なイメージを掴んでいただくために、サザエさんのエピソードを例に説明しましょう。
-
「サザエさんの買い物リスト」検索
- 従来:サザエさんが実際に買い物をしているエピソードのみ表示
- 新システム:マスオさんやカツオが買い物をしているエピソードも表示
-
「サブちゃんのエピソード」検索
- 従来:サブちゃんが直接登場するエピソードのみ表示
- 新システム:サブちゃんに関連する話題やキャラクターが登場するエピソードも表示
-
「堀川くんのエピソード」検索
- 従来:堀川くんが登場するエピソードのみ表示
- 新システム:堀川くんの性格や行動に関連するエピソードも表示
まとめ
この新しいRAGシステムは、データ間の関係性を利用してより広範な情報を提供します。直接的なキーワードマッチングだけでなく、関連性の高い情報を得ることができるため、ユーザーにとってより有用な検索結果を提供できるようになりました。
今後は、このシステムをさらに改良し、より多くの分野で活用できるよう研究を続けていきたいと思います。皆さんも、新しい技術を活用して、より効率的な情報管理を目指してみてはいかがでしょうか?