見出し画像

RAGは、どんなデータで ”RAGる(らぐる)か” が大事⁉️

以下は、TISインテックグループの開発現場から生まれた技術ノウハウを公開されているFintanの記事です。


RAG(Retrieval Augmented Generation)は、クエリに対する応答を生成する前に外部データソースを検索して関連情報を取得し、その情報を生成時に活用する手法です。これによりハルシネーションを緩和することもできます。

これからは、RAGる(らぐる?)ことが増えていくように思います。
この記事による、経験的なことも含めたノウハウは必見じゃないかな。


以下は、私的なこの記事の「まとめメモ」です。ChatGPTに手伝ってもらいました。



RAGは、とにかく手元のデータを突っ込んでみればいい?


これはダメ🙅‍♂️。
例えば以下は避けないといけないみたい。

RAGで避けるべきこと:

  1. 不適切なデータソースの使用: 信頼性の低い外部データソースからの情報取得は避ける。誤った情報が生成プロセスに影響を与える可能性がある。

  2. 過度な依存: RAGは外部情報に依存するため、生成内容の品質が外部データソースの品質に直結する。そのため、データソースの選定と評価には慎重を期す必要がある。

  3. 適切な前処理の欠如: 入力データの前処理を怠ると、検索性能が低下し、関連性の低い情報が生成プロセスに組み込まれるリスクがある。

RAGを使用する際は、これらのポイントを考慮して、より正確で信頼性の高い生成結果を目指す必要があります。



うーん、🧐なるほど。
じゃ、どんなデータソースを選んで、どんな前処理すればいいのかな?


前処理の徹底

  • PDFからのテキスト抽出の最適化: PDF文書からテキストを抽出する際は、OCR(光学文字認識)技術を活用し、抽出精度を高める。また、抽出したテキストに対して、不要なマークアップや装飾、隠れたテキスト(例: 白文字)の除去を行う。

  • データソースの選定: 可能な限り、テキスト抽出が容易で、情報の構造が明確なデータソース(例: Word文書、構造化されたWebページ)を選択する。

  • 言語やフォーマットに応じた前処理: 文書が複数の言語やフォーマットで構成されている場合、それぞれに適した前処理パイプラインを設定する。例えば、日本語文書と英語文書を別々に処理する、PDFとWord文書に異なる抽出ロジックを適用するなど。

メタデータの活用

  • メタデータ抽出の自動化: 文書からページ番号、タイトル、作成日、著者情報などのメタデータを自動的に抽出し、検索クエリの精度を向上させるためのフィルタとして使用する。

  • 検索クエリのコンテキスト化: ユーザーの検索意図を理解し、適切なメタデータを検索クエリに組み込むことで、より関連性の高い検索結果を得る。例えば、「昨日のニュース要約」というクエリに対しては、最近の日付のメタデータを持つ文書を優先的に検索する。

チャンキング戦略の採用

  • 文書のセグメント化: 長い文書を意味のある小さなセグメント(チャンク)に分割し、各チャンクを独立した検索対象とする。これにより、検索時の計算コストを削減し、関連性の高い情報を効率的に抽出する。

  • チャンクのサイズと品質の最適化: チャンクのサイズが小さすぎると情報が断片化し、大きすぎると不要な情報が含まれる可能性がある。適切なサイズのチャンクを生成し、情報の密度と品質を最適化する。

  • レイアウトと構造の考慮: 文書のレイアウトや構造を分析し、タイトル、見出し、パラグラフなどの構造的要素に基づいてチャンクを形成する。これにより、チャンク内の情報がコンテキストに沿ったものになるようにする。



補足


RAG利用時のチェックリスト

前処理の徹底

  • [ ] PDFからのテキスト抽出最適化

    • OCR技術を使用して精度を高める

    • 不要なマークアップ、装飾、隠れテキストを除去

  • [ ] 適切なデータソースの選定

    • テキスト抽出が容易で情報構造が明確なデータソースを選択

  • [ ] 言語・フォーマット別前処理

    • 文書の言語やフォーマットに応じた前処理パイプラインを設定

メタデータの活用

  • [ ] メタデータ抽出の自動化

    • ページ番号、タイトル、作成日、著者情報などのメタデータを自動抽出

  • [ ] 検索クエリのコンテキスト化

    • ユーザーの検索意図を理解し、適切なメタデータをクエリに組み込む

チャンキング戦略の採用

  • [ ] 文書のセグメント化

    • 長い文書を意味のある小さなセグメントに分割

  • [ ] チャンクのサイズと品質の最適化

    • 適切なサイズで情報の密度と品質を最適化

  • [ ] レイアウトと構造の考慮

    • 文書のレイアウトや構造に基づいてチャンクを形成



よろしければサポートお願いします!