RAG Survey Review

티튠즈·2024년 2월 6일
2
post-thumbnail

대규모 언어 모델(Large Language Model)의 혁신: 검색-증강 생성(RAG) 기술 소개

대규모 언어 모델(LLM)은 인공지능 분야에서 놀라운 성과를 보여주고 있지만, 실제 응용에서는 여러 한계에 직면합니다. 이러한 문제를 해결하기 위해 등장한 검색-증강 생성(RAG) 기술은 LLM의 성능을 한 단계 끌어올리는 혁신적인 접근법입니다.

RAG 기술의 필요성

RAG 기술 전체

LLM은 종종 업데이트가 느리고, 특정 지식에 대한 답변이 부정확하며, 생성된 답변의 출처가 불투명한 문제를 가지고 있습니다. RAG 기술은 이러한 문제를 해결하기 위해, 질문에 답하기 전에 광범위한 문서 집합에서 관련 정보를 검색하고, 이를 바탕으로 답변을 생성합니다. 이 과정은 답변의 정확도를 크게 향상시키며, 사용자가 출처를 확인할 수 있도록 하여 신뢰성을 높입니다.

RAG의 발전: 세 가지 주요 패러다임

Comparison between the three paradigms of RAG

  • 기본 RAG (Naive RAG): 초기 RAG 연구의 방법론으로, 간단한 검색 및 생성 방식에 초점을 맞춥니다. 이 접근법은 비용 효율적이지만, 낮은 검색 정확도와 응답 생성의 품질 문제를 가지고 있습니다.

  • 고급 RAG (Advanced RAG): 기본 RAG의 한계를 극복하기 위해 개발된 패러다임으로, 검색 전후 절차 최적화, 임베딩 방법의 개선, 그리고 RAG 파이프라인 최적화를 포함합니다. 이는 검색 및 생성의 질을 크게 향상시킵니다.

  • 모듈형 RAG (Modular RAG): 고급 RAG를 더 발전시켜, 다양한 모듈과 기능을 통합하여 더 큰 다양성과 유연성을 제공합니다. 이 접근법은 RAG 시스템을 다양한 시나리오와 요구 사항에 맞게 조정할 수 있도록 합니다.

1. 검색 모듈(Search Module): 특정 시나리오에 맞춰 LLM이 생성한 코드나 SQL, 사용자 도구 등을 사용하여 직접 검색을 수행하는 모듈
외부 검색 엔진이나 텍스트 데이터, 테이블 데이터 또는 지식 그래프 등을 데이터 소스로 사용할 수 있습니다.

2. 메모리 모듈(Memory Module): 자체의 메모리 기능을 사용하여 검색을 개선(guide)하며, 현재 입력과 가장 유사한 기억을 찾는 모듈
예를 들어, Self-mem 방법론은 검색 강화 생성기(Retrieval-Enhanced Generator)를 반복적으로 사용하여 사용자의 질문(original question)과 이중 질문(dual question)을 결합한 무제한 메모리 풀(unbounded memory pool)을 생성합니다. 


3. 추가 생성 모듈(Extra Generation Module): LLM을 활용하여 검색을 위한 문서를 별도로 생성
사용자의 질문을 데이터 소스에서 직접 검색하는 것보다, 이렇게 LLM에 의해 생성된 콘텐를 사용하였을 때 관련 정보를 더 많이 포함할 가능성이 높습니다.


4. 태스크 적응 모듈(Task Adaptable Module): 다운스트림(downstream) 작업에 적응할 수 있도록 조정하는 모듈
각 세부 작업과 모델의 범용성을 강화하는 것을 목표로, 필요한 제로샷 프롬프트를 검색하여 사용(UPRISE 방법)하거나, 제로샷 쿼리를 생성하는 LLM을 별도로 사용(PROMPTAGATOR 방법)하기도 합니다.


5. 정렬 모듈(Alignment Module): 질의와 텍스트 간의 정렬 문제를 해결하기 위해 검색기에 별도의 학습 가능한 어댑터를 추가하는 모듈
PRCA, AAR, RRR 등의 방법론들이 있으며, 검색된 정보를 최적화하고 RAG의 효과를 향상시키는 것이 목적입니다.


6. 검증 모듈(Validation Module)
검색된 정보의 신뢰성을 평가하기 위해 도입되었으며, 실제 문서와 질의 간의 관련성을 평가하는 모듈입니다. 이 모듈은 RAG의 강건성(robustness)을 향상시키는 것이 목표입니다.

RAG 기술의 주요 구성 요소

검색기(Retriever)

