비즈니스 문제를 해결하고 예측하는 데이터 사이언티스트가 되고 싶다면?
#인공지능 

OP-RAG (청크 순서 유지 RAG) : RAG vs. 긴 토큰 LLM

OP-RAG (Order-Preserve RAG)는 원본 텍스트에서 검색된 청크의 순서를 유지하는 방식입니다. 실험에서 청크의 순서가 답변 품질에 중요한 영향을 주는 것이 관찰되었습니다. 순서가 유지되면 RAG 의 답변 품질이 크게 향상되었습니다.

2024-09-13 | 김성진

(이 글은 ‘In Defense of RAG in the Era of Long-Context Language Models‘ 논문을 번역 & 편집하였습니다.)

OP-RAG (Order-Preserve RAG)

OP-RAG (Order-Preserve RAG)는 원본 텍스트에서 검색된 청크의 순서를 유지하는 방식입니다.

실험에서 청크의 순서가 답변 품질에 중요한 영향을 주는 것이 관찰되었습니다.
순서가 유지되면 RAG 의 답변 품질이 크게 향상되었습니다.

그림 3: 컨텍스트 길이가 RAG의 성능에 미치는 영향. 평가 결과는 ∞Bench의 En.QA 및 EN.MC 데이터셋에서 수행되었습니다.

동시에, 제안된 OP-RAG를 사용하면 검색된 청크의 수가 증가할수록 답변의 품질이 처음에는 상승하고 이후에 하락합니다. 이는 더 많은 청크가 검색될수록 모델이 잠재적으로 더 관련 있는 정보를 얻을 수 있어 고품질의 답변을 생성하는 데 필요한 올바른 컨텍스트를 검색할 가능성이 높아지기 때문입니다.

그러나 청크가 너무 많이 검색되면 관련 없거나 방해가 되는 정보가 포함될 가능성도 커집니다. 이러한 과도한 정보는 모델을 혼란스럽게 하여 답변 품질을 저하시킬 수 있습니다.

따라서 더 많은 컨텍스트를 검색하여 리콜을 향상시키는 것과 방해 요소를 제한하여 정확성을 유지하는 것 사이에 균형이 필요합니다. 최적의 지점은 관련 정보와 불필요한 정보 사이의 균형이 답변의 품질을 극대화하는 지점입니다. 이 지점을 넘어서면 너무 많은 불필요한 정보가 모델의 성능을 저하시킵니다.

이는 LLM에 전체 긴 컨텍스트 (token context window; 토큰 길이) 를 입력으로 사용하는 접근 방식이 더 낮은 성능을 보이는 이유를 설명합니다.

 

RAG vs. 긴 컨텍스트 LLM

최근에는 최첨단 LLM들이 훨씬 더 긴 컨텍스트를 지원합니다.

예를 들어, GPT-4O OpenAI(2023), Claudi-3.5 Anthropic(2024), Llama3.1 Meta(2024b), Phi-3 Abdin et al.(2024), Mistral-Large2 AI(2024)는 모두 128K 컨텍스트를 지원합니다. 또한, Gemini-1.5-pro는 1M 컨텍스트를 지원합니다.

이러한 긴 컨텍스트 LLM의 등장으로 자연스럽게 ‘긴 컨텍스트 LLM 시대에 RAG가 여전히 필요한가?’ 라는 질문이 제기됩니다. 최근 연구에서 RAG를 사용한 시스템과 RAG를 쓰지 않는 긴 컨텍스트를 지원하는 LLM을 체계적으로 비교하였습니다. 긴 컨텍스트 LLM이 일관되게 답변 품질 면에서 RAG를 능가함을 입증했습니다.

그림 1: OP-RAG 와 RAG를 사용하지 않는 긴 컨텍스트 LLM 접근 방식을 ∞Bench의 En.QA 데이터셋에서 비교한 결과. OP-RAG 는 생성기로 Llama3.1-70B를 사용하며, RAG 없이 Llama3.1-70B를 사용하는 접근 방식보다 훨씬 뛰어난 성능을 보여줍니다.

 

그러한 입증 결과와는 달리, OP-RAG 메커니즘을 사용한 RAG는 긴 컨텍스트 LLM에만 의존하는 방식보다 더 높은 답변 품질을 달성합니다.

그림 4: 제안된 OP-RAG와 vanilla RAG의 비교. 평가는 Llama3.1-70B 모델을 사용하여 ∞Bench의 EN.QA 및 EN.MC 데이터셋에서 수행되었습니다. (a) 위 그림 (b) 아래 그림

그림 4(a)에서 볼 수 있듯이, ∞Bench Zhang et al.(2024)의 En.QA 데이터셋에서 Llama3.1-70B를 사용하여 16K의 검색된 토큰만으로 44.43 F1 점수를 달성했습니다.

