논문

Retrieval-Augmented Generation for Natural Language Processing: A survey

khseon7 2025. 1. 16. 20:10

→https://arxiv.org/abs/2407.13193

 

Retrieval-Augmented Generation for Natural Language Processing: A Survey

Large language models (LLMs) have demonstrated great success in various fields, benefiting from their huge amount of parameters that store knowledge. However, LLMs still suffer from several key issues, such as hallucination problems, knowledge update issue

arxiv.org

INTRODUCTION

대형 언어 모델(LLM)은 최근 몇 년간 비약적으로 발전하여 자연어 처리(NLP) 분야의 다양한 응용 프로그램에서 핵심적인 역할을 수행하게 되었다. 그러나 LLM은 환각, 지식 업데이트의 한계, 도메인 전문성 부족 등의 문제점을 보여왔으며, 이러한 문제들에 대한 RAG 해결 방안은 아래 표에 정리하였다.

LLM의 문제점 RAG에서 사용한 해결 방안
환각 문제 관련 정보를 검색하고 그 결과를 제공하여 정확도를 높인다.
지식 업데이트 문제 외부 DB만을 업데이트하여 데이터를 쉽게 추가할 수 있다.
도메인 전문성 확보 도메인별 지식 DB를 구축하고 이를 활용하여 도메인 특화 LLM으로의 변경이 가능하다.

OVERVIEW OF RETRIEVAL-AUGMENTED GENERATION

RAG는 Retriever, Retrieval Fusion, Generator, 이렇게 3가지 주요 모듈로 구성되어 있다.

 

Retriever 모듈

외부 지식 DB에서 관련 정보를 검색하는 역할로 다음 세 가지 구성 요소로 이루어져 있다.

  • Encoder: 입력 데이터를 임베딩으로 변환
  • Efficient Indexing: 근사 최근접 탐색(ANN)을 지원하는 인덱싱 방식
  • Datastore: 외부 지식을 키-값의 쌍 형태로 저장

주요 과제

  • 검색 효율성: 빠른 정보 검색을 위한 인코딩 가속, 효율적 인덱싱, 배치 쿼리 쿼리 처리 등이 필요
  • 검색 품질: 관련성 높은 정보를 검색하기 위해 청크 표현 학습 및 고급 ANN 알고리즘 활용

Retrieval Fusion

검색된 정보를 활용해 생성 과정을 강화하는 방법으로 주로 다음 세 가지 기법이 있다.

  • Query-based Fusion: 검색된 정보를 입력 데이터에 추가하여 생성기로 전달하는 기법
  • Latent Fusion: 검색된 정보를 생성기의 잠재 표현에 통합
  • Logits-based Fusion: 생성기의 출력 로짓과 검색된 정보의 로짓을 결합

Generator

응답을 생성하거나 예측을 수행하며 다음 2가지로 나뉜다.

  • Default Generator: 기존의 Pre-trainig/Fine-tuning 된 LLM(GPT 시리즈, Mistral, Gemini 등)
  • RA Generator: 검색 정보를 융합하는 모듈을 포함한 특화된 생성기(ex. RETRO, EncDec)

Workflow of RAG

RAG의 작업 순서는 정보 검색 → 정보 융합 → 응답 생성의 순서대로 진행된다.

  1. 정보 검색: 주어진 입력을 기반으로 외부 DB에서 관련 정보를 검색한다.
  2. 정보 융합: 검색된 정보를 입력 데이터 또는 생성기의 중간 상태와 융합한다.
  3. 응답 생성: 입력 데이터와 융합된 정보를 활용하여 생성기가 예측을 수행한다.

Figure 1. Overview of RAG

RETRIEVER

Retriever는 크게 Building과 Querying 이렇게 두 단계로 구성된다.

  1. Building: Retriever 설정하고 학습하여 DB에서 효과적으로 정보를 검색할 수 있도록 준비하는 단계
  2. Querying: 구축된 Retriever를 활용해 입력에 기반한 관련 정보를 DB에서 검색하는 단계

Building the Retriever(Figure 2-a)

대규모 자연어 코퍼스를 사용하여 Retriever를 구축하는 과정은 다음 세 단계로 이루어진다.

 

1. 코퍼스 분할(Chunking Corpus)

 

대규모 문서를 작은 텍스트 청크로 나누는 과정으로 Retriever 구축에서 필수적인 단계이다.

 

Chunking을 하는 이유

  1. 독립적 의미 보장
    → 청크는 하나의 핵심 아이디어를 담아야 하며, 의미가 독립적이어야 한다. 그러나 짧은 텍스트의 경우 애매성이 증가할 수 있다.
  2. 자원 효율성
    → 긴 문서 인코딩은 리소스를 많이 소모하고, 짧은 청크를 처리하면 인코딩 속도와 메모리 사용량 절감이 가능하다.

