落合陽一先生風論文読解：Retrieval-Augmented Generation for Large Language Models: A Survey

論文[『Retrieval-Augmented Generation for Large Language Models: A Survey』](https://arxiv.org/pdf/2104.00633)を読むために、LLMに読解させた内容です。
一部僕が理解しやすいように書き直しています。

RAGについてサーベイした論文でも落合先生風の論文読解は使えるのでしょうか？

# どんなもの？
Retrieval-Augmented Generation (RAG) は、大規模言語モデル (LLM) の能力を向上させるための手法です。LLMは大量のテキストデータから学習し、人間のような文章生成や質問応答などが可能ですが、事実と異なる内容を生成してしまう問題（ハルシネーション） や、知識の更新が遅い などの課題があります。
RAGは、外部の知識ベースから関連情報を検索し、LLMへの入力として追加することで、これらの課題を解決しようとする技術です。具体的には、ユーザーからの質問に対して、まず外部知識ベースから関連する文書を検索し、その内容をLLMへの入力に追加して回答を生成します。

# 先行研究と比べてどこがすごい？

| 項目 | 従来のLLM | RAG |
| :- | :- | :- |
| 知識の範囲 | 学習時に得た知識のみ | 外部知識ベースを利用 |
| 情報の更新 | 遅い | 最新の情報にアクセス可能 |
| 信頼性 | 幻覚が発生しやすい | より正確で信頼性の高い回答 |
| 透明性 | 回答の根拠が不明瞭 | 情報源を明示可能 |

従来のLLMは、学習時に得た知識のみで回答を生成していました。そのため、知識の範囲が限定され、新しい情報への対応が遅く、幻覚が発生しやすいという問題がありました。
RAGでは、外部知識ベースを利用することで、LLMが常に最新の情報にアクセスできるようになり、より正確で信頼性の高い回答を生成できるようになりました。 また、回答の根拠となる情報源を明示することができるため、透明性も向上します。

# 技術や手法のキモはどこ？
RAGは、Retriever（検索器）、Generator（生成器）、Augmentation methods（拡張手法） の3つの主要コンポーネントで構成されています。
1. Retriever（検索器）
    - ユーザーの質問に対して、外部知識ベースから関連する文書を検索する役割を担います。
    - BM25、DPR、ColBERTなどの検索アルゴリズムが用いられます。
2. Generator（生成器）
    - Retrieverによって取得された文書とユーザーの質問を組み合わせて、自然で流暢な文章を生成する役割を担います。
    - 従来の言語モデルと同様の技術が用いられますが、RAGでは検索された文書の内容を反映した文章生成が求められます。
3. Augmentation methods（拡張手法）
    - 検索された文書をどのようにLLMの入力として活用するかを調整する役割を担います。
    - 例えば、文書を要約したり、質問に関連する部分のみを選択したりする手法があります。

RAGには、これらのコンポーネントをどのように組み合わせるかによって、**Naive RAG**, **Advanced RAG**, **Modular RAG** の3つの主要なパラダイムが存在します。

| パラダイム | 特徴 | 利点 | 欠点 |
| :- | :- | :- | :- |
| **Naive RAG** | RetrieverとGeneratorを単純に組み合わせたもの。 | * シンプルな構造で実装が容易<br>* 既存のRetrieverとGeneratorをそのまま利用できる | * Retrieverが適切な文書を検索できない場合、回答の精度が低下する<br>* Generatorが検索された文書を効果的に利用できない場合、回答の質が低下する |
| **Advanced RAG** | Naive RAGの課題を解決するために、RetrieverやGeneratorを改良したり、Augmentation methodsを導入したりしたもの。 | * Naive RAGと比較して、回答の精度と質が向上する<br>* より複雑な質問にも対応できる | * Naive RAGよりも実装が複雑になる<br>* 計算コストが増加する可能性がある |
| **Modular RAG** | Naive RAGやAdvanced RAGの枠組みを超えて、より柔軟なモジュール構成を可能にしたもの。 | * 非常に柔軟性が高く、さまざまなタスクやドメインに適用できる<br>* 他の技術と容易に統合できる | * システムが複雑になる可能性がある<br>* モジュール間の調整が難しい場合がある |

## （追加調査）
それぞれのパラダイムの代表的な論文は以下になります。

| パラダイム | 論文名 | 概要 |
| :- | :- | :- |
| Naive RAG | [Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks [Lewis et al., 2020]](https://arxiv.org/pdf/2005.11401) | RAG という用語が初めて登場した論文です。事前学習済み Retriever と事前学習済み seq2seq model (generator) を組み合わせ、End-to-End でファインチューニングを行うことで、より解釈可能でモジュール化された方法で知識を獲得する手法を提案しました。 |
| Advanced RAG | [REALM: Retrieval-Augmented Language Model Pre-Training [Arora et al., 2023]](https://arxiv.org/pdf/2002.08909) | Pre-trained Language Models (PTMs) のオープンQAにおけるパフォーマンスを、事前学習段階でRetrieval methodsを用いることで向上させる手法を提案しています。 |
|^  | [Improving Language Models by Retrieving from Trillions of Tokens [Borgeaud et al., 2022]](https://arxiv.org/pdf/2112.04426) | 自己回帰型言語モデルの事前学習に retrieval augmentation を活用することで、大規模なラベル付きデータからの検索を可能にし、モデルパラメータを大幅に削減しながら、ゼロから大規模な事前学習を実現する手法を提案しています。 |
|^  | [Few-Shot Learning with Retrieval Augmented Language Models [Izacard et al., 2022]](https://arxiv.org/pdf/2208.03299) | 事前学習とファインチューニングの両方の段階で retrieval mechanism を組み込んだ手法を提案しています。 |
| Modular RAG | [KnowledgeGPT: Enhancing Large Language Models with Retrieval and Storage Access on Knowledge Bases [Wang et al., 2023c]](https://arxiv.org/pdf/2308.11761) | コード形式で知識ベース (KB) の検索クエリを生成し、事前定義された KB 操作関数を組み込んだ手法を提案しています。 |

# どうやって有効だと検証した？

多くの研究において、RAGが従来のLLMと比較して、回答の正確性、信頼性、透明性を向上させることが示されています。 例えば、質問応答タスクにおいて、RAGを用いることで、LLMがより正確な回答を生成し、幻覚を抑制できることが実証されています。

# 議論はある？

RAGは有望な技術ですが、いくつかの課題も残されています。

| 課題 | 詳細 |
| :- | :- |
| 検索の精度 | Retrieverが適切な文書を検索できない場合、RAGの効果は限定的になります。 |
| 計算コスト | 外部知識ベースの検索には計算コストがかかります。 |
| 知識ベースの更新 | 外部知識ベースを最新の状態に保つ必要があります。 |
| 長文コンテキストの処理 | LLMのコンテキストウィンドウの制限により、長文の処理が難しい。 |
| RAGの頑健性 | ノイズや誤った情報を含む文書への対応が課題。 |
| RAGとファインチューニングの相乗効果 |  |
| RAGのエンジニアリング | 大規模知識ベースにおける検索効率や文書再現率の向上、企業データのセキュリティ確保などが課題。 |

# 次に読むべき論文は？

1. [Retrieval-based Language Models and Applications [Asai et al., 2023a]](https://aclanthology.org/2023.acl-tutorials.6.pdf)：
    - RAGの基礎から応用までを幅広く解説した論文です。
1. [Trends in Integration of Knowledge and Large Language Models [Feng et al., 2023b]](https://arxiv.org/pdf/2311.05876)：
    - LLMと知識を統合する手法を体系的にレビューした論文です。
1. [Large Language Models for Information Retrieval [Zhu et al., 2023]](https://arxiv.org/pdf/2308.07107)：
    - 情報検索におけるLLMの活用に関するサーベイ論文です。

# 所感
- サーベイ論文でも落合陽一先生風の読解はできた。
- サーベイ論文の読解だったので、次に読むべき論文もサーベイのものが主となっている。最新技術を知るためにも、パラダイムごとの代表的な論文を読み進めた方が良さそう。

# 参考文献
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks [Lewis et al., 2020]
- Retrieval-based Language Models and Applications [Asai et al., 2023a]
- Trends in Integration of Knowledge and Large Language Models [Feng et al., 2023b]
- Large Language Models for Information Retrieval [Zhu et al., 2023]
- RAGAS: Automated Evaluation of Retrieval Augmented Generation [Es et al., 2023]
- ARES: An Automated Evaluation Framework for Retrieval-Augmented Generation Systems [Saad-Falcon et al., 2023]