VectorLakeは、S3ファイルに配布された任意のサイズのベクターデータのメンテナンス、コスト、効率的なストレージ、ANNクエリ用に設計された堅牢でベクターデータベースです。
どのベクターデータベースを使用する必要がある記事に触発されましたか?比較チートシート
DBメンテナンスを最小限に抑え、コストを最小限に抑え、カスタムデータパーティション戦略を提供するためにトレードオフで作成されたVectorLake
ネイティブビッグデータサポート:大規模なデータセットを処理するように特別に設計されており、ビッグデータプロジェクトに最適です。
ベクトルデータ処理:機械学習プロジェクトに保管を埋め込むために一般的に使用される高次元ベクトルを保存およびクエリすることができます。Projects。
効率的な検索:効率的な最近の隣人検索、高次元空間で同様のベクトルを照会するのに最適です。これにより、高次元空間で同様のベクトルをクエリするのに特に役立ちます。
データの持続性:ディスク、ネットワークボリューム、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ライセンスの下でリリースされます。