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

Alan Zeichick | Tech Content Strategist | 2023년 9월 19일

생성형 인공지능(AI)은 방대한 데이터 포인트를 사용하여 학습시킨 대규모 언어 모델(LLM) 기반 텍스트 응답에서 탁월한 결과를 나타내는 기술입니다. 생성형 AI의 장점은 대체로 읽기 쉬운 텍스트를 생성하고, 사용자의 질문(프롬프트)에 광범위하게 적용 가능한 상세한 답변을 제공한다는 것입니다.

반면 응답을 생성하는 과정에서 해당 AI의 학습 기반이 되었던 정보(대개 일반화된 LLM)만을 사용한다는 한계도 있습니다. 학습용 LLM이 몇 주, 몇 달 또는 몇 년 전의 오래된 데이터로 구성되어 있는 경우, 또는 기업용 AI 챗봇에 해당 기업의 제품 또는 서비스에 대한 특정 정보가 포함되어 있지 않은 경우 등을 가정해 보겠습니다. 이는 곧 고객 및 직원의 생성형 AI 기술에 대한 신뢰를 약화시키는 잘못된 응답 생성으로 이어지게 됩니다.

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

검색 증강 생성(retrieval-augmented generation, RAG)은 그와 같은 문제를 해결해 줄 수 있는 기술입니다. RAG는 기본 LLM 모델 자체를 수정하지 않고도 타기팅된 정보를 활용하여 생성 결과물을 최적화할 수 있는 방법을 제공합니다. 타기팅된 정보는 LLM에 사용된 것보다 최신 정보일 수도 있고, 특정 기업 및 산업과 관련된 정보일 수도 있습니다. 즉, RAG는 생성형 AI 시스템이 보다 주어진 프롬프트의 맥락에 부합하는 답변을 제공할 수 있을 뿐만 아니라, 가장 최근의 데이터에 기반한 답변을 제공할 수 있도록 지원하는 기술입니다.

RAG는 Patrick Lewis와 Facebook AI Research 산하 팀이 2020년 발표한 논문인 '지식 집약적 NLP 작업을 위한 검색 증강 생성(Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks)'을 통해 생성형 AI 개발자들의 관심을 사로잡았습니다. 이후 학계 및 업계의 많은 연구자들이 RAG 개념을 채택하였습니다. 그들은 RAG가 생성형 AI 시스템의 가치를 크게 향상시켜 줄 도구라고 판단하였습니다.

검색 증강 생성에 대한 간략한 설명

어느 스포츠 리그의 팬들과 미디어 종사자들이 채팅을 통해 데이터에 액세스하여 선수, 팀, 해당 스포츠의 역사 및 규칙, 최신 통계 및 순위 등에 대한 정보를 검색하는 상황을 가정해 보겠습니다. 일반화된 LLM은 해당 스포츠의 역사 및 규칙에 대한 질문에 답하고, 특정 팀의 경기장에 대해 설명할 수 있을 것입니다. 그러나 LLM에는 최신 정보가 입력되어 있지 않으므로 어젯밤 경기에 대한 정보, 특정 운동선수의 부상과 관련된 최신 정보 등은 제공할 수 없을 것입니다. 그리고 LLM이 재교육을 위해 상당한 컴퓨팅 성능을 필요로 한다는 점을 고려하면 LLM에 최신 정보를 지속적으로 추가하는 것은 사실상 불가능한 일입니다.

그러나 해당 스포츠 리그는 대규모의, 정적인 LLM 외에도 데이터베이스, 데이터 웨어하우스, 선수들의 약력이 포함된 문서, 각각의 경기를 자세히 설명하는 뉴스 피드를 비롯한 다양한 정보 소스를 이미 소유 중일 수도 있고, 추가적으로 사용할 수도 있습니다. RAG를 사용하면 생성형 AI가 그와 같은 추가 정보들을 함께 수집할 수 있습니다. 결과적으로 생성형 AI가 채팅을 통해 보다 시의적절하고, 상황에 부합하고, 정확한 정보를 제공할 수 있게 됩니다.

한 마디로 RAG는 LLM이 더 나은 답을 제공할 수 있도록 지원하는 기술입니다.

핵심 요점

  • RAG는 대규모 언어 모델(LLM)이 재학습 없이도 추가 데이터 리소스를 활용할 수 있도록 함으로써 생성형 AI의 품질을 향상시킬 수 있는 비교적 새로운 인공지능 기술입니다.
  • RAG 모델은 조직별 자체 데이터를 기반으로 지식 저장소를 구축하고, 해당 저장소를 지속적으로 업데이트하여 생성형 AI가 상황에 맞는 답변을 적시에 제공할 수 있도록 지원합니다.
  • 자연어 처리를 사용하는 챗봇 및 기타 대화형 시스템은 RAG와 생성형 AI 기술의 이점을 십분 누릴 수 있습니다.
  • RAG를 구현하려면 신규 데이터를 신속하게 코딩하고, 해당 데이터를 검색하여 LLM으로 공급할 수 있는 벡터 데이터베이스와 같은 기술들이 필요합니다.

검색 증강 생성의 작동 방식

정형 데이터베이스, 비정형 PDF 및 기타 다양한 문서 형식, 블로그, 뉴스피드, 과거 고객 서비스 세션의 채팅 기록 등 기업별로 보유 중인 정보는 다양합니다. RAG는 그와 같이 방대한 동적 데이터들을 공통 형식으로 변환하여 생성형 AI 시스템에서 액세스할 수 있는 지식 라이브러리에 저장합니다.

지식 라이브러리에 저장된 데이터는 임베디드 언어 모델이라는 특수한 유형의 알고리즘을 사용하여 숫자 표현으로 전환된 뒤 벡터 데이터베이스에 저장되고, 해당 데이터를 통해 맥락과 일치하는 정보를 빠르게 검색할 수 있습니다.

RAG 및 대규모 언어 모델(LLM)

이제 최종 사용자가 생성형 AI 시스템에 특정 프롬프트를 전송하는 상황을 가정해 보겠습니다. 사용자들은 AI 챗봇에게 '오늘 밤 경기가 어디서 진행되고, 선발 명단은 어떻고, 기자들은 오늘 경기 결과를 어떻게 예측했어?' 등의 질문을 던질 것입니다. 해당 질문 쿼리는 벡터로 변형되고, 질문의 문맥과 관련된 정보를 검색하기 위한 벡터 데이터베이스의 쿼리에 사용됩니다. 이후 해당 문맥 정보와 원래 프롬프트가 LLM에 입력되고, LLM은 다소 오래된 일반화된 지식 및 최신 문맥 정보를 모두 활용하여 텍스트 응답을 생성합니다.

흥미롭게도 일반화된 LLM 학습 프로세스는 시간이 많이 걸리고 비용이 많이 들지만, RAG 모델 업데이트의 성격은 정반대입니다. RAG 모델의 경우 새로운 데이터를 임베디드 언어 모델에 로드하고 벡터로 변환하는 과정이 연속적, 점진적으로 이루어집니다. 실제로 생성형 AI 시스템의 답변 전문을 RAG 모델로 다시 피드백함으로써 성능과 정확성을 더욱 향상시킬 수 있습니다. 새로운 답변을 작성하는 과정에서 과거 유사한 질문에 답변한 결과를 참고할 수 있기 때문입니다.

RAG의 또 다른 장점은 벡터 데이터베이스를 사용함으로써 생성형 AI가 응답 작성시 인용한 데이터 소스에 대한 정보를 함께 제공할 수 있다는 것입니다. 이는 LLM으로는 불가능한 일입니다. 따라서 생성형 AI의 결과물에 부정확한 정보가 포함된 경우 해당 정보가 포함된 문서를 신속하게 식별하여 수정하고, 수정한 정보를 다시 벡터 데이터베이스에 입력할 수 있습니다.

한 마디로 RAG는 LLM만을 사용하여 제공할 수 있는 것 이상의 적시성, 문맥, 증거에 기반한 정확성을 생성형 AI에 추가해 줍니다.

