벡터 데이터베이스

기계 학습 **벡터 데이터베이스**(vector database), **벡터 스토어**(vector store), **벡터 검색 엔진**(vector search engine)은 벡터 공간 모델을 사용하여 벡터(고정 길이 숫자 목록)와 기타 데이터 항목을 저장하는 데이터베이스이다. 벡터 데이터베이스는 일반적으로 하나 이상의 근사 최근접 이웃 알고리즘을 구현하므로,publisher=Pineconepublisher=Elasticaccess-date=10 July 2023 쿼리 벡터로 데이터베이스를 검색하여 가장 일치하는 데이터베이스 레코드를 검색할 수 있다. 벡터는 고차원 공간에서 데이터의 수학적 표현이다. 이 공간에서 각 차원은 데이터의 특징에 해당하며, 표현되는 데이터의 복잡성에 따라 차원의 수는 수백에서 수만 개에 이른다. 이 공간에서 벡터의 위치는 그 특성을 나타낸다. 단어, 구문 또는 전체 문서뿐만 아니라 이미지, 오디오 및 기타 유형의 데이터를 모두 벡터화할 수 있다.language= 이러한 특징 벡터는 특징 추출 알고리즘, 단어 임베딩quote=A vector database is a type of database that stores data as high-dimensional vectors, which are mathematical representations of features or attributes. 또는 딥 러닝 네트워크와 같은 기계 학습 방법을 사용하여 원시 데이터에서 계산할 수 있다. 목표는 의미론적으로 유사한 데이터 항목이 서로 가까운 특징 벡터를 얻는 것이다. 벡터 데이터베이스는 유사도 검색, 의미론적 검색, 멀티모달 검색, 추천 시스템, 거대 언어 모델 (LLM), 객체 탐지 등에 사용될 수 있다.language= 벡터 데이터베이스는 또한 거대 언어 모델의 도메인별 응답을 개선하는 방법인 검색증강생성 (RAG)을 구현하는 데 자주 사용된다. RAG의 검색 구성 요소는 모든 검색 시스템일 수 있지만, 대부분 벡터 데이터베이스로 구현된다. 관심 도메인을 설명하는 텍스트 문서가 수집되고, 각 문서 또는 문서 섹션에 대해 특징 벡터(일반적으로 "임베딩"으로 알려져 있음)가 일반적으로 딥 러닝 네트워크를 사용하여 계산되어 벡터 데이터베이스에 저장된다. 사용자 프롬프트가 주어지면 프롬프트의 특징 벡터가 계산되고, 데이터베이스는 가장 관련성 높은 문서를 검색하기 위해 쿼리된다. 이러한 문서들은 자동으로 거대 언어 모델의 컨텍스트 창에 추가되며, 거대 언어 모델은 이 컨텍스트를 기반으로 프롬프트에 대한 응답을 생성한다.arxiv=2005.11401
# 기술
고차원 벡터에 대한 유사성 검색의 가장 중요한 기술은 다음과 같다: * 계층적 항해 가능한 스몰 월드(HNSW) 그래프 * 국소성 민감 해싱(LSH) 및 스케칭 * 제품 양자화 (PQ) * 역색인 그리고 이러한 기술들의 조합. 최근 벤치마크에서 HNSW 기반 구현이 최고의 성능을 보였다.arxiv=1807.05614 국제 유사성 검색 및 응용 회의(SISAP)와 신경 정보 처리 시스템 학회(NeurIPS) 같은 회의에서는 대규모 데이터베이스의 벡터 검색 경쟁을 주최한다.
# 구현
{| class="wikitable sortable " |+ |- ! 이름 !! 라이선스 |- |Aerospikelanguage=en-USlanguage=en-US |사유 |- |AllegroGraphlanguage=en-USlanguage=en-US |사유 (관리형 서비스) |- |아파치 카산드라language=en-USaccess-date=2023-11-21 |Apache License 2.0 |- |크로마language=en-USlanguage=en-US |Apache License 2.0language=en |- |Azure 코스모스 DBwebsite=learn.microsoft.com |사유 (관리형 서비스) |- |Couchbaselanguage=en-USlanguage=en-US |BSL 1.1language=en-US |- |CrateDBwebsite=CrateDB Blog |Apache License 2.0 |- |DataStaxdate=18 July 2023 |사유 (관리형 서비스) |- |일래스틱서치date=23 May 2023 |Server Side Public License, Elastic Licenselanguage=en |- |HAKESlanguage=en |Apache License 2.0language=en |- |HDF5 쿼리 인덱싱date= 27 Sep 2019 |BSD 3-Clauselanguage=en |- |재규어DBlanguage=en-USlanguage=en-US |사유 |- |LanceDBlanguage=en-US |Apache License 2.0language=en |- |- |랜턴language=en-US |BSL 1.1language=en |- |라마인덱스language=en-US |MIT 허가서language=en |- |MariaDBlanguage=en-USlanguage=en-us |GPL v2website=MariaDB KnowledgeBase |- |마르코language=en-US |Apache License 2.0 |- |Meilisearchlanguage=en-US |MIT 허가서language=en |- |Milvusaccess-date=29 October 2023language=en-US |Apache License 2.0 |- |몽고DB 아틀라스language=en-US |Server Side Public License (관리형 서비스) |- |Neo4j title=Neo4j enhances its graph database with vector search title=Vector search indexes |GPL v3 (커뮤니티 에디션)title=Neo4j licensing |- |ObjectBoxlanguage=en-US |Apache License 2.0title=ObjectBox Java license |- |OpenSearchlanguage=en-USlanguage=en-US |Apache License 2.0title=OpenSearch license |- |오라클 데이터베이스website=oracle |사유 (관리형 서비스 또는 라이선스) |- |파인콘language=en-US |사유 (관리형 서비스) |- |Postgres with pgvectorlanguage=en-US | PostgreSQL Licenselanguage=en-US |- |Qdrantlanguage=en-US |Apache License 2.0language=en |- |레디스 스택language=enlanguage=en |Redis Source Available Licenselanguage=en |- |스노플레이크language=en-US |사유 (관리형 서비스) |- |SurrealDBlanguage=en-US |BSL 1.1language=en |- |Typesenselanguage=en-US |GPL v3 (커뮤니티 에디션)website=GitHub |- |Vespadate=4 October 2023 |Apache License 2.0language=en |- |Weaviatelanguage=en-US |BSD 3-Clauselanguage=en |}