RAG(Retrieval-Augmented Generation, 검색 증강 생성)가 주목 받는 이유

 ref. https://www.skelterlabs.com/blog/2024-year-of-the-rag

2023년은 ChatGPT, Llama-2와 같은 기초적인 대형 언어 모델(LLM)들에 관한 해였다면, 2024년은 RAG (Retrieval Augmented Generation; 검색 증강 생성) 와 AI Agent(AI 에이전트)의 해가 될 것이라고 다수의 필드 전문가들은 예측합니다. 

이번 블로그 포스트에서는 2024년에 RAG가 주목 받는 이유, 작동 방식, 그리고 파인튜닝 방식과의 비교 등 RAG의 기초 상식을 살펴보도록 하겠습니다.

📖 목차
• RAG 란?
• RAG가 주목 받는 이유
• RAG의 장점 3가지
• RAG 작동 방식
• RAG vs. Fine-tuning(파인튜닝)
• RAG의 미래 동향

📍RAG란?

Retrieval-augmented generation(RAG; 검색증강생성)은 외부 지식 베이스에서 사실을 검색하여 대형 언어 모델(LLM)을 가장 정확하고 최신의 정보에 근거하는 AI 프레임워크입니다.

쉽게 말해, LLM이 생성을 할 때, 올바르고 최신의 정보를 사용하도록 도와주는 도구라고 할 수 있습니다. 예를 들어, RAG는 인터넷이나 다른 데이터베이스 같은 ‘외부의 지식 저장소’에서 관련 정보를 빠르게 찾아낸 후, 그 정보를 바탕으로 우리의 질문에 답을 해줍니다.

RAG를 통해 LLM은 항상 최신의 정보를 제공할 수 있고, 또한 우리가 어떻게 그런 답을 얻었는지 이해하는 데 도움을 줍니다. 이것이 바로 RAG가 하는 일입니다.

📍RAG가 주목 받는 이유

RAG의 중요성이 증가하는 이유는 대형 언어 모델(LLM)이 이미 매우 성숙하고 유익한 수준에 도달했기 때문입니다. 마치 원유를 자동차를 움직이는 가솔린으로 변환하는 것처럼, 기업과 소비자 모두에게 생산성 향상을 가져다 줄 준비를 마쳤다는 뜻 으로 해석할 수 있습니다. 

RAG가 급부상하면서 고객 지원부터 직원 생산성, AI 워크플로우 강화에 이르기까지 다양한 영역에서 기업과 소비자 모두에게 상당한 수익과 생산성 향상을 가져올 것으로 예상됩니다.

📍RAG의 이점 3가지

RAG의 장점으로는 답변을 생성하는 과정에서 외부 정보 활용이 가능하다는 점(확장성), 사용자에게 더 맞춤화된 답변을 제공할 수 있다는 점(유연성 및 확장성), 그리고 검증 가능한 출처를 기반으로 답변을 제공해 할루시네이션을 최소화할 수 있는 점(정확성) 등이 있습니다.

  1. 확장성: #오픈 북 접근 방식 #외부 정보 활용 가능

    파인튜닝된 모델은 학습이 종료된 시점에 머무르기 때문에, 정보가 계속 변화하는 상황에서 지속적으로 최신 상태를 유지하기 어렵습니다. 반면, RAG는 최신 정보를 실시간으로 검색하여 활용하므로, 데이터의 변동성이 큰 경우에 품질과 비용 측면에서 더 효과적일 수 있습니다.

    이러한 이유로, 파인튜닝은 '닫힌 책'에, RAG는 '열린 책'에 비유됩니다. 파인튜닝은 도메인 특화된 학습이 가능하지만 한정된 지식에 기반하고, RAG는 지속적으로 업데이트되는 외부 지식을 활용하기 때문이죠.

  2. 유연성: #사용자에게 더 맞춤화된(개인화된) 답변 제공

    LLM 이전의 스크립트 방식 챗봇은 수동적인 대화 흐름을 따랐습니다. 그들은 고객의 의도를 확인하고, 요청된 정보를 가져와 정해진 스크립트로 답을 제공했죠.

    이 방법은 간단한 질문에는 잘 작동했습니다. 하지만 한계가 있었습니다. 고객이 물어볼 수 있는 모든 질문에 대한 답변을 예상하고 작성하는 데는 시간이 걸렸고, 정해진 시나리오에서 벗어나면 스크립트 방식 챗봇은 즉흥적으로 대응할 능력이 없었습니다. 때문에 기업 입장에서는 정책과 상황이 변함에 따라 스크립트를 매번 업데이트하는 것이 비현실적이거나 불가능했습니다.

    오늘날, LLM을 사용하는 챗봇은 과거 스크립트 기반의 단순한 대답보다 훨씬 개인화된 답변을 제공할 수 있습니다. 하지만 RAG는 이를 한 단계 더 발전시켜줍니다.

    RAG는 최신 문서나 정책을 모델에 업로드하면, 이 정보를 바탕으로 질문에 더 정확하게 답변할 수 있도록 해줍니다. 이 시스템은 사용자의 의도를 파악하고, 다양한 정보 소스를 참조하여 보다 맞춤화된 답변을 생성할 수 있는 검색 기능(일반적으로 시맨틱 또는 하이브리드 검색 방식)을 사용합니다.
  1. 정확성: #할루시네이션 최소화 #검증 가능한 출처 기반 답변 제공

    정확성을 마냥 주장만 하는 것과, 이를 실제로 증명해내는 것은 별개의 문제입니다. RAG는 외부 소스를 인용하고 이를 사용자에게 제공하여 답변의 내용을 뒷받침할 수 있습니다.

    예를 들면, 사용자의 질문은 항상 간단하지 않습니다. 애매하게 표현되거나 복잡하거나, 모델이 가지고 있지 않거나 쉽게 해석할 수 없는 지식을 필요로 할 수 있죠. 이러한 상황에서 LLM은 없는 사실을 만들어내기 쉽습니다. 가령 길동씨가 얼마나 많은 휴가를 받을 수 있는지 질문했을 때, RAG를 사용하지 않는 챗봇은 뜬 구름 잡는 소리를 할 수 있습니다: "원하는 만큼 연차를 쓰세요!"

    RAG는 길동씨의 휴가에 관한 질문에 대해 더 정확하고 구체적인 답변을 제공할 수 있습니다. 예를 들어, RAG는 회사의 정책 문서나 길동씨의 인사 파일에서 실제로 사용 가능한 휴가 일수를 검색하고, 그에 근거하여 "현재 사용 가능한 휴가 일수는 X일입니다"와 같은 구체적이고 검증 가능한 정보를 제공할 수 있습니다. 이것이 가능한 이유는 모델이 RAG를 활용해 외부 데이터에 접근하여 개인화된 답변을 제공할 수 있기 때문입니다.