최적의 청크 크기 결정을 위한 3가지 주요 고려 사항은 다음과 같다.

  • 작업의 특성: 작업 유형에 따라
  • 인코더 특성: 인코더 모델의 텍스트 길이에 따라
  • 쿼리의 특성: 사용자 쿼리 길이와 청크 크기가 일치하면 검색 적합도가 증가한다.

최적의 청크 크기에는 고정된 규칙이 없으며, 특정 RAG 시나리오에 따라 크기가 결정된다.

 

Chunking의 주요 3가지 기법

  • 고정 길이 분할
  • 의미 기반 분할: 의미 단위로 분할(ex. 마침표, 줄바꿈)
  • 내용 기반 분할: 문서의 구조적 특성을 기준으로 분할

2. 청크 인코딩(Chunk Encoding)

 

인코딩은 텍스트 청크를 벡터 표현으로 변환하는 과정, 검색 시 키워드 매칭이 아닌 내용의 유사성 기반으로 검색을 가능하게 한다.

  희소 인코딩(Sparse Encoding) 조밀 인코딩(Dense Encoding)
설명 고차원 벡터에서 대부분의 값이 0인 방식 각 차원이 의미적 특징을 포착하는 고차원 벡터로, 대부분의 값이 0이 아닌 실수
예시 One-Hot Encoding, Bag of Words, TF-IDF BERT 및 변형 모델, Siamese Encoder, LLM 기반 인코더

조밀 인코딩이 의미 정보를 더 잘 포착하여 현재 대부분의 의미 표현 시나리오에서 사용된다.


3. 벡터 DB 구축(Building the Vector DB)

 

벡터 DB에서 인덱싱은 고차원 쿼리 임베딩과 유사한 데이터를 빠르게 검색하기 위해 사용된다. 이 방식의 주 목표는 검색 품질과 검색 효율성 간의 균형을 맞추는 것이다.

 

인덱싱 최적화 방법은 다음 세 가지 방법이 있다.

  1. 유사도 측정법
     쿼리 임베딩과 청크 임베딩 간 관련성을 측정한다.
    ex) 코사인 유사도, 유클리드 거리, 맨하탄 거리 등
  2. 임베딩 차원 축소
    차원 축소는 검색 효율성을 높일 수 있으나 의미 정보의 손실이 발생할 수 있다.
    • PCA: 주요 특성을 유지하며 데이터를 변환
    • LSH: 유사 데이터를 동일한 버킷으로 매핑하여 차원을 축소
    • PQ: 고차원 공간을 작은 독립적으로 양자화된 하위 공간으로 나누어 효율적으로 검색
  3. 고급 ANN 인덱싱 기법
    • IVFPQ: 데이터 클러스터링 + 양자화
    • HNSW: 계층적 그래프 구조를 사용
    • 트리 기반 인덱싱: 고차원 벡터를 트리 형태로 조직하여 빠른 검색을 지원     (ex. Annoy, KD-Trees)

4. 키-값 쌍을 활용한 데이터스토어 구축

 

벡터 DB에서 데이터스토어는 고차원 임베딩의 고유 식별자(key)와 도메인-specific 지식(value)을 키-값 쌍으로 저장하고 관리하는 특수한 DB이다.

 

모든 키와 값의 메모리 비용이 서버의 메모리 용량을 초과할 수 있으므로, 효율적인 검색과 데이터 지속성을 지원하는 스토리지 엔진이 필요하다.    (ex. LMDB, RocksDB)

 

  • 값 저장 방식: ANN 검색을 위해 값으로 무엇을 저장할지가 중요
  • 대표적인 벡터 DB: Milvus, FAISS, LlamaIndex 등

Querying the Retriever (Figure 2-b)

미리 구축된 Retriever를 쿼리 하는 방법은 쿼리 인코딩 → ANN 검색 → 후처리, 세 가지 방법으로 이루어진다.

 

1. 쿼리 인코딩 및 ANN 검색

 

쿼리 단계에서 retriever는 미리 구축된 임베딩 공간에 맞추기 위해 동일한 인코더를 사용하여 쿼리를 인코딩한다.

 

ANN 검색은 미리 구축된 인덱스와 데이터스토어를 활용하여 유사한 데이터를 근사 최근접 이웃 알고리즘을 통해 찾고 해당 값을 검색하는 과정이다.

  • 인덱스 검색: 쿼리 임베딩을 클러스터 임베딩과 비교하여 상위 k개의 이웃을 찾고, 각 이웃의 고유 식별자를 반환
  • 데이터스토어에서 값 검색: 최근접 이웃의 키 식별자를 기반으로 해당 값을 가져온다.

