BLOGAnnounced at MongoDB.local NYC 2024: A recap of all announcements and updates — Learn more >

검색 증강 생성(RAG)이란?

생성형 AI의 기반이 되는 거대 언어 모델(LLM)은 새로운 것을 만들거나 생성할 때 추론할 수 있는 능력을 갖춘 놀라운 엔지니어링 및 과학 작품입니다. 하지만 특정 생성형 AI 기반 애플리케이션이나 프로젝트에 LLM을 유용하게 사용하려면 관련 데이터를 직접 제공해야 합니다. LLM은 인상적이지만 누구나 이용할 수 있습니다. 따라서 초강력 차별화는 LLM에 데이터를 제공하는 것에서 비롯되며, 이것이 바로 검색 증강 생성(RAG)을 통해 가능한 일입니다.

목차

거대 언어 모델 또는 파운데이션 모델은 모든 것을 알고 있는 범용 모델이지만 독점적인 최신 정보에 대한 지식이 부족합니다.

거대 언어 모델(LLM)과 파운데이션 모델은 멀티모달 데이터(예: 텍스트, 코드, 이미지, 동영상, 오디오, 테이블)를 생성하고 이해할 수 있는 일종의 인공지능(AI)입니다. 방대한 데이터 세트를 학습하여 번역, 다양한 종류의 창의적인 콘텐츠 작성, 동영상 및 음악 작곡, 유익한 방식으로 질문에 답변하는 등 다양한 작업에 활용할 수 있습니다.

LLM은 전 세계의 모든 지식에 접근할 수 있는 것처럼 보이지만 몇 가지 한계가 있습니다. 한 가지 한계는 항상 정확하지 않거나 최신이 아닌 출력을 생성할 수 있다는 것입니다. LLM은 오래되었거나 불완전하거나 특정 사용 사례나 분야에 대한 독점적 지식이 부족한 데이터에 대해 학습하기 때문입니다. 또한 LLM은 때때로 편향적이거나 불쾌감을 주는 결과를 생성할 수 있습니다.

LLM의 또 다른 한계는 실제 세계의 지식에 접근하고 조작하는 데 어려움이 있다는 것입니다. 일반적으로 LLM은 합성 또는 텍스트 기반 데이터로 학습되기 때문입니다. 따라서 LLM은 세상이 어떻게 돌아가는지, 자신의 지식을 실제 문제에 적용하는 방법을 잘 이해하지 못할 수 있습니다.

이미지는 검색 증강 생성을 사용하지 않는 LLM 기반 애플리케이션의 예를 보여줍니다.
검색 증강 생성은 문맥에 맞는 최신 데이터를 제공하여 LLM을 유용하게 활용할 수 있습니다.

검색 증강 생성은 상황에 맞는 최신 데이터에 대한 액세스를 제공하여 LLM의 한계를 해결하는 기술입니다. RAG 모델 또는 패턴이라고도 하는 RAG 구현은 사전 학습된 LLM과 쉽게 액세스할 수 있는 정보 검색 시스템을 결합하여 작동합니다. 검색 시스템은 데이터베이스와 같은 지식 라이브러리에서 관련 정보를 찾는 역할을 담당합니다. RAG 모델을 사용하면 LLM 또는 파운데이션 모델이 당면한 작업과 관련된 최신 컨텍스트를 바탕으로 보다 정확한 답변을 생성할 수 있습니다.

RAG 모델은 다음과 같은 다양한 지식 집약적 작업에 효과적인 것으로 나타났습니다.

  • 포괄적이고 유익한 방식으로 질문에 답하거나 시, 대본, 음악, 이메일, 편지 등과 같은 다양한 창의적인 텍스트 형식의 텍스트 콘텐츠를 생성하는 등의 언어 생성 작업.
  • 대화, 오디오 녹음 및 영상 통화 요약 제공과 같은 NLP 작업.
  • 사이버 보안 및 규정 준수와 같은 분류가 필요한 작업 또는 비즈니스 계획과 같은 추론이 필요한 작업

