Amazon Web Services 한국 블로그

Amazon OpenSearch Serverless용 벡터 엔진 미리 보기 출시

현재 다양한 산업의 대부분 기업들이 방대한 데이터 세트를 처리하고, 자동화된 콘텐츠를 생성하고, 사람과 같은 대화형 응답을 제공하는 능력 때문에 생성형 AI (Generative AI)를 빠르게 채택하고 있습니다. 챗봇, 질문 및 답변 시스템, 개인화된 권장 사항과 같은 고급 대화형 생성형 AI 애플리케이션을 통합하여 최종 사용자 경험과 디지털 플랫폼과의 상호 작용을 혁신하는 방법을 모색하고 있습니다. 이러한 대화형 애플리케이션을 사용하면 자연어로 검색 및 질의하고, 그것의 의미와 사용자 의도 및 쿼리 컨텍스트를 고려하여 사람과 유사한 응답을 생성할 수 있습니다.

ML 기반의 증강 검색(Augmented search) 애플리케이션 및 생성형 AI 애플리케이션은 텍스트, 이미지, 오디오 및 비디오 데이터의 수치 표현인 벡터 임베딩(vector embeddings)을 사용하여 동적이고 관련성 있는 콘텐츠를 생성할 수 있습니다. 벡터 임베딩은 개인 데이터에 대해 학습되며 정보의 의미론적 및 컨텍스트 속성을 나타냅니다. 이상적으로는 이러한 임베딩을 기존 검색 엔진 또는 데이터베이스와 같은 도메인별 데이터 세트에 가깝게 저장하고 관리할 수 있습니다.

이를 통해 사용자의 쿼리를 처리하여 가장 가까운 벡터를 찾고 외부 데이터 소스나 추가 애플리케이션 코드에 의존하지 않고 추가 메타데이터와 결합하여 결과를 통합할 수 있습니다. 고객은 가급적 구축이 간단하고 프로토타이핑에서 프로덕션으로 빠르게 이동할 수 있는 벡터 데이터베이스 옵션을 원하므로 차별화된 애플리케이션을 만드는 데 집중할 수 있습니다.

이번에 미리보기로 출시하는 Amazon OpenSearch Serverless용 벡터 엔진은 수십억 개의 벡터 임베딩을 실시간으로 저장, 검색 및 검색하고 기본 인프라에 대해 생각할 필요 없이 정확한 유사성 일치 및 시맨틱 검색을 수행할 수 있도록 하여 OpenSearch의 검색 기능을 확장합니다.

OpenSearch Severless 벡터 엔진 기능 살펴 보기

OpenSearch Severless를 기반으로 구축된 벡터 엔진은 우선 백엔드 인프라의 크기 조정, 조정 및 확장에 대해 걱정할 필요가 없습니다. 벡터 엔진은 지속적으로 빠른 성능과 확장성을 제공하기 위해 변화하는 워크로드 패턴과 수요에 적응하여 리소스를 자동으로 조정합니다. 벡터의 수가 프로토타이핑 중 수천 개에서 생산 시 수억 개 이상으로 증가함에 따라 벡터 엔진은 인프라를 확장하기 위해 데이터를 다시 인덱싱하거나 다시 로드할 필요 없이 원활하게 확장됩니다.

벡터 엔진에는 인덱싱 및 검색 워크로드를 위한 별도의 컴퓨팅이 있으므로 사용자가 경험하는 쿼리 성능이 영향을 받지 않고 실시간으로 벡터를 원활하게 수집, 업데이트 및 삭제할 수 있습니다. 모든 데이터는 Amazon Simple Storage Service (Amazon S3)에 유지되므로 Amazon S3(119)와 동일한 데이터 내구성이 보장됩니다. 아직 프리뷰 단계에 있지만 벡터 엔진은 가용 영역 중단 및 인프라 장애에 대한 중복성을 갖춘 프로덕션 워크로드용으로 설계되었습니다.

