top of page

<MyRAG検索システムの実装例>

図5 RAGの構成イメージ、Software Design 2025年1月号から抜粋.jpg

図 RAGの構成イメージ

1.背景  (*1)
 LLMの利用者には、膨大なデータを高速に検索·処理したり、類似性
の高い情報を効率的に見つけたりしたいというニーズがある。こうした
ニーズを受けて、ベクトルデータベースへの期待が高まっている。
生成AIから引き出す回答の精度を高める手段の1つに、
RAG(Retrieval Augmented Generation、検索拡張生成)がある。
RAGはLLMが回答を生成する際に、ユーザーのプロンプト(指示文)を受
けて、外部の知識情報を参照する。この外部知識の検索にベクトル検
索がよく用いられる。この検索では、テキストや画像などのデータを多
次元の数値ベクトルで表現。その上で、ユーザーが検索において入力
するテキストなどのプロンプトもベクトル化し、ベクトル同士がどの程度
似ているかを示す類似度に基づいて、類似性を計算し、出力する。

 *1 出典: 『日経コンピュータ2024.5.16号、2024.6.13号』

2.必要性
 月間報告書作成という業務では、日々多様な情報源から情報を抽出して
クラウドストレージに登録している。抽出した情報は大部分が文書や画像で、
自分にわかりやすい名前で登録している。
 報告期限が近づくと、報告書作成のためにそのクラウドから必要な情報が
どこにあるか探しているが、見つけるには膨大な時間がかかる。
 登録した文書や画像といったデータがクラウド上のどこに登録されたかは
アクセスログとしてクラウドシステムが記録・保管している。
 そこで、過去に蓄積された大量のアクセスログを簡単な言葉で検索して、
必要な文書や画像を素早く探すことができないか。

 

3.アクセスログの検索にRAGの仕組みを導入
 RAGのシステムは4つのステップで構成される。(*2)
  データ格納(Store)
  情報検索(Retrieval)
  拡張(Augumented)
  生成(Generation)

 

 *2 出典:専門誌 『Software Design 2025年1月号』(技術評論社)
     図5 RAGの構成イメージ

4.RAG検索の実装
 公開されたコード(*3)を参考にして下記の動作環境で自分用のRAG検索システムを実装した。
・Windows11 バージョン23H2以降のPCで動作する。
・RAG用のベクトルデーダベースは当該PC内に保管する。
・当該PC上のPower Shell配下で動作環境を設定する。

・設定後、PythonのRAGアプリを起動する。
・事前に、OpenAI APIkeyをopenAIの公式ページから取得すること。


 *3 出典 GitHub - ykimura517/RAG-sample

 

5.課題
 Storeのプロセスでアクセスログをベクトルデータベース化する際、1回あたり登録できるデータ量のサイズに制限がある。
 このため、大量のアクセスログを扱う際、固定長のデータに分割して何回かに分けて登録している。

2024年12月28日作成

生成AI活用_RAG検索の例-9-7  デーダベースはICTL第2世代.jpg

【1回目のクエリと回答】 RAG検索の実施例 

生成AI活用_RAG検索の例-9-8  デーダベースはICTL第2世代.jpg

【2回目のクエリと回答】 RAG検索の実施例 

bottom of page