또한 RAG를 사용하여 생성형 AI 기반 애플리케이션이 일부 백그라운드 상태를 관찰하고 그에 맞게 생성을 조정할 수 있습니다. 사용자가 작성 중인 코드를 기반으로 코드를 작성하는 기능을 예로 들 수 있습니다. 다른 예는 다음과 같습니다.

  • 애플리케이션 컨텍스트. 시트 이름, 파일 이름, 선택한 셀 범위 등을 알고 있으면 도움이 되는 AI 기반 Excel 도우미를 구축한다고 가정해 봅시다. RAG는 이 '백그라운드 활동 정보'를 프롬프트에 제공하여 LLM이 사용자의 시트에 맞게 도움을 제공할 수 있도록 합니다.
  • 개인 데이터(예: 상담원 지원 챗봇). 고객 지원 봇을 만들고 있다고 가정해 봅시다. 봇은 특정 고객에 대한 이전 대화 및 CRM 기록을 가져와 대화를 맞춤화하는 데 도움을 줄 수 있습니다(인사말뿐만 아니라 옵션 사용자 지정 등). 이 기록이 없으면 LLM은 개인화를 효과적으로 수행하거나 기존 문제를 해결할 수 없습니다.
  • 원시 숫자, 지표, 표 형식 데이터(예: CSV, Parquet, JSON 등). RAG는 텍스트 컨텍스트 작업에만 국한되지 않고 정량적 정보도 작업합니다. Business intelligence(BI) 챗봇이라면 당연히 원시 표 형식의 데이터에 대해 RAG를 수행할 것입니다.
  • 이미지, 동영상, 오디오 등 기타 멀티모달 데이터 유형. DALL-E 2와 같은 많은 모델은 텍스트를 활용하여 이미지를 만들거나 증강할 수 있습니다. 반대로 이미지나 동영상을 자연어로 합성할 수도 있습니다. 특정 이미지 또는 디자인 폼 팩터에 대한 컨텍스트를 확보함으로써 RAG는 마케팅 자산을 만들거나 굉장히 구체적이고 컨텍스트가 많은 정보가 포함된 동영상에서 요약 및 번역을 생성할 때 생성형 AI 앱을 더욱 강력하게 만들 수 있습니다.

검색 증강 생성은 학습 데이터로 통합할 수 없는 데이터에도 유용합니다

  • 변동성이 높거나 시간에 민감한 데이터: 주식 시장 뉴스와 같은 데이터는 금방 오래되어 버립니다. 따라서 이 말뭉치로 LLM을 재학습시키기보다는 추론 시간 동안 각 요청마다 최신 정보로만 LLM을 개선하는 것이 더 합리적입니다.
  • 민감한 데이터: 최고 성능의 LLM(예: OpenAI의 GPT 또는 Anthropic의 Claude)은 대부분 종량제이며 해당 회사에서 소유하고 있습니다. 이러한 LLM을 미세 조정하기 위해 학습 데이터에 민감한 개인 정보를 사용하면 개인 데이터 유출로 이어질 수 있으며 잠재적으로 위험할 수 있습니다. 따라서 때로는 RAG가 유일한 안전한 옵션일 수 있습니다.
RAG의 주요 사용 사례

위의 내용을 바탕으로 하면 RAG의 가장 적합한 사용 사례는 다음과 같습니다.

  • 회사별 문서 및 지식 기반, 실시간 운영 시스템, 백 오피스 시스템 등과 같은 분야 외적 지식에 대한 질문 답변: 정의에 따라 LLM의 지식 차단 범위를 벗어난 데이터와 함께 LLM을 사용하려면 RAG가 필요합니다. 또한 시간에 매우 민감하고 빠르게 변화하는 컨텍스트에 대한 질문과 답변(빠르게 오래되는 데이터)은 미세 조정을 통해 LLM에 통합하는 것이 불가능합니다.
  • 환각을 줄이고 사실 정확도를 높이기 위해: 일반적으로 RAG는 LLM의 학습 말뭉치에 포함된 정보에 대한 질문에 답할 때도 사실 정확도를 향상시킬 수 있습니다. RAG는 질문 답변 작업을 무제한 질문 답변 작업보다 쉬운 '오픈북 퀴즈' 작업으로 바꾸기 때문입니다.
  • 개인화는 RAG의 일반적인 사용 사례입니다. 이 경우 프롬프트는 사용자 데이터로 보강됩니다. 선택 사항으로 프롬프트에 삽입하기 전에 모든 PII 데이터를 스크러빙할 수 있습니다.
  • 문맥에 맞는 답변 제공(Co-Pilot 내). Github Co-pilot에서 알 수 있듯 애플리케이션 상태(현재 문서, 전체 프로젝트 메타데이터, 현재 방문 중인 URL 또는 페이지 등)에 기반할 때 LLM 생성의 연관성이 높아질 수 있습니다.
  • 고도로 분야에 특화된 컨텍스트에서 작동하는 모든 생성형 AI 앱. 의료, 금융 서비스, 법률 검색, 과학 및 엔지니어링 등이 그 예입니다. 이러한 종류의 분야에서는 학습 데이터가 드문 경우가 많기 때문에 유용한 생성형 AI 앱을 구축하려면 RAG가 필수적입니다.
