[논문리뷰] Learning to Filter Context for Retrieval-Augmented Generation
이 논문은 읽었는데, 감흥은 없었던 논문으로 생략할까 하다가, 읽은 시간이 아까워 기록용으로 남긴다.
- Silver Dataset만들기
- 훈련, 추론 시점에서 필터링 모델 다르게 사용
0.Abstract
RAG는 좋다.
- 그러나 검색 시스템이 완벽하지 않기에, 관련 없는 구절이 주어진 상태에서 출력을 생성하며 할루시네이션을 초래할 수 있음.
이를 완화하기 위해 FILCO를 제안함.
- 어휘적 및 정보 이론적 접근법을 기반으로 유용한 컨텍스트를 식별
- 테스트 시 검색된 컨텍스트를 필터링할 수 있는 컨텍스트 필터링 모델을 훈련하여, 컨텍스트의 품질을 향상
1. Introduction
- RAG는 효과적임
- 일반적으로 검색된 상위 몇개를 LM에 제공, 허나 검색 부분이 완벽하지 않아 취약함
- 정확한 출력을 생성하기 위해 정확한 RAG필요함 그러나 불완전한 검색 시스템만으로는 어렵다.
- 또는, 필요한 문서를 제공하나, 같이 제공된 문서에서 이상한 정보들을 주입하면 모델은 정확한 답을 하지 못함.
- 일부 연구들은 구절(passage) 수준에서 제공된 내용을 최적화하려고 시도함.
- 예를 들어, ReRank하거나, 관련 있는 구절만 제공, LLM이 Pretrained정보로 답을 하지 못할 경우에만 RAG를 하는 방법이 있다.
FILCO라는 방법을 제안
- STRINC : 구절이 생성 출력을 포함하는지 여부,
- LEXICAL 중복: 내용과 출력이 얼마나 많은 단어 중복을 가지는지
- CXMI: 내용이 제공될 때 생성기가 출력을 생성할 가능성이 얼마나 더 높아지는지.
6개의 모든 데이터셋에서 전체 컨텍스트 증강과 구절 단위 필터링이라는 두 가지 기준 방법을 모두 능가.
2 Generation with Filtered Contexts
2.2는 트레이닝을 하기 위한 데이터 span을 찾는 방법이다
2.1 Problem Statement
- q : 쿼리
- o : 출력
- e : 예제 = {q,o}
- Mgen : 생성모델
- 검색된 구절 : P = {p_i}, i ∈ K,
- 텍스트 span : t_i = 문장이라고 생각하면 된다.
- p_i : [t_1, t_2, ... , t_n] = 구절은 텍스트 스팬들로 구성되어있음.
- T : 모델의 인풋으로 들어가기 적합하다고 판단된 선택된 t_i 들
- 생성된 결과 : Mgen(o | q, T)
문장 단위 분할이 다른 가장 좋은 성능을 보였음.
2.2 Obtaining Oracle Contexts
오라클 텍스트 스팬을 선택하는 방법을 제안
- F(⋅) : 필터링 함수
- F( T | e, P) : 필터링함수를 사용하여 스팬을 선택. 예제와 Retreived Passgae가 인풋으로 들어가고, LLM의 인풋으로 들어가기 적합한 T들을 선택
- 여기서 T = {tji}의 텍스트 스팬은 함수 f(⋅)에 의해 선택됨.
성능
- 하나의 최상의 스팬 선택 > 다중 스팬 필터링
String Inclusion
f(t, o) ∈ {0, 1} : span이 output에 lexically포함되어 있는지, YN을 측정한다.
검색된 순위가 매겨진 구절 {p1, p2, ...}을 for loop하며, 첫 번째 텍스트 스팬 finc(t, o) = 1을 선택한다.
장점 : Passage가 출력 텍스트 o를 포함할 때 효과적임
단점 : supporting context도 필요 없는 것이라 생각할 수 있음.
Lexical Overlap
예제 e와 후보 텍스트 스팬 t 사이의 단어 중복을 계산하는 계산 f ∈ [0, 1]를 소개
- 더 많은 어휘 중복은 -> 더 높은 유사성을 나타내어 답을 생성하는데 더 높은 유용성을 갖는다.
- f의 스코어링 계산법
- QA 및 대화 생성 작업: 텍스트 스팬 t와 출력 o 사이의 F1 점수를 계산. -> 공통으로 들어있는 단어를 기준으로 f1 계산
- 사실 검증 작업: 텍스트 스팬 t와 쿼리 q 사이의 F1 점수를 계산
- 선택 기준:
- 예제 e와 가장 높은 유사성을 가진 문장 tji를 선택
- 선택된 문장은 임계값 λ = 0.5를 초과
- 장점:
- STRINC보다 더 유연한 방법으로, 정확한 문자열 일치가 아닌 단어 수준의 유사성을 측정
- 주제의 유사성을 더 잘 포착할 수 있다
- 단점 :
- 사실 검증과 같은 작업에서는 잘못된 주장과 높은 어휘 중복을 가진 텍스트가 선택될 수 있어, 오정보를 강화할 위험이 있다

