目次
RAG(retrieval augmented generation)とは
外部データをなんらかの方法で選択に抽出し、ユーザー入力と併せてLLMに入力することで知識などの保管を補う手法を総じてRAGと呼びます。(抽出・補完を行うあらゆる手法)


外部データの表現方法/抽出方法は様々
RAG用の外部データをどのように表現するかには、対象データをテキストに絞っても様々なパターンがあります。また、どのようにデータを表現するかによって、取りうる抽出方法もおおむね絞られます。

テキスト埋め込み(embedding)
テキストの特徴を表現するベクトルに変換すること、あるいはそのベクトル自体を埋め込み(embedding)と呼びます。ベクトルへの変換は埋め込みモデルと呼ばれるニューラルネットワークによって行うのが典型的で、多くのモデルは意味の近いテキストはベクトルも近くなるように学習しています。

典型パターン:ベクトル型のRAG
RAGはLewis+(2020年)「論文タイトル: Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks」で提示されたアイデアで、当初からベクトル型のRAG覇権的な地位を確立していました。RAGの改善手法も、ベクトル型RAGのアーキテクチャを前提とするものが多くあります。
以下のベクトルかにembeddingが使われている

ベクトル型RAGの難所
ベクトル型RAGは検索・補完・回答という機能を提供するために必要なコンポーネントが比較的多く、性能の上下に関わるポイントが随所にあります。以下は性能低下につながる主なポイントです。

ベクトル型RAGに対する攻撃手法