2. 후처리(Post-Processing)

 

후처리는 초기 검색 후 결과를 정제하거나 개선하기 위해 수행되며, 특정 작업 목표에 맞게 검색된 정보를 조정한다.

 

주요 후처리 기법 중 하나인 재정렬은 검색된 정보를 작업 특화 기준에 따라 재배열한다.


RETRIEVAL FUSIONS

Retrieval fusion은 검색된 지식을 활용해 생성기의 성능을 향상시키는 방법으로, 다음 세 가지 방법이 있다.

  1. Query-Based Fusion
    → 검색된 지식을 쿼리에 직접 통합하여 생성기의 입력을 확장
  2. Logits-Based Fusion
    → 생성 과정에서 출력 확률(logits)에 검색 결과를 반영
    생성기의 예측과 검색 결과 간의 결합으로 정확성 향상
  3. Latent Fusion
    → 검색된 지식을 잠재 공간에서 통합
    생성기가 잠재 임베딩을 기반으로 지식과 상호작용하여 보다 정교한 출력 생성

1. Query-based Fusion

  텍스트 결합(Text Concatenation) 특징 결합(Feature Concatenation)
특징 - 검색된 문서를 원본 쿼리에 직접 연결하여 입력을 확장하는 방식
- GPT-4와 같은 LLM과 호환이 잘 됨
- API 기반 상호작용을 통해 사용이 가능
- 검색된 데이터를 임베딩 형태로 변환하여 입력 특징과 통합
- 검색된 데이터를 희소 또는 밀집 표현으로 변환
- FID(Fusion-In-Decoder)와 같은 방법 사용
- FID 방식은 성능이 우수하며, 검색기와 인코더를 공동 튜닝하여 성능을 더욱 향상시킬 수 있다.
구현 방법 - 입력과 검색된 상위 k개의 문장/문서를 연결
- 효과적인 프롬프트 템플릿 설계로 맥락 학습 능력을 극대화
- 검색된 문서를 임베딩하여 입력 특징과 결합
- 생성기에 결합된 특징을 입력으로 제공
문제점 및 해결책 - 긴 입력으로 인해 모델 입력 제한 초과 가능
- 중요도 가중치를 기반으로 덜 관련된 컨텍스트를 필터링하는 방법 도입
- 긴 시퀸스로 인한 높은 메모리 비용 발생

2. Logits-based Fusion

  앙상블 기반 융합(Ensemble-Based Fusion) 보정 기반 융합(Calibration-Based Fusion)
특징 - 검색된 지식의 logits을 여러 예측의 앙상블 일부로 사용
- 모델의 일반화와 강건성 향상
- 검색된 지식의 logits을 모델 예측의 보정 도구로 사용
- 모델의 신뢰도를 기반으로 logits을 보정
장점 - 다양한 데이터 간 결합으로 더욱 강력한 예측 생성 - 모델의 예측 신뢰도와 정확도를 동시 개선
대표 사례 - kNN-LM, kNN-MT - Confidence-Enhanced kNN-MT, Source Context Calibration

3. Latent Fusion

  Attention-Based Fusion Weighted-Addition Fusion
장점 - 대규모 DB를 활용해 효율적이고 확장 가능한 언어 모델 생성 가능 - 계산 비용이 적어 효율적, 모델이 동적으로 관련 지식을 선택 및 통합 가능
단점 - Attention 방식의 높은 복잡성 때문에 계산 비용이 크다. - Attention-Based에 비해 정교한 정보 병합에는 한계가 있다.
대표 사례 - RETRO(Retrieval-Enhanced Transformer) - EAE Model, ReFusion

GENERATOR

대표적인 생성 모델과 RAG 생성 모델들이 일반적으로 대규모 데이터셋으로 사전 학습된다.

대표적인 생성 모델

  • 대부분 트랜스포머 기반 아키텍처를 채택하거나 수정한 LLM으로 구성된다.
  • 이 모델들은 인코더 모듈을 제거하고 디코더 모듈(Attention 모듈과 Feed-forward Network 모듈만을 포함)을 중심으로 설계된다.
  • 성능 향상을 위해 Root Mean Square Layer Normalization, Rotary Position Embedding, Group Query Attention 메커니즘 등의 고급 기술이 사용된다.

검색-증강 생성 모델

  • 기존 LLM 아키텍처에 새로운 모듈을 추가하여 설계된 모델
  • 대규모 데이터셋과 외부 지식 DB를 함께 사용하여 사전 학습된다.
  • 주로 잠재적 융합 방식을 활용하여 외부 지식을 언어 모델의 히든 상태에 통합한다.
  • 기존 생성 모델에 외부 지식을 추가하여 성능과 응용 범위를 더욱 확장시키는 특징이 있다.

