벡터 데이터베이스
타임라인
Vespa는 메인스트림(MainStream) BM25 키워드 검색 알고리즘 옆에 벡터 유사성 검색을 추가한 최초의 공급업체 중 하나입니다.
Weaviate는 이어 2018년 말 전용 오픈소스 벡터 검색 데이터베이스 제품을 출시했다.
2019년까지, 우리는 이 분야에서 Milvus(또한 오픈 소스)를 포함한 더 많은 경쟁을 보기 시작했습니다.Zilliz는 Milvus의 모회사입니다.
2021년에는 Vald, Qdrant, Pinecone 등 3개의 새로운 공급업체가 경쟁에 합류했습니다.
Elasticsearch, Redis, PostgreSQL과 같은 기존 공급업체가 벡터 검색을 제공하기 시작한 시점은 원래 생각했던 것보다 훨씬 늦은 2022년 및 그 이후입니다.
오픈 소스 및 비즈니스
비즈니스: Pinecone 및 Zilliz
플러그인 형식
- pgvector Redis Stack
포스트그레스(Postgres)
단일 데이터베이스 지원:
- 관계형 데이터베이스: RDS
- 벡터 데이터베이스:pgvector
- 시계열 데이터베이스: 메타데이터 필터링에 중요한 역할을 하는 시계열 데이터베이스는 이벤트 및 발생 시간을 기록하는 데이터베이스로 시계열 검색 속도가 매우 빠릅니다.RAG 앱에서는 2023년 3월 계약 파일만 검색하면 되는 등 업종별 지식 파일이 수만 개로 컷팅되면 시간 필터링을 사용하는 것이 매우 중요할 수 있는데, 이를 통해 시간 데이터로 목표 chunk를 수만 개 안에서 먼저 골라내고 벡터 계산을 할 수 있다.

