RAG(검색 증강 생성)란 무엇인가?

검색 증강 생성(RAG)의 정의

검색 증강 생성(RAG)은 프라이빗 또는 독점 데이터 소스의 정보로 텍스트 생성을 보완하는 기술입니다. 대규모 데이터 세트 또는 지식 기반을 검색하도록 설계된 검색 모델에 해당 정보를 가져와 읽을 수 있는 텍스트 응답을 생성하는 대규모 언어 모델(LLM)과 같은 생성 모델을 결합합니다.

검색 증강 생성은 추가 데이터 소스의 컨텍스트를 더하고 훈련을 통해 LLM의 원래 지식 기반을 보완함으로써 검색 경험의 정확도를 개선할 수 있습니다. 따라서 모델을 다시 훈련할 필요 없이 대규모 언어 모델의 출력이 향상됩니다. 추가 정보 소스는 LLM의 훈련에 사용되지 않은 인터넷의 새로운 정보부터 독점 비즈니스 컨텍스트 또는 비즈니스에 속한 기밀 내부 문서에 이르기까지 다양합니다.

RAG는 생성형 AI 시스템이 외부 정보 소스를 사용하여 보다 정확한 상황 인식 응답을 생성할 수 있도록 해주기 때문에 질문 답변 및 콘텐츠 생성과 같은 작업에 유용합니다. 일반적으로 시맨틱 검색이나 하이브리드 검색과 같은 검색 방법을 구현하여 사용자 의도에 응답하고 보다 정확한 결과를 제공합니다.

검색 증강 생성(RAG)과 이 접근 방식을 통해 독점적인 실시간 데이터를 생성형 AI 모델에 연결하여 최종 사용자 경험과 정확성을 개선하는 방법에 대해 자세히 알아보세요.

정보 검색이란?

정보 검색(IR)이란 지식 소스나 데이터 세트에서 관련 정보를 검색하고 추출하는 프로세스를 말합니다. 이는 검색 엔진을 사용하여 인터넷에서 정보를 찾는 것과 매우 유사합니다. 사용자가 쿼리를 입력하면 시스템은 사용자가 찾고 있는 정보를 포함할 가능성이 가장 높은 문서나 웹 페이지를 검색하여 표시합니다.

정보 검색에는 대규모 데이터 세트를 효율적으로 색인하고 검색하는 기술이 포함됩니다. 이를 통해 사람들은 사용 가능한 방대한 데이터 풀에서 필요한 특정 정보에 더 쉽게 액세스할 수 있습니다. IR 시스템은 웹 검색 엔진 외에도 디지털 라이브러리, 문서 관리 시스템, 다양한 정보 액세스 애플리케이션에서 자주 사용됩니다.

AI 언어 모델의 진화

AI 언어 모델 진화 다이어그램

AI 언어 모델은 시간이 지나면서 크게 발전했습니다.

  • 1950년대와 1960년대에 이 분야는 언어에 대한 이해에 한계가 있는 기본적인 규칙 기반 시스템을 갖춘 초기 단계였습니다.
  • 1970년대와 1980년대에는 전문가 시스템이 도입되었습니다. 문제 해결을 위해 인간의 지식이 인코딩되었지만, 언어 능력은 매우 제한적이었습니다.
  • 1990년대에는 언어 작업에 데이터 기반 접근 방식을 사용하는 통계 방법이 등장했습니다.
  • 2000년대에 이르러 지원 벡터 머신(고차원 공간에서 다양한 종류의 텍스트 데이터를 분류)과 같은 머신 러닝 기술이 등장했지만, 딥 러닝은 아직 초기 단계에 있었습니다.
  • 2010년대는 딥 러닝에 큰 변화를 불러왔습니다. 트랜스포머 아키텍처는 어텐션 메커니즘을 사용하여 자연어 처리를 발전시켰으며, 이를 통해 모델은 처리 시 입력 시퀀스의 다른 부분에 집중할 수 있었습니다.

오늘날 트랜스포머 모델은 일련의 단어에서 다음에 어떤 단어가 나올지 예측하여 인간의 말을 시뮬레이션할 수 있는 방식으로 데이터를 처리합니다. 이러한 모델은 이 분야에 혁명을 일으켰고 Google의 BERT(Bidirectional Encoder Representations from Transformers)와 같은 LLM의 부상으로 이어졌습니다.

사전 훈련된 대규모 모델과 특정 작업을 위해 설계된 특수 모델의 조합이 구현되고 있습니다. RAG와 같은 모델은 표준 훈련의 한계를 넘어 생성형 AI 언어 모델의 범위를 확장하면서 계속해서 호응을 얻고 있습니다. 2022년 OpenAI는 트랜스포머 아키텍처를 기반으로 하는 가장 잘 알려진 LLM인 ChatGPT를 선보였습니다. 경쟁 제품으로는 Google Bard, Microsoft의 Bing Chat 등 채팅 기반 모델이 있습니다. 소비자 챗봇이 아닌 오픈 소스 LLM인 Meta의 LLaMa 2는 LLM 작동 방식에 익숙한 연구자라면 누구나 무료로 사용할 수 있습니다.