OpenSearch Serverless용 벡터 엔진은 신뢰할 수 있고 정확한 결과를 제공하는 것으로 입증된 오픈 소스 OpenSearch 프로젝트의 kNN(최근접 이웃) 검색 기능으로 구동됩니다. 오늘날 많은 고객이 애플리케이션에서 시맨틱 검색 및 개인화를 제공하기 위해 관리형 클러스터에서 OpenSearch kNN 검색을 사용하고 있습니다. 벡터 엔진을 사용하면 서버리스 환경의 단순성으로 동일한 기능을 얻을 수 있습니다.

벡터 엔진은 유클리드, 코사인 유사도 및 내적과 같은 널리 사용되는 거리 메트릭을 지원하고 16,000차원을 수용할 수 있으므로 광범위한 기본 및 기타 AI/ML 모델을 지원하는 데 매우 적합합니다. 또한 숫자, 부울, 날짜, 키워드, 메타데이터를 위한 지리적 위치, 설명 정보를 위한 텍스트와 같은 다양한 데이터 유형으로 다양한 필드를 저장하여 저장된 벡터에 더 많은 컨텍스트를 추가할 수 있습니다. 데이터 유형을 함께 배치하면 복잡성과 유지 관리 용이성이 줄어들고 데이터 중복, 버전 호환성 문제 및 라이선스 문제가 방지되어 애플리케이션 스택이 효과적으로 간소화됩니다.

또한, 벡터 엔진은 동일한 OpenSearch 오픈 소스 제품군 API를 지원하므로 전체 텍스트 검색, 고급 필터링, 집계, 지리 공간 쿼리, 더 빠른 데이터 검색을 위한 중첩 쿼리 및 향상된 쿼리와 같은 풍부한 쿼리 기능을 활용할 수 있습니다. 검색 결과. 예를 들어 사용 사례에서 요청자의 15마일 내에서 결과를 찾아야 하는 경우 벡터 엔진은 단일 쿼리로 이를 수행할 수 있으므로 두 개의 서로 다른 시스템을 유지 관리한 다음 애플리케이션 논리를 통해 결과를 결합할 필요가 없습니다. LangChain과의 통합 지원으로, Amazon BedrockAmazon SageMaker를 사용하면 선호하는 ML 및 AI 시스템을 벡터 엔진과 쉽게 통합할 수 있습니다.

벡터 엔진은 이미지 검색, 문서 검색, 음악 검색, 상품 추천, 동영상 검색, 위치 기반 검색, 사기 탐지, 이상 탐지 등 다양한 도메인에서 광범위한 사용 사례를 지원합니다. 또한 어휘 검색 방법을 고급 ML 및 생성 AI 기능과 결합하는 하이브리드 검색 추세가 증가할 것으로 예상됩니다. 예를 들어 사용자가 전자 상거래 웹 사이트에서 “빨간색 셔츠”를 검색할 때 시맨틱 검색은 어휘(BM25) 검색에 구현된 튜닝 및 부스팅 로직을 유지하면서 모든 빨간색 음영을 검색하여 범위를 확장하는 데 도움이 됩니다.

OpenSearch 필터링을 사용하면 사용자에게 크기, 브랜드, 가격 범위 및 인근 상점의 재고 여부를 기반으로 검색을 세분화할 수 있는 옵션을 제공하여 검색 결과의 관련성을 더욱 강화하여 보다 개인화되고 정확한 경험을 제공할 수 있습니다. 벡터 엔진의 하이브리드 검색 지원을 통해 단일 쿼리 호출 내에서 벡터 임베딩, 메타데이터 및 설명 정보를 쿼리할 수 있으므로 복잡한 애플리케이션 코드를 구축하지 않고도 보다 정확하고 상황에 맞는 검색 결과를 쉽게 제공할 수 있습니다.

기존 AWS 관리 콘솔, AWS CLI, AWS SDKs을 사용하여 OpenSearch 서버리스에서 특수 벡터 검색 컬렉션을 생성하여 벡터 엔진으로 몇 분 만에 시작할 수 있습니다.