왜 검색 증강 생성을 사용해야 할까요? 생성형 AI 애플리케이션을 구축할 때 RAG의 대안으로는 어떤 것이 있을까요?
생성형 AI 애플리케이션을 구축할 때 RAG를 대체할 수 있는 여러 가지 대안이 있습니다. 가장 인기 있는 대안은 다음과 같습니다.
  • 자체 LLM 학습: 자체 LLM을 학습해야 하는 당위성이 있을 수 있지만, 사용 가능한 많은 상용(OpenAI GPT) 및 오픈 소스 모델(Meta의 LLaMa)과 경쟁할 만한 모델을 만들기에는 비용과 시간이 너무 많이 들 가능성이 높습니다.
  • 기존 LLM 미세 조정: 사전 학습된 LLM을 작업별 데이터의 더 작은 데이터 세트에 대해 재학습하는 기술입니다. 미세 조정은 특정 작업에서 LLM의 성능을 개선하는 데 효과적일 수 있지만 시간과 비용이 많이 들 수도 있습니다. 미세 조정은 끝이 없습니다. 새로운 데이터를 사용할 수 있게 되면 모델을 다시 미세 조정해야 합니다. 생성형 AI 앱이 실시간 운영 데이터에 대한 액세스를 요구하는 경우 미세 조정은 효과가 없을 것입니다.
검색 증강 생성이 LLM 미세 조정보다 나은 이유는 무엇인가요?
  • 미세 조정은 '사용자 지정 데이터'로 LLM을 사용하는 또 다른 방법이지만, LLM에 오픈북 퀴즈를 내는 것과 같은 RAG와 달리 미세 조정은 완전히 새로운 기억을 주거나 뇌엽 절제술을 하는 것과 같습니다. 미세 조정은 모델을 맞춤화하여 성능, 동작, 비용 프로필 등을 변경할 수 있도록 합니다. 시간과 리소스가 많이 소요되고 일반적으로 특정 컨텍스트에 기반한 LLM에는 적합하지 않으며 특히 비즈니스의 실시간 운영 데이터에는 적합하지 않습니다.
기본 RAG 아키텍처의 핵심 빌딩 블록
기본 검색 증강 생성 아키텍처는 세 가지 주요 구성 요소로 이루어집니다.
  • 사전 학습된 LLM: LLM은 텍스트, 이미지, 오디오 및 동영상 생성을 담당합니다.
  • 벡터 검색(또는 시맨틱 검색): 검색 시스템은 LLM 외부의 지식 기반에서 관련 정보를 찾는 역할을 담당합니다. 벡터 임베딩을 저장하고 이에 대해 대략적인 근사 최근접 이웃 검색 쿼리를 실행할 수 있는 다양한 범용 데이터베이스 또는 단일 목적 벡터 데이터베이스를 선택할 수 있습니다. 벡터 검색은 범용 LLM에 제공되는 독점 지식을 정확하게 보강할 수 있는 핵심 기능입니다.
  • 벡터 임베딩: 간단히 '벡터' 또는 '임베딩'이라고도 하는 벡터 임베딩은 본질적으로 데이터의 의미론적 의미 또는 속뜻을 포착하는 숫자 표현입니다. 일반적으로는 부동 소수점의 배열이며, 각 부동 소수점은 숫자 표현의 단일 차원을 나타냅니다.
  • 오케스트레이션: 융합 메커니즘은 LLM의 출력과 검색 시스템의 정보를 결합하여 최종 출력을 생성하는 역할을 담당합니다.

다음 다이어그램은 이전과 동일한 소매점 예를 사용하여 기본 RAG 아키텍처를 보여줍니다.