사전 훈련된 모델과 오픈 소스 LLM을 연결하는 AI 공급망

관련: LLM 선택: 2024년 오픈 소스 LLM 시작 안내서

RAG는 어떻게 작동하는가?

검색 증강 생성은 검색에서 시작하여 생성으로 이어지는 다단계 프로세스입니다. 작동 방식은 다음과 같습니다.

검색

  • RAG는 입력 쿼리로 시작됩니다. 이는 사용자의 질문일 수도 있고 자세한 응답이 필요한 텍스트일 수도 있습니다.
  • 검색 모델은 지식 기반, 데이터베이스, 외부 소스 또는 여러 소스에서 동시에 관련 정보를 가져옵니다. 모델 검색 위치는 입력 쿼리가 요청하는 내용에 따라 달라집니다. 이렇게 검색된 정보는 이제 모델에 필요한 모든 사실과 컨텍스트에 대한 참조 소스 역할을 합니다.
  • 검색된 정보는 고차원 공간의 벡터로 변환됩니다. 이러한 지식 벡터는 벡터 데이터베이스에 저장됩니다.
  • 검색 모델은 입력 쿼리와의 관련성을 기준으로 검색된 정보의 순위를 매깁니다. 추가 처리를 위해 가장 높은 점수를 받은 문서나 구절이 선택됩니다.

생성

  • 다음으로 LLM과 같은 생성 모델은 검색된 정보를 사용하여 텍스트 응답을 생성합니다.
  • 생성된 텍스트는 문법적으로 정확하고 일관성이 있는지 확인하기 위해 추가적인 후처리 단계를 거칠 수 있습니다.
  • 이러한 응답은 검색 모델이 제공한 추가 정보에 의해 다듬어졌기 때문에 전체적으로 더 정확하고 컨텍스트에 더 부합합니다. 이 기능은 퍼블릭 인터넷 데이터가 부족한 전문 도메인에서 특히 중요합니다.

rag-in-action.jpeg

RAG의 이점

검색 증강 생성은 독립적으로 작동하는 언어 모델에 비해 여러 가지 이점이 있습니다. 다음은 검색 증강 생성으로 텍스트 생성 및 응답을 개선하는 몇 가지 방법입니다.

  • RAG는 외부 참조를 정기적으로 업데이트할 수 있으므로 모델이 가장 최근의 사실 및 관련 정보에 액세스할 수 있는지 확인합니다. 이렇게 하면 RAG가 생성하는 응답에는 쿼리를 수행하는 사용자와 관련이 있을 수 있는 최신 정보가 포함됩니다. 또한 문서 수준 보안을 구현하여 데이터 스트림 내의 데이터에 대한 액세스를 제어하고 특정 문서에 대한 보안 권한을 제한할 수 있습니다.
  • RAG는 필요한 컴퓨팅과 저장 공간이 더 적으므로 보다 비용 효율적인 옵션입니다. 즉, 자체 LLM을 보유할 필요가 없고 모델을 미세 조정하는 데 시간과 비용을 들일 필요가 없습니다.
  • 정확성을 주장하는 것과 이를 실제로 증명하는 것은 별개의 문제입니다. RAG는 외부 소스를 인용하고 이를 사용자에게 제공하여 응답을 뒷받침할 수 있습니다. 원하는 경우 사용자는 소스를 평가하여 받은 응답이 정확한지 확인할 수 있습니다.
  • LLM 기반 챗봇은 이전의 스크립트 방식의 응답보다 더 개인 맞춤화된 답변을 생성할 수 있지만, RAG는 답변을 이보다 훨씬 더 맞춤화할 수 있습니다. 이는 의도를 측정하여 답변을 종합할 때 검색 방법(일반적으로 시맨틱 검색)을 사용하여 다양한 컨텍스트에 근거한 요소를 참조할 수 있는 기능이 있기 때문입니다.
  • 훈련되지 않은 복잡한 쿼리에 부딪혔을 때 LLM은 때때로 부정확한 응답을 제공하는 ‘환각’을 일으킬 수 있습니다. RAG는 관련 데이터 소스의 추가 참조를 근거로 하여, 모호한 문의에 더 정확하게 응답할 수 있습니다.
  • RAG 모델은 다재다능하며, 대화 시스템, 콘텐츠 생성, 정보 검색 등 모든 범위의 자연어 처리 작업에 적용될 수 있습니다.
  • 편향은 인간이 만든 모든 AI에서 문제가 될 수 있습니다. 검증된 외부 소스를 활용함으로써 RAG는 응답의 편향을 줄이는 데 도움이 될 수 있습니다.

