faiss_vector_aggregator
1.0.0
該Python庫提供了一套高級方法,用於將與單個文檔或實體相關的多個嵌入到單個代表性嵌入中。它支持廣泛的聚合技術,從簡單的平均到諸如PCA和細心池等複雜方法。
要安裝軟件包,您可以使用PIP:
pip install faiss_vector_aggregator以下是說明如何使用庫使用不同方法彙總嵌入的示例。
假設您收集了存儲在faiss索引中的嵌入,並且想使用簡單的平均文檔ID來匯總它們。
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-均值聚類為每個文檔ID找到嵌入式的質心。
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-均值聚類。使用注意機制匯總嵌入:
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' , 'max_pooling' , 'min_pooling' , 'entropy_weighted_average' , 'attentive_pooling' , 'tukeys_biweight' , 'exemplar'weights (列表或np.ndarray,可選): weighted_average方法的權重。trim_percentage (float,可選): trimmed_mean的兩端的縮小。應在0到0.5之間。weights (列表或np.ndarray,可選): weighted_average方法的權重。 確保已安裝以下軟件包:
您可以使用以下方式安裝依賴項:
pip install faiss-cpu numpy scipy scikit-learn langchain注意:如果您喜歡使用GPU版本的Faiss,則將faiss-cpu替換為faiss-gpu 。
歡迎捐款!請隨時提交拉動請求或在GitHub存儲庫上打開問題。
貢獻時,請確保您的代碼遵守以下準則:
該項目已根據MIT許可獲得許可。有關詳細信息,請參見許可證文件。
FAISS矢量商店兼容。確保與Langchain集成時,始終處理嵌入和索引。