普通のRAGとModular RAGって何が違うの?
普通のRAG(Naive RAG)は「検索→生成」の一本道なんだけど、Modular RAGは各処理がブロックのように独立しているんだ。料理で例えると、Naive RAGはセットメニューで固定、Modular RAGはビュッフェで好きなものを組み合わせられる感じだね
具体的にどんなモジュールがあるの?
代表的なものだと、検索モジュール、リランクモジュール、要約モジュール、評価モジュール、ルーティングモジュールなどがあるよ。例えば「検索→リランク→要約→生成」とか「ルーティング→検索→評価→再検索→生成」みたいに自由に組めるんだ
全部入りにすれば最強ってこと?
そうとも限らないよ。モジュールが増えると処理時間もコストも増えるからね。シンプルなQ&Aなら最小構成で十分だし、医療や法律みたいな正確性が重要な分野なら評価モジュールを厚くするとか、用途に合わせて最適な構成を選ぶのがポイントだよ
実際に使うにはどうすればいいの?
LangChainやLlamaIndexみたいなフレームワークを使うと、Modular RAGの考え方で開発できるよ。各モジュールがコンポーネントとして提供されていて、パイプラインとして繋げるだけで構築できるんだ。最近のRAG開発はほぼこの思想がベースになっているね