Diese Python -Bibliothek bietet eine Reihe fortschrittlicher Methoden zur Aggregation mehrerer Einbettungen, die mit einem einzelnen Dokument oder einer Einheit in eine einzelne repräsentative Einbettung verbunden sind. Es unterstützt eine breite Palette von Aggregationstechniken, von einer einfachen Mittelung bis hin zu hoch entwickelten Methoden wie PCA und aufmerksamem Pooling.
Um das Paket zu installieren, können Sie PIP verwenden:
pip install faiss_vector_aggregatorIm Folgenden finden Sie Beispiele, die zeigen, wie die Bibliothek mithilfe unterschiedlicher Methoden einbezogen wird.
Angenommen, Sie haben eine Sammlung von Einbettungsdings, die in einem Faiss -Index gespeichert sind, und möchten sie mithilfe der zugehörigen Dokument -IDs mit einfachem Mittelwertung zusammenfassen.
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 : Pfad zum Ordner, der den Eingangs -FAISS -Index und die Metadaten enthält.column_name : Das Feld Metadaten, mit dem Einbettungen aggregieren sollen (z. B. 'id' ).output_folder : Pfad, wobei der Ausgabe -FAISS -Index und die Metadaten gespeichert werden.method="average" : Gibt die Aggregationsmethode an.Wenn Sie unterschiedliche Gewichte für die Einbettungen haben, können Sie einen gewichteten Durchschnitt anwenden, um bestimmten Einbettungen mehr Bedeutung zu geben.
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 : Eine Liste oder eine Reihe von Gewichten, die jeder Einbettung entsprechen.method="weighted_average" : Gibt die gewichtete durchschnittliche Methode an.Reduzierung hochdimensionaler Einbettungen auf einen einzelnen repräsentativen Vektor unter Verwendung von 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" : Gibt an, dass PCA für die Aggregation verwendet werden sollte.Verwenden Sie K-Means-Clustering, um die Einbettung für jede Dokument-ID zu finden.
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" : Gibt an, dass k-means clustering verwendet werden sollte.Um einen Aufmerksamkeitsmechanismus für die Aggregation von Einbettungen zu verwenden:
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" : Gibt die aufmerksame Pooling -Methode an. Im Folgenden finden Sie eine detaillierte Beschreibung jeder von der Bibliothek unterstützten Aggregationsmethode:
weights .trim_percentage .input_folder (STR): Pfad zum Ordner, der den Eingabe -FAISS -Index ( index.faiss ) und metadata ( index.pkl ) enthält.column_name (STR): Das Feld Metadaten, mit dem Einbettungen aggregieren können (z. B. 'id' ).output_folder (STR): Pfad, wo der Ausgangsfaiss -Index und die Metadaten gespeichert werden.method (STR): Die zu verwendende Aggregationsmethode. Zu den Optionen gehören:'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 (Liste oder NP.NDarray, optional): Gewichte für die Methode weighted_average .trim_percentage (float, optional): Bruch zum Trimm von jedem Ende für trimmed_mean . Sollte zwischen 0 und weniger als 0,5 liegen.weights (Liste oder NP.NDarray, optional): Gewichte für die Methode weighted_average . Stellen Sie sicher, dass die folgenden Pakete installiert sind:
Sie können die Abhängigkeiten mit:
pip install faiss-cpu numpy scipy scikit-learn langchain HINWEIS: Ersetzen Sie faiss-cpu durch faiss-gpu wenn Sie es vorziehen, die GPU-Version von FAISS zu verwenden.
Beiträge sind willkommen! Bitte zögern Sie nicht, eine Pull -Anfrage einzureichen oder ein Problem im Github -Repository zu eröffnen.
Stellen Sie beim Beitrag sicher, dass Ihr Code auf die folgenden Richtlinien hält:
Dieses Projekt ist unter der MIT -Lizenz lizenziert. Weitere Informationen finden Sie in der Lizenzdatei.
FAISS Vector Store von Langchain kompatibel. Stellen Sie sicher, dass Ihre Einbettungen und Indizes bei der Integration in Langchain konsequent behandelt werden.