RAGの評価フレームワーク「RAGAS」の論文をまとめた

RAGASの論文をGPT-4を使用してまとめました。

https://arxiv.org/pdf/2309.15217.pdf

# 要約(introduction)
- RAGASは、Retrieval Augmented Generation（検索補強生成）システムの評価を行うためのフレームワークです。
- RAGASは、人間のアノテーション（注釈）を必要とせずに、検索システムの性能や生成されたテキストの品質など、さまざまな側面を評価するための指標を提供します。
- これにより、RAGシステムの評価サイクルが高速化され、LLMの急速な普及に対応できるようになります。

# 2章 関連研究
### LLMを使用して信頼性を推定する方法
   これらの研究では、LLM（Large Language Models）生成された回答の中で幻覚（hallucination）を検出する方法が検討されています。いくつかの研究では、少数のショットプロンプト（few-shot prompting）戦略を使用して事実性を予測するアイデアが提案されています（Zhang et al., 2023）。他のアプローチでは、生成された回答を外部知識ベースからの事実とリンクさせることによって信頼性を評価しています（Min et al., 2023）。また、個々のトークンに割り当てられた確率を調べるというような方法もある。

### テキスト生成システムの自動評価
   これらの研究では、LLMを利用して生成されたテキスト断片の他の側面（例えば、流暢さ）を自動的に評価する方法が検討されています。GPTScore（Fu et al., 2023）は、考慮される側面を指定するプロンプトを使用し、生成されたトークンの平均確率に基づいて文章を評価します。また、ChatGPTを使って、0から100のスコアや5段階評価で回答の特定の側面を評価する方法も提案されています（Wang et al., 2023a）。

これらの関連研究は、RAGASの開発において重要な役割を果たしており、RAGシステムの評価方法や生成されたテキストの信頼性を向上させるためのインスピレーションを提供しています。

# 3章　RAGASの評価戦略
RAGAS（Retrieval Augmented Generation Assessment）は、Retrieval Augmented Generation（RAG）パイプラインの参照フリー評価を行うためのフレームワークです。RAGASでは、以下の3つの評価指標を提案しています。

### Faithfulness（忠実度）
生成された回答が、取得されたコンテキストに基づいているかどうかを評価します。回答がコンテキストから導かれる主張に従っている場合、忠実度は高くなります。
Faithfulnessを自動的に評価するために、まずLLM（Large Language Model）を使用して、回答から一連の文（ステートメント）を抽出します。次に、各ステートメントがコンテキストから導かれるかどうかをLLMによって判断させます。最後に、Faithfulnessスコアは、LLMによってサポートされたステートメントの数を、ステートメントの総数で割った値として計算されます。

### Answer Relevance（回答の関連性）
生成された回答が、質問に対して適切に対処し、関連性があるかどうかを評価します。具体的には、回答の事実性には焦点を当てず、回答が不完全である場合や冗長な情報が含まれている場合にペナルティを与えます。
Answer Relevanceを推定するために、与えられた回答$a_s(q)$に基づいて、LLM（Large Language Model）に$n$個の潜在的な質問$q_i$を生成させます。次に、OpenAI APIから利用可能なtext-embedding-ada-002モデルを使用して、すべての質問の埋め込みを取得します。各$q_i$について、元の質問$q$との間の埋め込みのコサイン類似度を計算します。質問&q&に対する回答の関連性スコア$AR$(Answer Relevance)は、次のように計算されます。
```math
AR(Answer Relevance) = \frac{1}{n}\sum_{b=1}^{n}{sim(q, q_i)}
```

この指標は、生成された回答が最初の質問または指示とどれだけ密接に一致しているかを評価します。

