대규모 언어 모델(LLM)을 위한 검색-증강 생성(RAG)
검색-증강 생성(RAG) 기술 소개
대규모 언어 모델(LLM)은 뛰어난 능력을 가지고 있으나, 실제 사용을 해보면 환각이나 느린 지식의 업데이트, 답변의 투명성 부족 등과 같은 문제들을 마주할 수 있습니다. RAG(Retrieval-Augmented Generation)은 이러한 문제를 해결하기 위해 제안된 기술로서, 대규모 언어 모델의 능력을 확장하여, 사용자의 질문이나 요청에 대해 더욱 신뢰할 수 있고 정보가 풍부한 답변을 제공할 수 있도록 돕습니다. 이러한 RAG은 사용자가 출처를 인용하여 답변의 정확성을 검증할 수 있으며, 이는 모델 출력에 대한 신뢰를 증가시킵니다. 또한, 지식 업데이트와 특정 분야의 지식 도입에도 용이합니다.
RAG 외에 파인튜닝(fine-tuning)을 사용하여 대규모 언어 모델이 특정 지식에 집중하도록 할 수 있습니다. 하지만 이러한 파인튜닝은 실시간으로 업데이트되는 정보를 반영하는데 시간이 걸리며, 모델을 새로 학습시키는데 추가적인 자원이 소모됩니다. 이에 반해, RAG는 LLM에 특정 질의에 대한 정보를 검색할 수 있는 '참고서'를 제공하는 것과 유사합니다.
RAG의 3가지 주요 패러다임
RAG 기술의 연구 패러다임은 시간에 따라 끊임없이 발전하고 있습니다. 주요 패러다임들은 3가지로 기본 RAG, 고급 RAG, 모듈형 RAG이 있습니다. 초창기의 기본 RAG는 비용이 효율적이고 LLM만 사용하는 것보다 성능이 뛰어났지만 많은 단점들이 있었습니다. 기본 RAG의 특정 결함을 해결하기 위해 고급 RAG와 모듈형 RAG이 등장하게 되었습니다.
1. 기본 RAG(Naive RAG)
기본 RAG는 RAG 연구의 초기 방법론을 지칭하며, 전통적인 인덱싱, 검색 및 생성 과정을 포함하고 있습니다. 주로 간단한 검색 및 생성 방식에 초점을 맞추고 있으며, RAG의 기본 개념과 원리를 설명하는데 중요합니다. 하지만, 낮은 검색 정확도, 응답 생성의 낮은 품질, 증강 과정의 어려움 등에 따라 발생하는 불필요한 반복, 부정확한 정보, 잘못된 문맥의 통합 등이 발생할 수 있습니다. 따라서 복잡하거나 도전적인 시나리오에 기본 RAG를 사용하기는 부적절할 수 있습니다.
2. 고급 RAG(Advanced RAG)
고급 RAG는 기본 RAG의 부족한 점을 개선하기 위해 개발된 패러다임입니다. 검색 및 생성의 질을 향상시키기 위한 사전 및 사후 검색 방법을 포함하며, 크게 검색 전 절차(Pre-Retrieval Process), 검색 후 절차(Post-Retrieval Process), RAG 파이프라인 최적화(RAG Pipeline Optimization)의 3단계로 나누어볼 수 있습니다.
3. 모듈형 RAG(Modular RAG)
모듈식 RAG은 고급 RAG의 발전된 형태로, 기존의 RAG 프레임워크에서 한 단계 더 나아가 다양한 모듈과 기능을 통합하여 더 큰 다양성과 유연성을 제공하여서 RAG 시스템을 다양한 시나리오와 요구 사항에 맞게 조정할 수 있도록 하는 여러 새로운 모듈과 패턴을 포함하고 있습니다.
'IT' 카테고리의 다른 글
Linux 서버 상태 확인하기 (0) | 2024.03.04 |
---|---|
ElasticSearch Heap 메모리 설정 (0) | 2024.03.04 |
C# Windows 방화벽 정책 추가/삭제 (0) | 2024.03.04 |
nohup (0) | 2022.12.05 |
TCP 소켓 상태(FIN_WAIT1, FIN_WAIT2, TIME_WAIT, CLOSE_WAIT, LAST_WAIT) (0) | 2022.10.24 |
댓글