RAGの精度向上
一方で、あまりRAGをうまく使いこなせないという声もちらほら出ている
https://scrapbox.io/files/65502a589712fb001bdd493a.png
https://scrapbox.io/files/65502aa802cea0001c069ad6.png
Knowledgeのファイル形式について
https://scrapbox.io/files/65b04c88d21b270024f785d0.png
https://scrapbox.io/files/65b04ccde4a5c200239967f6.png
mdファイルとして渡し、コードインタープリター経由で読み取らせると、コンテキストオーバーフローを回避できそう
RAGのデータ量について
https://scrapbox.io/files/65ae13cc0ee6fb0024aaa5be.png
GPT-4など多くのモデルでRAGで精度上がるのは周知の通りだけど、
https://scrapbox.io/files/65ae136b1dd61c0024fb7705.png
RAGで読ませるデータ量が一定の閾値を超えないと逆に素のLLMよりも精度が下がり、適切に内部知識での回答と組み合わせることが重要なことが端的によく分かる。
OpenAIのプロンプトエンジニアのテクニックでは、
プロンプトに埋め込むドキュメントが大きい場合モデルが早く停止する場合がある
モデルに「考える」時間を与える 章では以下の記述があります。
ドキュメントが大きい場合、モデルが早く停止し、関連するすべての抜粋をリストアップしないことがよくあります。
公式で読み込ませるドキュメントが大きい場合、モデルが早く停止する場合がある、と書いています。
たしかに大きいサイズのWebページやPDFなどを読み込ませると、最後まで本文を読んでくれないケースが多々あります。
対策としてPrompt Engineering Guideでは、 前回の回答で何かを見逃していないかモデルに尋ねる テクニックを紹介しています。
しかし、RAGアプリを作るケースでは、そもそも大きいサイズのプロンプトを投げるのが良くないのかもしれません。
筆者はRAGアプリを作る時に、大きめのサイズのドキュメントをプロンプトに埋め込んでいました。
ベンチマークを取ってもモデルの回答精度が不安で、プロンプトに埋め込むドキュメントサイズを無駄に大きくしがちだったのです。
改善策として、ベクターストアに挿入するドキュメントデータをチャンクサイズを小さくしてオーバーラップを大きくしたり、ベクターストアから検索したドキュメントデータを要約して埋め込んであげたり工夫をする良い機会になりました。
チャンク サイズの調整は、RAG アプリを改善する際に最初に取り組むべきことの 1 つですが、必ずしも直感的であるとは限りません。
⚠️チャンクが多いほど≠優れています (Lost in the middle / コンテキスト オーバーフロー)>
⚠️取得したチャンクを再ランキングしても必ずしも結果が改善されるわけではなく、実際には結果が悪化する可能性があります。
どのチャンク サイズが最適であるかを評価するには、評価ベンチマークを定義し、チャンク サイズ/上位 k 値をスイープする必要があります。
を使用してチャンク サイズのスイープを実行し、取得 + Q&A 評価を行う方法を示す包括的なスターター キット (Colab ノートブック + スライド) を考案しました。 RAG パイプラインを反復しようとしている場合は、必ずチェックしてください👇
https://scrapbox.io/files/65b03e56e0e7fd002492a401.png
https://scrapbox.io/files/65b05700b59aca0024f87129.png
miiboでも、ナレッジデータストアといって、リソースを学習させることができる
手動でデータを追加させるときのポイントは
1つのデータ入稿に複数の話題を含めない
全てのデータのフォーマットに統一感をもたせる
GPTsではないが、RAGについての良記事
ナレッジグラフを用いたRAGの改善
よく使われているRAGでは、外部知識源として検索エンジンにテキストをインデックスしておき、質問に関連するテキストをベクトル検索や全文検索を用いて取得する。しかし、構造化データを扱うことには苦労するため、質問によっては回答が不十分、あるいはまったく回答できないことに繋がる。
これらの問題を克服するために、ナレッジグラフを用いたRAGが構築されることがある。 ナレッジグラフでは、エンティティとその間の関係がグラフ構造で表現されており、単純な検索を用いた場合には回答できないような複雑な質問にも対応できる。