VectorLake는 낮은 유지 보수, 비용, 효율적인 스토리지 및 S3 파일에 배포 된 모든 크기 벡터 데이터의 Ann 쿼리를 위해 설계된 강력한 벡터 데이터베이스입니다.
기사에서 영감을 얻은 벡터 데이터베이스를 사용해야합니까? 비교 치트 시트
DB 유지 관리, 비용을 최소화하고 사용자 정의 데이터 파티션 전략을 제공하기 위해 트레이드 오프로 생성 된 VectorLake
기본 빅 데이터 지원 : 대형 데이터 세트를 처리하도록 특별히 설계되어 빅 데이터 프로젝트에 이상적입니다.
벡터 데이터 처리 : 기계 학습 프로젝트에 저장을 포함시키는 데 일반적으로 사용되는 고차원 벡터를 저장 및 쿼리 할 수 있습니다.
효율적인 검색 : 효율적인 가장 가까운 이웃 검색, 고차원 공간에서 유사한 벡터를 쿼리하는 데 이상적입니다. 이것은 고차원 공간에서 유사한 벡터를 쿼리하는 데 특히 유용합니다.
데이터 지속성 : 디스크, 네트워크 볼륨 및 S3의 데이터 지속성을 지원하여 장기 저장 및 인덱스 데이터의 검색을 가능하게합니다.
사용자 정의 가능한 파티셔닝 : 데이터베이스 유지 관리, 비용을 최소화하고 사용자 정의 데이터 파티셔닝 전략을 제공하는 트레이드 오프 설계.
LLM 에이전트의 기본 지원.
실험 데이터를위한 기능 저장소.
Vectorlake를 시작하려면 PIP를 사용하여 패키지를 설치하기 만하면됩니다.
pip install vector_lake import numpy as np
from vector_lake import VectorLake
db = VectorLake ( location = "s3://vector-lake" , dimension = 5 , approx_shards = 243 )
N = 100 # for example
D = 5 # Dimensionality of each vector
embeddings = np . random . rand ( N , D )
for em in embeddings :
db . add ( em , metadata = {}, document = "some document" )
db . persist ()
db = VectorLake ( location = "s3://vector-lake" , dimension = 5 , approx_shards = 243 )
# re-init test
db . query ([ 0.56325391 , 0.1500543 , 0.88579166 , 0.73536349 , 0.7719873 ])사용자 정의 범주 별 그룹 기능에 맞춤 파티션
import numpy as np
from vector_lake . core . index import Partition
if __name__ == "__main__" :
db = Partition ( location = "s3://vector-lake" , partition_key = "feature" , dimension = 5 )
N = 100 # for example
D = 5 # Dimensionality of each vector
embeddings = np . random . rand ( N , D )
for em in embeddings :
db . add ( em , metadata = {}, document = "some document" )
db . persist ()
db = Partition ( location = "s3://vector-lake" , key = "feature" , dimension = 5 )
# re-init test
db . buckets
db . query ([ 0.56325391 , 0.1500543 , 0.88579166 , 0.73536349 , 0.7719873 ]) import numpy as np
from vector_lake import VectorLake
db = VectorLake ( location = "/mnt/db" , dimension = 5 , approx_shards = 243 )
N = 100 # for example
D = 5 # Dimensionality of each vector
embeddings = np . random . rand ( N , D )
for em in embeddings :
db . add ( em , metadata = {}, document = "some document" )
db . persist ()
db = VectorLake ( location = "/mnt/db" , dimension = 5 , approx_shards = 243 )
# re-init test
db . query ([ 0.56325391 , 0.1500543 , 0.88579166 , 0.73536349 , 0.7719873 ]) from langchain . document_loaders import TextLoader
from langchain . embeddings . sentence_transformer import SentenceTransformerEmbeddings
from langchain . text_splitter import CharacterTextSplitter
from vector_lake . langchain import VectorLakeStore
loader = TextLoader ( "Readme.md" )
documents = loader . load ()
# split it into chunks
text_splitter = CharacterTextSplitter ( chunk_size = 100 , chunk_overlap = 0 )
docs = text_splitter . split_documents ( documents )
# create the open-source embedding function
embedding = SentenceTransformerEmbeddings ( model_name = "all-MiniLM-L6-v2" )
db = VectorLakeStore . from_documents ( documents = docs , embedding = embedding )
query = "What is Vector Lake?"
docs = db . similarity_search ( query )
# print results
print ( docs [ 0 ]. page_content )VectorLake는 간단하고 탄력적 인 벡터 데이터베이스의 기능을 제공하지만 매우 쉽게 설정하고 작동 오버 헤드가 낮습니다. 그것으로 가볍고 안정적인 분산 벡터 스토어가 있습니다.
Vectorlake는 모든 벡터 데이터 파편에 걸쳐 데이터 파티셔닝을 위해 계층 적 항해 가능한 소규모 세계 (HNSW)를 활용합니다. 이를 통해 시스템에 대한 각 수정이 벡터 거리와 정렬되도록합니다. 디자인에 대한 자세한 내용은 여기를 참조하십시오.
TBD
Vectorlake에 대한 기여를 환영합니다! 기여하려면 다음을 따르십시오.
기고하기 전에 기고 가이드 라인을 읽으십시오.
Vectorlake는 MIT 라이센스에 따라 릴리스됩니다.