본문 바로가기
Data Science/Algorithm

RAG (Retrieval-Augmented Generation)

by leanu 2024. 11. 16.

RAG는 Retrieval Augmented Generation의 약자로, 검색과 생성을 결합한 자연어 처리 접근 방식입니다.

이는 대규모 언어 모델(LLM)과 검색 시스템을 통합하여 높은 정확도와 콘텍스트 의존적 결과를 생성합니다.

 

RAG는 왜 사용하는가?

대규모 언어모델(LLM)만을 사용하여 생성하는 방식은 답변의 정확도의 한계가 있어 이를 보완하고 보다 정확하고 신뢰성 높은 결과를 제공하기 위함입니다. 

조금 더 구체적으로 이야기해보면,

LLM의 지식은 고정적이기 때문에 최신 정보나 특정 도메인 데이터에 대한 답변이 부정확하거나 불가능할 수 있습니다.

그리고 LLM 하면 함께 등장했던 환각(hallucination) 문제도 존재하기 때문에,

답변 생성을 요청할 때 질문과 관련된 문서들을 포함시켜서 질문하게 되면,

대규모 언어모델은 제공된 문서들에 집중하여 보다 정확한 답변을 생성할 수 있게 되는 것이지요.

 

RAG를 사용하는 경우, 생성 단계 이전에 검색의 과정을 거치기 때문에

응답생성속도는 좀 더 늘어나게 되는 점도 참고하시기 바랍니다.

 

RAG 기본 작동 원리

RAG는 두 단계에 걸쳐서 동작합니다.

  • Retrieval (정보 검색 단계)
    • 사용자가 제공한 질문이나 프롬프트에 대해 외부 데이터베이스나 문서에서 관련된 정보를 검색합니다. 이 단계는 쿼리를 기반으로 정보를 추출하며, 보통 벡터 검색과 같은 기술이 사용됩니다.
  • Generation (응답 생성 단계)
    • 정보 검색 단계에서 검색된 정보를 기반으로 생성형모델(GPT-4 등)이 답변을 생성합니다. 생성 단계에서 검색된 정보를 콘텍스트로 활용하여 보다 정교하고 정확한 결과를 제공합니다.

 

RAG의 주요 기술적 요소

검색 알고리즘

  • BM25 : 전통적인 정보 검색 방법으로, 키워드 매칭 기반의 효율적인 검색 알고리즘
  • Dense Retrieval
    • Sentence-BERT : 문장을 고차원 벡터로 표현하여 의미 기반 검색을 가능하게 함
  • Hybrid Retrieval
    • BM25와 Dense Retrieval을 조합하여 키워드와 의미 기반 검색의 장점을 결합

 

생성 알고리즘

  • Pre-trained Models (미리 학습된 모델)
    • GPT 계열 (GPT 3.5, GPT-4 등) : 대규모 데이터를 기반으로 학습된 생성 모델
    • T5 (Text-to-Text Transfer Transformer) : 텍스트 입력을 다양한 형태로 변환하여 결과를 생성
  • Fine-tuned Models
    • Pre-trained model을 특정 도메인에 맞게 미세 조정 학습한 언어 모델

'Data Science > Algorithm' 카테고리의 다른 글

특이값 분해 (Singular Value Decomposition, SVD)  (0) 2024.11.18
최소 자승법 (Least Squares Method)  (0) 2024.11.15
Contextual Bandit & LinUCB  (0) 2024.11.14
Multi-Armed Bandit (MAB)  (4) 2024.11.13
Deep Cross Network  (0) 2024.11.11

댓글