Timescale Vector 플러그인
수백만 개의 벡터에 대한 보다 빠른 유사성 검색: DiskANN 알고리즘, HNSW 알고리즘 지원
- **Timescale Vector는 시간 기반 벡터 검색 쿼리를 최적화합니다. ** Timescale의 슈퍼 테이블의 자동 시간 기반 파티션 및 인덱스를 활용하여 가장 가까운 Embeddings를 효과적으로 찾아 시간 범위 또는 문서에 대한 연도 제약 벡터 검색, 대형 언어 모델(LLM) 응답 및 채팅 내역을 쉽게 저장하고 검색할 수 있습니다.또한 시간 기반 의미 검색을 통해 Enhanced Building(Retrieval Augmented Generation, RAG) 및 시간 기반 컨텍스트 검색을 사용하여 사용자에게 보다 유용한 LLM 응답을 제공할 수 있습니다.
- **단순화된 AI 인프라 스택: 벡터 Embeddings, 관계형 데이터와 시계열 데이터를 하나의 PostgreSQL 데이터베이스에 결합하여 Timescale vector를 사용하면 여러 데이터베이스 시스템을 대규모로 관리할 때 발생하는 운영상의 복잡성을 없앨 수 있습니다.
- ** 메타데이터 처리 및 다중 속성 필터링 단순화: ** 개발자는 모든 PostgreSQL 데이터 유형을 사용하여 메타데이터를 저장 및 필터링하고 벡터 검색 결과를 관계형 데이터에 연결하여 보다 많은 컨텍스트 관련 응답을 얻을 수 있습니다.향후 버전에서 Timescale Vector는 풍부한 다중 속성 필터링을 더욱 최적화하여 메타데이터를 필터링할 때 더 빠른 유사성 검색을 구현합니다.
LlamaIndex 정리를 위한 벡터 데이터베이스
Vector Store Options & Feature Support
Vector Store | Type | Metadata Filtering | Hybrid Search | Delete | Store Documents | Async |
---|---|---|---|---|---|---|
Apache Cassandra® | self-hosted / cloud | ✓ | ✓ | ✓ | ||
Astra DB | cloud | ✓ | ✓ | ✓ | ||
Azure Cognitive Search | cloud | ✓ | ✓ | ✓ | ||
Azure CosmosDB MongoDB | cloud | ✓ | ✓ | |||
ChatGPT Retrieval Plugin | aggregator | ✓ | ✓ | |||
Chroma | self-hosted | ✓ | ✓ | ✓ | ||
DashVector | cloud | ✓ | ✓ | ✓ | ✓ | |
Deeplake | self-hosted / cloud | ✓ | ✓ | ✓ | ||
DocArray | aggregator | ✓ | ✓ | ✓ | ||
DynamoDB | cloud | ✓ | ||||
Elasticsearch | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | ✓ |
FAISS | in-memory | |||||
txtai | in-memory | |||||
Jaguar | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | |
LanceDB | cloud | ✓ | ✓ | ✓ | ||
Lantern | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | ✓ |
Metal | cloud | ✓ | ✓ | ✓ | ||
MongoDB Atlas | self-hosted / cloud | ✓ | ✓ | ✓ | ||
MyScale | cloud | ✓ | ✓ | ✓ | ✓ | |
Milvus / Zilliz | self-hosted / cloud | ✓ | ✓ | ✓ | ||
Neo4jVector | self-hosted / cloud | ✓ | ✓ | |||
OpenSearch | self-hosted / cloud | ✓ | ✓ | ✓ | ||
Pinecone | cloud | ✓ | ✓ | ✓ | ✓ | |
Postgres | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | ✓ |
pgvecto.rs | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | |
Qdrant | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | ✓ |
Redis | self-hosted / cloud | ✓ | ✓ | ✓ | ||
Simple | in-memory | ✓ | ✓ | |||
SingleStore | self-hosted / cloud | ✓ | ✓ | ✓ | ||
Supabase | self-hosted / cloud | ✓ | ✓ | ✓ | ||
Tair | cloud | ✓ | ✓ | ✓ | ||
TencentVectorDB | cloud | ✓ | ✓ | ✓ | ✓ | |
Timescale | ✓ | ✓ | ✓ | ✓ | ||
Typesense | self-hosted / cloud | ✓ | ✓ | ✓ | ||
Weaviate | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ |
대부분의 지원되는 데이터베이스
ector Store | Type | Metadata Filtering | Hybrid Search | Delete | Store Documents | Async | |
---|---|---|---|---|---|---|---|
DashVector | cloud | ✓ | ✓ | ✓ | ✓ | ||
Elasticsearch | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | ✓ | 总觉得比较重 |
Jaguar | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | ||
Lantern | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | ✓ | |
MyScale | cloud | ✓ | ✓ | ✓ | ✓ | ||
Pinecone | cloud | ✓ | ✓ | ✓ | ✓ | ||
Postgres | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | ✓ | |
pgvecto.rs | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | ||
Qdrant | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ | ✓ | 创始人好像出走了 |
TencentVectorDB | cloud | ✓ | ✓ | ✓ | ✓ | ||
Weaviate | self-hosted / cloud | ✓ | ✓ | ✓ | ✓ |
Elasticsearch:总觉得比较重
Postgress:先从最简单的开始吧。
Qdrant:创始人好像出走了。
LangChain의 데이터베이스 대비
数据库名称 | 应用场景 |
---|---|
HNSWLib, Faiss, LanceDB, CloseVector | 如果你需要一个可以在你的Node.js应用程序中运行的内存数据库,无需其他服务器 |
MemoryVectorStore, CloseVector | 如果你在寻找一个可以在类似浏览器的环境中内存中运行的东西 |
HNSWLib, Faiss | 如果你来自Python,并且你在寻找类似于FAISS的东西 |
Chroma | 如果你在寻找一个开源的、功能全面的向量数据库,可以在docker容器中本地运行 |
Zep | 如果你在寻找一个开源的向量数据库,提供低延迟、本地嵌入文档支持,并且支持边缘上的应用 |
Weaviate | 如果你在寻找一个开源的、生产就绪的向量数据库,可以在docker容器中本地运行或在云中托管 |
Supabase vector store | 如果你已经在使用Supabase,看看Supabase向量存储,使用同一个Postgres数据库来存储你的嵌入 |
Pinecone | 如果你在寻找一个生产就绪的向量存储,你不必担心自己托管 |
SingleStore vector store | 如果你已经在使用SingleStore,或者你需要一个分布式、高性能的数据库,你可能会考虑SingleStore向量存储 |
AnalyticDB vector store | 如果你在寻找一个在线MPP(大规模并行处理)数据仓库服务,你可能会考虑AnalyticDB向量存储 |
MyScale | 如果你在寻找一个性价比高的向量数据库,允许使用SQL进行向量搜索 |
CloseVector | 如果你在寻找一个可以从浏览器和服务器端加载的向量数据库,看看CloseVector。它是一个旨在跨平台的向量数据库 |
ClickHouse | 如果你在寻找一个可扩展的、开源的列式数据库,对于分析查询有着出色的性能 |