Perpustakaan Python ini menyediakan serangkaian metode canggih untuk menggabungkan beberapa embedding yang terkait dengan satu dokumen atau entitas ke dalam embedding representatif tunggal. Ini mendukung berbagai teknik agregasi, dari rata -rata sederhana hingga metode canggih seperti PCA dan pengumpulan penuh perhatian.
Untuk menginstal paket, Anda dapat menggunakan PIP:
pip install faiss_vector_aggregatorDi bawah ini adalah contoh yang menunjukkan cara menggunakan perpustakaan untuk menggabungkan embeddings menggunakan metode yang berbeda.
Misalkan Anda memiliki koleksi embeddings yang disimpan dalam indeks FAISS, dan Anda ingin menggabungkannya dengan ID dokumen terkait menggunakan rata -rata sederhana.
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 : Jalur ke folder yang berisi indeks input FAISS dan metadata.column_name : Bidang metadata yang digunakan untuk menggabungkan embeddings (misalnya, 'id' ).output_folder : jalur di mana indeks FAISS output dan metadata akan disimpan.method="average" : Menentukan metode agregasi.Jika Anda memiliki bobot yang berbeda untuk embeddings, Anda dapat menerapkan rata -rata tertimbang untuk memberikan lebih penting bagi embedding tertentu.
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 : Daftar atau array bobot yang sesuai dengan masing -masing embedding.method="weighted_average" : Menentukan metode rata -rata tertimbang.Untuk mengurangi embeddings dimensi tinggi ke vektor representatif tunggal menggunakan 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" : Menentukan bahwa PCA harus digunakan untuk agregasi.Gunakan pengelompokan K-Means untuk menemukan centroid embeddings untuk setiap ID dokumen.
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" : Menentukan bahwa pengelompokan k-means harus digunakan.Untuk menggunakan mekanisme perhatian untuk menggabungkan embeddings:
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" : Menentukan metode pengumpulan yang penuh perhatian. Di bawah ini adalah deskripsi terperinci dari setiap metode agregasi yang didukung oleh perpustakaan:
weights .trim_percentage .input_folder (str): Jalur ke folder yang berisi indeks input FAISS ( index.faiss ) dan metadata ( index.pkl ).column_name (str): Bidang metadata yang digunakan untuk menggabungkan embeddings (misalnya, 'id' ).output_folder (str): Path di mana indeks FAISS output dan metadata akan disimpan.method (STR): Metode agregasi untuk digunakan. Opsi termasuk:'average' , 'weighted_average' , 'geometric_mean' , 'harmonic_mean' , 'centroid' , 'pca' , 'median' , 'trimmed_mean' , 'max_pooling' , 'min_pooling' , 'entropy_weighted_average' , 'attentive_pooling' , 'tukeys_biweight' , 'exemplar' .weights (daftar atau np.ndarray, opsional): Bobot untuk metode weighted_average .trim_percentage (float, opsional): Fraction to trim dari setiap ujung untuk trimmed_mean . Harus antara 0 dan kurang dari 0,5.weights (daftar atau np.ndarray, opsional): Bobot untuk metode weighted_average . Pastikan Anda memiliki paket berikut yang diinstal:
Anda dapat menginstal dependensi menggunakan:
pip install faiss-cpu numpy scipy scikit-learn langchain Catatan: Ganti faiss-cpu dengan faiss-gpu jika Anda lebih suka menggunakan versi GPU FAISS.
Kontribusi dipersilakan! Silakan mengirimkan permintaan tarik atau buka masalah di repositori GitHub.
Saat berkontribusi, harap pastikan kode Anda mematuhi pedoman berikut:
Proyek ini dilisensikan di bawah lisensi MIT. Lihat file lisensi untuk detailnya.
FAISS Langchain. Pastikan bahwa embeddings dan indeks Anda ditangani secara konsisten saat berintegrasi dengan Langchain.