검색증강생성(RAG; Retrieval-Augmented Generation)이란? -개념, 장점
Chloe Woo | Content Strategist
주말에 짧은 여행을 계획하려고 합니다. “서울 근교 당일치기 여행지“를 검색했더니 수십 개의 블로그 포스팅과 관광 웹사이트가 나옵니다. 하지만 광고성 글이 많아서 실제 방문자들의 후기와 팁을 찾기가 어렵습니다. 원하는 정보에 도달하기까지 여러 링크를 클릭하고 시간을 소비해야 하죠.
이처럼 기존의 검색 시스템은 사용자의 요구를 충분히 충족시키지 못하는 경우가 많았습니다. 특히 복잡한 의료 정보나 금융 정보 등을 검색할 때 그 어려움이 더 컸고요.
최근 AI 분야에서 주목받고 있는 검색증강생성(RAG; Retrieval-Augmented Generation)은 ‘검색’과 ‘생성’의 장점을 결합해 사용자의 질문에 맞는 정보를 보다 정확하고 유용하게 제공하는 기술입니다. 영화 <아이언맨> 속 AI 비서 ‘자비스’처럼 말이죠. 앞서 예시로 든 일상생활에서뿐만 아니라 퍼블릭 데이터가 부족한 전문 도메인 영역에서의 검색 경험을 획기적으로 개선할 것으로 기대됩니다.
RAG의 정의
검색증강생성(RAG)은 검색(Search)과 생성(Generation)을 결합한 시스템으로, 먼저 질문에 적합한 정보를 데이터베이스에서 검색하고, 그 정보를 바탕으로 사용자가 이해할 수 있는 새로운 답변을 생성합니다. 검색 엔진의 정확성과 LLM(대규모 언어 모델)과 같은 생성 모델의 유연성을 결합한 시스템이죠. 이로써 사용자가 필요로 하는 정보를 보다 정확하고 신속하게, 사용자가 이해하기 쉬운 방식으로 제공합니다.
무엇보다 응답을 생성하는 과정에서 기존 정보를 ‘증강’한다는 것이 가장 큰 특징입니다. 단순히 이전에 학습된 데이터를 가지고 답변을 생성하는 것이 아니라, 실시간으로 새롭게 검색된 데이터를 토대로 답변을 구성한다는 뜻이죠. 이 때문에 RAG는 정보가 지속적으로 업데이트 되는 분야나 방대한 데이터 속에서 유의미한 정보를 추출해야 하는 경우에 매우 유용합니다.
RAG의 작동 방식
RAG 시스템은 검색과 생성 2단계로 이뤄집니다.
1단계 정보검색
사용자가 입력한 질문이나 쿼리를 바탕으로 지식 소스, 데이터 베이스, 외부 소스 등에서 관련 정보를 검색합니다. 이를 위해 다음과 같은 과정을 거칩니다.
- 질문 이해: 사용자가 입력한 질문을 질의 인코더(Query Encoder)를 통해 이해하기 쉬운 형태로 변환합니다. 이는 질문의 의도와 주요 키워드를 파악하는 단계입니다.
- 정보 검색: 인코딩된 질문을 바탕으로 지식 기반, 데이터 베이스, 외부 소스 등에서 관련 정보를 검색합니다. 정보를 검색하는 위치는 입력 쿼리가 요청하는 내용에 따라 달라집니다. 이렇게 검색된 정보는 고차원 공간의 벡터로 변환되어 벡터 데이터베이스에 저장됩니다.
- 정보 평가 및 선택: 검색된 정보 중에서 가장 관련성이 높은 문서나 구절을 선택합니다. 이를 위해 검색 모델은 입력 쿼리와의 관련성을 기준으로 검색된 정보의 순위를 매깁니다. 높은 순위의 정보가 이후 생성 단계에서 사용됩니다.
2단계 답변 생성
검색된 정보가 지식 증강 생성기(Knowledge-Augmented Generator)로 전달되고, 이 생성기가 질문에 대한 구체적이고 유의미한 답변을 생성합니다.
기존 시스템과의 차이점
1. RAG와 전통적인 검색 시스템의 차이점
전통적인 검색 시스템은 주로 키워드 기반으로 작동합니다. 사용자가 입력한 키워드와 일치하는 문서를 검색하고, 웹 페이지 목록을 나열하는 방식이죠. 반면, RAG는 단순히 키워드를 검색하는 것이 아니라 사용자 질문의 의도를 파악하고, 그에 맞는 정보를 추출하여 새로운 답변을 생성하는 방식입니다. 전통적인 검색 시스템에서 한단계 더 나아가, 검색 결과를 요약하고 추천하고 설명해주는 셈이죠.
2. RAG와 LLM 기반 미세조정 챗봇의 차이점
가장 큰 차이점은 참조하는 정보의 실시간성입니다. 기존 LLM 기반 챗봇은 학습된 데이터, 즉 정적인 데이터에만 기반하여 응답을 생성합니다. 모델이 훈련된 시점 이후의 새로운 정보나 실시간으로 변화하는 데이터에 접근할 수 없다는 한계를 지니고 있습니다. 반면 RAG는 사용자 질문에 대해 먼저 관련 정보를 외부 데이터베이스에서 검색한 후, 그 정보를 바탕으로 응답을 생성합니다.
기능 비교: RAG vs 파인튜닝
기능 |
RAG |
파인튜닝 |
지식 업데이트 |
직접 검색 지식을 업데이트하여 정보가 최신 상태를 유지하도록 하며, 빈번한 재훈련이 필요하지 않으며, 동적인 데이터 환경에 적합합니다. |
정적인 데이터를 저장하며, 지식 및 데이터 업데이트를 위해 재훈련이 필요합니다. |
외부 지식 |
외부 리소스를 능숙하게 활용하며, 문서나 기타 구조화된/비구조화된 데이터베이스에 특히 적합합니다. |
대형 언어 모델과 사전 학습된 외부 지식을 조정하는 데 사용할 수 있지만, 자주 변경되는 데이터 소스에는 덜 실용적일 수 있습니다. |
데이터 처리 |
최소한의 데이터 처리와 핸들링이 필요합니다. |
고품질 데이터셋에 의존하며, 제한된 데이터셋은 성능 향상에 도움이 되지 않을 수 있습니다. |
모델 맞춤화 |
정보 검색 및 외부 지식 통합에 중점을 두며, 모델 행동이나 작성 스타일은 완전히 맞춤화하기 어려울 수 있습니다. |
특정 톤이나 용어 기반의 특정 도메인 지식을 바탕으로 LLM의 행동과 작성 스타일을 조정할 수 있습니다. |
해석 가능성 |
답변은 특정 데이터 소스로 추적 가능하기 때문에, 해석 가능성과 추적성이 더 향상됩니다. |
블랙박스처럼 작동하여, 모델이 특정 방식으로 반응하는 이유를 항상 명확히 알 수 없으며, 해석 가능성이 상대적으로 낮습니다. |
계산 자원 |
데이터베이스 관련 검색을 지원하기 위해 계산 자원이 필요합니다. 외부 데이터 소스 통합 및 업데이트가 유지되어야 합니다. |
고품질 훈련 데이터셋의 준비 및 관리, 파인튜닝 목표의 정의, 계산 자원이 필요합니다. |
지연 요구 사항 |
데이터 검색이 포함되어 지연이 더 길어질 수 있습니다. |
파인튜닝 후 LLM은 검색 없이 응답할 수 있어 지연이 더 짧아집니다. |
환각 감소 |
검색된 증거에 기반하여 답변을 생성하기 때문에 본질적으로 환각이 적습니다. |
모델을 특정 도메인 데이터로 훈련시켜 환각을 줄일 수 있지만, 익숙하지 않은 입력에 직면했을 때 여전히 환각을 나타낼 수 있습니다. |
윤리 및 프라이버시 문제 |
외부 데이터베이스에서 텍스트를 저장 및 검색함에 따라 윤리 및 프라이버시 문제가 발생할 수 있습니다. |
훈련 데이터의 민감한 내용으로 인해 윤리 및 프라이버시 문제가 발생할 수 있습니다. |
→ 다음 아티클에서 다양한 RAG 활용 사례를 알아보세요.