brunch

You can make anything
by writing

C.S.Lewis

by 진용진 Aug 16. 2024

7. Perplexity의 검색 모델의 기반: RAG

RAG란 무엇인가? Perplexity의 혁신적 검색 모델의 기반

퍼플렉시티(Perplexity) 창업자, 아라빈드 스리니바스(Aravind Srinivas)는 RAG(Retrieval-Augmented Generation)에 대하여 간단히 다음과 같이 설명했습니다.

RAG는 간단히 말해, 사용자가 쿼리(질문)를 제시하면 관련 문서를 검색하고, 각 문서에서 중요한 문단을 선택하여 해당 정보를 바탕으로 답변을 생성하는 프레임워크입니다. - Aravind Srinivas
Retrieval-Augmented Generation(RAG) 기술은 대형 언어 모델(LLM)의 성능을 향상시키기 위해 외부 데이터를 동적으로 통합하여 응답 생성 과정에 활용하는 방식입니다. 이 접근법은 LLM이 가장 최신의 관련 정보를 활용할 수 있도록 하여, 결과의 정확성과 신뢰성을 크게 향상시킵니다. RAG는 사용자의 쿼리에 관련된 데이터를 데이터베이스, 뉴스 피드 또는 전문 지식 베이스와 같은 다양한 출처에서 먼저 검색한 후, 이 데이터를 생성 과정에 통합함으로써 모델이 맥락적으로 적절하며 검증 가능하고 최신의 응답을 생성할 수 있도록 합니다.

RAG 시스템의 아키텍처는 데이터 준비, 색인화, 검색, 응답 생성이라는 여러 핵심 요소로 구성됩니다. 우선 외부 데이터를 신속하게 검색할 수 있도록 적절한 형식으로 처리하고 변환합니다. 이 과정에서 데이터의 임베딩을 생성한 후, 이를 벡터 검색 엔진에 색인화합니다. 쿼리가 들어오면, RAG 시스템은 이러한 색인과 쿼리를 대조하여 가장 관련성 높은 정보를 찾아내고, 이를 바탕으로 LLM의 응답을 생성합니다. 이 방법은 잘못된 정보나 오해를 불러일으킬 수 있는 정보를 생성할 가능성을 줄일 뿐만 아니라, 인용을 포함하여 생성된 콘텐츠의 투명성과 신뢰성을 높여줍니다. - Perplexity Blog


Perplexity의 중요한 원칙 중 하나는, 검색되지 않은 정보를 답변에 포함시키지 않음으로써 답변의 사실적 근거를 유지하는 것입니다. 이는 단순히 추가적인 맥락을 사용해 답변을 생성하는 RAG보다 훨씬 강력한 접근 방식으로, 검색된 문서에서 충분한 정보를 얻지 못할 경우, “이 질문에 대한 충분한 검색 자료가 없습니다”라고 응답하는 정책을 가지고 있습니다.


source: Perplexity page



RAG의 오류 가능성과 해결책

RAG 시스템에서 환각(hallucination)이 발생할 수 있는 몇 가지 주요 원인과 해결책에 대해 Aravind Srinivas는 다음과 같이 설명했습니다:


1. 모델의 이해력 문제: 쿼리와 관련된 모든 정보가 있음에도 불구하고, 모델이 쿼리와 문단을 제대로 이해하지 못하고 적절한 정보를 선택하지 못하는 경우입니다. 이는 모델의 능력 문제로, 모델이 개선됨에 따라 해결될 수 있습니다.

2. 불충분한 정보: 검색된 문서의 내용이 최신이 아니거나 충분히 상세하지 않을 때 발생합니다. 이 경우 모델은 혼란을 겪을 수 있습니다.

3. 과도한 세부 정보: 모델에 너무 많은 정보를 제공하면, 필요한 정보와 그렇지 않은 정보를 구분하지 못해 잘못된 답변을 생성할 수 있습니다.

4. 관련 없는 문서 검색: 관련 없는 문서를 검색한 경우입니다. 충분히 숙련된 모델이라면 “충분한 정보가 없습니다”라고 답해야 하지만, 그렇지 못할 경우 오류가 발생할 수 있습니다.


Aravind Srinivas는 이러한 문제를 해결하기 위해, 검색 품질 개선, 인덱스의 최신성 유지, 문서의 세부 정보 관리, 그리고 모델의 문서 처리 능력 향상을 통해 환각 현상을 줄일 수 있다고 설명했습니다.



Perplexity의 검색 및 인덱싱 과정

Perplexity의 검색과 인덱싱 시스템은 여러 단계로 이루어집니다. Aravind Srinivas는 먼저 웹을 탐색하는 크롤러(Crawler)의 중요성을 강조했습니다. Perplexity는 Google의 Googlebot, Bingbot, GPTBot과 함께 자체 크롤러인 PerplexityBot을 사용합니다. 이 봇들은 어떤 웹페이지를 크롤링할지, 어떤 도메인을 대상으로 할지, 그리고 얼마나 자주 크롤링할지를 결정합니다.


크롤링 과정에서는 웹사이트 소유자들이 제공하는 robots.txt 파일을 참고하여, 특정 페이지를 크롤링하지 않거나 크롤링 빈도를 조정하는 등의 예의를 준수해야 합니다.


이후, 각 URL에서 가져온 콘텐츠를 후처리하여 랭킹 시스템(ranking system)에 적합한 형태로 만들어야 합니다. 이 과정에는 머신러닝(ML)을 활용한 텍스트 추출(text extraction)과 같은 기술이 필요합니다. 예를 들어, Google의 ‘Now Boost’ 시스템은 각 URL 콘텐츠에서 관련 메타데이터와 중요한 정보를 추출하여 이를 인덱스에 반영합니다.



하이브리드 검색 시스템의 역할

Aravind Srinivas는 벡터 스페이스(Vector Space) 임베딩만으로는 텍스트의 의미를 완전히 포착하기 어렵다고 지적했습니다. BM25와 같은 전통적인 정보 검색 알고리즘이 여전히 중요한 역할을 하며, 이 기법을 사용해 쿼리와 관련된 문서를 정확하게 검색하고 랭킹하는 것이 필요합니다. BM25는 TF-IDF(단어 빈도 역문서 빈도)의 발전된 버전으로, 여전히 대부분의 임베딩 기법보다 우수한 성능을 보입니다.


Perplexity는 하이브리드 시스템(Hybrid System)을 사용하여 전통적인 용어 기반 검색과 최신 임베딩 기법을 결합합니다. 이 시스템은 도메인 권위(Domain Authority)나 최신성(Recency)과 같은 추가적인 랭킹 신호를 포함해 검색 정확도를 높입니다. Aravind Srinivas는 이러한 검색 시스템을 구축하는 과정이 과학적 접근뿐만 아니라 사용자 경험 중심의 사고도 필요한 복합적인 작업임을 강조했습니다.


It’s a good amount of science, but a lot of user-centric thinking baked into it


RAG는 단순한 검색 시스템 이상으로, 정보의 정확성과 신뢰성을 유지하면서도 사용자가 필요로 하는 답변을 제공하기 위한 강력한 프레임워크입니다. Perplexity의 혁신적인 접근 방식은 웹 검색의 미래를 다시 한번 생각하게 합니다. RAG의 잠재력과 한계를 인식하고 이를 개선하는 노력은, 앞으로의 Perplexity와 같은 정보 탐색 서비스가 사용자에게 얼마나 신뢰받고 유용한 도구로 자리 잡을지를 결정짓는 중요한 요소가 될 것입니다.

이전 06화 6. Perplexity의 시작과 전략적 진화
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari