Skip to main content
NetApp Solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

벡터 데이터베이스

기여자

이 섹션에서는 NetApp AI 솔루션의 벡터 데이터베이스의 정의 및 사용에 관해 설명합니다.

벡터 데이터베이스

벡터 데이터베이스는 머신 러닝 모델의 임베딩을 사용하여 비정형 데이터를 처리, 인덱싱 및 검색할 수 있도록 설계된 특수한 유형의 데이터베이스입니다. 데이터를 전통적인 표 형식으로 구성하는 대신 데이터를 벡터 임베딩이라고도 하는 고차원 벡터로 정렬합니다. 이 고유한 구조를 통해 데이터베이스에서 복잡한 다차원 데이터를 보다 효율적이고 정확하게 처리할 수 있습니다.

벡터 데이터베이스의 주요 기능 중 하나는 생성 AI를 사용하여 분석을 수행하는 것입니다. 여기에는 데이터베이스가 주어진 입력과 같은 데이터 포인트를 식별하는 유사성 검색, 규범과 크게 벗어나는 데이터 지점을 찾을 수 있는 이상 징후 감지 등이 포함됩니다.

또한 벡터 데이터베이스는 임시 데이터 또는 타임 스탬프 데이터를 처리하는 데 적합합니다. 이 유형의 데이터는 지정된 IT 시스템 내의 다른 모든 이벤트와 관련하여 '무슨' 및 언제 발생했는지에 대한 정보를 순서대로 제공합니다. 이러한 임시 데이터 처리 및 분석 기능으로 인해 벡터 데이터베이스는 시간에 따른 이벤트를 이해해야 하는 응용 프로그램에 특히 유용합니다.

ML 및 AI용 벡터 데이터베이스의 이점:

  • 고차원 검색: 벡터 데이터베이스는 AI 및 ML 응용 프로그램에서 주로 생성되는 고차원 데이터를 관리하고 검색하는 데 탁월합니다.

  • 확장성: 대량의 데이터를 처리할 수 있도록 효율적으로 확장하여 AI 및 ML 프로젝트의 성장과 확장을 지원합니다.

  • 유연성: 벡터 데이터베이스는 높은 수준의 유연성을 제공하여 다양한 데이터 유형과 구조를 수용합니다.

  • 성능: AI 및 ML 운영의 속도와 효율성을 높이는 데 매우 중요한 고성능 데이터 관리 및 검색을 제공합니다.

  • 사용자 지정 가능한 인덱싱: Vector 데이터베이스는 사용자 지정 가능한 인덱싱 옵션을 제공하여 특정 요구 사항에 따라 최적화된 데이터 구성 및 검색을 지원합니다.

벡터 데이터베이스 및 사용 사례

이 섹션에서는 다양한 벡터 데이터베이스와 해당 사용 사례 세부 정보를 제공합니다.

Faiss와 Scann

벡터 검색의 영역에서 중요한 도구로 사용되는 라이브러리입니다. 이러한 라이브러리는 벡터 데이터를 관리하고 검색하는 데 중요한 기능을 제공하므로 데이터 관리의 전문 영역에 매우 유용한 리소스가 됩니다.

Elasticsearch(Elasticsearch)

널리 사용되는 검색 및 분석 엔진이며, 최근 벡터 검색 기능을 통합했습니다. 이 새로운 기능은 벡터 데이터를 보다 효과적으로 처리하고 검색할 수 있도록 기능을 향상시킵니다.

파인콘주식회사

고유한 기능 집합을 가진 강력한 벡터 데이터베이스입니다. 인덱싱 기능에서 고밀도 벡터와 희소 벡터를 모두 지원하므로 유연성과 적응성이 향상됩니다. 주요 장점 중 하나는 기존 검색 방법을 AI 기반 고밀도 벡터 검색과 결합하여 두 환경의 장점을 모두 활용하는 하이브리드 검색 방식을 만드는 능력에 있습니다.

