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集成时,始终处理嵌入和索引。