📍RAG 작동 방식

RAG는 검색에서 시작하여 생성으로 이어지는 프로세스입니다. 기본적인 작동 방식은 다음과 같습니다:


  1. 검색 단계
  • 질문 임베딩:
    - 사용자의 질문(예: "3월의 이벤트를 알려줘")을 임베딩합니다. 이는 자연어로 된 질문을 수치적 벡터로 표현하는 과정입니다.
  • 유사성 검색:
    - Vector DB에서 질문과 데이터 문서의 유사성을 검색합니다.
    - 유사성에 따라 정렬된 문서 조각(청크 ID) 목록을 생성합니다.
  • 관련도 순위 결정:
    - 가장 관련성 높은 데이터의 순위를 재조정하는 과정입니다.
    - 이 과정을 통해 관련도 순으로 검색 결과를 재정렬합니다.
    - 메타데이터 필터링을 통해 사용자 쿼리에 맞는 특정 정보(예: 특정 이름, 키워드, 날짜)를 매치하고, 관련 없는 정보를 제외합니다.
  1. 생성 단계
  • 추론:
    - Vector DB에서 관련 문서 조각을 가져옵니다.
    - 검색된 내용과 초기 사용자 질문을 바탕으로 최종 프롬프트를 구성합니다.
  • 프롬프트 엔지니어링:
    - 언어 모델이 검색된 정보를 기반으로 사용자 질문에 적절하게 답변할 수 있도록 합니다.
    - 예를 들어, 특정 정보가 없는 경우 "이 사례에 대한 정보가 없습니다"라고 답변하는 것이 포함될 수 있습니다.
  • 텍스트 응답 생성:
    - 생성된 텍스트가 문법적으로 정확하고 일관성 있는지 확인하는 후처리 과정을 거칠 수 있습니다. 

📍RAG vs. Fine-tuning(파인튜닝)

기업들이 LLM을 도입하기에 앞서, 할루시네이션을 줄이고 사용성을 증대하기 위해 크게 두 가지 방식을 고민합니다. RAG를 선택할 것인지, 파인튜닝(미세조정)을 시도할 것인지 말이죠. RAG 와 파인튜닝을 표로 비교해보았습니다:

파인튜닝된 모델의 성능은 기업의 도메인 데이터 품질과 양에 의존적이며, 라벨링된 데이터가 부족하면 이 방법이 최선이 아닐 수 있습니다. 또한, 모델은 훈련을 마친 시점의 정보에 한정되어 있어, 지속적으로 최신 상태를 유지하기 어려운데요. 때문에 변화가 잦은 데이터에 대해서는 파인튜닝 대신 RAG를 사용하는 것이 품질 유지와 비용 측면에서 유리할 수 있습니다.

💡더 자세한 내용은 ‘RAG vs. 파인튜닝 :: 기업용 맞춤 LLM을 위한 선택 가이드’ 블로그 글에서 확인하실 수 있습니다.

📍RAG 미래 동향

RAG의 미래는 개인화와 확장성 그리고 정확성에 초점을 맞추며, 다양한 데이터를 처리하고 실시간으로 반응하는 더 똑똑한 시스템으로 발전할 것으로 전망됩니다. 

그러나 이를 위해서는 효율적이고 정확한 검색 메커니즘의 구축과 검색 및 생성 구성 요소의 섬세한 통합이 필요한데요. 이러한 과제들은 RAG 기술의 성공적인 적용을 위해 극복해야 할 중요한 요소들입니다.

이러한 동향과 문제점을 고려했을 때, RAG 기술을 성공적으로 활용하기 위해서는 전문적인 지원이 필수적입니다. 때문에 대화형 AI 분야의 전문 지식을 갖춘 기업의 조력을 구하는 것이 현명한 접근일 수 있습니다.





댓글 쓰기

0 댓글