توفر مكتبة Python هذه مجموعة من الأساليب المتقدمة لتجميع التضمينات المتعددة المرتبطة بمستند واحد أو كيان واحد في تضمين ممثل واحد. وهو يدعم مجموعة واسعة من تقنيات التجميع ، من المتوسط البسيط إلى الأساليب المتطورة مثل PCA وتجميع اليقظة.
لتثبيت الحزمة ، يمكنك استخدام PIP:
pip install faiss_vector_aggregatorفيما يلي أمثلة توضح كيفية استخدام المكتبة لتجميع التضمينات باستخدام طرق مختلفة.
لنفترض أن لديك مجموعة من التضمينات المخزنة في مؤشر FAISS ، وتريد تجميعها من خلال معرفات المستند المرتبطة بها باستخدام متوسط بسيط.
from faiss_vector_aggregator import aggregate_embeddings
# Aggregate embeddings using simple averaging
aggregate_embeddings (
input_folder = "data/input" ,
column_name = "id" ,
output_folder = "data/output" ,
method = "average"
)input_folder : مسار إلى المجلد الذي يحتوي على فهرس FAISS الإدخال والبيانات الوصفية.column_name : حقل البيانات الوصفية التي يتم بموجبها تجميع التضمينات (على سبيل المثال ، 'id' ).output_folder : المسار حيث سيتم حفظ فهرس FAISS وبيانات التعريف.method="average" : يحدد طريقة التجميع.إذا كان لديك أوزان مختلفة للتضمينات ، فيمكنك تطبيق متوسط مرجح لإعطاء أهمية أكبر لبعض التضمينات.
from faiss_vector_aggregator import aggregate_embeddings
# Example weights for the embeddings
weights = [ 0.1 , 0.3 , 0.6 ]
# Aggregate embeddings using weighted averaging
aggregate_embeddings (
input_folder = "data/input" ,
column_name = "id" ,
output_folder = "data/output" ,
method = "weighted_average" ,
weights = weights
)weights : قائمة أو مجموعة من الأوزان المقابلة لكل تضمين.method="weighted_average" : يحدد الطريقة المتوسطة المرجحة.لتقليل التضمينات عالية الأبعاد إلى متجه تمثيلي واحد باستخدام PCA:
from faiss_vector_aggregator import aggregate_embeddings
# Aggregate embeddings using PCA
aggregate_embeddings (
input_folder = "data/input" ,
column_name = "id" ,
output_folder = "data/output" ,
method = "pca"
)method="pca" : يحدد أن PCA يجب استخدامه للتجميع.استخدم مجموعة K-Means للعثور على النقطه الوسطى للتضمينات لكل معرف وثيقة.
from faiss_vector_aggregator import aggregate_embeddings
# Aggregate embeddings using K-Means clustering to find the centroid
aggregate_embeddings (
input_folder = "data/input" ,
column_name = "id" ,
output_folder = "data/output" ,
method = "centroid"
)method="centroid" : يحدد أنه ينبغي استخدام تجميع K-Means.لاستخدام آلية انتباه لتجميع التضمينات:
from faiss_vector_aggregator import aggregate_embeddings
# Aggregate embeddings using Attentive Pooling
aggregate_embeddings (
input_folder = "data/input" ,
column_name = "id" ,
output_folder = "data/output" ,
method = "attentive_pooling"
)method="attentive_pooling" : يحدد طريقة التجميع اليقظة. فيما يلي وصف مفصل لكل طريقة تجميع تدعمها المكتبة:
weights .trim_percentage .input_folder (str): مسار إلى المجلد الذي يحتوي على مؤشر الإدخال Faiss ( index.faiss ) والبيانات الوصفية ( index.pkl ).column_name (str): حقل البيانات الوصفية لتجميع التضمينات (على سبيل المثال ، 'id' ).output_folder (str): المسار حيث سيتم حفظ فهرس FAISS وبيانات الوصفية.method (STR): طريقة التجميع للاستخدام. تشمل الخيارات:'average' ، 'weighted_average' ، 'geometric_mean' ، 'harmonic_mean' ، 'centroid' ، 'pca' ، 'median' ، " 'trimmed_mean' ، 'min_pooling' 'max_pooling' " ، "min_pooling" ، 'entropy_weighted_average' 'tukeys_biweight' ، 'exemplar' 'attentive_pooling'weights (قائمة أو np.ndarray ، اختياري): أوزان لطريقة weighted_average .trim_percentage (تعويم ، اختياري): الكسر لتقليص من كل نهاية لـ trimmed_mean . يجب أن يكون ما بين 0 وأقل من 0.5.weights (قائمة أو np.ndarray ، اختياري): أوزان لطريقة weighted_average . تأكد من تثبيت الحزم التالية:
يمكنك تثبيت التبعيات باستخدام:
pip install faiss-cpu numpy scipy scikit-learn langchain ملاحظة: استبدل faiss-cpu بـ faiss-gpu إذا كنت تفضل استخدام إصدار GPU من FAISS.
المساهمات مرحب بها! لا تتردد في تقديم طلب سحب أو فتح مشكلة على مستودع GitHub.
عند المساهمة ، يرجى التأكد من أن الرمز الخاص بك يلتزم بالإرشادات التالية:
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. انظر ملف الترخيص للحصول على التفاصيل.
FAISS . تأكد من معالجة التضمينات والفهارس باستمرار عند الاندماج مع Langchain.