검색 증강 생성(RAG)이란 무엇일까

검색 증강 생성(RAG)이란 무엇일까

AI
검색 증강 생성(RAG)이란 무엇일까
Author

gabriel yang

Published

June 1, 2025

검색 증강 생성(RAG)이란 무엇일까? LLM의 한계를 넘어서는 기술 탐구

대규모 언어 모델(LLM)은 방대한 데이터를 학습하여 질문에 답하고, 언어를 번역하며, 텍스트를 생성하는 등 인상적인 능력을 보여주고 있습니다. 하지만 LLM은 학습 데이터의 한계, 즉 학습 시점 이후의 최신 정보를 반영하지 못하거나 잘못된 정보를 자신 있게 제시하는 ‘환각(hallucination)’ 현상을 일으킬 수 있다는 문제점을 가지고 있습니다. 이러한 LLM의 예측 불가능성과 정적인 지식은 사용자의 신뢰를 저해할 수 있습니다.

이러한 한계를 극복하고 LLM의 응답 정확성과 신뢰성을 향상시키기 위해 등장한 기술이 바로 검색 증강 생성(Retrieval Augmented Generation, RAG)입니다. RAG는 AI가 법원 서기관처럼 특정 정보원을 참고하여 답변을 제공하게 하는 프로세스에 비유될 수 있습니다.

RAG라는 용어는 Cohere의 Patrick Lewis와 그의 동료들이 2020년 논문에서 처음 만들었으며, 이후 생성형 AI의 미래를 대표하는 방법론으로 널리 채택되었습니다.

RAG는 왜 중요할까요?

RAG는 기본 LLM 모델 자체를 재학습하거나 수정하지 않고도 외부의 신뢰할 수 있는 지식 베이스나 특정 도메인 데이터를 활용하여 생성형 AI의 출력을 최적화하는 방법입니다. 이는 LLM에 최신 정보나 기업 내부 지식과 같은 특정 정보를 제공하여, 더욱 관련성 높고 정확하며 상황에 맞는 답변을 생성할 수 있게 합니다.

RAG의 주요 이점:

  • 비용 효율적인 구현: LLM을 처음부터 재학습하거나 미세 조정하는 것보다 훨씬 빠르고 비용 효율적입니다.
  • 최신 정보 제공: 외부 데이터 소스를 최신 상태로 유지함으로써 LLM이 최신 정보를 기반으로 응답할 수 있게 합니다.
  • 사용자 신뢰 강화: 응답의 출처(소스)를 제공하여 사용자가 정보를 검증할 수 있게 함으로써 신뢰를 높입니다.
  • 환각 현상 감소: 관련 데이터 소스를 근거로 사용함으로써 부정확하거나 허구적인 정보를 생성할 위험을 줄입니다.
  • 개발자 제어 강화: LLM의 정보 소스를 제어하고 변경하여 애플리케이션을 보다 효율적으로 테스트하고 개선할 수 있습니다.
  • 도메인별 관련성: 조직의 독점 데이터 또는 도메인별 데이터에 맞춰 상황에 맞는 응답을 제공할 수 있습니다.
  • 다재다능성: 질문 답변, 콘텐츠 생성, 정보 검색 등 다양한 자연어 처리 작업에 적용 가능합니다.

RAG는 어떻게 작동할까요?