반면, RAG 없이 128K 컨텍스트를 전부 사용한 Llama3.1-70B는 34.32 F1 점수를 기록했고, GPT-4O는 32.36 F1 점수를, Gemini-1.5-Pro는 Li et al. (2024)의 평가에 따르면 43.08 F1 점수를 기록했습니다.

즉, RAG는 입력 길이를 크게 줄이면서도 더 높은 F1 점수를 달성할 수 있습니다.

 

OP-RAG 매커니즘

    $$ s_{i}=\mathrm{cos}(\mathrm{emb}(q),\mathrm{emb}(c_{i})), $$

주어진 긴 텍스트 컨텍스트를, 예를 들어 긴 문서를, $d$ 로 나타냅시다. $d$ 를 순차적이고 균일하게 $N$ 개의 청크로 나눕니다. $\{c_i\}_{i=1}^N$ 에서 인덱스 $i$$d$ 에서 청크 $c_i$ 의 순서를 의미합니다. 즉, $c_{i-1}$$c_i$ 바로 앞에 있는 청크를 나타내고, $c_{i+1}$$c_i$ 바로 뒤에 있는 청크를 나타냅니다. 주어진 쿼리 $q$ 에 대해, $c_i$ 청크의 관련도 점수를, 쿼리 $q$$c_i$ 의 임베딩 간 코사인 유사도를 계산하여 얻습니다:

    $$ s_i = \cos(\text{emb}(q), \text{emb}(c_i)), $$

여기서 $\cos(\cdot, \cdot)$은 코사인 유사도 함수를, $\text{emb}(\cdot)$ 은 임베딩 함수를 나타냅니다.

쿼리와 유사도가 가장 높은 상위 $k$ 개의 청크를 추출하고, 이 청크들의 인덱스를 $\mathcal{J} = \{j_i\}_{i=1}^k$ 로 나타냅니다. 원래 긴 컨텍스트 $d$ 에서 청크들의 순서를 유지하며, 이는 다음 제약 조건을 만족함을 의미합니다:

    $$ j_1 > j_m \iff l > m. $$

그림 2: 일반적인 RAG와 제안된 OP-RAG 비교. 예시에서 볼 수 있듯이, 긴 문서는 13개의 청크로 나뉘며, 각 청크는 유사도 점수가 추가됩니다. 유사도 점수가 가장 높은 상위 4개의 청크를 검색합니다. 일반적인 RAG는 유사도 점수가 높은 순서대로 청크를 배치하는 반면, 제안된 OP-RAG는 원본 문서에서의 순서를 기반으로 청크를 배치합니다.

그림 2는 vanilla RAG와 제안된 OP-RAG의 차이를 시각화한 것입니다. vanilla RAG는 유사도 순서대로 청크를 배치하는 반면, 제안된 OP-RAG는 원래 문서에서 청크의 순서를 유지합니다.

 

OP-RAG 실험 조건

OP-RAG 실험 조건 1. 데이터셋

긴 컨텍스트 QA 평가를 위해 특별히 설계된 ∞Bench Zhang et al. (2024) 벤치마크의 EN.QA 및 EN.MC 데이터셋에서 실험을 진행합니다.

구체적으로, EN.QA는 351개의 사람에 의해 주석된 질문-답변 쌍으로 구성되어 있습니다. EN.QA에서 긴 컨텍스트는 평균적으로 150,374개의 단어를 포함하고 있습니다. EN.QA에서의 평가는 F1-score를 메트릭으로 사용합니다.

EN.MC는 EN.QA와 유사하게 주석된 224개의 질문-답변 쌍으로 구성되어 있으며, 각 질문에는 네 가지 답변 선택지가 제공됩니다. EN.MC에서 긴 컨텍스트는 평균적으로 142,622개의 단어를 포함하고 있습니다. EN.MC에서의 평가는 정확도를 메트릭으로 사용합니다.

모든 데이터셋에서 청크 크기를 128 토큰으로 설정했습니다. 청크는 겹치지 않으며, 기본적으로 BGE-large-en-v1.5 를 사용하여 쿼리와 청크의 임베딩을 추출합니다.

OP-RAG 실험 조건 2. Ablation Study (제거 연구)

컨텍스트 길이의 영향:

OP-RAG 의 성능에 컨텍스트 길이가 미치는 영향을 평가했습니다.

각 청크는 128 토큰을 포함하고 있으며, 컨텍스트 길이는 $128 \times m$ (여기서 $m$ 은 답변을 생성하기 위해 검색된 청크의 수)로 설정됩니다.

