스토리지 및 검색

오늘날의 RAG 솔루션에 대한 심층적인 인사이트를 얻는 데 있어 RAG 설명서가 어떤 도움이 되는지 알아보세요

Watson for Customer Care 리드스페이스를 기본으로 사용하여 색상을 변경한 리드스페이스.
개요

RAG 문서 기반과 스토리지, 검색을 위한 도구와 고려 사항을 설명하는 섹션입니다. 스토리지 기술은 저장된 데이터를 쿼리하고 검색하는 데 사용할 수 있는 검색 메커니즘을 제한하기 때문에 두 주제를 함께 다룹니다.

IBM 툴

IBM Watsonx Discovery: 엔터프라이즈 검색 & RAG 종합 솔루션

IBM Cloud Databases for Elasticsearch를 기반으로 하는 IBM Watsonx Discovery는 검색과 RAG(검색 증강 생성) 사용 사례를 지원하고 개선하도록 설계된 완벽한 엔터프라이즈 솔루션입니다. 벡터 검색, 시맨틱 검색, 페더레이티드 검색 등을 위한 강력한 기능을 갖춘 Watsonx Discovery는 상황에 맞는 AI 기반 애플리케이션을 구축하기 위한 풍부한 도구 세트를 제공합니다. IBM의 대화형 AI 플랫폼 watsonx Assistant와 watsonx Orchestrate 같은 오케스트레이션 계층과 원활하게 통합되어 고급 비즈니스 솔루션을 제공합니다.

왜 Watsonx Discovery with Elasticsearch를 사용할까요?

Watsonx Discovery는 IBM Cloud Databases for Elasticsearch를 활용하여, 다음과 같은 엔터프라이즈 검색 요건을 관리하기 위한 강력하고 유연한 백엔드를 제공합니다.

  • 모니터링 및 상황 점검: 개발자는 Elasticsearch를 통해 포괄적인 모니터링 및 상태 점검 도구에 접근하여 임베딩, 메타데이터, 청크 크기와 문서 구조가 최적화되었는지 확인합니다. Elasticsearch 웹 페이지를 사용하면 백업, 로깅, 모니터링 및 설정과 같은 운영 작업보다는 애플리케이션 개발에 집중하여 관리와 확장을 원활하게 할 수 있습니다.

  • 고급 검색 기능: Watsonx Discovery는 희소 및 밀집 시맨틱 검색, 메타데이터 필터링 검색, 어휘 검색, 부울 검색(AND/OR/NOT/SLOP), 접두사 검색, 퍼지 검색, 하이브리드 검색 등 다양한 고급 검색 알고리즘을 지원합니다. 이러한 기능은 복잡한 쿼리 및 문서와 관련된 까다로운 RAG 사용 사례에 매우 중요합니다. 이 Notebook에 설명된 고급 검색 유형을 구현하여 배포를 최적화하세요.

  • LLM 프레임워크와의 통합: Elasticsearch는 LangChain, LlamaIndex 등 인기 있는 LLM 오케스트레이션 프레임워크와의 호환성 덕분에 Watsonx Discovery와 통합하여 RAG 솔루션을 구동하기에 이상적입니다.

Watsonx Discovery가 지원하는 검색 방법

Watsonx Discovery는 광범위한 검색 방법론을 지원하는 다목적 솔루션입니다.

  • 키워드 검색
  • 시맨틱 검색
  • 벡터 검색
  • 하이브리드 검색(Reciprocal Rank Fusion)

ELSER(엘라스틱 검색 임베딩)은 시맨틱 검색에 사용되는 선도적인 사전 빌드형 임베딩 모델로서, 맞춤형 벡터 데이터베이스 없이도 맥락을 검색할 수 있게 합니다.

페더레이티드 검색

watsonx Discovery는 기존 배포 전반에서 통합 검색을 지원하므로 중복 데이터를 저장하고 유지 관리할 필요가 줄어듭니다. 그래서 전사적으로 여러 데이터 사일로를 넘나들며 검색과 조회를 할 수 있습니다.

풍부한 데이터 수집 및 인덱싱 기능