컬렉션(Collection)은 워크로드를 지원하기 위해 함께 작동하는 인덱싱된 데이터의 논리적 그룹이며 물리적 리소스는 백엔드에서 자동으로 관리됩니다. 필요한 컴퓨팅 또는 스토리지의 양을 선언하거나 시스템이 제대로 실행되고 있는지 확인하기 위해 시스템을 모니터링할 필요가 없습니다.

OpenSearch Serverless는 사용 가능한 세 가지 컬렉션 유형(시계열, 검색 및 벡터 검색)에 대해 서로 다른 샤딩 및 인덱싱 전략을 적용합니다. 데이터 수집, 검색 및 쿼리에 사용되는 벡터 엔진의 컴퓨팅 용량은 OpenSearch 컴퓨팅 유닛(OCU)에서 측정됩니다. 하나의 OCU는 99% 재현율로 128차원에 대해 400만 벡터 또는 768차원에 대해 500K를 처리할 수 있습니다. 벡터 엔진은 고가용성 서비스인 OpenSearch 서버리스를 기반으로 구축되며 첫 번째 작업에는 최소 4개의 OCU(기본 및 대기를 포함하는 수집용 OCU 2개, 가용 영역 전체에 걸쳐 2개의 활성 복제본이 있는 검색용 OCU 2개)가 필요합니다. 계정에 수집합니다. 동일한 것을 사용하는 모든 후속 컬렉션 AWS Key Management Service (AWS KMS) 키는 이러한 OCU를 공유할 수 있습니다.

벡터 임베딩 시작하기

콘솔을 사용하여 벡터 임베딩 사용을 시작하려면 다음 단계를 진행하시면 됩니다.

  1. OpenSearch Serverless 콘솔에서 새 컬렉션(Create collection)을 만듭니다.
  2. 이름과 설명을 입력합니다.
  3. 현재 벡터 임베딩은 벡터 검색 컬렉션에서만 지원됩니다. 따라서 컬렉션 유형(Collection type)에 대해 벡터 검색(Vector search)을 선택합니다.
  4. 다음으로 암호화, 네트워크 및 데이터 액세스 정책을 포함하는 보안 정책을 구성해야 합니다. Easy create 옵션은 더 빠른 온보딩을 위해 보안 구성을 간소화해 줍니다. 벡터 엔진의 모든 데이터는 기본적으로 전송 및 유휴 상태에서 암호화됩니다. 자신의 암호화 키를 가져오거나 컬렉션 또는 계정 전용 서비스에서 제공하는 키를 사용하도록 선택할 수 있습니다. 퍼블릭 엔드포인트 또는 VPC 내에서 컬렉션을 호스팅하도록 선택할 수 있습니다. 벡터 엔진은 세분화된 AWS Identity and Access Management (AWS IAM) 권한을 지원하므로 암호화, 네트워크, 컬렉션 및 인덱스를 생성, 업데이트 및 삭제할 수 있는 사용자를 정의하여 조직 정렬을 활성화할 수 있습니다.

  1. 보안 설정이 완료되면 컬렉션 생성을 완료할 수 있습니다. 컬렉션이 성공적으로 생성되면, 벡터 인덱스를 생성할 수 있습니다. 이 시점에서 API 또는 콘솔을 사용하여 색인을 생성할 수 있습니다. 색인은 공통 데이터 스키마가 있는 문서 모음이며 벡터 임베딩 및 기타 필드를 저장, 검색 및 검색할 수 있는 방법을 제공합니다. 벡터 인덱스는 최대 1,000개의 필드를 지원합니다.
  1. 벡터 인덱스를 생성하려면 벡터 필드 이름, 차원 및 거리 메트릭을 정의해야 합니다. 벡터 인덱스는 최대 16,000개의 차원과 세 가지 유형의 거리 메트릭(유클리드, 코사인 및 내적)을 지원합니다.

인덱스를 성공적으로 생성하면 OpenSearch의 강력한 쿼리 기능을 사용하여 포괄적인 검색 결과를 얻을 수 있습니다.

