검색 증강 생성(RAG:Retrieval Augmented Generation)은 복잡한 질문에 대답하기 위해 인터넷이나 데이터베이스와 같은 외부 정보를 활용하는 언어 모델입니다. 이 모델은 특히 사실 확인이나 상식적인 질문에 답할 때 유용합니다. 최근 2023년 12월에 가장 주목을 받고 있는 분야입니다. Meta에서 LLaMA2를 발표하면서 LLM에 대해서 활발한 논문을 내면서 나온 방법 입니다.
RAG의 장점은 사실 명확합니다. 할루시네이션이라는 언어모델이 가지는 한계를 극복할 수 있는 방법이기 떄문 입니다. 검색 증강 생성(RAG)은 언어 모델 분야의 중요한 발전으로, 다양한 지식 집약적인 분야에 매우 유용합니다. 외부 정보를 활용하여 최신의 정확한 답변을 제공할 수 있는 이 기술은 특히 사실 확인이 중요한 상황에서 강력한 도구가 됩니다.
사실적 일관성: 최신 정보를 활용하여 더 정확한 답변을 제공합니다.
적응성: 정보가 변해도 모델을 새로 학습할 필요 없이 최신 상황에 맞게 답변을 생성합니다.
다양한 사용: 질문 답변, 사실 확인 등 지식이 필요한 다양한 분야에서 활용됩니다.
GPTs가 출시 되면서 RAG 방식을 더 쉽게 사용할 수 있는 인터페이스를 제공 합니다. 대표적으로 금융 서비스, 전자상거래, 헬스케어, 콜센터 챗봇 등: RAG는 이러한 분야에서 고객 데이터 검색, 최신 카탈로그 정보를 사용한 제품 설명 생성, 환자 기록 정보 제공, 개인화된 지원 제공 등의 용도로 활용하는데 쓰입니다.
실제 사용되는 서비스
Azure Machine Learning: Azure Cognitive Services 스튜디오와 SDK를 통해 RAG를 활성화하고, BART-RAG와 같은 사전 구축된 모델을 제공합니다.
ChatGPT: OpenAI는 ChatGPT 응답에 관련 외부 지식을 추가하는 검색 플러그인을 출시했습니다. 현재는 제한된 베타 버전으로 제공되고 있습니다.
Anthropic의 Constitutional AI: 학습된 검색 모듈을 사용하여 생성된 응답에 근거를 제공합니다. 투명성에 중점을 두고 있습니다.
Prompt에 RAG를 적용하면?
질문 분석: 사용자의 질문을 분석하고, 그에 맞는 키워드나 개념을 파악합니다.
정보 검색: RAG의 검색 기능을 활용하여 관련 지식이나 데이터를 검색합니다. 예를 들어, 특정 주제에 대한 최신 연구나 통계 정보를 찾을 수 있습니다.
문맥화 프롬프트 생성: 검색된 정보를 바탕으로 질문과 관련된 프롬프트를 생성합니다. 이때, 검색된 정보를 포함하여 사용자의 질문에 더 맥락적이고 사실적인 답변을 준비합니다.
응답 생성: 준비된 프롬프트를 언어 모델에 입력하여, 검색된 정보를 기반으로 한 답변을 생성합니다.
예시
"최근에 발견된 외계 행성에 대해 설명해주세요."
1.
정보 검색: RAG 시스템은 "최근 발견된 외계 행성"에 대한 최신 연구 논문, 뉴스 기사, 위키백과 페이지 등을 검색합니다.
2.
문맥화 프롬프트 생성: 검색된 정보를 바탕으로 프롬프트를 생성합니다. 예를 들어, "최근 발견된 외계 행성 TRAPPIST-1의 특징은 무엇이며, 왜 중요한 발견인가요?"라는 프롬프트를 만들 수 있습니다.
3.
응답 생성: 이 프롬프트를 언어 모델에 입력하여, TRAPPIST-1에 대한 상세한 설명과 그 중요성에 대한 답변을 생성합니다.