검색 증강 생성과 시맨틱 검색 비교

RAG가 LLM 기반 생성형 AI의 정확성을 향상시키는 데 사용되는 유일한 기술은 아닙니다. 시맨틱 검색(의미 기반 검색)은 AI 시스템이 프롬프트의 특정 단어 및 구문을 심층적으로 이해하여 쿼리의 의미를 좁힐 수 있도록 도와주는 기술입니다.

전통적인 검색 방식은 키워드에 집중합니다. 예를 들어, 프랑스 고유의 나무 종에 대해 묻는 기본 쿼리는 '나무'와 '프랑스'를 키워드로 사용하여 AI 시스템의 데이터베이스를 검색하고 두 가지 키워드가 모두 포함된 데이터를 찾을 수 있지만, 시스템이 '프랑스의 나무'라는 의미를 제대로 이해하지 못한 경우 지나치게 많거나 또는 지나치게 적은 정보를 참고하고, 심지어 잘못된 정보를 참고하게 될 수도 있습니다. 또한 키워드 기반 검색은 입력된 문자에 대한 정보만을 검색하므로 일부 정보가 누락되는 경우도 있습니다. 예를 들어 노르망디 지역의 고유 나무 종은 분명 프랑스의 나무에 속하지만, 입력된 키워드와는 불일치하므로 검색되지 않을 수도 있습니다.

시맨틱 검색은 질문과 소스 문서의 의미를 파악하고, 파악한 의미를 사용하여 보다 정확한 결과를 검색함으로써 키워드 검색보다 뛰어난 결과를 보여줍니다. 시맨틱 검색은 RAG와 관련하여 중요한 역할을 수행합니다.

채팅 애플리케이션에서 RAG 사용하기

질문에 대한 즉각적인 답변을 제공하는 능력에 있어서는 챗봇의 속도와 유용성을 따라잡기 어렵습니다. 대부분의 봇은 한정된 수의 의도, 즉 고객이 원하는 특정한 작업 또는 결과에 대해서만 학습하고, 해당하는 의도에 대한 응답만을 제공합니다. RAG 기능은 AI 시스템이 학습 대상인 의도 목록에 포함되지 않은 질문에도 자연어로 답변할 수 있도록 함으로써 기존의 챗봇을 개선해 줍니다.

'질문하고 답을 얻으세요' 패러다임은 여러 가지 이유에서 챗봇이 생성형 AI의 완벽한 사용 사례가 되도록 만들어 줍니다. 질문에 대한 정확한 답변을 제공하기 위해서는 특정한 문맥을 파악해야 하는 경우가 많고, 사용자는 챗봇이 질문과 관련성이 높고 정확한 답변을 제공해 줄 것을 기대하는 경우가 많다는 점을 고려하면 챗봇에 RAG 기술을 어떻게 적용해야 할지는 명확합니다. 실제로 많은 기업에서 챗봇은 RAG 및 생성형 AI 기술을 처음으로 도입하는 창구 역할을 수행할 수 있습니다.

질문에 대한 정확한 답변을 제공하기 위해서는 질문의 문맥을 정확히 파악해야 하는 경우가 많습니다. 예를 들어, 새로 출시된 제품에 대한 고객 문의에 이전 모델과 관련된 데이터를 사용하여 답변하는 것은 실용적이지 못한 방법이며, 실제로 고객을 오도하는 답변을 제공하게 될 수도 있습니다. 또한 이번 일요일에 공원이 개장하는지 알고 싶어하는 등산객은 챗봇이 특정 날짜, 특정 공원에 대한 정확한 정보를 적시에 제공해 줄 것을 기대할 것입니다.

검색 증강 생성 사용에 따른 이점

