2024년 9월 20일, Anthropic은 기존 Retrieval-Augmented Generation (RAG) 시스템의 성능을 크게 향상할 수 있는 '맥락적 검색(Contextual Retrieval)'이라는 새로운 방법을 소개했습니다.

 

Introducing Contextual Retrieval

Anthropic is an AI safety and research company that's working to build reliable, interpretable, and steerable AI systems.

www.anthropic.com

이 기술은 특히 대규모 지식 베이스를 다룰 때 더욱 효과적으로, RAG 시스템의 검색 단계를 획기적으로 개선합니다.


#1. 대규모 지식 베이스에서의 기존 RAG 시스템의 한계

대규모 지식 베이스를 다룰 때, 기존 RAG 시스템은 다음과 같은 한계에 직면합니다.

  1. 맥락 손실: 방대한 문서를 작은 청크로 나누는 과정에서 중요한 맥락 정보가 손실됩니다.
  2. 관련성 판단의 어려움: 대량의 청크 중에서 정확히 관련 있는 정보를 찾기 어려워집니다.
  3. 검색 정확도 저하: 청크 수가 증가함에 따라 검색의 정확도가 떨어질 수 있습니다.
  4. 처리 시간 및 비용 증가: 대량의 데이터를 처리하는 데 더 많은 시간과 컴퓨팅 자원이 필요합니다.

맥락적 검색은 이러한 문제들을 효과적으로 해결하여, 대규모 지식 베이스에서도 높은 성능을 유지할 수 있게 합니다.

#2. 맥락적 검색의 핵심 기술과 대규모 지식 베이스에서의 이점

Anthropic의 맥락적 검색은 두 가지 주요 기술을 사용하며, 각각 대규모 지식 베이스에서 다음과 같은 이점을 제공합니다:

  1. 맥락적 임베딩(Contextual Embeddings):
    • 각 청크에 50-100 토큰의 맥락 정보를 추가합니다.
    • 대규모 데이터셋에서 더 정확한 의미 파악이 가능해집니다.
    • 관련성 높은 정보를 더 효과적으로 검색할 수 있습니다.
  2. 맥락적 BM25(Contextual BM25):
    • 맥락이 추가된 청크를 기반으로 키워드 검색 인덱스를 생성합니다.
    • 대규모 데이터에서도 정확한 키워드 매칭이 가능해집니다.
    • 의미적 검색과 키워드 검색의 장점을 결합하여 검색 정확도를 높입니다.

BM25 모델에 대한 추가 설명

BM25(Best Matching 25)는 정보 검색 분야에서 널리 사용되는 랭킹 함수입니다. 이 모델은 TF-IDF(Term Frequency-Inverse Document Frequency)의 개념을 기반으로 하지만, 몇 가지 중요한 개선사항을 포함하고 있습니다.

  • 문서 길이 정규화: BM25는 문서의 길이를 고려하여 긴 문서에서 특정 단어가 자주 등장하는 것을 보정합니다.
  • 용어 빈도 포화: 특정 단어가 문서에서 과도하게 반복되는 경우, 그 영향력을 제한합니다.
  • 매개변수 튜닝: k1과 b라는 두 개의 자유 매개변수를 통해 다양한 문서 컬렉션에 대해 성능을 최적화할 수 있습니다.

맥락적 BM25에서는 이러한 BM25의 장점을 활용하면서, 맥락 정보가 추가된 청크를 기반으로 인덱스를 생성합니다. 이를 통해 단순한 키워드 매칭을 넘어서, 문맥을 고려한 더 정확한 검색 결과를 제공할 수 있습니다.

예를 들어, "Tesla의 2023년 2분기 실적"에 대한 쿼리가 있을 때, 맥락적 BM25는 단순히 "Tesla", "2023", "2분기", "실적" 등의 키워드 매칭뿐만 아니라, 이들 단어가 사용된 맥락(예: 재무 보고서의 특정 섹션)까지 고려하여 더 관련성 높은 결과를 반환할 수 있습니다.

#3. 대규모 지식 베이스를 위한 구현 방법

출처: Anthropic