RAG TRAINING

RAG 훈련의 2가지 범주

  1. Datastore 업데이트가 없는 RAG
    • 훈련 중 RAG의 각 모듈에 있는 학습 가능한 파라미터만 업데이트된다.
    • Datastore의 내용은 훈련 단계 동안 변경되지 않는다.
  2. Datastore 업데이트가 있는 RAG
    • 훈련 Datastore의 지식이 업데이트된다.
    • 이후, Datastore가 업데이트된 상태에서 RAG의 각 모듈의 파라미터가 첫 번째 경우와 유사한 방식으로 업데이트한다.

1. RAG without Datastore Update

Datastore 업데이트 없이 RAG를 훈련하는 목표는 기존 지식 저장소를 기반으로 생성기의 단기 메모리에 저장된 지식을 업데이트하는 것이다.

 

훈련 방법 (Figure 4-a~c)

  1. Retriever 훈련
    Retriever 인코더를 훈련하고 인덱스를 재구축하는 것을 의미한다. 이 과정은 주로 Dense Encoding 방식에 해당하며, Sparse Encoding은 통계적 방법에 의존하기 때문에 훈련 대상이 아니다.
    1. 훈련 목표
      • 의미 표현 개선: 더 강력한 인코더로 교체(ex. DistilBERT, TinyBERT)
      • 인코딩 프로세스 가속화: 경량화된 인코더 활용
      • 도메인 특화 표현 학습: 대조 학습(Contrastive Learning)을 사용해 특정 도메인 데이터셋에 맞춰 인코더 훈련
    2. 인코더 훈련 후 영향
      • 훈련된 인코더로 생성된 임베딩이 변경됨에 따라 인덱스를 재구축해야 한다.
      • 인코더가 변경되지 않는 경우, 새로운 근사 최근접 탐색(ANN) 알고리즘을 도입하거나 하이퍼파라미터를 조정하여 인덱싱을 최적화할 수 있다.
    3. RAG 통합: 훈련된 Retriever는 Generator를 업데이트하지 않고도 RAG에 바로 통합 가능
  2. Generator 훈련
    Generator의 파라미터 또는 Retrieval Fusion 모듈의 파라미터를 업데이트하는 과정을 포함한다.
    1. 훈련 특징
      • Generator는 주로 LLM으로 구성되며, 이를 훈련하는 데 많은 리소스와 시간이 소요된다.
      • LoRA와 같은 효율적인 파라미터 미세조정 기법이 이를 해결하는 데 도움을 준다.
    2. Retrieval Fusion 모듈의 파라미터
      • 이 모듈의 파라미터는 Generator에 비해 수는 적지만, 단독으로 미세조정할 경우 수렴 문제나 과적합 같은 훈련 문제가 발생할 수 있다.
    3. 공동 훈련의 이점
      • Generator와 Retrieval Fusion 모듈의 파라미터를 공동으로 조정하면, 충분한 리소스가 있을 경우 더 나은 훈련 결과를 얻을 수 있다.
  3. Retriever와 Generator 공동 훈련
    공동 훈련은 다운스트림 작업에서 더 나은 성능을 제공할 수 있는 방법
    1. 공동 훈련의 핵심
      • 입력부터 출력까지의 미분 가능성을 보장해야 한다.
      • 미세 조정(Fine-tuning) 단계에선 FAISS와 같은 복잡한 인덱스를 사용하는 것이 적합하지 않다.
    2. 효율적인 인덱싱 방법
      • 복잡한 인덱스는 사전 선택 단계에서 사용되어, 근접 이웃 후보군을 소규모로 선정한다.
      • 이후, 최종 상위 k개의 근접 이웃은 행렬 곱셈 연산을 통해 결정
    3. 공동 훈련의 이점
      • Retriever와 Generator 간의 조화를 강화하여 더 나은 end-to-end 최적화 가능
      • Generator의 문맥 이해 능력을 향상시킨다.

2. RAG with Datastore Update

 

