RAG(Retrieval-Augmented Generation)
“RAG(Retrieval-Augmented Generation)”는 대형언어모델의 생성 능력과 외부 지식 베이스 검색 기능을 결합하여 최신 정보 제공, 정보의 신뢰성 향상, 다양한 출처를 통합한 정보 제공 등을 가능하게 하는 기술입니다.
("상용 생성형 AI 서비스에서 RAG 이용하기" 내용은 개념과 원리 설명 이후에 나옵니다.)
AI가 정확한 응답을 제공하려면 올바른 컨텍스트가 필요합니다. 인간이 정확한 결정을 내리기 위해 올바른 정보가 필요한 것과 마찬가지입니다. RAG는 올바른 컨텍스트를 대형언어모델에 공급해 더 나은 응답을 유도하는 방법입니다. RAG는 다음과 같은 단계를 거쳐 이뤄집니다.
1. 검색(Retrieval): 사용자의 질문을 받으면, 시스템은 먼저 관련 정보를 외부 지식 베이스에서 검색합니다. 여기에서 외부 지식 베이스란 웹 페이지, 문서, 데이터베이스, API 등 다양한 형태의 정보 소스를 의미합니다. 이를 통해 모델이 접근할 수 있는 정보의 범위를 확장합니다.
2. 증강(Augmentation): 검색된 정보는 모델에 추가적인 컨텍스트를 제공하며, 원래의 프롬프트에 더하여 모델의 입력으로 사용됩니다. 이를 통해 모델이 더 풍부한 배경지식을 바탕으로 응답을 생성할 수 있도록 합니다.
여기에서 쓰인 증강이라는 단어는, 증강현실(AR: Augmented Reality)에서 쓰이는 그 증강입니다. RAG에서 "Retrieval-Augmented"라는 표현을 사용하는 이유는, 이 기술이 기본적인 텍스트 생성 기능을 외부 정보 검색 기능으로 증강(Augmented)하기 때문입니다. 증강은 추가, 보강 등과 유사한 의미인데 성능 향상, 복합적인 강화를 뜻하는 기술 용어입니다.
3. 생성(Generation): 증강된 컨텍스트를 바탕으로 모델이 응답을 생성합니다. 이때 생성된 답변은 단순히 검색된 정보의 내용을 복사하는 것이 아니라, 모델의 학습 능력을 활용하여 자연스럽고 일관된 텍스트로 재구성된 것입니다. 필요한 경우, 모델은 응답에 사용된 정보의 출처를 명시합니다.
RAG를 특정 용도로 이용하기 위해서는 대형언어모델과 RAG를 통합한 시스템을 구축해야 필요합니다. 예를 들어, 용도에 따라 다음과 같은 시스템을 만들 수 있습니다.
사내 업무 지원: 회사의 내부 문서를 검색하여 직원들의 질문에 답변하는 시스템
학술 연구 지원: 최신 논문을 검색하고 요약하여 연구자들을 지원하는 시스템
고객 지원: 제품 매뉴얼이나 FAQ를 검색하여 고객 문의에 응답하는 시스템
일반 사용자가 이용할 수 있는 대표적인 RAG 기반 생성형 AI 서비스가 바로, 빙(Bing)과 엣지 브라우저에 통합된 마이크로소프트 코파일럿(Copilot)입니다. 코파일럿은 인터넷 검색, PDF 파일 등의 외부 지식을 바탕으로 사용자에게 최신의 좀 더 정확한 정보를 제공할 수 있습니다.
챗GPT도 인터넷 검색, 첨부 파일 기반 응답을 지원하며, 클로드는 첨부 파일 기반 응답을, 제미나이는 인터넷 검색 기반 응답을 지원합니다. 모델의 발전 및 설정에 따라 지원하는 정도는 계속 바뀔 수 있습니다.
인터넷 검색과 첨부 파일 기반 응답을 제공하는 생성형 AI 서비스를 이용할 때, RAG 기반 응답을 얻기 위해 사용할 수 있는 다음과 같은 방법들이 있습니다.
실시간 정보를 요구
사용자가 프롬프트에 “오늘”, “최근”, “최신”, “현재”, “지금” 등과 같은 단어를 지정하면 인터넷 검색이 가능할 경우, RAG를 통해 얻은 실시간 정보를 바탕으로 응답을 생성합니다.
예) 오늘 서울의 날씨는? (-> 이에 대해 챗GPT는 응답하고, 클로드는 응답하지 못합니다. 2024년 7월 2일 글 작성일 기준)
시간 프레임 지정
사용자가 특정 시간 프레임을 지정하여 그 기간의 정보를 요청하는데 모델이 해당 정보에 대해 모를 경우, 인터넷 검색을 통해 RAG 응답을 생성합니다.
예) 지난 한 달간의 미국 주식 시장 동향을 알려주세요.
예) 2024년 4분기 한국 경제 전망은?
명시적인 인터넷 검색 요구
사용자가 “인터넷 검색”, “웹 검색”, "검색을 통해" 등의 명시적인 프롬프트로 요청하면, 인터넷 검색을 통해 RAG 응답을 생성합니다.
예) 검색을 통해 테일러 스위프트에 대해 알려주세요.
특정 출처를 지정
특정 웹 사이트나 정보 소스를 지정해 해당 출처의 정보를 요청합니다. 다만, 저작권 문제로 답변이 거부될 수 있습니다.
예) 미국 타임지 웹사이트의 최신 기사를 알려 주세요.
예) PubMed에서 최신 암 연구 논문을 찾아 주세요.
사용자 제공의 정보 이용 요구
사용자가 제공하는 특정 텍스트나 데이터, 첨부 파일을 바탕으로 답변을 요청합니다.
예) 지금부터 다음 정보를 참고하여 질문에 답해주세요: [관련 정보]
예) 앞서 제공한 데이터셋을 바탕으로, 다음의 주제에 관한 소비자 행동을 분석해 주세요.
예) 첨부한 PDF 파일을 바탕으로, 최신 IT 동향을 요약해 주세요.
1. 최신 정보 제공: 외부 지식 베이스를 통해 최신 정보에 접근할 수 있어, 모델 학습 이후의 정보를 통합해 답변할 수 있습니다.
2. 정확성 향상: 관련 정보를 직접 참조하므로 더 정확한 답변이 가능합니다. 그에 따라 환각(Hallucination, 대형언어모델이 사실이 아닌 정보를 생성하거나 없는 내용을 만들어내는 현상)을 줄일 수 있습니다.
3. 투명성: 모델이 어떤 정보를 바탕으로 답변을 생성했는지 추적할 수 있습니다.
4. 유연성: 데이터베이스 등 외부 소스의 업데이트만으로 모델의 지식을 확장할 수 있습니다.
RAG는 검색된 정보를 바탕으로 응답을 생성하기 때문에, 학습 데이터만을 사용하는 경우보다 더 신뢰할 수 있는 정보를 제공할 가능성이 높습니다. 그렇다고 하더라도 환각이 완전히 나타나지 않는 건 아닙니다.
RAG를 이용해도 환각을 완전히 없앨 수 없는 이유는 다음과 같습니다. 개수가 좀 많지만, 대형언어모델의 특성을 이해한다는 관점에서 한번 살펴보세요.
1. 검색 오류: RAG 시스템이 관련 정보를 정확히 검색하지 못할 수 있습니다. 부적절하거나 불완전한 정보가 검색되면, 모델이 이를 바탕으로 부정확한 응답을 생성할 수 있습니다.
2. 맥락 이해의 한계: 모델이 검색된 정보의 맥락을 완벽히 이해하지 못할 수 있습니다. 그에 따라 정보를 잘못 해석하거나 부적절하게 적용할 수 있습니다.
3. 정보 통합의 어려움: 여러 소스에서 검색된 정보를 일관되게 통합하는 것은 복잡한 과정입니다. 모델이 이 과정에서 오류를 범할 수 있습니다.
4. 검색된 정보의 신뢰성 부족: 외부 소스의 정보가 항상 정확하거나 최신이라고 보장할 수 없습니다. 잘못된 정보를 바탕으로 응답을 생성할 수 있습니다.
5. 모델의 고유한 편향: 대형언어모델은 여전히 학습 데이터에서 얻은 고유한 편향을 가지고 있어, 이것이 검색된 정보의 해석에 영향을 줄 수 있습니다.
6. 질문 이해의 오류: 모델이 사용자의 질문을 잘못 이해하면, 관련성 없는 정보를 검색하고 부적절한 응답을 생성할 수 있습니다.
7. 추론 과정의 한계: 검색된 정보를 바탕으로 새로운 결론을 도출하는 과정에서 논리적 오류가 발생할 수 있습니다.
8. 지식 베이스의 한계: RAG 시스템이 접근할 수 있는 지식 베이스가 제한적이거나 불완전할 수 있습니다.
이러한 여러 이유로 인해 현재로서는 환각을 100% 제거하기 어렵습니다. 따라서 RAG를 사용하더라도, 모델의 응답을 비판적으로 평가하고 검증하는 과정은 여전히 중요합니다.
이처럼 아직 한계는 있지만, 앞으로 RAG와 대형언어모델 기술이 발전해 AI가 실시간으로 정보를 검색하고 업데이트할 수 있는 능력이 더욱 향상되면, 지금보다 훨씬 정확하고 신뢰성 있는 답변을 제공할 수 있게 될 것입니다.
AI 기술의 이점을 극대화하는 동시에
그 한계를 이해하는 것이 현명한 사용법입니다.