Vectorlake - это надежная векторная база данных, предназначенная для низкого обслуживания, затрат, эффективного хранения и ANN Запрос данных любого размера векторных данных, распределенных по файлам S3.
Вдохновленный статьей, какую векторную базу данных мне следует использовать? Сравнение чистого листа
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 использует иерархический судоходство Small World (HNSW) для разделения данных во всех осколках векторных данных. Это гарантирует, что каждая модификация в систему будет соответствовать векторному расстоянию. Вы можете узнать больше о дизайне здесь.
TBD
Взносы в Vectorlake приветствуются! Если вы хотите внести свой вклад, пожалуйста, следуйте этим шагам:
Прежде чем внести свой вклад, пожалуйста, прочитайте рекомендации.
Vectorlake выпускается по лицензии MIT.