RAG는 크게 두 가지 단계로 이루어집니다: 검색(Retrieval)생성(Generation).

  1. 데이터 준비 및 인덱싱: LLM의 학습 데이터 외부에 있는 새로운 데이터(외부 데이터)를 수집합니다. 이 데이터는 문서, 데이터베이스, 웹 페이지 등 다양한 형태일 수 있습니다. 임베딩 언어 모델이라는 AI 기법을 사용하여 이 데이터를 기계가 이해할 수 있는 숫자 형식(임베딩 또는 벡터)으로 변환하고, 벡터 데이터베이스에 저장합니다. 이 과정에서 문서 청킹, 메타데이터 추가 등의 전처리 작업이 이루어집니다. 지식 저장소 또는 인덱스는 최신 정보를 반영하기 위해 지속적으로 업데이트될 수 있습니다.

  2. 관련 정보 검색: 사용자가 LLM에 질문(프롬프트)을 입력하면, 이 쿼리도 벡터로 변환됩니다. RAG 시스템은 이 쿼리 벡터와 벡터 데이터베이스에 저장된 데이터 벡터 간의 유사성을 계산하여 쿼리와 가장 관련성이 높은 정보를 검색합니다. 시맨틱 검색 또는 하이브리드 검색(키워드 + 벡터 검색)과 같은 고급 검색 기법은 관련성 높은 정보를 더 정확하게 찾는 데 사용됩니다. 검색된 정보는 관련성에 따라 순위가 매겨지고, 상위 결과가 선택됩니다.

  3. 프롬프트 확장 및 생성: 검색된 관련 데이터는 사용자 쿼리와 함께 LLM에 입력됩니다. 이 단계에서는 검색된 정보를 LLM 프롬프트에 추가하여 LLM의 컨텍스트를 풍부하게 만듭니다. LLM은 이 확장된 프롬프트를 사용하여 답변을 생성합니다. LLM은 미리 학습된 지식과 검색된 최신/특정 데이터를 결합하여 최종 응답을 작성합니다. LLM의 응답에는 검색된 정보의 출처가 인용될 수 있습니다.

RAG 아키텍처의 일반적인 요소:

  • 사용자 경험을 위한 앱 UX (웹 앱): 사용자 질문이 시작되는 곳입니다.
  • 앱 서버 또는 오케스트레이터: 정보 검색 시스템과 LLM 간의 데이터 흐름 및 조정을 담당하는 통합 코드입니다 (예: LangChain, LlamaIndex, 의미 체계 커널).
  • 정보 검색 시스템: 검색 가능한 인덱스, 쿼리 로직, 검색 결과(페이로드)를 제공합니다 (예: Azure AI 검색, 벡터 데이터베이스).
  • LLM: 검색 결과와 함께 사용자의 질문을 받아 최종 응답을 생성합니다 (예: Azure OpenAI, Gemini).

RAG와 다른 기술의 차이점

  • RAG vs. 미세 조정(Fine-tuning): 미세 조정은 기존 LLM을 특정 데이터셋으로 추가 학습시켜 모델의 가중치와 매개변수를 조정하는 방식입니다. 이는 특정 작업이나 도메인에 모델을 특화시키는 데 유용하지만, 시간과 비용이 많이 들고 새로운 데이터에 빠르게 적응하기 어렵습니다. RAG는 모델 자체를 수정하지 않고 외부 데이터를 활용하므로 더 빠르고 비용 효율적이며 최신 정보를 쉽게 반영할 수 있습니다. 두 방식은 상호 보완적으로 사용될 수 있습니다.
  • RAG vs. 시맨틱 검색: 시맨틱 검색은 쿼리의 의미를 깊이 이해하여 데이터베이스에서 가장 관련성 높은 문서를 찾는 기술입니다. 시맨틱 검색 자체는 답변을 생성하지 않습니다. RAG는 시맨틱 검색과 같은 정보 검색 기술을 활용하여 LLM이 사용할 컨텍스트 데이터를 가져오고, LLM이 최종 답변을 생성합니다. 따라서 시맨틱 검색은 RAG의 검색 단계에서 정확도를 높이는 데 중요한 역할을 합니다.

RAG의 사용 사례

RAG는 다양한 애플리케이션에서 LLM의 활용도를 높입니다.

  • 질의 응답 챗봇: 기업 내부 문서, 정책 매뉴얼, 고객 서비스 기록 등을 기반으로 직원이 특정 질문에 대한 답변을 빠르게 얻거나, 고객에게 기업 관련 답변을 제공하는 데 사용됩니다.
  • 지식 엔진: HR 문서, 규정 준수 문서, 연구 논문 등 방대한 데이터에 대해 자연어로 질문하고 답변을 얻는 데 사용됩니다.
  • 검색 증강: 일반적인 검색 엔진에서 LLM이 생성한 요약이나 답변으로 검색 결과를 보강하여 사용자가 정보를 더 쉽게 찾을 수 있도록 돕습니다.
  • 문서 분석 및 요약: 재무 보고서, 의료 데이터베이스, 콜센터 통화 기록 등 대규모 문서를 분석하고 요약하는 데 활용될 수 있습니다.