### Context Relevance（コンテキストの関連性）
取得されたコンテキストが、質問に対して十分に焦点を当てているかどうかを評価します。コンテキストが質問に関連する情報を提供し、適切な範囲である場合、コンテキストの関連性は高くなります。
Context Relevanceを計算するために、まずLLM（Large Language Model）を使用して、質問$q$とそのコンテキスト$c(q)$から、質問に答えるのに重要な文のサブセットを抽出します。このプロンプトを使用しています：
```
Please extract relevant sentences from
the provided context that can potentially
help answer the following question. If no
relevant sentences are found, or if you
believe the question cannot be answered
from the given context, return the phrase
"Insufficient Information". While extract-
ing candidate sentences you’re not al-
lowed to make any changes to sentences
from given context.

【翻訳】
提供された文脈から、以下の質問の回答に役立つ可能性のある
関連する文章を抽出してください。
関連する文章が見つからない場合、または与えられた文脈から
質問に答えられないと考えられる場合は、
「Insufficient Information」というフレーズを返してください。
候補文を抽出する際、与えられた文脈から文を変更することは許されません。
```

次に、Context Relevanceスコアを以下の式で計算します：

``` 
CR = number of extracted sentences / total number of sentences in c(q)
```
このスコアは、抽出された文の数をコンテキスト内の文の総数で割ったもので、コンテキストがどれだけ関連性があるかを示しています。

# 4章　評価データセット
WikiEvalは、RAGASの評価指標である忠実度、回答の関連性、および文脈の関連性を人間が評価したデータセットです。

WikiEvalの作成には、まずWikipediaの記事からランダムに選ばれた質問とその回答を収集します。次に、各質問に対して、2つの異なる回答や文脈を比較するような形式でデータセットを構築します。これにより、評価者は2つの回答や文脈のうち、どちらがより忠実であるか、回答が質問に関連しているか、文脈が関連しているかを判断することができます。

データセットの作成には、Wikipediaの記事から質問と回答を抽出し、それらをChatGPTに入力して、2つの異なる回答や文脈を生成します。その後、評価者が各ペアの回答や文脈を比較して評価します。このデータセットは、RAGASの評価指標が人間の評価とどれだけ一致しているかを測定するために使用されます。

# 5章　実験
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1461625/50ecbea1-8626-554a-e665-5a9da91f5688.png)

提案されたWikiEvalデータセットを使用して、人間の評価とRAGASの評価がどれだけ一致するかを調べています。具体的には、faithfulness（忠実度）、answer relevance（回答の関連性）、context relevance（文脈の関連性）という3つの品質指標について、RAGASの評価が人間の評価とどれだけ一致するかを調べています。

実験では、RAGASと2つのベースライン（GPT ScoreとGPT Ranking）を比較しています。GPT Scoreは、ChatGPTに品質指標に基づいて0から10の範囲でスコアを割り当てるように指示する方法です。一方、GPT Rankingは、ChatGPTに品質指標に基づいて回答や文脈をランク付けするように指示する方法です。

実験結果は、提案されたRAGASの評価が、2つのベースラインよりも人間の評価とより密接に一致していることを示しています。特に、faithfulnessとanswer relevanceについては、RAGASの評価が非常に正確であることが示されています。一方、context relevanceは評価が難しいとされており、特に長い文脈において、ChatGPTが重要な文を選択するのに苦労することが観察されています。

この実験結果は、RAGASフレームワークが、特にfaithfulnessとanswer relevanceにおいて、人間の評価と密接に一致する評価を提供できることを示しており、RAGシステムの開発者にとって有益な洞察を提供できることがわかります。

# 結論
RAGAS（Retrieval Augmented Generation Assessment）は、RAG（Retrieval Augmented Generation）システムの自動評価のためのフレームワークです。RAGシステムの評価には、忠実度（回答が取得したコンテキストに基づいているか）、回答の関連性（回答が質問に対処しているか）、コンテキストの関連性（取得したコンテキストが十分に焦点を絞っているか）の3つの側面が必要です。RAGASは、これらの品質評価を実装し、開発者がグラウンドトゥルースがなくても貴重な洞察を得ることができるようにします。WikiEvalデータセットでの評価では、RAGASの予測が特に忠実度と回答の関連性において人間の予測と密接に一致していることが示されています。