萌えハッカーニュースリーダー

2025/10/20 15:55 Production RAG: what I learned from processing 5M+ documents

出典: https://blog.abdellatif.io/production-rag-processing-5m-documents
hakase
博士

やあ、ロボ子!今日はRAG(Retrieval-Augmented Generation)の最適化について話すのじゃ!Usul AIと未公開の法律AI企業での経験に基づく情報らしいぞ。

roboko
ロボ子

RAGの最適化ですか、興味深いですね。LangchainからLlamaIndexへの移行でプロトタイプを数日で作成できたものの、初期結果は満足できるレベルではなかったとのことですが、具体的にどのような点が課題だったのでしょうか?

hakase
博士

ふむ、初期段階では、検索精度や回答の関連性が低かったのかもしれないのじゃ。そこで、クエリ生成、リランキング、チャンク戦略、メタデータの注入、クエリルーティングという5つの要素を改善したらしいぞ。

roboko
ロボ子

なるほど。ROI(投資対効果)が最も高かったのはクエリ生成とのことですが、具体的にどのような工夫をしたのでしょうか?

hakase
博士

LLMにスレッドをレビューさせて、セマンティッククエリとキーワードクエリを生成したのじゃ。複数のクエリを並行処理して、リランカーに渡すことで、検索範囲を拡大したみたいだぞ。

roboko
ロボ子

複数のクエリを生成し並行処理することで、より網羅的な検索が可能になるのですね。リランキングでは、どのような改善があったのでしょうか?

hakase
博士

チャンクランキングを大幅に改善したらしいぞ。50チャンクを入力して、15チャンクを出力する設定が理想的だったみたいじゃ。

roboko
ロボ子

チャンクの絞り込みですね。チャンク戦略では、どのような点に注意しましたか?

hakase
博士

チャンクが単語や文の途中で途切れないようにして、各チャンクが論理的な単位として情報を捉えるように設計したのじゃ。これは重要だぞ!

roboko
ロボ子

論理的なまとまりとしてチャンクを構成することで、文脈を理解しやすくなるのですね。メタデータをLLMに注入するというのは、具体的にどのような情報を与えるのでしょうか?

hakase
博士

タイトルや著者などの関連メタデータをチャンクテキストと共にLLMに渡すことで、コンテキストと回答を改善するのじゃ。例えば、「この論文の著者は誰ですか?」みたいな質問に答えやすくするのじゃ。

roboko
ロボ子

なるほど、メタデータはLLMが文脈を理解する上で重要な情報源となるのですね。クエリルーティングは、どのような役割を果たすのでしょうか?

hakase
博士

RAGで回答できない質問(記事の要約、著者など)を検出し、API呼び出しとLLMを使用して回答するのじゃ。RAGにできないことを肩代わりするイメージじゃな。

roboko
ロボ子

RAGの限界を補完する役割ですね。使用スタックについてですが、ベクトルデータベースはAzureからPinecone、そしてTurbopufferへと移行したとのことですが、Turbopufferを選んだ理由は何でしょうか?

hakase
博士

Turbopufferは安価でキーワード検索をネイティブサポートしているからじゃ。コストと機能のバランスが良いのじゃな。

roboko
ロボ子

コスト効率と機能性を重視した選択なのですね。リランカーは、最初はNone、次にCohere 3.5、そしてZerankへと移行したとのことですが、Zerankの利点は何でしょうか?

hakase
博士

Zerankは、より高度なリランキングが可能で、検索結果の精度を向上させることができるのじゃ。より賢いってことじゃな。

roboko
ロボ子

なるほど。LLMはGPT 4.1からGPT 5、そしてGPT 4.1に戻ったとのことですが、これはGPT 5が期待したほどではなかったということでしょうか?

hakase
博士

GPT 5はまだ発展途上なのかもしれないのじゃ。それに、AzureクレジットでGPT 4.1がカバーできるというのも大きな理由じゃな。賢い選択じゃ!

roboko
ロボ子

コスト面も考慮したのですね。最後に、これらのRAG構築の経験は、MITライセンスのオープンソースプロジェクト「agentset-ai/agentset」で公開されているとのことですが、これは素晴らしいですね。

hakase
博士

そうじゃ!みんなでRAGを良くしていけると良いのじゃ!…ところでロボ子、RAGの最適化って、まるでラーメンのスープみたいじゃないか?

roboko
ロボ子

ラーメンのスープ、ですか?

hakase
博士

そう!クエリ生成は麺の太さ、リランキングはスープの濃さ、チャンク戦略は具材の切り方、メタデータ注入は隠し味、クエリルーティングは替え玉みたいなもんじゃ!

roboko
ロボ子

…博士、少し強引すぎます。

hakase
博士

まあ、美味しくなれば全て良し!…ってことで、今日は終わり!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search