다음 예는 OpenSearch API를 사용하여 제목, 설명, 가격 및 위치 정보를 필드로 사용하여 간단한 속성 목록 인덱스를 얼마나 쉽게 생성할 수 있는지 보여줍니다. 쿼리 API를 사용하여 이 인덱스는 “시애틀에서 $3000 미만인 침실 2개짜리 아파트를 찾아주세요.”와 같은 검색 요청과 일치하는 정확한 결과를 효율적으로 제공할 수 있습니다.

비용 걱정 없이 테스트하기

Amazon OpenSearch Serverless 벡터 엔진 미리 보기에 참여하시면, 즉시 테스트를 시작할 수 있습니다. 많은 분들이 실험 단계에서 개발 및 테스트를 위한 보다 경제적인 옵션을 원한다는 것을 알고 있습니다. 정식 출시 이전에 첫 번째 컬렉션의 비용을 줄일 수 있는 두 가지 기능을 제공할 계획입니다.

첫 번째는 활성 대기 또는 복제본 없이 컬렉션을 시작하여 항목 비용을 50%까지 줄일 수 있는 새로운 개발 테스트 옵션입니다. 벡터 엔진은 Amazon S3의 모든 데이터를 유지하므로 여전히 내구성 보장을 제공합니다. 두 번째는 초기에 0.5 OCU 풋프린트를 프로비저닝하는 것입니다. 이는 워크로드를 지원하기 위해 필요에 따라 확장되며, 초기 워크로드가 수만에서 수십만 미만의 벡터(차원 수에 따라 다름)인 경우 비용을 추가로 낮춥니다. 이 두 가지 기능 사이에서 첫 번째 컬렉션에 전원을 공급하는 데 필요한 최소 OCU를 시간당 4개의 OCU에서 1개의 OCU로 줄입니다.

또한, 앞으로 몇 달 안에 워크로드 일시 중지 및 재개할 수 있는 신규 기능을 개발하고 있습니다. 아직 사용 사례 중 많은 부분이 데이터의 지속적인 인덱싱을 필요로 하지 않기 때문에 벡터 엔진에 특히 유용합니다.

마지막으로 캐싱, 병합 등을 개선하는 등 벡터 그래프의 성능과 메모리 사용량을 최적화하는 데 부지런히 집중하고 있습니다.

이러한 비용 절감을 위해 노력하는 동안 개발 및 테스트 옵션을 사용할 수 있게 될 때까지 벡터 컬렉션에 대해 매월 처음 1400 OCU 시간을 무료로 제공할 것입니다. 이렇게 하면 워크로드에 따라 매월 최대 2주 동안 무료로 벡터 엔진 미리 보기를 테스트할 수 있습니다.

미리 보기에 참여하세요!

Amazon OpenSearch 서버리스용 벡터 엔진은 미국 동부(오하이오), 미국 동부(버지니아 북부), 미국 서부(오레곤), 아시아 태평양(싱가포르), 아시아 태평양(시드니), 아시아 태평양(도쿄), 유럽(프랑크푸르트) 및 유럽(아일랜드) 등 8개 리전에서 우선 사용할 수 있습니다. OpenSearch Serverless용 벡터 엔진을 사용해 보고 의견 섹션에서 사용 사례, 질문 및 피드백을 공유해 주시기 바랍니다!

앞으로 몇 주 안에 벡터 엔진을 LangChain, Amazon Bedrock 및 SageMaker와 통합하는 방법에 대한 자세한 방법도 알려드릴 예정입니다. 신규 벡터 엔진의 기능에 대해 자세히 알아보려면 Amazon OpenSearch Serverless 벡터엔진 시작하기 설명서를 참조하세요.

– Pavani Baddepudi, Principal Product Manager for Search Services, AWS
– Carl Meadows, Director of Product Management, AWS

이 글은 AWS AWS Big Data Blog의 Introducing the vector engine for Amazon OpenSearch Serverless, now in preview의 한국어 번역입니다.