
QuickStart • الميزات الرئيسية • الخلفية المدعومة • التثبيت
المجال هو متجر متجه خفيف الوزن ، منخفض الاعتماد. يوفر واجهة بسيطة وبديهية لأقرب بحث جار ، بدعم من الخلفية والتقييم المختلفة.
هناك العديد من حزم وأساليب الجيران هناك. ومع ذلك ، وجدنا صعوبة في مقارنتها. كل حزمة لها واجهة خاصة بها ومراوغات وقيود ، وتعلم حزمة جديدة يمكن أن تستغرق وقتًا طويلاً. بالإضافة إلى ذلك ، كيف يمكنك تقييم حزم مختلفة بشكل فعال؟ كيف تعرف أي واحد هو الأفضل لحالة الاستخدام الخاصة بك؟
هذا هو المكان الذي يأتي فيه المجاور. بدلاً من تعلم واجهة جديدة لكل حزمة أو الواجهة الخلفية الجديدة ، يوفر Viounity واجهة موحدة لجميع الخلفية. يتيح لك ذلك تجربة طرق فهرسة مختلفة ومقاييس المسافة بسهولة واختيار أفضل لحالة الاستخدام الخاصة بك. يوفر Vicinity أيضًا طريقة بسيطة لتقييم أداء الخلايا الخلفية المختلفة ، مما يتيح لك قياس الاستعلامات في الثانية والاستدعاء.
تثبيت الحزمة مع:
pip install vicinityاختياريا ، قم بتثبيت أي من الخلايا المدعومة ، أو ببساطة تثبيت كل منها مع:
pip install vicinity[all]يوضح مقتطف الكود التالي كيفية استخدام المنطقة المجاورة لأقرب بحث جار:
import numpy as np
from vicinity import Vicinity , Backend , Metric
# Create some dummy data
items = [ "triforce" , "master sword" , "hylian shield" , "boomerang" , "hookshot" ]
vectors = np . random . rand ( len ( items ), 128 )
# Initialize the Vicinity instance (using the basic backend and cosine metric)
vicinity = Vicinity . from_vectors_and_items (
vectors = vectors ,
items = items ,
backend_type = Backend . BASIC ,
metric = Metric . COSINE
)
# Create a query vector
query_vector = np . random . rand ( 128 )
# Query for nearest neighbors with a top-k search
results = vicinity . query ( query_vector , k = 3 )
# Query for nearest neighbors with a threshold search
results = vicinity . query_threshold ( query_vector , threshold = 0.9 )
# Query with a list of query vectors
query_vectors = np . random . rand ( 5 , 128 )
results = vicinity . query ( query_vectors , k = 3 )حفظ وتحميل متجر ناقلات:
vicinity . save ( 'my_vector_store' )
vicinity = Vicinity . load ( 'my_vector_store' )تقييم الواجهة الخلفية:
# Use the first 1000 vectors as query vectors
query_vectors = vectors [: 1000 ]
# Evaluate the Vicinity instance by measuring the queries per second and recall
qps , recall = vicinity . evaluate (
full_vectors = vectors ,
query_vectors = query_vectors ,
)يوفر المجاور الميزات التالية:
الخلفية التالية مدعومة:
BASIC : فهرس مسطح بسيط (مطابق دقيق) لتخزين المتجه والبحث.flat : البحث الدقيق.ivf : بحث ملف مقلوب.hnsw : الرسم البياني العالمي الصغير الصالحة للملاحة.lsh : التجزئة الحساسة المحلية.scalar : الكمية العددية.pq : كمية المنتج.ivf_scalar : بحث ملف مقلوب مع كمية العددية.ivfpq : بحث ملف مقلوب مع كمية المنتج.ivfpqr : بحث ملف مقلوب مع كمية المنتج وصقله. ملاحظة: لا تدعم Backends ANN الحذف الديناميكي. لحذف العناصر ، تحتاج إلى إعادة إنشاء الفهرس. يتم دعم الإدراج في الخلفية التالية: FAISS و HNSW و Usearch . يدعم الواجهة الخلفية BASIC كل من الإدراج والحذف.
| الخلفية | المعلمة | وصف | القيمة الافتراضية |
|---|---|---|---|
| أساسي | metric | مقياس التشابه لاستخدامه ( cosine ، euclidean ). | "cosine" |
| ضايق | metric | مقياس التشابه لاستخدام ( dot ، euclidean ، cosine ). | "cosine" |
trees | عدد الأشجار لاستخدامها في الفهرسة. | 100 | |
length | الطول الاختياري لمجموعة البيانات. | None | |
| فايس | metric | مقياس التشابه لاستخدام ( cosine ، l2 ). | "cosine" |
index_type | نوع فهرس FAISS ( flat ، ivf ، hnsw ، lsh ، scalar ، pq ، ivf_scalar ، ivfpq ، ivfpqr ). | "hnsw" | |
nlist | عدد الخلايا لمؤشرات التلقيح الاصطناعي. | 100 | |
m | عدد المكثفات الفرعية لفهارس PQ و HNSW. | 8 | |
nbits | عدد البتات لفهارس LSH و PQ. | 8 | |
refine_nbits | عدد البتات لمرحلة التحسين في فهارس IVFPQR. | 8 | |
| HNSW | metric | مساحة التشابه لاستخدام ( cosine ، l2 ). | "cosine" |
ef_construction | حجم القائمة الديناميكية أثناء بناء الفهرس. | 200 | |
m | عدد الاتصالات لكل طبقة. | 16 | |
| pynndescent | metric | مقياس التشابه لاستخدامه ( cosine ، euclidean ، manhattan ). | "cosine" |
n_neighbors | عدد الجيران لاستخدامها للبحث. | 15 | |
| USEARCH | metric | مقياس التشابه لاستخدامه ( cos ، ip ، l2sq ، hamming ، tanimoto ). | "cos" |
connectivity | عدد الاتصالات لكل عقدة في الرسم البياني. | 16 | |
expansion_add | عدد المرشحين الذين تم النظر فيه أثناء بناء الرسم البياني. | 128 | |
expansion_search | عدد المرشحين الذين تم النظر فيه أثناء البحث. | 64 | |
| Voyager | metric | مساحة التشابه لاستخدام ( cosine ، l2 ). | "cosine" |
ef_construction | عدد المتجهات التي يبحثها هذا الفهرس عند إدخال متجه جديد في الفهرس. | 200 | |
m | عدد الاتصالات بين العقد في بنية البيانات الداخلية للشجرة. | 16 |
تتوفر خيارات التثبيت التالية:
# Install the base package
pip install vicinity
# Install all backends
pip install vicinity[all]
# Install specific backends
pip install vicinity[annoy]
pip install vicinity[faiss]
pip install vicinity[hnsw]
pip install vicinity[pynndescent]
pip install vicinity[usearch]
pip install vicinity[voyager]معهد ماساتشوستس للتكنولوجيا