주로 클라우드 기반의 Pinecone은 머신 러닝 애플리케이션용으로 설계되었으며 GCP, AWS, Open AI, GPT-3, GPT-3.5, GPT-4, catgut Plus, Elasticsearch, 하이스택, 설명합니다. Pinecone은 폐쇄형 소스 플랫폼이며 SaaS(Software as a Service) 오퍼링으로 사용할 수 있다는 점에 유의해야 합니다.

Pinecone은 고급 기능을 고려할 때 고도의 검색 및 하이브리드 검색 기능을 효과적으로 활용하여 위협을 감지하고 이에 대응할 수 있는 사이버 보안 산업에 특히 적합합니다.

채도

이 벡터 데이터베이스는 4가지 주요 기능을 가진 Core-API를 가지고 있으며, 그 중 하나는 메모리 내 문서 벡터 저장소를 포함합니다. 또한 Face Transformers 라이브러리를 활용하여 문서를 벡터화하여 기능과 다기능성을 향상시킵니다.
Chroma는 클라우드 및 온프레미스 모두에서 작동하도록 설계되어 사용자 요구에 따라 유연성을 제공합니다. 특히 오디오 관련 응용 프로그램에서 뛰어난 성능을 발휘하므로 오디오 기반 검색 엔진, 음악 추천 시스템 및 기타 오디오 관련 사용 사례에 적합합니다.

웨이비에이트

사용자가 내장 모듈이나 맞춤형 모듈을 사용하여 콘텐츠를 벡터화할 수 있는 다목적 벡터 데이터베이스로서, 특정 요구 사항에 따라 유연성을 제공합니다. 완전 관리형 솔루션과 자체 호스팅 솔루션을 모두 제공하여 다양한 구축 환경에 적합합니다.

Weaviate의 주요 특징 중 하나는 벡터와 객체를 모두 저장하여 데이터 처리 기능을 향상시키는 기능입니다. ERP 시스템의 의미론적 검색 및 데이터 분류 등 다양한 응용 프로그램에 널리 사용됩니다. 전자 상거래 부문에서는 검색 및 추천 엔진을 지원합니다. 또한 이미지 검색, 이상 징후 감지, 자동 데이터 조화 및 사이버 보안 위협 분석에 사용되어 여러 도메인에서 다양한 기능을 제공합니다.

레드입니다

Redis는 고속 인메모리 스토리지로 잘 알려진 고성능 벡터 데이터베이스로, 읽기-쓰기 작업에 대한 짧은 대기 시간을 제공합니다. 따라서 신속한 데이터 액세스가 필요한 추천 시스템, 검색 엔진 및 데이터 분석 애플리케이션에 매우 적합합니다.

Redis는 목록, 집합 및 정렬된 집합을 포함하여 벡터에 대한 다양한 데이터 구조를 지원합니다. 또한 벡터 간의 거리를 계산하거나 교차점과 결합을 찾는 등의 벡터 연산을 제공합니다. 이러한 기능은 유사성 검색, 클러스터링 및 콘텐츠 기반 추천 시스템에 특히 유용합니다.

확장성과 가용성 측면에서 Redis는 처리량이 많은 워크로드를 처리하는 데 탁월한 성능을 발휘하며 데이터 복제를 제공합니다. 또한 기존의 관계형 데이터베이스(RDBMS)를 비롯한 다른 데이터 유형과도 원활하게 통합됩니다.
Redis에는 실시간 업데이트를 위한 게시/구독(Pub/Sub) 기능이 포함되어 있어 실시간 벡터 관리에 유용합니다. 또한 Redis는 가볍고 사용이 간편하여 벡터 데이터를 관리하기 위한 사용자 친화적인 솔루션입니다.

밀버스주식회사

MongoDB와 같이 문서 저장소와 같은 API를 제공하는 다기능 벡터 데이터베이스입니다. 이 제품은 다양한 데이터 유형을 지원하므로 데이터 과학 및 머신 러닝 분야에서 널리 사용되고 있습니다.