RAG 기술은 생성형 AI 시스템이 주어진 프롬프트에 대하여 LLM만을 사용하는 경우보다 나은 응답을 제공할 수 있도록 지원합니다. RAG 사용시의 이점은 다음과 같습니다.

  • RAG는 LLM 학습에 사용된 데이터보다 최근의 정보에 액세스할 수 있습니다.
  • RAG 지식 저장소의 데이터는 큰 비용 발생 없이 지속적으로 업데이트할 수 있습니다.
  • RAG의 지식 저장소에는 일반화된 LLM의 데이터보다 맥락성이 강한 데이터가 포함될 수 있습니다.
  • RAG의 벡터 데이터베이스에 저장된 정보의 소스를 식별할 수 있습니다. 데이터 소스가 알려져 있으므로 RAG에 저장된 잘못된 정보를 수정 또는 삭제할 수 있습니다.

검색 증강 생성 관련 도전 과제

RAG는 2020년 처음 제안된 비교적 새로운 기술이므로, AI 개발자들은 생성형 AI를 위한 최적의 정보 검색 메커니즘을 구현하는 방법을 여전히 배워 나가고 있습니다. RAG와 관련된 주요 도전 과제는 다음과 같습니다.

  • 최신 기술인 RAG에 대한 전사적 지식을 함양하고 이해도를 향상시키기
  • 비용 증가 - RAG를 사용한 생성형 AI는 LLM만을 사용한 구현보다 구현 비용은 더 많이 들지만, LLM 자체를 자주 재학습시키는 방법에 비해 장기적 비용은 적게 듭니다
  • 지식 라이브러리와 벡터 데이터베이스 내에서 정형 및 비정형 데이터를 가장 잘 모델링하는 방법 결정하기
  • RAG 시스템에 데이터를 점진적으로 공급하는 프로세스 관련 요구 사항 개발하기
  • 부정확한 정보 관련 보고를 처리하고, RAG 시스템에서 해당 정보 소스를 수정 또는 삭제하는 프로세스 정립하기

검색 증강 생성 사용 사례

RAG를 활용한 생성형 AI 강화 사례는 다양합니다.

생성형 AI 및 RAG 분야의 선도적 기업인 Cohere는 해변 접근성, 인근 해변의 안전 요원 배치 여부, 걸어서 갈 수 있는 거리에 있는 배구장 유무 등 카나리아 제도의 휴가용 임대 숙소에 대한 맥락에 맞는 정보를 제공하는 챗봇에 대한 글을 작성하였습니다.

Oracle은 재무 보고서 분석, 가스 및 석유 매장지 발견 지원, 콜센터 고객 통화 기록 검토, 연구 논문과 관련된 의료 데이터베이스 검색 등의 추가적인 RAG 사용 사례들을 소개하였습니다.

검색 증강 생성의 미래

아직 개발 초기 단계인 RAG는 현 시점에서 쿼리에 대한 시의적절하고, 정확하고, 상황에 맞는 응답을 제공하기 위해 사용되고 있습니다. 이는 챗봇, 이메일, 문자 메시지 및 기타 대화형 애플리케이션에 적합한 사용 사례입니다.

앞으로 RAG 기술이 나아갈 수 있는 방향으로는 생성형 AI가 문맥 정보 및 사용자 프롬프트에 따라 적절한 조치를 취하도록 돕는 것이 있습니다. 예를 들어, RAG 기술을 통해 강화된 AI 시스템은 카나리아 제도에서 가장 높은 평점을 받은 해변 휴가용 숙소들이 어디인지 파악하고, 개중에서 배구 토너먼트가 열리는 기간 동안 해변에서 도보로 이동할 수 있는 거리에 있는 침실 2개짜리 캐빈을 예약하고자 하는 사용자를 지원할 수 있습니다.

또한 RAG는 AI가 보다 복잡한 질문에 답하는 과정에도 기여할 수 있습니다. 오늘날의 생성형 AI는 직원에게 소속 기업의 학비 환급 정책을 설명해 줄 수 있습니다. 그리고 RAG는 그와 관련된 맥락 데이터를 참고하여 해당 정책에 부합하는 과정을 운영 중인 인근 학교들의 정보를 알려주고, 직원별 직무 및 과거에 받았던 교육 내용에 부합하는 프로그램을 추천하고, 나아가 해당 프로그램을 신청하고 환급을 요청하는 과정에도 기여할 수 있습니다.

Oracle과 생성형 AI