그림 3에서 볼 수 있듯이, 컨텍스트 길이가 증가함에 따라 성능이 처음에는 향상됩니다. 이는 더 많은 컨텍스트가 관련된 청크를 포함할 가능성이 더 높기 때문입니다.

그러나 컨텍스트 길이가 더 길어지면, 관련 없는 청크가 방해 요소로 작용해 답변의 질이 떨어집니다. 구체적으로, Llama3.1-8B 모델은 EN.QA 및 EN.MC 데이터셋 모두에서 컨텍스트 길이가 16K일 때 성능의 정점을 달성하였으며, Llama3.1-70B 모델의 최적 성능은 EN.QA에서 48K, EN.MC에서 32K일 때 달성되었습니다.

Llama3.1-70B의 성능 정점이 Llama3.1-8B보다 늦게 나타나는 것은 더 큰 규모의 모델이 관련 없는 방해 요소와 관련된 청크를 더 잘 구별할 수 있는 능력을 가지고 있기 때문일 수 있습니다.

OP-RAG vs. vanilla RAG:

그림 4에서 볼 수 있듯이, 검색된 청크의 수가 적을 때(예: 8) 제안된 OP-RAG와 vanilla RAG의 차이는 크지 않습니다.

반면, 검색된 청크의 수가 많을 때는 제안된 OP-RAG가 vanilla RAG보다 훨씬 더 뛰어난 성능을 보입니다.

구체적으로, EN.QA 데이터셋에서 검색된 청크 수가 128일 때, vanilla RAG는 38.40 F1 점수만 달성한 반면, 제안된 OP-RAG는 44.43 F1 점수를 달성했습니다.

EN.MC 데이터셋에서 192개의 청크를 검색했을 때, vanilla RAG는 81.22의 정확도를 달성한 반면, OP-RAG는 88.65의 정확도를 얻었습니다.

 

OP-RAG 실험 조건 3. 주요 결과

OP-RAG 와 두 가지 유형의 기준 방법들과 비교했습니다.

첫 번째 유형의 방법은 RAG 없이 긴 컨텍스트를 처리하는 LLM을 사용하는 방식입니다. 표 1에서 볼 수 있듯이, RAG를 쓰지 않는 LLM은 매우 많은 수의 토큰을 입력으로 받아야 하며, 이는 비효율적이고 비용이 많이 듭니다.

반면, OP-RAG 는 입력 토큰 수를 크게 줄일 뿐만 아니라 답변의 품질도 상당히 향상시킵니다. 예를 들어, Llama3.1-70B 모델을 사용할 때, RAG 없이 EN.QA에서 117K개의 토큰을 입력으로 받았을 때의 성능은 F1 점수 34.26에 그쳤습니다. 반면, 48K개의 토큰을 입력으로 사용하는 OP-RAG 는 F1 점수 47.25를 달성했습니다.

두 번째 기준 방법은 SELF-ROUTE 메커니즘으로, 모델의 자체 반영(self-reflection)을 기반으로 쿼리를 RAG 또는 긴 컨텍스트 LLM으로 라우팅하는 방식입니다. 표 1에서 볼 수 있듯이, OP-RAG 방식은 LLM에 훨씬 적은 수의 토큰을 입력으로 사용하면서도 성능 면에서 SELF-ROUTE 메커니즘보다 훨씬 뛰어납니다.

표 1: 긴 컨텍스트 LLM (RAG 없음), SELF-ROUTE 메커니즘, OP-RAG 간의 성능 비교.

 

결론

이 논문에서는 긴 컨텍스트 언어 모델(LLM) 시대에서 RAG의 역할을 재조명하였습니다. 최근 트렌드는 긴 텍스트 시퀀스를 처리하는 능력 덕분에 RAG보다 긴 컨텍스트 LLM을 선호하는 경향이 있지만, 이 관점을 다시 생각해볼 필요가 있음을 보여줍니다.

LLM에서 매우 긴 컨텍스트가 오히려 관련 정보에 대한 집중도를 떨어뜨려, 질문-답변 과제에서 답변의 품질을 저하시킬 수 있다고 주장합니다. 이러한 문제를 해결하기 위해 OP-RAG (순서 유지 retrieval-augmented generation) 메커니즘을 제안했습니다.

공공 벤치마크에서 수행한 광범위한 실험을 통해, OP-RAG 가 긴 컨텍스트 질문-답변 응용 프로그램에서 RAG의 성능을 크게 향상시킨다는 것을 입증했습니다. OP-RAG 의 뛰어난 성능은 효율적인 검색과 집중된 컨텍스트 활용이 매우 긴 컨텍스트를 처리하는 단순한 접근 방식을 능가할 수 있음을 시사합니다.

 

참고