VectorLake هي قاعدة بيانات قوية ومتجهات مصممة لصيانة منخفضة وتكلفة وتخزين فعال والاستعلام عن أي بيانات ناقل حجم موزعة عبر ملفات S3.
مستوحاة من المقالة ما هي قاعدة بيانات المتجهات التي يجب أن أستخدمها؟ مقارنة غش
VectorLake تم إنشاؤه مع المفاضلة لتقليل صيانة DB والتكلفة وتوفير استراتيجيات تقسيم البيانات المخصصة
دعم البيانات الضخمة الأصلية: مصمم خصيصًا للتعامل مع مجموعات البيانات الكبيرة ، مما يجعلها مثالية لمشاريع البيانات الضخمة.
معالجة بيانات المتجهات: قادرة على تخزين المتجهات عالية الأبعاد والاستعلام عنها ، والتي تستخدم عادة لتضمين التخزين في مشاريع التعلم الآلي.
البحث الفعال: بحث فعال أقرب جيران ، مثالي للاستعلام عن متجهات مماثلة في المساحات عالية الأبعاد. هذا يجعلها مفيدة بشكل خاص للاستعلام عن متجهات مماثلة في مساحة عالية الأبعاد.
ثبات البيانات: يدعم استمرار البيانات على القرص وحجم الشبكة و 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 تحت رخصة معهد ماساتشوستس للتكنولوجيا.