검색기(Retriever)는 RAG 시스템에서 가장 중요한 역할을 하며, 대규모 데이터 집합에서 관련 정보를 찾아 텍스트 생성을 위한 데이터를 준비합니다.
이 과정은 실시간 데이터, 특정 분야 전문 지식, 사실 확인이 필요한 시나리오에서 중요합니다.
주요 주제로는 정확한 의미론적 표현 추출, 사용자 질의와 문서들의 의미론적 공간 일치, 검색기 출력과 LLM의 선호도 일치시키기가 있습니다.
청크 최적화와 임베딩 모델의 미세 조정을 통해 의미론적 표현을 정확하게 매핑합니다.
질의 재작성과 임베딩 변환을 사용하여 사용자 질의와 문서의 의미론적 공간을 일치시킵니다.
LLM 감독 학습과 어댑터 플러그인을 통해 검색기의 출력과 LLM의 선호도를 일치시키며, 검색 결과의 정확성과 관련성을 향상시키는 데 기여합니다.

생성기(Generator)

검색기가 후보 문서를 추출하는 역할을 한다면, 생성기는 이를 바탕으로 정확하고 관련성 높은 답변을 생성합니다.
이 과정에서 정보 압축과 순위 재매기기 같은 후처리 과정을 통해 검색 결과를 최적화하고, 입력 데이터에 적응하는 최적화 과정을 수행합니다.
정보 압축은 방대한 양의 정보를 다루기 위해 입력 정보의 크기를 줄이는 방법으로, PRCA와 RECOMP 같은 방법을 사용하여 정보 추출기를 학습시킵니다.
순위 재매기기는 검색 결과의 수를 줄이고 가장 관련성 높은 항목을 상위에 배치하여 검색 품질을 향상시킵니다.
생성기 최적화는 대조 학습을 활용하여 모델의 일반화 능력을 향상시키고, 다양한 유형의 데이터를 사용하여 모델이 다양하고 합리적인 출력을 생성하도록 돕습니다.
이러한 최적화 과정은 검색된 문서에 대한 후처리와 파인튜닝 단계를 필수적으로 포함하며, 모델의 최종 출력을 제공하는 데 중요한 역할을 합니다.

증강 방법(Augmentation Methods)

RAG(Retrieval-Augmented Generation)는 언어 모델의 학습과 추론 과정을 향상시키기 위해 증강 단계, 데이터 소스의 증강, 그리고 증강 절차의 세 가지 주요 측면을 포함합니다.
사전 학습, 파인튜닝, 추론 단계에서 각각의 방법론이 적용되어 모델의 효율성과 정확성을 높입니다.
비정형 데이터, 정형 데이터, 그리고 LLM이 생성한 콘텐츠를 다양한 데이터 소스로 활용하여, 모델이 더 풍부하고 정확한 정보를 생성하도록 돕습니다.
반복적 검색과 적응형 검색을 통해, RAG 시스템은 다단계 추론과 복잡한 질의에 효과적으로 대응합니다.
이러한 접근 방식은 RAG 시스템이 지식 집약적인 작업에서 더 정교하고 복잡한 작업을 수행하는 데 필요한 다양한 기법들을 통합하여, 보다 정확하고 관련성 높은 답변 생성을 가능하게 합니다.

결론

RAG 시스템은 대규모 언어 모델(LLM)의 사용을 혁신적으로 개선하며, 실제 응용 프로그램에서의 한계를 극복하는 데 중요한 역할을 합니다.
이 기술은 정보 검색과 텍스트 생성의 결합을 통해, 정확도와 신뢰성을 크게 향상시키며, 다양한 시나리오와 요구 사항에 유연하게 적응할 수 있는 모델을 제공합니다.
그러나 RAG 시스템의 성공적인 구현과 활용은 지속적인 평가와 최적화를 필요로 합니다. 검색된 정보의 정확성, 생성된 답변의 관련성, 그리고 시스템 전반의 효율성을 높이기 위한 노력이 필수적입니다.
이는 RAG 시스템이 지식 집약적인 작업에서 더욱 뛰어난 성능을 발휘하도록 하며, LLM의 가능성을 최대한 활용하는 데 중요한 기여를 합니다.
따라서, RAG 기술의 발전은 단순히 기술적인 진보를 넘어서, 어떻게 하면 더 효과적으로 정보를 검색하고, 더 정확하고 신뢰할 수 있는 답변을 생성할 수 있을지에 대한 깊은 이해와 지속적인 개선 노력이 수반되어야 합니다.

RAG 시스템은 앞으로도 많은 연구와 개발이 필요한 분야입니다.

Reference

1개의 댓글

comment-user-thumbnail
2024년 2월 14일

RAG 기술의 발전을 위해서는 검색 정확도 향상, 생성된 답변의 관련성 향상, 시스템 전반의 효율성 향상 등이 중요하겠군요. 실제 응용 프로그램에 적용하기 위해서는 어떤 과정이 필요할까요?^^

답글 달기

관련 채용 정보