Watsonx Discovery는 풍부한 데이터 수집 도구 제품군을 통해 콘텐츠 추출과 인덱싱을 간소화합니다.

  • 콘텐츠 추출: DOCX, PDF, PPTX 등 다양한 파일 형식을 지원하므로 비즈니스에 중요한 정보를 쉽게 검색하고 인덱싱할 수 있습니다.
  • 타사 통합: 사전 구축된 커넥터를 사용해 다양한 데이터 소스에 연결하여 엔터프라이즈 데이터 에코시스템에 원활하게 통합할 수 있습니다.
  • 데이터 변환 및 강화: 강력한 수집 파이프라인을 구현하여 데이터를 변환하고 강화하여 고품질 검색과 인사이트를 확보할 수 있도록 합니다.
벡터 데이터베이스와 관련된 watsonx Discovery의 특징과 기능을 보여주는 일러스트

자세한 내용이 궁금하시면 다음의 ElasticSearch 리소스를 살펴보면서 Watsonx 디스커버리 개발 속도를 높이세요.

시각화 및 엔터프라이즈 검색 향상

Watsonx Discovery는 KibanaEnterprise Search와 통합되어 대규모 엔터프라이즈 환경에 맞게 조정된 확장가능한 AI 기반 정보 검색 및 시각화를 제공합니다.

  • 데이터 시각화를 위한 Kibana: Watsonx Discovery가 수집한 데이터를 기반으로 맞춤형 대시보드와 시각화를 생성합니다. 개체 추출, 감정 분석, 문서 분류와 같은 주요 지표에 대한 실시간 분석을 제공합니다. 이는 비정형 데이터의 추세, 패턴 및 이상 징후를 추적하여 분석 프로세스를 간소화하고 의사 결정을 개선하는 데 도움이 됩니다.

  • Enterprise Search for Scalable Retrieval: NLP와 시맨틱 검색을 활용하여 정형 및 비정형 데이터 소스 전체에서 빠르고 정확하게 검색이 이루어지게 합니다. 문서, 이메일, 데이터베이스 등 여러 데이터 소스에서 인덱싱하고 검색할 수 있는 기능을 맞춤 설정하여 비즈니스 워크플로에 직접 통합되는 도메인별 검색 애플리케이션을 만들 수 있습니다.

개인정보 보호 및 보안

Watsonx Discovery는 콘텐츠 접근을 막곡 데이터 프라이버시를 보호하기 위해 역할 기반 및 속성 기반 접근 제어에 대한 기본 지원을 적용합니다. 이렇게 하면 민감한 정보에 권한이 있는 사용자만 접근할 수 있어서 기업 데이터를 보호할 수 있습니다.

사용 사례: Watsonx Discovery 및 Orchestrate

Watsonx Discovery는 Watsonx Orchestrate와 결합하여 상황 인식 데이터 검색을 통해 자동화 워크플로를 개선할 수 있습니다. Orchestrate는 구조화되지 않은 데이터로부터 인사이트를 얻어야 하는 비즈니스 프로세스를 자동화할 때 Discovery를 활용하여, 관련 콘텐츠를 검색하고 분석하여 다음과 같은 지능형 작업이 가능해지게 합니다.

  • 데이터에 기반한 정확한 답변으로 쿼리에 응답
  • 실시간 데이터 검색과 인사이트에 의존하는 워크플로 실행

IBM watsonx.data: 통합 벡터 데이터베이스 기능을 갖춘 현대식 데이터 저장소

IBM watsonx.data는 개방형 레이크하우스 아키텍처를 기반으로 구축된 강력한 데이터 플랫폼으로, 데이터 웨어하우스와 데이터 레이크의 강점을 결합합니다. 공유 개방형 메타데이터 계층을 통해 모든 데이터에 접근할 수 있는 단일 진입점을 제공하기 때문에, 데이터 관리를 간소화하려는 조직에 적합합니다. watsonx.data는 오픈 데이터 형식, 통합된 벡터화 임베딩 기능, 데이터 인사이트를 위한 생성형 AI 기반 대화형 인터페이스를 지원하면서 실시간 분석과 AI 사용 사례를 개선합니다. 플랫폼은 기존 데이터베이스 및 도구와 원활하게 통합되고, 클라우드 및 온프레미스 구성을 포함한 유연한 배포 옵션을 제공합니다.

IBM watsonx.data의 주요 구성 요소는 벡터 임베딩과 같은 고차원 벡터 데이터를 저장, 관리 및 전송하도록 특별히 설계된 오픈 소스 벡터 데이터베이스 watsonx.data Milvus입니다. 고도로 구성 가능한 이 벡터 데이터베이스는 벡터를 효율적으로 인덱싱하고 검색하는 데 최적화되어 있어 AI 애플리케이션에서 벡터 유사성 검색이 필요한 사용 사례에 이상적입니다. watsonx.data Milvus는 벡터 데이터베이스 기능과의 원활한 통합이 필요한 watsonx.ai 활용 고객, 검색 증강 생성(RAG) 패턴에 자주 사용되는 LangChain 같은 오픈 소스 프레임워크를 구현하려는 고객에게 특히 유용합니다.