검색 증강 생성을 활용하여 생성형 AI 애플리케이션에서 유용하게 사용되는 거대 언어 모델입니다.
이러한 분야별 컨텍스트 부족을 해결하기 위해 검색 증강 생성은 다음과 같이 수행됩니다.
  • 최신 제품 카탈로그가 포함된 데이터베이스(주로 벡터 검색이 있는 데이터베이스)에서 가장 관련성이 높은 제품 설명을 가져옵니다.
  • 그런 다음 이 설명을 LLM 프롬프트에 삽입(증강)합니다.
  • 마지막으로 LLM이 질문에 답변할 때 이 최신 제품 정보를 '참조'하도록 지시합니다
위에서 고려해야 할 세 가지 사항
  • 검색 증강 생성은 순전히 추론 시간(재학습 필요 없음) 기술입니다. 위의 1~3단계는 모두 추론 시간 내에 이루어집니다. 모델을 변경할 필요가 없습니다(예: 모델 가중치 수정).
  • 검색 증강 생성은 LLM 생성의 실시간 사용자 지정에 적합합니다. 재학습이 필요하지 않고 모든 것이 컨텍스트 내 학습을 통해 수행되므로 RAG 기반 추론은 빠르며(지연 시간 100ms 미만) 실시간 운영 애플리케이션 내에서 사용하기 적합합니다.
  • 검색 증강 생성은 LLM 생성을 더욱 정확하고 유용하게 만듭니다. 컨텍스트가 바뀔 때마다 LLM은 다른 응답을 생성합니다. 따라서 RAG는 검색된 컨텍스트에 따라 LLM 생성이 달라지도록 합니다.
복잡성을 최소화하여 RAG를 단순하게 유지하면서도 대규모로 안정적으로 작동할 수 있도록 정교하게 유지합니다.

성능이 뛰어나면서도 복잡성을 최소화하는 RAG 아키텍처를 달성하려면 올바른 시스템을 선택하는 것부터 시작해야 합니다. RAG 구현을 위한 시스템이나 기술을 선택할 때는 다음을 달성할 수 있는 시스템을 선택하는 것이 중요합니다.

  • IT 운영에 엄청난 확장, 비용 및 복잡성을 추가하지 않고 새로운 벡터 데이터 요구 사항을 지원합니다.
  • 구축된 생성형 AI 경험이 최소한의 지연 시간으로 실시간 데이터에 액세스할 수 있도록 합니다.
  • 새로운 데이터 및 앱 요구 사항을 수용할 수 있는 유연성을 갖추고 개발 팀이 민첩성을 유지할 수 있도록 합니다.
  • 개발 팀이 전체 AI 에코시스템에 데이터를 적용하는 것이 아니라 데이터에 전체 AI 에코시스템을 적용할 수 있도록 준비합니다.

옵션은 단일 목적의 벡터 데이터베이스부터 네이티브 벡터 기능을 갖춘 문서 및 관계형 데이터베이스, 데이터 웨어하우스 및 레이크하우스에 이르기까지 다양합니다. 그러나 단일 목적의 벡터 데이터베이스는 무분별한 확장과 복잡성을 즉시 가중시킵니다. 데이터 웨어하우스 및 레이크하우스는 본질적으로 RAG가 지원하는 생성형 AI 앱의 대용량, 짧은 지연 시간 및 최신 데이터 요구 사항과는 반대로 과거 데이터에 대한 장기 실행 분석 유형 쿼리를 위해 설계되었습니다. 또한 관계형 데이터베이스는 새로운 데이터 및 앱 요구 사항을 쉽게 추가할 수 있는 유연성을 제한하는 엄격한 스키마를 제공합니다. 이렇게 하면 네이티브 또는 내장 벡터 기능을 갖춘 문서 데이터베이스가 남습니다. 특히 MongoDB는 유연한 문서 모델을 기반으로 구축되었으며 네이티브 벡터 검색 기능을 갖추고 있어 모든 최신 애플리케이션을 위한 업계를 선도하는 데이터베이스일 뿐만 아니라 RAG용 벡터 데이터베이스이기도 합니다.

RAG 구현의 추가 기능을 통해 LLM의 성능을 한 단계 더 발전시킵니다.