Figure 4-d에 설명된 시나리오는 지식 DB Update, Retriever와 Generator 훈련 이렇게 두 단계로 구성된다.

  1. 지식 데이터베이스 업데이트 방법
    • 훈련 가능한 임베딩으로 업데이트 (RAG의 파라미터와 함께 동기적/비동기적 방식으로 임베딩 값을 훈련하고 업데이트)
    • 새로운 값으로 업데이트 (기존 데이터에서 답변 업데이트)
    • 새로운 코퍼스 추가 (새로운 질문-답변 쌍을 추가하고, 새 키에 대해 삽입 작업 후 인덱스를 재구축/업데이트)
  2. 업데이트 과정
    • 기존 키 값 업데이트 (기존 키-값 쌍을 먼저 조회 후 인플레이스 업데이트를 수행)
    • 새로운 키 삽입 (Datastore에서 새 데이터를 삽입한 후 인덱스를 갱신)
  3. Retriever와 Generator 훈련
    • Datastore 업데이트 후 훈련 과정은 Datastore 업데이트 없이 RAG를 훈련하는 방식과 유사하다.
    • 하지만 LLM의 문맥 학습 능력 덕분에, 항상 추가 훈련이 필요한 것은 아니다.

TASKS

1. Language Modeling

언어 모델링은 주어진 단어 또는 문자 시퀸스에서 다음 단어나 문자의 확률 분포를 예측하는 작업으로 Next-token Prediction 작업이라고도 한다. 이는 LLM의 사전 학습의 핵심 과제로, 생성 능력을 Perplexity라는 지표로 평가한다.

  • 공식 정의
    • 주어진 토큰 시퀸스에 대해, 언어 모델링은 다음과 같은 확률로 모델링할 수 있다.
    • 아래 조건부 확률은 파라미터화된 언어 모델에 의해 계산된다.

Modeling

RAG 기반 언어 모델링 개선

  1. 생성기 아키텍처 수정
    • Cross-Attention Module을 트랜스포머 블록에 추가해 검색된 지식을 통합
    • 유사한 Prefix와 다음 토큰을 사용해, 교차 주의 모듈이 Prefix와 다음 토큰 간의 패턴을 학습(모델 전진 단계)
    • 세 가지 검색 메모리/DB를 활용해 검색된 이웃을 통해 다음 토큰 확률 분포 최적화
  2. 입출력 증강
    • 검색된 지식을 입력에 연결하거나, 출력의 로짓에 융합하여 모델 증강
    • ex. 검색된 지식을 입력에 연결해 생성기로 전달, 입력과 검색된 정보의 로짓을 융합해 최종 확률 분포 생성
    • 모델의 강건성 증가
  3. BM25 기반 사전 학습
    • BM25와 같은 의미적 검색기를 활용해 사전 학습된 모델로 언어 모델링 성능 개선

2. Machine Translation(MT)

컴퓨터 언어학 알고리즘을 활용하여 텍스트 또는 음성을 한 언어에서 다른 언어로 자동 번역하는 기술로, 원문의 의미를 유지하며 정확하고 유창한 번역을 생성하고, 대상 언어의 문법 및 스타일 규칙을 준수하는 것을 목표로 한다.

 

발전 과정

  1. Rule-Based Machine Translation(RBMT): 규칙 기반 번역
  2. Statistical Machine Translation(SMT): 통계 기반 번역
  3. Neural Machine Translation(NMT): 딥러닝 기술을 활용하여 번역 품질을 크게 향상시킨다.

RAG 기반 MT 개선

  1. 검색된 번역 예제 활용
    • 입력에 예제 추가: 유사한 번역 예제를 검색해 소스 텍스트와 대상 텍스트를 연결하거나, 입력에 포함
    • 출력 로짓 융합: 검색된 소스 텍스트를 모델에 입력하고, 다음 대상 토큰의 로짓을 계산 후 융합하여 최종 예측 생성
    • 로짓 보정: 검색된 예제를 로짓을 활용해 최종 로짓을 보정하여 생성의 강건성 향상
  2. 훈련 과정에서 외부 지식 도입
    • 유사 번역 예제를 통해 객관 함수에 외부 지식을 추가하여 표현 공간을 개선
  3. 번역 메모리 활용
    • 유사 번역 예제를 번역 메모리로 저장하고, Cross-Attention module을 통해 이 지식을 도입
  4. 번역 속도 향상
    • 사전 구축된 데이터 서브셋이나 동적 데이터스토어를 활용하여 검색 속도 개선
    • 청크 단위로 검색 수행

3. Text Summarization

텍스트 요약은 긴 문서를 짧은 버전으로 축약하면서 핵심 정보와 전체 메시지를 유지하는 작업으로 일관성 있고 유창한 요약문을 생성하여 원본의 주요 정보를 전달하는 것이다.

 

주요 유형

  1. 추출적 요약: 원문에서 중요한 부분을 선택해 구성
  2. 추상적 요약: 텍스트의 본질을 새로운 간결한 형태로 재작성