배포 옵션

IBM watsonx.data는 다양한 요구에 맞는 세 가지 배치 옵션을 제공합니다.

  • 완전 관리형 SaaS: IBM Cloud와 AWS에서 사용할 수 있으며 설정과 확장을 간편하게 할 수 있습니다.
  • 자체 관리형 컨테이너형 소프트웨어: 온프레미스 환경에 적합하며 IBM Cloud Pak for Data 및 Red Hat OpenShift를 활용합니다.
  • 소형 풋프린트 개발자 버전: 단일 VM 또는 노트북을 사용하는 개발 환경에 적합하며, 로컬에서 테스트하고 프로토타입을 제작할 수 있는 유연성을 제공합니다.

watsonx.data는 벡터 데이터베이스를 활용하려는 조직을 위해 오픈 소스 Milvus와의 통합을 지원하여, 실시간 AI 애플리케이션에 필수적인 벡터 유사성 검색과 같은 고급 기능을 구현합니다.

시작하기

IBM watsonx.data를 사용하려면 요건에 가장 잘 맞는 배포 옵션을 선택하세요.

  • IBM Cloud 배포:
  • IBM Cloud 카탈로그 페이지에서 watsonx.data를 방문합니다.
  • 필요에 맞는 요금제를 선택합니다.
  • 인스턴스를 프로비저닝합니다.

  • 온프레미스 배포:

  • 데이터용 IBM Cloud Pak 안에서 IBM watsonx.data의 활성화 키를 얻습니다.
  • Red Hat OpenShift 권한을 받습니다.
  • 배포 가이드에 따라 소프트웨어를 구성합니다.

문서 및 지원

IBM은 핵심 watsonx.data 플랫폼과 Milvus 벡터 데이터베이스를 시작하는 데 도움이 되는 다양한 문서를 제공합니다.

watsonx.data의 개방형 아키텍처, 통합 벡터 데이터베이스 기능 및 고급 AI 기능을 활용하면 AI 기반 기능을 통해 데이터 엔지니어링 프로세스를 최적화하고 실시간 분석을 개선하며 새로운 인사이트를 확보할 수 있습니다. 이 통합 플랫폼은 팀이 혁신적인 방식으로 정형 및 비정형 데이터를 다루도록 지원하여 기존 분석과 최첨단 벡터 유사성 검색을 단일 솔루션으로 통합합니다.

Watson Discovery

IBM Watson Discovery는 구조화되지 않은 데이터를 검색하고 분석하도록 설계된 도구입니다. 주요 기능은 키워드 검색으로, 사용자가 특정 용어나 구문을 사용하여 대규모 데이터 세트를 검색할 수 있습니다. 텍스트 매칭을 사용하는 기존 검색 엔진과 달리 Watson Discovery는 키워드의 맥락을 사용하여 더 관련성이 큰 결과를 제공합니다.

Watson Discovery의 또 다른 중요한 기능은 개체 추출입니다. 이는 Watson Discovery가 비정형 텍스트에서 사람, 위치, 조직 및 날짜 같은 주요 정보를 자동으로 추출할 수 있음을 의미합니다. 이 프로세스는 데이터를 구조화해서, 소화 가능하고 RAG 응답에 직접 통합할 수 있게 합니다.

오픈소스 툴

LangChain

많은 LLM 응용 프로그램은 모델 학습 세트의 일부가 아닌 사용자별 데이터를 필요로 합니다. 이를 위해서는 주로 검색 증강 생성(RAG)이 사용됩니다. 이 프로세스에서는 생성 단계를 수행할 때 외부 데이터를 검색하여 LLM으로 전달합니다.

RAG 솔루션에서 문서 수집 및 임베딩을 위한 고수준 LangChain 프로세스를 보여주는 일러스트

