[생성형AI] RAG(Retrieval Augmented Generation)에 대한 초보자 가이드
[생성형AI] RAG(Retrieval Augmented Generation)에 대한 초보자 가이드
RAG(Retrieval Augmented Generation)란 무일까요?
검색 증강 생성은 사전 학습된 대규모 언어 모델(예: 상호 작용 중인 모델)의 기능을 외부 검색 또는 검색 메커니즘과 결합하는 방법입니다. 이 아이디어는 생성 프로세스 중에 외부의 방대한 문서 모음에서 정보를 가져올 수 있도록 하여 생성 모델의 기능을 향상시키는 것입니다.
검색 증강 RAG 생성AI의 장점
RAG에는 몇 가지 놀라운 장점이 있습니다.
1. 지식 확장성
모든 정보를 저장하고 응답 하는 모놀리식 모델 대신 RAG 모델은 외부 데이터베이스를 업데이트하거나 다양한 지식을 확대하는 것만으로 확장이 가능합니다.
2. 메모리 효율성
GPT와 같은 기존 모델은 저장하고 불러올 수 있는 데이터 양에 제한이 있지만 RAG는 외부 데이터베이스를 활용하여 필요할 때 최신 정보, 업데이트된 정보 또는 자세한 정보를 가져올 수 있습니다.
3. 모델 유연성
외부 지식 소스를 변경하거나 확장하면 기본 생성 모델을 재교육하지 않고도 특정 도메인에 대해 RAG 모델을 조정할 수 있습니다.
다음은 검색 증강 생성의 작동 방식에 대한 분석 과정입니다.
1. 검색 단계
질문이나 프롬프트가 제공되면 RAG 모델은 먼저 대규모 말뭉치에서 관련 문서 또는 구절 집합을 검색합니다. 이 작업은 검색 메커니즘을 사용하여 수행되며, 종종 문서와 쿼리의 조밀한 벡터 표현을 기반으로 합니다.
2. 생성 단계
관련 구절이 검색되면 원래 쿼리와 함께 생성 모델에 공급됩니다. 그런 다음 이 모델은 사전 학습된 지식과 검색된 구절의 정보를 모두 활용하여 응답을 생성합니다.
3. 훈련
검색 및 생성 구성 요소를 포함한 전체 시스템은 다운스트림 작업에서 종단 간 미세 조정될 수 있습니다. 이는 모델이 생성된 응답의 품질에 따라 검색 선택을 개선하는 방법을 학습할 수 있음을 의미합니다.
이와 같이 RAG의 주요 장점은 모델이 외부의 데이터 소스에서 실시간 정보를 가져올 수 있으므로 보다 역동적이고 새로운 정보에 적응할 수 있다는 것입니다. 모델이 사전 학습된 지식에 없을 수 있는 특정 세부 정보(예: 사실 확인 또는 최근 이벤트에 대한 질문에 답변)를 참조해야 하는 작업에서도 유용하게 이용이 가능합니다.
다이어그램을 단계별로 설명해 보겠습니다.
-
쿼리를 입력합니다.
이는 사용자가 답변을 원하는 쿼리나 질문을 시작 합니다. -
인코딩 .
입력 쿼리는 인코딩 과정을 거쳐 GPT의 내부에서 사용 할수 있는 형식으로 인코딩을 합니다. -
인코딩된 쿼리입니다.인코딩된 쿼리가 생성되면 이를 이용하여 검색을 할 수 있습니다.
-
문서 검색시스템은 인코딩된 쿼리를 사용하여 대규모 정보 모음을 검색하여 관련 문서나 구절을 검색합니다. 검색을 이용하여 질문에 가까운 유사 정보를 검색하여 응답을 할수 있다는 것입니다.
-
검색된 문서이는 시스템이 인코딩된 쿼리와 가장 관련이 있다고 믿는 문서 또는 구문입니다. 검색 쿼리의 결과로 질문의 의도에 맞는 답변에 필요한 정보가 포함되어 있다는 것입니다.
-
컨텍스트 인코딩검색된 문서를 원래의 쿼리와 유사하게 인코딩 을 합니다. 이 단계에서 생성 프로세스를 위한 문서를 준비합니다.
-
인코딩된 문서인코딩된 쿼리와 결합할 준비가 된 검색된 문서를 나타냅니다.
-
인코딩된 쿼리와 문서를 결합합니다인코딩된 쿼리와 인코딩된 문서를 결함하여 최종 답변을 생성합니다. 최종 답변은 사용자가 원하는 정보에 맞는 형식으로 컨텍스트를 제공합니다.
-
LLM(Large Language Model)을 사용한 생성이전 단계의 결합된 컨텍스트를 사용하여 대규모 언어 모델(예: GPT-3 또는 GPT-4)은 일관되고 관련성 있는 답변을 생성합니다. 보유한 정보를 기반으로 최상의 응답을 제공 할 수 있습니다.
-
출력(답변)응답으로 원래 입력 쿼리에 대한 응답을 생성하여 응답을 전송합니다.
최신의 데이터로 응답이 가능한 챗봇 RAG 활용
RAG를 사용하면 챗봇이 최신 데이터베이스 와 뉴스 피드 등의 데이터 접근하여 응답을 생성할 수 있습니다. 이는 사용자가 최근 시사적인 정보와 최신의 데이터에서 사용자의 요구에 맞는 데이터를 제공 할 수 있습니다. 예를 들어 챗봇을 이용하여 여행지지의 숙박시설의 실시간 예약 현황을 검색해서 남아 있는 숙소를 찾아줄 수도 있고, 실시간의 뉴스 데이터를 검색하여 지금 현재 이슈가 되는 뉴스를 찾아 요약을 해 줄 수도 있게 됩니다. 이와 같이 과거 정보를 기반으로 만들어진 대형 언어모델(LLM)의 최신 정보를 이용하여 응답이 가능해 집니다. 기본적으로 RAG는 정적 LLM 지식과 동적 최신 정보 간의 격차를 해소 할 수 있게 됩니다.
다음은 LLM과 함께 RAG를 사용하는 채팅 애플리케이션의 프로세스를 보여주는 단순화된 시퀀스 다이어그램입니다.
-
사용자가 쿼리 (질문) 를 보냅니다.
사용자가 채팅 애플리케이션으로 질문을 작성하여 보냅니다. -
ChatApp은 사용자 질문을 RAG모델에 전달합니다.
채팅 애플리케이션은 사용자의 쿼리를 수신하여 요청 내용을 RAG(Retrieval Augmented Generation) 모델로 전달합니다. -
RAG는 자체 데이터에서 검색을 하여 응답을 생성합니다.
데이터 검색과 생성 기능을 통합한 RAG 모델은 사용자의 쿼리를 처리합니다. 먼저 LLM을 사용하여 대규모 데이터 모음에서 관련 정보를 검색하여 검색된 정보와 사용자 쿼리를 기반으로 일관성 있고 상황에 맞는 응답을 생성합니다. -
LLM이 응답을 반환합니다.응답이 생성되면 LLM은 이를 채팅 애플리케이션(ChatApp)으로 다시 보냅니다.
-
ChatApp은 응답을 표시합니다.마지막으로 채팅 애플리케이션은 생성된 응답을 사용자에게 표시하여 상호 대화를 이어 갑니다.
[참고문헌]
- 검색 증강 생성(RAG)에 대한 초보자 가이드 | AI용 데이터베이스 (singlestore.com)