RAG 관련 도전 과제

RAG는 많은 이점을 제공하지만, 아직 초기 단계의 기술로서 몇 가지 해결해야 할 과제도 존재합니다.

  • 기술 구현 및 이해: RAG는 비교적 새로운 기술이므로, 전사적인 이해와 기술 함양이 필요합니다.
  • 초기 비용 및 데이터 모델링: 구현 초기 비용이 발생할 수 있으며, 정형/비정형 데이터를 효과적으로 모델링하고 벡터 데이터베이스에 저장하는 방법 결정이 중요합니다.
  • 데이터 업데이트 프로세스: 새로운 데이터를 지속적으로 수집, 변환하여 지식 라이브러리를 업데이트하는 프로세스 구축이 필요합니다.
  • 부정확한 정보 처리: 검색된 정보에 오류가 있을 경우, 해당 정보를 수정하고 시스템에서 업데이트하는 프로세스 정립이 필요합니다.

RAG의 미래 동향

RAG 기술은 앞으로 사용자 맞춤화, 확장성, 다른 AI 기술과의 결합(하이브리드 모델), 실시간 응답 속도 향상 등의 방향으로 발전할 것으로 예상됩니다. 이를 통해 AI 에이전트가 사용자의 문맥과 프롬프트에 따라 더 복잡한 작업을 수행하거나 적절한 조치를 취하도록 돕는 방향으로 발전할 수 있습니다.

주요 클라우드 제공업체 및 솔루션

여러 주요 기업들이 RAG 구현을 위한 솔루션과 도구를 제공하고 있습니다.

  • Microsoft Azure: Azure AI 검색은 RAG 아키텍처에서 정보 검색을 위한 검증된 솔루션으로 제공됩니다. 인덱싱 및 쿼리 기능을 제공하며, Azure AI Foundry, Azure OpenAI, Azure Machine Learning 등과 통합하여 RAG 솔루션을 구축할 수 있습니다. 사용자 지정 솔루션 구축을 위한 API도 제공합니다. Azure AI 검색은 텍스트, 벡터, 하이브리드 검색 기능을 제공하며, 벡터 인덱스 및 의미 순위 매기기와 같은 기능을 통해 관련성 튜닝을 지원합니다.
  • NVIDIA: RAG 개발 및 맞춤 설정을 지원하기 위한 레퍼런스 아키텍처와 NVIDIA AI Blueprint for RAG를 제공합니다. 또한 빠르고 정확한 응답을 위한 NVIDIA NeMo Retriever 및 NVIDIA NIM 마이크로서비스를 제공하며, 고성능 워크로드를 위한 NVIDIA GH200 Grace Hopper 슈퍼칩과 같은 하드웨어를 지원합니다. PC에서도 RAG를 사용할 수 있도록 지원합니다. LangChain과 같은 라이브러리 사용을 지원합니다.
  • AWS: Amazon Bedrock은 RAG를 위한 지식 기반 기능을 제공하여 FM을 데이터 소스에 연결하는 것을 간소화합니다. Amazon Kendra는 기계 학습 기반의 엔터프라이즈 검색 서비스로, RAG 워크플로우의 검색기로 사용될 수 있으며 높은 정확도의 의미 체계 랭커를 제공합니다. Amazon SageMaker JumpStart는 RAG 구현을 위한 FM, 알고리즘, 솔루션 등을 제공합니다.
  • Google Cloud: Vertex AI RAG Engine, Vertex AI Search (완전 관리형 검색 및 RAG 빌더), Vertex AI 벡터 검색 등을 포함한 RAG 관련 제품 및 서비스를 제공합니다. Google 검색 기반 또는 자체 검색 엔진을 사용하는 Grounded Generation API도 제공합니다. BigQuery 및 AlloyDB AI와 같은 데이터베이스도 RAG에 활용될 수 있습니다.
  • Oracle: Oracle Cloud Infrastructure(OCI)에서 실행되는 OCI Generative AI 서비스를 통해 RAG를 지원하며, 고객사 고유 데이터 기반 모델을 제공합니다. 벡터 데이터베이스와 같은 기술을 활용하여 RAG를 구현하며, 재무 분석, 콜센터 기록 검토, 연구 논문 검색 등 다양한 사용 사례를 제시합니다.
  • Elastic: Elasticsearch를 사용하여 RAG 지원 검색 애플리케이션을 구축할 수 있도록 도구 키트를 제공합니다. 텍스트, 벡터, 하이브리드, 시맨틱 검색을 지원하며, 독점 데이터 및 외부 지식 기반을 저장 및 검색하는 기능을 제공합니다.
  • Databricks: RAG 아키텍처 접근 방식을 사용하여 LLM 애플리케이션 효율성을 개선할 수 있도록 지원합니다. Databricks 플랫폼은 데이터 준비, 인덱싱, 검색, LLM 애플리케이션 구축 등 RAG 워크플로우를 지원합니다. 벡터 데이터베이스, Model Serving, MLflow 통합 등을 제공하며, JetBlue, Chevron Phillips, Thrivent Financial 등 고객사의 RAG 사용 사례를 소개합니다.