LangChain은 다양한 검색 알고리즘을 지원합니다. LangChain은 시맨틱 검색과 같은 기본 방법을 지원하되, 성능 향상을 위해 여러 알고리즘을 추가했습니다. 그 예는 다음과 같습니다.

 

  • 상위 문서 검색기: 상위 문서당 여러 임베딩을 만들어서, 사용자가 작은 청크를 검색해도 더 큰 맥락을 반환
  • 셀프 쿼리 검색기: 사용자 질문에 단순한 의미론적 차원을 넘어서, 메타데이터 필터로 가장 잘 나타낼 수 있는 논리를 표현하는 내용이 언급되어 있는 경우가 많습니다. 자체 쿼리를 사용하면 쿼리에 포함된 다른 메타데이터 필터에서 쿼리의 의미론적 부분을 추출할 수 있습니다.
  • 앙상블 검색기: 서로 다른 소스나 알고리즘을 여러 개 사용해서 문서를 검색해야 할 때 앙상블 검색기를 사용하면 작업이 쉬워집니다.

Milvus

Milvus는 구조화되지 않은 문서에서 구조화된 데이터를 자동화하고 추출하기 위한 AI 플랫폼이며 특정 검색 시나리오에서 Watsonx Discovery와 함께 자주 사용됩니다. Milvus는 다양한 형식에 맞게 조정할 수 있기 때문에 대규모 처리 워크플로에 이상적입니다. AI 엔지니어가 해야 하는 수동 데이터 추출 작업을 줄여주면서, 정밀도와 효율성을 보장하는 확장가능한 솔루션을 제공합니다.

watsonx Discovery와 Milvus 비교

Milvus는 대규모 데이터 세트에서의 유사성 검색을 위주로 설계된 벡터 데이터베이스이며 고차원 벡터에서 탁월합니다. 반면 watsonx Discovery는 대화형 시맨틱 검색 및 문서 이해/처리에 특화되어 있으며 대화형 및 시맨틱 검색 기능에 중점을 둡니다.

기능성

Milvus는 희소 벡터, 벌크 벡터, 필터링된 검색, 하이브리드 검색 기능 같은 고급 기능을 제공합니다. 또한 수평과 수직 확장/축소가 모두 가능한 분산 아키텍처를 갖추고 있어 대규모 데이터 세트에 대한 확장성이 뛰어납니다.

주요 이점

확장

Milvus는 대규모 벡터 데이터를 처리할 수 있으며 대규모 데이터 세트에서 정보를 검색하는 RAG 솔루션에 필수적인 고성능 벡터 유사성 검색을 지원합니다.

데이터 통합

Milvus는 watsonx.data와 매끄럽게 통합되어 AI 모델과 애플리케이션의 데이터 관리를 간소화합니다. 이를 통해 대규모 관리 데이터 집합에서 확장 가능한 RAG 사용 사례를 사용할 수 있습니다.

고급 기능

Milvus는 메타데이터 필터링, 검색 결과 관련성 향상 및 RAG 시스템 효율성 개선과 같은 고급 기능을 지원합니다.

리소스

Milvus RAG 튜토리얼

LangChain 검색기 사용

LlamaIndex를 사용하는 오픈 소스 리트리버

팁, 기법, 권장 사항

중복, 우선순위 및 배포 처리하기

기본 벡터 저장소는 단순한 RAG 솔루션에는 적합하지만, 문서에 유사한 정보가 여럿 있거나(유사성이 의미 없는 경우) 쿼리에 답변하기 위한 정보가 여러 문서에 분산되어 있으면 금방 작동에 이상이 생깁니다. 몇 가지 예시를 보여드리겠습니다.

예시 1

미국 여러 주에 지사가 있고 주마다 고유한 HR 정책이 있는 회사가 있습니다. 이들은 모든 지사의 HR 정보에 공통된 문서 형식을 사용합니다. 회사가 HR 정책을 벡터 데이터베이스에 삽입하면, 예를 들어 각기 다른 지원 텍스트와 함께 휴가를 요청하는 청크가 여러 개 생기면서 할루시네이션이 발생할 가능성이 높습니다.

예시 2

서비스 계약서에 각종 용어가 정의된 용어집이 수록되어 있으며, 이 용어들은 계약서 전체에 영문 대문자로 표기되어 있어 용어집의 정의를 기준으로 한다는 사실을 알 수 있습니다(Lessor, Evaluation Period 등). 계약서 처음부터 끝까지 단순히 구문 분석을 하고 묶음 단위로 나누는 방식으로는 다음과 같은 상호작용이 발생합니다.

질문: 서비스가 완료된 후 Acme에 요금이 청구되기까지 얼마나 시간이 걸리나요?