Milvus의 고유한 기능 중 하나는 다중 벡터화 기능으로, 사용자는 런타임에 검색에 사용할 벡터 유형을 지정할 수 있습니다. 또한 Faiss와 같은 다른 라이브러리 위에 있는 라이브러리인 Knowwhere를 활용하여 쿼리와 벡터 검색 알고리즘 간의 통신을 관리합니다.

Milvus는 PyTorch 및 TensorFlow와의 호환성 덕분에 머신 러닝 워크플로우와 원활하게 통합됩니다. 따라서 전자 상거래, 이미지 및 비디오 분석, 개체 인식, 이미지 유사성 검색, 콘텐츠 기반 이미지 검색 등 다양한 응용 프로그램을 위한 탁월한 도구가 됩니다. 자연어 처리의 영역에서 Milvus는 문서 클러스터링, 의미론적 검색 및 질문 응답 시스템에 사용됩니다.

이 솔루션의 경우 솔루션 검증을 위해 milvus를 선택했습니다. 연주를 위해, 우리는 밀버스와 postgres (pgvecto.rs)를 모두 사용했습니다.

이 솔루션으로 milvus를 선택한 이유는 무엇입니까?

  • 오픈 소스: Milvus는 오픈 소스 벡터 데이터베이스로, 커뮤니티 중심의 개발 및 개선을 촉진합니다.

  • AI 통합: Similarity 검색 및 AI 애플리케이션을 내장하여 벡터 데이터베이스 기능을 개선합니다.

  • 대용량 처리: Milvus는 DNN(Deep Neural Networks) 및 ML(Machine Learning) 모델에 의해 생성된 10억 개 이상의 임베디드 벡터를 저장, 인덱싱 및 관리할 수 있는 능력을 갖추고 있습니다.

  • 사용자 친화적: 설치가 1분 이내에 완료되므로 사용이 간편합니다. Milvus는 또한 다양한 프로그래밍 언어에 대한 SDK를 제공합니다.

  • 속도: 빠른 검색 속도를 제공하며 다른 제품보다 최대 10배 더 빠릅니다.

  • 확장성 및 가용성: Milvus는 확장성이 뛰어나며 필요에 따라 스케일업 및 스케일아웃이 가능합니다.

  • 다양한 기능: 다양한 데이터 유형, 속성 필터링, UDF(User-Defined Function) 지원, 구성 가능한 일관성 수준 및 이동 시간을 지원하므로 다양한 애플리케이션을 위한 다양한 도구가 될 수 있습니다.

Milvus 아키텍처 개요

입력/출력 대화 상자 또는 작성된 내용을 표시하는 그림

이 섹션에서는 Milvus 아키텍처에 사용되는 더 높은 레버 구성 요소 및 서비스를 제공합니다.
* 액세스 계층 – 상태 비저장 프록시의 그룹으로 구성되어 있으며 시스템의 프런트 레이어와 사용자에게 엔드포인트의 역할을 합니다.
* 코디네이터 서비스 – 작업을 작업자 노드에 할당하고 시스템의 두뇌 역할을 수행합니다. 루트 코드, 데이터 코드 및 쿼리 코드의 세 가지 코디네이터 유형이 있습니다.
* 작업자 노드: 코디네이터 서비스의 지침을 따르고 사용자 트리거 DML/DDL commands.it 에는 쿼리 노드, 데이터 노드 및 인덱스 노드와 같은 세 가지 유형의 작업자 노드가 있습니다.
* 스토리지: 데이터 지속성을 책임집니다. 메타 스토리지, 로그 브로커 및 오브젝트 스토리지로 구성됩니다. ONTAP 및 StorageGRID와 같은 NetApp 스토리지는 Milvus에 고객 데이터와 벡터 데이터베이스 데이터를 위한 오브젝트 스토리지 및 파일 기반 스토리지를 제공합니다.