결론

RAG는 LLM의 학습 데이터 한계를 넘어 외부의 최신, 특정 데이터를 활용하여 응답의 정확성, 신뢰성, 관련성을 크게 향상시키는 강력한 기술입니다. 비용 효율성, 최신 정보 반영, 사용자 신뢰 구축 등의 이점을 통해 다양한 엔터프라이즈 및 사용자 중심 애플리케이션에서 생성형 AI의 활용도를 높이고 있습니다. 아직 발전 중인 기술이지만, RAG는 생성형 AI의 미래를 형성하는 데 중요한 역할을 할 것으로 기대됩니다.

주요 용어

  • RAG (검색 증강 생성, Retrieval-Augmented Generation): 대규모 언어 모델(LLM)이 응답을 생성하기 전에 외부 소스에서 관련 정보를 검색하여 모델의 기능을 보강하는 AI 아키텍처.

  • LLM (대규모 언어 모델, Large Language Model): 방대한 양의 텍스트 데이터를 기반으로 학습되어 인간과 유사한 텍스트를 이해, 요약, 생성할 수 있는 심층 학습 모델.

  • 환각 (Hallucination): AI 모델, 특히 LLM이 사실과 다르거나 존재하지 않는 정보를 자신 있게 생성하는 현상.

  • 임베딩 (Embedding): 단어, 구문 또는 문서와 같은 텍스트 데이터를 고차원 공간에서 의미론적 관계를 나타내는 수치 벡터로 변환하는 과정.

  • 벡터 데이터베이스 (Vector Database): 임베딩된 벡터를 저장하고 관리하며, 벡터 유사성을 기반으로 빠른 검색을 수행할 수 있도록 설계된 데이터베이스.

  • 정보 검색 (IR, Information Retrieval): 지식 소스나 데이터 세트에서 사용자 쿼리와 관련된 정보를 찾고 추출하는 프로세스.

  • 시맨틱 검색 (Semantic Search): 단순히 키워드 일치가 아닌 쿼리와 콘텐츠의 의미를 이해하여 관련성 높은 결과를 검색하는 기술.

  • 하이브리드 검색 (Hybrid Search): 키워드 기반 검색과 벡터 유사성 기반 검색을 결합하여 검색 결과의 정밀도와 재현율을 모두 향상시키는 검색 방식.

  • 미세 조정 (Fine-tuning): 특정 작업이나 데이터셋에 맞춰 사전 학습된 모델을 추가적으로 학습시켜 성능을 개선하는 과정.

  • 프롬프트 엔지니어링 (Prompt Engineering): LLM에게 원하는 응답을 얻기 위해 효과적인 입력 질문이나 지침을 작성하는 기술.

  • 접지 데이터 (Grounding Data): LLM이 응답을 생성할 때 참조하는 외부의 신뢰할 수 있는 정보나 데이터 소스.

  • 지식 베이스 (Knowledge Base): RAG 시스템에서 검색 및 활용될 수 있도록 구성된 구조화되거나 비구조화된 정보의 저장소

