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 |
댓글