응답: 구매자에게는 평가 기간 이후 10일의 유예 기간이 주어지며, 이 기간에 서비스 요금이 청구됩니다.

도움이 되지만, 더 완벽한 답이 나오도록 후속 질문을 만들고 빠르게 추가하게 합니다.

예시 3

주 정부가 기존 법률을 '수정'해 법률 개정안을 발표합니다. 예를 들어 "마약 관리법 12.2항은 대마초 및 대마초 관련 제품을 제외하도록 수정"합니다. 벡터 데이터베이스는 이 텍스트 스니펫이 대마초 주제를 다루는 다른 모든 청크보다 우선한다는 판단을 어떻게 내릴까요?

문서 계층 구조

문서 계층 구조는 문서 청크를 카테고리별로 묶어서, 연관된 문서들을 그룹화합니다. 이는 목차 또는 컴퓨터 폴더들과 유사합니다. 문서 계층 구조를 사용하면 RAG 솔루션이 사용자 쿼리의 제목을 '제한'하여 가장 관련성이 높은 문서만 검색할 수 있습니다.

RAG 솔루션에 대한 문서 계층의 일반적인 구조

위의 다중 상태 HR 문서 예시에 이를 적용하면 유용한 문서 계층 구조는 문서를 상태별로 분류하여 RAG 솔루션이 특정 상태와 관련된 문서 청크만 검색할 수 있도록 합니다. 아래 그림에서 보는 것처럼, 먼저 국가별로 문서를 구성한 다음 시/도별로, 그 다음은 정책 영역 또는 주제별로 분류하는 계층 구조를 만들 수 있습니다. 물론, 이는 솔루션이 사용자가 등록된 거주 주에서 관련 주를 추론하거나 사용자에게 관심 주를 제공하라는 프롬프트를 통해 추론해야 합니다.

여러 관할 구역에서 사업을 영위하는 기업의 회사 정책 문서 계층 구조 예시.

구현

하이브리드 벡터 스토어

문서 계층 구조는 하이브리드 벡터 스토어, 즉 Milvus와 같이 벡터와 더불어 수치형 및 범주형 데이터 유형으로 구성된 스키마를 지원하는 벡터 스토어에서 구현할 수 있으며, 아래 Milvus 스키마 정의에서 볼 수 있듯이 범주와 하위 범주 필드를 검색 조건으로 사용할 수 있습니다.

chunk_id = FieldSchema(
  name="chunk_id",
  dtype=DataType.INT64,
  auto_id=True,
)
state_id = FieldSchema(
  name="state_id",
  dtype=DataType.INT64,  
)
chunk = FieldSchema(
  name="chunk",
  dtype=DataType.FLOAT_VECTOR,
  dim=2
)
schema = CollectionSchema(
  fields=[chunk_id, state_id, chunk],
  description="주별 HR 문서"
)

지식 그래프

지식 그래프는 문서 하나 또는 여러 개에서 개체들의 관계를 포착합니다. 벡터 데이터베이스에서의 유사성 검색과 달리, 지식 그래프는 연관성과 내용을 일관되고 정확하게 검색해서 할루시네이션 발생을 크게 줄일 수 있습니다. 그래프 데이터베이스를 벡터 데이터베이스 유사성 검색과 함께 사용하면 RAG 솔루션이 문서 하나 또는 여러 개에서 연관된 내용을 통합할 수 있습니다. 아래 그림은 서비스 계약에 대한 잠재적 지식 그래프입니다.

 

법률 계약에 대한 지식 그래프 예시

RAG 솔루션을 위한 최고의 지식 그래프는 인간이 만들고 유지 관리하지만, 대규모 언어 모델(LLM)을 사용하여 개체들과 문서에서의 관계를 구문 분석하고 지식 그래프를 생성하면 놀라울 정도로 좋은 결과를 얻을 수 있습니다.

구현

Neo4j

Neo4j는 널리 사용되는 오픈 소스(GPLv3) 그래프 데이터베이스입니다. 이 튜토리얼은 Neo4j와 Langchain을 사용하여 지식 그래프 기반 RAG 솔루션을 구성하고 코딩하는 과정을 설명합니다.

자세히 살펴보기

IBM의 최신 기술 패턴, 솔루션 아키텍처, 아키텍처 간행물을 받아보세요.

  1. IBM 아키텍처 센터로 이동
기고자

 

Rohan Singh, Fahad Bhutta, Luke Major, Chris Kirby, Sacha Mongrain

업데이트: 2024년 11월 15일