RAG에 대한 이해를 퀴즈로 확인해보세요.

  1. RAG(검색 증강 생성)란 무엇인가요?
    정답보기 RAG(검색 증강 생성)는 대규모 언어 모델(LLM)의 기능을 보강하기 위해 정보 검색 시스템을 추가하는 아키텍처 또는 기술입니다. 이를 통해 LLM은 자체 학습 데이터 외부에 있는 외부 소스의 관련 정보를 참조하여 응답을 생성할 수 있습니다. RAG는 특정하고 관련성 높은 데이터 소스의 정보로 생성형 AI 모델의 정확성과 신뢰성을 향상시키는 기술입니다.
  2. LLM이 RAG를 사용하는 주된 이유는 무엇인가요?
    정답보기 LLM은 학습 데이터에 한계가 있어 최신 정보나 특정 도메인 지식에 대한 응답이 어렵거나, 답변이 없을 때 허위 정보(환각)를 생성할 수 있습니다. RAG는 이러한 문제점을 해결하기 위해 LLM에 최신 정보나 특정 조직/산업의 내부 지식에 접근할 수 있도록 연결하여 응답의 정확성과 신뢰성을 높이고 환각 현상을 줄이는 데 도움을 줍니다.
  3. RAG 시스템은 정보를 검색하고 응답을 생성하기 위해 대략적으로 어떻게 작동하나요?
    정답보기 RAG 시스템은 사용자의 질문(프롬프트)으로 시작합니다. 이 질문을 사용하여 정보 검색 시스템은 관련 정보를 외부 소스(데이터베이스, 문서 등)에서 찾습니다. 검색된 관련 정보는 LLM에 대한 입력에 추가되거나 사용자 입력과 함께 LLM에 제공됩니다. 마지막으로 LLM은 이 검색된 정보와 원래 프롬프트를 사용하여 최종 응답을 생성합니다.
  4. RAG를 사용하면 LLM에 비해 어떤 장점이 있나요?
    정답보기 RAG는 LLM에 최신 정보나 특정 지식에 접근할 수 있도록 하여 응답의 정확성과 신뢰성을 향상시킵니다. LLM 자체를 재학습시키는 것보다 일반적으로 비용 효율적이고 빠릅니다. 사용자는 응답에 대한 정보 소스를 확인할 수 있어 신뢰가 높아지며, LLM의 환각 현상을 줄이는 데 도움이 됩니다. 또한 LLM이 사용하는 정보 소스에 대한 개발자 제어가 강화됩니다.
  5. RAG와 모델 미세 조정(Fine-tuning)은 어떻게 다른가요?
    정답보기 모델 미세 조정은 사전 학습된 LLM 모델 자체를 특정 작업이나 데이터에 맞게 추가 학습시켜 모델의 가중치를 변경하는 과정입니다. 반면에 RAG는 LLM 모델 자체를 변경하지 않고, 응답을 생성하기 전에 외부 정보 소스에서 관련 데이터를 검색하여 LLM에 제공함으로써 응답을 보강하는 기술입니다. 미세 조정은 비용과 시간이 많이 들 수 있지만, RAG는 일반적으로 더 빠르고 비용 효율적입니다. 이 두 기술은 함께 사용될 수도 있습니다.

카테고리 다른 글

Date Title Author
Jan 1, 3000 전체 카테고리 gabriel yang
Apr 9, 2025 구글 시트 API 접속 설정하기 gabriel yang
Apr 6, 2025 Crawl4AI를 이용한 웹크롤링 gabriel yang
Apr 5, 2025 Crawl4AI란 gabriel yang
Mar 30, 2025 Ollama에서 Generation Parameter 설정 가이드 gabriel yang
Mar 23, 2025 Google PSE로 Local LLM에 웹검색 기능 추가 gabriel yang
Dec 23, 2023 ChatGPT3.5와 ChatGPT4의 차이점 gabriel yang
Dec 22, 2023 Google Gemeni API Key 얻기 gabriel yang
Dec 14, 2023 RAG(Retrieval Argumented Generation) 정리하기 gabriel yang
No matching items