Cette bibliothèque Python fournit une suite de méthodes avancées pour agréger plusieurs incorporations associées à un seul document ou entité dans un seul représentant d'intégration. Il prend en charge un large éventail de techniques d'agrégation, de la moyenne simple à des méthodes sophistiquées comme l'ACP et la mise en commun.
Pour installer le package, vous pouvez utiliser PIP:
pip install faiss_vector_aggregatorVous trouverez ci-dessous des exemples montrant comment utiliser la bibliothèque pour agréger les incorporations en utilisant différentes méthodes.
Supposons que vous ayez une collection d'incorporation stockée dans un index FAISS, et que vous souhaitez les agréger par leurs identifiants de document associés en utilisant la moyenne simple.
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 : Chemin vers le dossier contenant l'index et les métadonnées FAISS d'entrée.column_name : le champ de métadonnées par lequel agréger les incorpation (par exemple, 'id' ).output_folder : chemin où l'index et les métadonnées Faiss de sortie seront enregistrés.method="average" : spécifie la méthode d'agrégation.Si vous avez des poids différents pour les intérêts, vous pouvez appliquer une moyenne pondérée pour donner plus d'importance à certaines intérêts.
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 : une liste ou un tableau de poids correspondant à chaque intégration.method="weighted_average" : Spécifie la méthode moyenne pondérée.Pour réduire les intérêts à haute dimension à un seul vecteur représentatif utilisant 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" : Spécifie que l'ACP doit être utilisée pour l'agrégation.Utilisez le clustering K-Means pour trouver le centroïde des intégres pour chaque ID de document.
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" : Spécifie que le clustering K-Means doit être utilisé.Pour utiliser un mécanisme d'attention pour agréger les incorporations:
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" : Spécifie la méthode de mise en commun attentive. Vous trouverez ci-dessous une description détaillée de chaque méthode d'agrégation prise en charge par la bibliothèque:
weights .trim_percentage .input_folder (STR): Chemin vers le dossier contenant l'index FAISS d'entrée ( index.faiss ) et les métadonnées ( index.pkl ).column_name (Str): le champ de métadonnées par lequel agréger les intégres (par exemple, 'id' ).output_folder (STR): chemin où l'index et les métadonnées Faiss de sortie seront enregistrés.method (STR): la méthode d'agrégation à utiliser. Les options incluent:'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 (List ou NP.NDARRAY, Facultatif): Poids pour la méthode weighted_average .trim_percentage (Float, Facultatif): Fraction à TRIM de chaque extrémité pour trimmed_mean . Devrait être compris entre 0 et moins de 0,5.weights (List ou NP.NDARRAY, Facultatif): Poids pour la méthode weighted_average . Assurez-vous que les packages suivants sont installés:
Vous pouvez installer les dépendances en utilisant:
pip install faiss-cpu numpy scipy scikit-learn langchain Remarque: Remplacez faiss-cpu par faiss-gpu si vous préférez utiliser la version GPU de FAISS.
Les contributions sont les bienvenues! N'hésitez pas à soumettre une demande de traction ou à ouvrir un problème sur le référentiel GitHub.
Lors de la contribution, veuillez vous assurer que votre code adhère aux directives suivantes:
Ce projet est autorisé sous la licence du MIT. Voir le fichier de licence pour plus de détails.
FAISS de Langchain. Assurez-vous que vos intérêts et index sont gérés de manière cohérente lors de l'intégration avec Langchain.