RAG 기반 텍스트 요약 개선

  1. 유사 요약문 활용
    • 입력 연결: 검색된 유사한 요약문을 입력에 연결하여 요약 생성
    • 중간 계층 융합: Cross-Attention 모듈을 통해 중간 계층에서 특징을 융합
    • 출력 계층 융합: 로짓 집합을 융합하여 최종 출력 생성
  2. 적응형 검색
    • 생성 과정 중 적응적 검색

4. Question Answering(QA)

QA는 자연어로 된 질문에 대해 자동으로 답변을 생성하는 시스템을 구축하는 NLP의 기본적인 작업으로 크게 개방형(다양한 주제)과 폐쇄형(특정 분야)으로 분류된다. QA의 주요 도전 과제는 질문의 의도 이해와 정확하고 관련성 있는 정보를 검색하여 간결한 답변을 제공하는 것으로 해당 논문에선 개방형 QA 시스템에 대해 다룬다.

 

RAG 기반 QA 시스템 개선

  1. 검색과 생성 결합
    • 지식 검색 및 답변 생성: 개방형 QA 시스템은 인터넷이나 대규모 DB에서 지식을 검색하고 해당 지식을 바탕으로 답변을 생성
    • 질문과 답변의 패턴 학습: RAG의 생성기는 유사한 질문과 그에 대응하는 답변을 입력에 연결하여, 질문과 답변 사이 패턴을 학습하고 답변 유추
  2. 문서 기반 QA
    • 참고 문서 기반 QA: 특정 QA 작업에서는 주어진 참고 문서 집합을 사용하여, 검색기가 관련 문서를 검색하고, 생성기는 이 문서를 읽고 최종 답변을 생성
  3. 지식 그래프 활용
    • 지식 그래프로 관련 사실을 검색하고, 이를 입력과 함께 생성기에 제공하여 답변을 생성
  4. 임베딩 결합
    • 텍스트를 직접 연결하는 대신, 검색된 임베딩을 입력 임베딩과 결합하여 인코더-디코더 모델에 입력
  5. 내부 상태 및 로짓에 지식 결합
    • 내부 상태에서의 지식 융합: 엔터티, 청크, 문서 등을 내부 상태에 주입
    • 로짓에서의 지식 융합: 검색된 정보와 입력의 로짓을 앙상블 기법으로 결합
  6. 기타 향상 방법
    • 추가 훈련 데이터로 QA 쌍 활용: 검색된 질문-답변 쌍을 추가 훈련 데이터로 사용
    • 검색기 모듈 최적화: 검색기 DB 구축 시 표현 개선, 순위 모델로 인덱싱 대체, 두 개의 쿼리로 구문 검색
    • 생성 효율성 향상: Layer-sparse Cross-Attention으로 디코딩 속도 개선
    • 검색의 유효성 평가: 검색된 정보가 항상 유용하지 않음을 인식하고 검색 여부를 학습
    • RAG와 에이전트 결합: 에이전트를 결합하여 반복적인 추론을 통해 최종 결과 도출

5. Information Extraction(IE)

IE는 비구조화 또는 반구조화된 텍스트 소스에서 구조화된 정보를 자동으로 추출하는 중요한 NLP 작업으로, Named Entity Recognition (NER), Entity Linking (EL), Coreference Resolution (CR), Relation Extraction (RE) 등이 있다. IE는 텍스트에서 핵심 요소를 식별 & 분류하여 이들의 관계를 이해하고, 텍스트 데이터를 분석 & 해석에 적합한 구조화된 형식으로 변환하는 것을 목표로 한다.

 

RAG 기반 IE 향상

  1. NER: 비슷한 문장 검색 후 상위 검색 결과를 입력에 연결하여 더 나은 의미 표현을 얻는 방식으로 성능 향상
  2. Event Argument Extract(EVE)
    • 샘플링 기반 방법을 사용하여 검색된 텍스트와 입력 텍스트 간의 이벤트 라벨 분포 일치를 보장 & 성능 향상
  3. 표 정보 추출: 표에서 정보 추출을 위해 RAG 방식 사용

6. Text Classification

텍스트 분류는 NLP 애플리케이션에서 흔히 사용되는 작업으로 그중 감정 분석은 텍스트에서 전달되는 감정적 톤을 식별하고 분류하는 작업이다. 이 감정 분석은 소비자 피드백을 이해하고, 브랜드 평판을 모니터링하며, 다양한 문제에 대한 여론을 파악하는 데 중요한 역할을 한다.

RAG 기법을 활용한 감정 분석 향상

  1. 검색된 옵션과 프롬프트 기반 라벨을 입력과 함께 연결
  2. 검색된 임베딩을 입력 임베딩과 연결한 후 디코더에 전달
  3. Cross-Attention 또는 랭킹 기반 추가를 통해 검색된 특징을 생성기의 은닉 상태에 융합
  4. 출력 로짓에 검색된 결과를 앙상블 기법으로 융합
  5. 지식을 더 정확하게 위치시키기 위해 두 쿼리를 사용