Conditional Cross-Mutual Information (CXMI)(Figure 3)
- CXMI는 컨텍스트가 주어졌을 때와 주어지지 않았을 때의 출력 생성 확률 차이를 측정
- 계산 방법: f(t, e) = Mgen( o | t+q ) / Mgen( o | q )
- Mgen(o|t+q): 컨텍스트 t와 쿼리 q가 주어졌을 때 출력 o를 생성할 확률
- Mgen(o|q): 쿼리 q만 주어졌을 때 출력 o를 생성할 확률
- 해석:
- 이 비율이 1보다 크면, 컨텍스트 t가 출력 o의 생성 확률을 증가시킨다는 의미
- 1보다 작으면, 컨텍스트 t가 출력 o의 생성 확률을 감소시킨다는 의미
- 선택 기준:
- 가장 높은 CXMI 점수를 가진 텍스트 스팬 tji를 선택
- 선택된 스팬의 점수는 임계값 λ = 0.0보다 커야 한다.
- 장점:
- 어휘적 유사성에 의존하지 않아, 더 복잡한 관계를 포착할 수 있다.
- 모든 유형의 작업에 적용 가능하다.
- 단점:
- 계산 비용이 더 높다. 각 후보 컨텍스트에 대해 모델 추론을 두 번 수행해야 한다.
- 사용 예: 그림 3에서
- 쿼리 q: "The horse began to become domesticated around 2000 BC."
- 여러 후보 컨텍스트 t1, t2, t3에 대해 CXMI 점수를 계산한다.
- 가장 높은 점수(2.0)를 가진 t3이 선택된다.
2.3 Learning to Filter Contexts
- 모델 훈련하기
- 2.2에서 언급한 세가지 방법론을 통해서, 정답 span을 구한다.
- 인풋 : query, passage
- 모델 : M_ctx 학습 <- 답변을 하기 좋은 text를 추출하는 모델
- loss :
- target : 2.2에서 구한 세가지 방법론을 통해 구한 span(silver라고 명명)
- pred : 모델이 고른 text span
- target <-> pred 차이를 Loss로 할 것임.
2.4 Generation With Filtered Contexts ( Gen by M_gen - LLM )
- 학습시 : 2.2에서 구한 silver span들을 통해 학습을 진행
- input : [t_silver, query]
- Model : Mgen( o | t_silver, query)
- 추론시 : 훈련한 M_ctx를 통해 추론함
- input : [t_pred, query]
- Model : Mgen( o | t_pred + q ) = Mgen( o | M_ctx(q, P) + q )
- 아래와 같은 효용을 얻을 수 있다.
- 효율성: 필터링된 컨텍스트를 사용함으로써 입력 길이를 줄이고 계산 효율성을 높임.
- 관련성: 모델은 가장 관련성 있는 정보에 집중할 수 있음.
- 일관성: 훈련과 추론 모두에서 필터링된 컨텍스트를 사용하여 일관성을 유지