Notice
Recent Posts
Recent Comments
Link
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Tomato Basil

RAG | Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 본문

AI/NLP

RAG | Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

salt pepper 2024. 12. 8. 00:29

[ Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks ]

Facebook AI Research, UCL, NYU 연구진이 NeurIPS 2020 학회에서 발표한 논문입니다.

Retrieval-Augmented Generation(RAG)은 질의에 대한 답을 생성하기 전, 외부에서 관련 정보를 검색함으로써 답변의 정확도를 높이는 방법입니다. LLM이 학습된 이후 업데이트 되지 않는다면 최신 정보를 반영하기 어렵고, 특정 도메인에 대해 전문적인 답변을 하기 위해서는 그에 특화된 외부 DB를 가지는 것이 효율적이기 때문에 RAG의 활용도는 높아지고 있습니다.


 

 

1. 들어가며

사전 훈련된 신경망 언어 모델들은 매개 변수에 저장된 상당한 양의 정보로 제 기능을 해왔습니다. 실제로 언어 모델은 사전 훈련 과정을 통해 상당한 양의 깊이 있는 지식을 습득합니다. 하지만 이러한 모델들은 자신이 가지고 있는 정보를 확장/수정하거나 자신의 답변에 대한 근거를 찾지 못하고, 잘못하면 환각 효과(hallucination)를 불러올 수 있다는 단점이 있습니다. 따라서 매개 변수가 가지고 있는 정보 뿐만 아니라 (검색 기반의) 비-매개변수 메모리를 사용하는 하이브리드 모델이라면 이러한 단점을 극복할 수 있을 것입니다. 그렇게 RAG가 등장했습니다.

 

RAG, 즉 검색 증강 생성은 답변에 필요한 정보를 검색(retrieval)을 통해 선택합니다. 이 논문에서는 RAG를 구현하기 위해 매개 변수 부분(parametric memory)는 사전 훈련된 seq2seq 트랜스포머를 사용했고, 비-매개 변수 부분(non-parametric memory)은 'dense vector index of Wikipedia'를 사전 훈련된 'neural retriever'를 통해 접근하는 방식을 사용했습니다.

 

검색기(retriever)가 인풋과 관련된 (혹은 인풋에서 요구하는 조건에 맞는) 문서들을 검색하면, seq2seq 모델은 이 후보군 문서들과 인풋을 이용하여 아웃풋을 생성합니다. 이때 후보군 문서들로부터 어떤 문서를 선택하는지는 top-K approximation 방법에 따라 결정됩니다. (생성할 모든 토큰을 위해 같은 문서가 쓰이는지, 각 토큰에 대해 서로 다른 문서가 쓰이는지에 따라 다름)

 

이미 다른 연구에서 매개 변수의 지식에만 의존하지 않기 위한 다양한 구조의 모델을 실험해왔습니다. 기존의 시도들은 모델을 처음부터 훈련시키는 방법을 사용했지만, 이 논문의 RAG 구조는 매개 변수(parametric) 및 비-매개 변수(non-parametric) 메모리가 사전에 훈련되거나 로드되게 했습니다. 정보에 접근하기 위해 별도의 훈련이 필요 없으므로 더 효율적인 방식입니다.

 

 

 

 


2. RAG 작동 방식

 

 

x : input sequence

z : text documents

y : target sequence (output)

 

x를 이용해 z를 검색(retrieve)하고, 검색된 z는 y의 생성에 쓰입니다.

 

위 그림과 같이 RAG 모델은 두 개의 컴포넌트로 나뉘어 있다고 볼 수 있습니다.

 

  • x 에 대해 z를 검색하는 검색기 pη(z|x)
  • x, z, 기존에 생성한 1부터 i-1까지의 토큰 y의 맥락 으로부터 새로운 토큰을 생성하는 생성기 pθ(yi|x, z, y1:i−1)

 

 

모델 구조

검색기와 생성기를 end-to-end 하게 훈련시키기 위해 일단 검색한 문서들은 '잠재적인 후보군'으로 취급합니다.

그리고 이제 두 개의 모델 구조가 제시되는데, 목적에 따라 검색한 문서를 어떻게 활용하는지가 달라집니다.

 

  • RAG-Sequence Model : 전체 시퀀스(모든 target 토큰)가 같은 문서를 참고

 

 