7. Dialogue Systems

대화 시스템은 사용자와의 대화를 텍스트나 음성 형태로 시뮬레이션하는 시스템으로 업무 지향 시스템과 자유 대화 시스템으로 나눌 수 있다. 대화 시스템의 목표는 사용자 의도 이해, 맥락 유지, 일관되고 관련성 있는 응답 생성이다.

  • 업무 지향 시스템: 티켓 예매나 음식 주문과 같은 특정 작업을 돕는다.
  • 자유 대화 시스템: 다양한 주제에 대해 일반적인 대화를 이어간다.

RAG 기법을 활용한 대화 시스템 향상

  1. 검색된 대화 이력을 현재 입력과 함께 연결
  2. 이전 응답을 인코딩한 후, 결합된 임베딩을 디코더에 전달하여 새로운 응답 생성

APPLICATIONS

1. LLM-based Autonomous Agents

LLM-based Autonomous 에이전트는 인간의 개입 없이 작업을 수행하는 지능형 소프트웨어 시스템으로 LLM을 새로운 에이전트로 멀티모달 인식, 도구 활용, 외부 기억 등을 통해 능력을 확장해 나간다. 특히 외부 장기 기억은 RAG의 지식 저장소 역할을 하며, 에이전트가 외부 지식을 통합할 수 있는 능력을 제공한다. RAG를 적용하여 더 넓은 범위의 정보에 접근하여 에이전트의 의사결정 및 문제 해결 능력을 향상시킬 수 있다.

 

RAG를 활용한 LLM 기반 에이전트의 적용 방법

  1. 외부 기억에서 정보 검색하기
    • 에이전트는 자체 외부 기억에서 정보를 검색하고 이를 LLM의 생성 과정과 통합
    • 에이전트는 지속적 학습 및 적응을 통해 시간이 지남에 따라 더 효과적으로 변함
  2. 웹 검색 도구 및 RAG로 최신 정보 통합
    • 에이전트는 웹 검색 도구를 사용해 최신 정보를 검색하고 이를 생성 과정에 통합
    • 뉴스 요약, 시장분석, 급변하는 상황에 대응하는 데 유용 & 최신 정보를 반영한 정확하고 시기적절한 응답을 생성할 수 있다.

2. Frameworks

Langchain과 LLaMAindex는 RAG 시스템의 실용적 구현을 강화하는 중요한 프레임워크로, 두 프레임워크는 검색 메커니즘과 생성 모델의 통합을 통해 외부 데이터를 자연스럽게 생성 과정에 통합하여 더 정확하고 풍부한 응답을 생성할 수 있게 한다.

Langchain

  • 언어 모델을 외부 지식 소스 및 DB와 통합하여 응답 생성 능력을 향상시키는 프레임워크
  • 외부 DB와 언어 모델 간의 상호작용을 조정하는 미들웨어 역할
  • 업데이트된 정보 제공, 모델의 기존 학습 데이터에 없는 세부 정보를 활용할 수 있게 한다.
  • 정확하고 정보에 기반한 응답을 생성하는 데 중요한 역할

LLaMAindex

  • 방대한 데이터를 조작하고 인덱싱하여 언어 모델의 검색 능령을 향상시키는데 특화된 데이터 프레임워크
  • 효율적인 쿼리 메커니즘 지원으로 언어 모델이 구조화된 저장소에서 관련 정보에 대한 접근 속도를 높임
  • 텍스트 문서부터 구조화된 DB까지 다양한 데이터 유형 처리가 가능하며, 복잡한 분석 작업에도 적합

위 두 프레임워크는 언어 모델이 내부 지식뿐만 아니라 외부 데이터를 기반으로 문맥적으로 풍부하고 정보가 충실한 응답을 할 수 있도록 지원한다.

Discussion and future direction

1. Retrieval Quality