Oracle은 Oracle Cloud Infrastructure(OCI)에서 실행되는 OCI Generative AI 서비스를 비롯해 다양한 클라우드 기반 고급 AI 서비스를 제공합니다. Oracle의 오퍼링에는 각 고객사의 고유 데이터 및 업계 지식에 기반한 강력한 모델들이 포함되어 있습니다. 각 고객사의 데이터는 LLM 제공업체와 공유되거나 다른 고객사에게 노출되지 않으며, 고객사의 데이터로 학습한 커스텀 AI 모델은 해당 고객사만 사용 가능합니다.

또한 Oracle은 자사의 광범위한 클라우드 애플리케이션 제품들에 생성형 AI 기술을 추가 중에 있으며, OCI 및 관련 데이터베이스 포트폴리오를 사용 중인 개발자는 Oracle의 다양한 생성형 AI 기능을 함께 사용할 수 있습니다. 또한 Oracle의 AI 서비스는 사용자별 용도에 부합하는 단일 테넌트 AI 클러스터를 통해 예측 가능한 성능과 가격을 제공합니다.

LLM 및 생성형 AI의 성능과 기능은 이미 널리 알려지고 파악되었습니다. 지난 한 해 동안 수많은 뉴스 헤드라인을 장식한 주제였기 때문입니다. 검색 증강 생성은 보다 시의적절하고, 정확하고, 맥락에 부합하는 검색 결과를 제공함으로써 LLM 사용시의 이점을 강화시켜 주는 기술입니다. 생성형 AI의 비즈니스적 사용과 관련하여 RAG는 주목하고, 연구하고, 시험해 볼 가치가 있는 중요한 기술입니다.

Oracle이 생성형 AI에 가장 적합한 기업인 이유는 무엇일까요?

Oracle은 모던 데이터 플랫폼과 저렴하면서도 고성능의 AI 인프라를 함께 제공합니다. 나아가 Oracle의 강력한 AI 모델, 독보적인 데이터 보안성, 임베디드 AI 서비스 등을 통해서도 Oracle의 AI 오퍼링이 완전한 기업용 솔루션으로 구축되었다는 사실을 잘 알 수 있습니다.

검색 증강 생성 FAQ

RAG는 생성형AI와 같은 개념인가요?

아니요. 검색 증강 생성은 LLM에 이미 포함되어 있는 데이터에 LLM 외부의 정보를 함께 사용함으로써 생성형 대규모 언어 모델만을 단독으로 사용하는 것보다 더욱 정확한 쿼리 결과를 제공할 수 있는 기술입니다.

RAG에서 사용되는 정보 유형은 무엇인가요?

RAG는 관계형 데이터베이스, 비정형 문서 저장소, 인터넷 데이터 스트림, 미디어 뉴스피드, 오디오 녹취록, 트랜잭션 로그 등의 다양한 소스의 데이터를 통합하여 사용할 수 있습니다.

생성형 AI는 RAG를 어떻게 활용하나요?

엔터프라이즈 데이터 소스로부터 가져온 데이터는 지식 저장소에 임베드된 후 벡터로 변환되어 벡터 데이터베이스에 저장됩니다. 최종 사용자가 쿼리를 입력하면 벡터 데이터베이스가 관련 문맥 정보를 검색합니다. 검색한 문맥 정보는 쿼리와 함께 대규모 언어 모델(LLM)로 전송되고, LLM은 해당 문맥 정보를 활용하여 보다 시기적절하고, 정확하고, 문맥에 부합하는 응답을 생성합니다.

RAG가 적용된 AI 모델은 검색하는 데이터의 출처를 인용할 수 있나요?

네. RAG에서 사용하는 벡터 데이터베이스 및 지식 저장소에는 정보의 출처에 대한 세부사항이 함께 저장되어 있습니다. 따라서 RAG가 적용된 AI 모델은 검색한 데이터의 출처를 인용할 수 있고, 다양한 출처 중 하나에서 오류를 포착한 경우 신속하게 수정 또는 삭제하여 후속 쿼리에서는 잘못된 정보를 출력하지 않도록 할 수도 있습니다.