핵심 구성 요소 외에도 RAG 구현에 추가하여 LLM의 성능을 한 단계 더 발전시킬 수 있는 여러 가지 추가 기능이 있습니다. 이러한 추가 기능 중 일부는 다음과 같습니다.

  • 멀티모달리티: 멀티모달 RAG 모델은 텍스트 및 비텍스트(이미지, 동영상 및 오디오 등) 데이터를 기반으로 하는 텍스트를 생성할 수 있습니다. 이러한 멀티모달 데이터를 실시간 운영 데이터와 나란히 저장하면 RAG 구현을 보다 쉽게 설계하고 관리할 수 있습니다.
  • 벡터 검색 쿼리에서 추가 필터 정의: 동일한 벡터 쿼리에 키워드 검색, 지리 공간 검색, 지점 및 범위 필터를 추가할 수 있는 기능을 통해 LLM에 제공되는 컨텍스트에 정확성과 속도를 더할 수 있습니다.
  • 분야 특정성: 분야별 RAG 모델은 의료 또는 금융과 같은 특정 분야의 데이터에 대해 학습할 수 있습니다. 이를 통해 RAG 모델은 해당 분야에 대해 보다 정확하고 관련성 있는 텍스트를 생성할 수 있습니다.
전 세계로 나아갈 때 생성형 AI 기반 애플리케이션의 보안, 성능, 신뢰성, 확장 가능성을 보장합니다.

RAG로 구축된 생성형 AI 기반 애플리케이션이 전 세계로 나아갈 때 안전하고 성능이 뛰어나며 신뢰할 수 있고 확장 가능한지 확인하기 위해 수행할 수 있는 작업에는 여러 가지가 있습니다. 몇 가지는 다음과 같습니다.

  • 안전하고 적절한 데이터 거버넌스 기능을 갖춘 플랫폼 사용: 데이터 거버넌스는 데이터의 보안, 비공개성, 정확성, 가용성, 사용성을 보장하기 위해 수행하는 모든 작업을 포괄하는 광범위한 용어입니다. 여기에는 데이터 수명 주기와 관련된 프로세스, 정책, 조치, 기술, 도구 및 제어가 포함됩니다. 따라서 플랫폼은 기본적으로 안전해야 하고, 엔드 투 엔드 암호화를 지원하며, 최고 수준의 규정 준수를 달성해야 합니다.
  • 클라우드 기반 플랫폼 사용: 클라우드 기반 플랫폼이 제공하는 보안 및 확장성 기능 외에도 주요 클라우드 제공업체는 AI 인프라를 선도하는 혁신 기업 중 일부입니다. 클라우드에 구애받지 않는 플랫폼을 선택하면 팀이 어디에 있든 AI 혁신을 활용할 수 있습니다.
  • 벡터 워크로드 인프라를 다른 데이터베이스 인프라와 분리할 수 있는 플랫폼 사용: 일반 OLTP 워크로드와 벡터 워크로드가 인프라를 공유하지 않도록 하여 두 워크로드가 각각에 최적화된 하드웨어에서 실행될 수 있으며 동일한 데이터를 활용하면서도 리소스를 두고 경쟁하지 않도록 하는 것이 중요합니다.
  • 대규모로 검증된 플랫폼 사용: 공급업체가 확장할 수 있다고 말하는 것과는 별개로, 공급업체에게 글로벌 엔터프라이즈 고객과의 이력과 실적이 있나요? 미션 크리티컬 내결함성과 수평 확장 기능이 있으며 고객 사례를 통해 이를 입증할 수 있나요?

이러한 팁을 따르면 안전하고 성능이 뛰어나며 신뢰할 수 있고 확장 가능한 RAG 아키텍처로 생성형 기반 애플리케이션을 구축할 수 있습니다.

Atlas Vector Search의 도입으로 MongoDB의 선도적인 개발자 데이터 플랫폼은 대규모로 작동할 수 있는 정교하고 성능이 뛰어난 RAG 아키텍처를 구축할 수 있는 벡터 데이터베이스를 팀에 제공합니다. 이 모든 것이 최고 수준의 보안 및 클라우드 불가지론을 유지하면서, 가장 중요하게는 복잡성과 불필요한 비용을 더하지 않고도 가능합니다.

MongoDB Atlas 시작하기

무료 체험판 다운로드