RAG 시스템에서 검색 품질은 정보 검색의 관련성을 향상시키는 중요한 요소로 네 가지 주요 요소를 설계해야 한다.

  1. 최적의 키 선택
    • 키를 선택하는 과정은 주관적 결정이 필요하여 인간의 노력이 필요
  2. 임베딩 모델 선택
    • 텍스트를 벡터 표현으로 변환하기 위한 임베딩 모델을 선택하는 것이 중요
    • BERT, RoBERTa와 같은 모델이나 도메인 특화 임베딩을 사용하여 문맥과 미묘한 의미를 잘 찾을 수 있다.
    • 도메인에 맞는 임베딩 모델을 훈련시키는 것이 검색 품질을 크게 향상시킬 수 있다.
  3. 유사도 측정 설계
    • 검색된 정보와 쿼리 간의 관련성을 측정하는 유사도 메트릭이 중요
    • 전통적인 유사도 측정 방법 외에도, 복잡한 유사도 메트릭을 사용할 수 있다.
  4. 근사 최근접 이웃(ANN) 검색
    • ANN 알고리즘을 사용하여 검색 효율성을 높이지만, 검색 품질을 어느 정도 희생하는 trade-off 가 필요
    • ANN 알고리즘은 검색 효율성과 검색 품질 간의 적절한 균형을 찾는 것이 중요

위 요소들은 RAG의 검색 품질에 중요한 영향을 미치며, 각 요소는 검색 효율성과 정확성을 최적화하는데 필요한 핵심 역할을 한다.

2. RAG Efficiency

RAG 효율성은 후속 NLP 애플리케이션에서 중요한 요소로, 검색 가능한 데이터의 양에 제한을 둔다. RAG의 효율성을 보장하는 두 가지 방법은 데이터 양 줄이기 & 강력한 컴퓨팅 및 메모리 자원 추가 가 있다. 이때, 전자의 경우는 검색 품질에 영향을 미칠 수 있고, 후자는 더 많은 자원 비용을 수반한다.

 

Retriever 효율성

  • Retriever 효율성은 관련 정보를 검색하는 데 드는 시간 비용(인코딩, ANN 검색, 데이터 가져오기)을 의미
  • 소형 DB
    • 인코딩 단계가 주요 병목 지점
    • 이 경우 모델 양자화, 디스틸레이션, 모델 가지치기 등의 기법으로 인코딩 시간 가속화 가능
  • 대형 DB
    • 인덱스 검색과 데이터 가져오기가 주요 병목 지점
    • 효율적인 ANN 검색 알고리즘과 시스템 수준 최적화가 필요

검색 융합 효율성

  • 검색된 정보를 결합할 때 추론 효율성을 향상시키는 것을 목표로 한다.
  • 일부 연구에선 Fid-light나 ReFusion과 같은 기법을 통해 검색된 정보를 통합하는 동안 발생하는 계산을 줄이는데 중점을 둔다.

RAG 효율성을 최적화 하려면 위 두 가지 효율성을 모두 고려하여 데이터 검색과 정보를 결합하는 과정에서 발생하는 비용을 최소화하는 것이 중요하다.

3. Choices of Fusion

융합에서의 추가 탐구 주제는 다양한 융합 방법(Query-based, Latent, Logit-based 융합)을 결합하여 더 나은 성능을 달성하는 방법으로 각 융합 방법은 입력, 은닉 상태, 출력의 다른 단계에서 생성기를 확장하는데 중점을 두고 있다. 추가적으로 생성 중 언제 검색된 지식을 융합할지에 대한 문제도 추가적인 탐구가 필요하다.

4. RAG Training

  1. Datastore Update X
    • 다중 목적의 새로운 손실 함수, 검색기와 생성기의 파라미터 효율적 튜닝을 위한 새로운 최적화 방법 또는 다른 훈련 전략을 포함할 수 있다.
  2. Datastore Update O
    • 새로운 코퍼스가 추가될 때 생성기를 재훈련/파인튜닝하는 시점을 결정하는 것
    • 기존 LLM 기반 생성기의 콘텍스트 학습 능력과 훈련 비용 때문에, 생성기의 재훈련/파인튜닝 또는 직접 추론하는 것이 다양한 시나리오에서 어려운 선택이 될 수 있다.
    • 최근에는 파인튜닝 과정을 가속화하는 효율적인 훈련 전략들이 제안되었다.

5. Cross-Modality Retrieval

교차 모달리티 정보를 RAG에 통합하면 데이터 표현의 질, 이해도 및 다양한 응용 분야에서의 적응력이 크게 향상된다.

  1. 더 풍부한 문맥
    • 텍스트와 이미지 또는 비디오를 결합하여 내용을 명확히 하고 더 많은 문맥을 제공하여 이해도가 증가한다.
  2. 다양한 정보
    • 각 모달리티는 고유한 통찰을 제공
  3. 향상된 강인성
    • 여러 출처의 정보를 연관시킬 수 있어 과적합을 줄이고, 더 강력하고 일반화된 성능을 보인다.
  4. 모호성 해결
    • 단일 모달리티로 해결할 수 없는 모호성을 명확히 할 수 있다.
  5. 자연스러운 상호작용
    • 인간의 커뮤니케이션을 모방하여 더 자연스럽고 직관적인 인간-기계 상호작용이 가능하다.