top K 개의 문서들이 검색기로부터 선택되고, 생성기는 선택된 각 문서에 대해 확률을 계산합니다. 그리고 그 확률은 marginalize 됩니다.

(marginalize란 하나 또는 그 이상의 변수의 확률분포를 얻기 위해 다변수 확률 분포에서 일부 변수의 영향을 "제거"하는 과정 입니다.

출처: https://ploradoaa.tistory.com/107 )

 

 

 

  • RAG-Token Model : 각 target 토큰이 서로 다른 문서를 참고

 

즉, 하나의 답변을 생성하는 과정에 여러 문서로부터 얻은 내용을 사용합니다. 각 target 토큰에 대해 다른 문서가 선택되는데, marginalize 과정도 각각 필요합니다. 

 

 

검색기  

검색기 컴포넌트는 bi-encoder구조의 DPR 기반입니다. 

이때 DPR은 Dense Passage Retrieval for Open-Domain Question Answering (https://arxiv.org/abs/2004.04906) 입니다.

 

생성기  

생성기 컴포넌트는 어떤 encoder-decoder 구조라도 가능합니다만 이 논문에서는 400M의 매개 변수로 사전 훈련된 seq2seq transformer 모델, BART-large를 사용했습니다. pθ 에서 매개 변수를 뜻하는 θ를 매개 변수화 메모리 (parametric memory) 라고 칭합니다.

 

훈련 방법

어떤 문서를 사용해야 하는지 지정하지 않은 상태로 검색기, 생성기를 합동 훈련합니다. (jointly train)

그리고 문서 encoder와 인덱스를 제외한 query encoder BERTq와 BART 생성기만을 파인 튜닝 합니다.

 

 

 

 


3. 실험 및 결과 (ft. 4가지 지표)

 

  • Open-domain Question Answering
  • Abstractive Question Answering
  • Jeopardy Question Generation
  • Fact Verification

 

 

 

 

 


6. 마무리하며

 

결론적으로 QA 태스크에 있어서 RAG는 state of the art를 달성했으며, 사람들이 순수하게 매개 변수 메모리만을 이용하는 BART 보다 RAG를 선호한다는 사실을 알게 되었습니다. 그리고 검색의 인덱스는 언제나 쉽게 바꿀 수 있고(추가적인 훈련 필요 없이 다른 지식에 접근이 쉬움), 다양한 NLP 태스크에 응용될 수 있음에 RAG의 등장은 의미를 가집니다. 특히 RAG를 통해 사실적이고 구체적인 답변을 생성할 수 있으므로 환각 효과를 피할 수 있기 때문에 메디컬 분야에서의 QA, 직장인들의 일 보조 작업 등에 유용하게 쓰일 것으로 보입니다.

 

하지만 외부 지식 소스가 무조건 사실이거나, 편견이 없을 것이라고 보장할 수 없습니다. 즉, 타인에게 폭력이 되는 정보, 거짓인 정보를 모델이 습득하는 경우는 막아야 하는 것입니다. 그런데 최근 SNS에 정보가 손쉽게 퍼지고, 사기꾼들의 피싱이 늘어나고 있습니다. 이를 어떻게 막을 수 있을까요? 이를 또 다른 AI를 통해 막을 방법이 필요하다고 논문 저자들은 말하고 있는데, 저 또한 AI의 자동화된 작업 속도는 너무 빠르기에 AI에 맞설 수 있는 것은 AI 뿐이라고 생각합니다. 

 

추가적으로 RAG가 만능으로 쓰일 수도 있겠지만, 아무리 RAG 방식을 적용한 AI더라도, 하나의 작업을 위해 고도로 특화된 아키텍처를 가진 AI를 뛰어넘지 못할 수도 있습니다. 그래서 RAG는 범용적인 사용성을 목표로 하는, 다양한 NLP 태스크를 수행할 수 있는 기술로 보면 좋을 것 같습니다.

 

 

 

 

 


 

RAG 모델 데모 (허깅페이스)

 

https://huggingface.co/facebook/rag-token-nq

 

facebook/rag-token-nq · Hugging Face

RAG This is the RAG-Token Model of the the paper Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks by Patrick Lewis, Ethan Perez, Aleksandara Piktus et al. The model is a uncased model, which means that capital letters are simply converted t

huggingface.co