맥락적 검색의 구현 과정은 대규모 지식 베이스를 효율적으로 처리하도록 설계되었습니다:

  1. 스케일러블한 문서 전처리:
    • 대량의 문서를 병렬로 처리하여 청크로 나눕니다.
    • 분산 컴퓨팅 기술을 활용하여 처리 속도를 높입니다.
  2. 효율적인 맥락 생성:
    • 고성능 LLM을 사용하여 각 청크에 대한 맥락 정보를 빠르게 생성합니다.
    • 배치 처리를 통해 API 호출을 최적화합니다.
  3. 최적화된 임베딩 및 인덱싱:
    • 고성능 임베딩 모델을 사용하여 대규모 데이터를 효율적으로 처리합니다.
    • 분산 인덱싱 기술을 활용하여 빠른 검색이 가능한 구조를 만듭니다.
  4. 확장 가능한 검색 및 재순위화:
    • 병렬 처리를 통해 대규모 데이터에서도 빠른 검색을 수행합니다.
    • 효율적인 재순위화 알고리즘을 사용하여 대량의 검색 결과를 처리합니다.

#4. 대규모 지식 베이스에서의 성능 향상

출처: Anthropic

Anthropic의 실험 결과, 맥락적 검색은 대규모 지식 베이스에서 다음과 같은 놀라운 성능 향상을 보였습니다:

  • 맥락적 임베딩만 사용 시: 상위 20개 청크 검색 실패율 35% 감소 (5.7% → 3.7%)
  • 맥락적 임베딩 + 맥락적 BM25 사용 시: 검색 실패율 49% 감소 (5.7% → 2.9%)
  • 재순위화(Reranking) 추가 시: 검색 실패율 67% 감소 (5.7% → 1.9%)

이러한 성능 향상은 특히 수백만 개의 문서를 포함하는 대규모 코퍼스에서 더욱 두드러졌습니다.

#5. 대규모 지식 베이스 처리를 위한 고려사항

맥락적 검색을 대규모 지식 베이스에 적용할 때 다음 사항들을 특히 주의해야 합니다:

  1. 인프라 확장성: 대량의 데이터를 효율적으로 처리할 수 있는 분산 시스템 구축이 필요합니다.
  2. 비용 최적화: 프롬프트 캐싱 등의 기술을 활용하여 대규모 처리 비용을 절감해야 합니다.
  3. 실시간 성능: 대규모 데이터에서도 빠른 응답 시간을 유지할 수 있는 최적화가 필요합니다.
  4. 데이터 일관성: 대규모 데이터의 지속적인 업데이트와 동기화 방안을 고려해야 합니다.
  5. 맞춤형 튜닝: 특정 도메인의 대규모 데이터에 맞춰 맥락화 프롬프트와 모델을 최적화해야 합니다.

#6. 대규모 지식 베이스를 위한 프롬프트 캐싱

Anthropic은 프롬프트 캐싱 기능을 통해 대규모 지식 베이스 처리의 효율성을 크게 높였습니다. 이 기능을 사용하면 문서 백만 토큰당 약 $1.02의 비용으로 맥락화된 청크를 생성할 수 있어, 대규모 데이터 처리의 경제성을 확보할 수 있습니다.

#7. 대규모 지식 베이스를 위한 미래 기술 방향

  1. 동적 맥락 생성: 쿼리 시점에 실시간으로 맥락을 생성하여 더욱 정확한 검색 결과를 제공합니다.
  2. 멀티모달 대규모 검색: 텍스트뿐만 아니라 이미지, 오디오 등 다양한 형태의 대규모 데이터를 통합적으로 처리합니다.
  3. 연속 학습 시스템: 지속적으로 업데이트되는 대규모 지식 베이스에 자동으로 적응하는 시스템을 개발합니다.

 

Anthropic의 맥락적 검색은 대규모 지식 베이스를 다루는 RAG 시스템의 성능을 획기적으로 향상하는 기술로 보입니다.

맥락적 검색의 도입으로 대규모 기업 문서, 학술 데이터베이스, 법률 문서 코퍼스 등 방대한 지식 베이스를 다루는 AI 애플리케이션의 성능과 신뢰성이 크게 개선될 것으로 예상됩니다. 저는 Anthropic Contextual Retrieval에 대해 실습을 진행하고, 그 결과를 추가로 소개하는 글을 작성할 계획입니다.

반응형