검색 증강 생성과 미세 조정 비교

검색 증강 생성과 미세 조정은 AI 언어 모델을 훈련하는 두 가지 서로 다른 접근 방식입니다. RAG가 광범위한 외부 지식 검색과 텍스트 생성을 결합하는 반면, 미세 조정은 고유한 목적을 위해 좁은 범위의 데이터에 중점을 둡니다.

미세 조정에서는 사전 훈련된 모델을 특수 데이터로 추가로 훈련하여 작업의 하위 집합에 적용합니다. 여기에는 새로운 데이터 세트를 기반으로 모델의 가중치와 파라미터를 수정하는 작업이 포함되므로, 초기에 사전 훈련된 지식을 유지하면서 작업별 패턴을 학습할 수 있습니다.

미세 조정은 모든 종류의 AI에 사용될 수 있습니다. 기본적인 예로는 인터넷에서 고양이 사진을 식별하는 컨텍스트 내에서 새끼 고양이를 인식하는 방법을 배우는 것을 들 수 있습니다. 언어 기반 모델에서 미세 조정은 텍스트 생성 외에도 텍스트 분류, 감정 분석, 명명된 엔티티 인식과 같은 작업을 지원할 수 있습니다. 그러나 이 프로세스는 시간과 비용이 매우 많이 소요될 수 있습니다. RAG는 프로세스 속도를 높이고 더 적은 컴퓨팅 및 스토리지 요구 사항으로 이러한 비용을 통합합니다.

RAG는 외부 리소스에 액세스할 수 있기 때문에 웹 또는 기업 지식 기반의 실시간 또는 동적 정보를 통합하여 정보에 입각한 응답을 생성해야 하는 작업에 특히 유용합니다. 미세 조정에는 다른 장점이 있습니다. 당면한 작업이 잘 정의되어 있고 목표가 해당 작업의 성능만 최적화하는 것이라면 미세 조정이 매우 효율적일 수 있습니다. 두 기술 모두 모든 작업에서 처음부터 LLM을 훈련할 필요가 없다는 장점이 있습니다.

검색 증강 생성의 문제점과 한계

RAG는 상당한 이점을 제공하지만 다음과 같은 몇 가지 문제점과 한계도 있습니다.

  • RAG는 외부 지식에 의존합니다. 검색된 정보가 올바르지 않으면 부정확한 결과가 나올 수 있습니다.
  • RAG의 검색 구성 요소에는 대규모 지식 기반이나 웹을 검색하는 것이 포함됩니다. 이는 컴퓨팅 측면에서 비용이 많이 들고 느릴 수 있지만, 여전히 미세 조정보다는 빠르고 저렴합니다.
  • 검색 및 생성 구성 요소를 원활하게 통합하려면 신중한 설계와 최적화가 필요하며, 이에 따라 훈련 및 배포에 잠재적인 어려움이 발생할 수 있습니다.
  • 외부 소스에서 정보를 검색하면 민감한 데이터를 다룰 때 개인정보 보호 문제가 발생할 수 있습니다. 개인정보 보호 및 규정 준수 요구 사항을 준수하는 것으로 인해 RAG가 액세스할 수 있는 소스가 제한될 수도 있습니다. 그러나 이 문제는 특정 역할에 액세스 및 보안 권한을 부여할 수 있는 문서 수준 액세스를 통해 해결할 수 있습니다.
  • RAG는 사실적 정확성을 기반으로 합니다. 상상력이 풍부하거나 허구적인 콘텐츠를 생성하는 데 어려움을 겪을 수 있으며, 이로 인해 창의적인 콘텐츠 생성에 사용이 제한됩니다.

Elasticsearch를 사용한 검색 증강 생성

Elasticsearch를 사용하면 생성형 AI 앱, 웹사이트, 고객 또는 직원 경험을 위한 RAG 지원 검색을 구축할 수 있습니다. Elasticsearch는 다음을 수행할 수 있는 포괄적인 도구 키트를 제공합니다.

  • 독점 데이터와 기타 외부 지식 기반을 저장하고 검색하여 컨텍스트를 파악합니다.
  • 텍스트 검색, 벡터 검색, 하이브리드 검색, 시맨틱 검색 등 다양한 방법을 사용하여 데이터에서 매우 정확한 검색 결과를 생성합니다.
  • 사용자를 위해 보다 정확한 응답과 매력적인 경험을 생성합니다.

Elasticsearch가 비즈니스를 위해 생성형 AI를 어떻게 개선할 수 있는지 알아보기