Esta biblioteca Python fornece um conjunto de métodos avançados para agregar várias incorporações associadas a um único documento ou entidade em uma única incorporação representativa. Ele suporta uma ampla gama de técnicas de agregação, da média simples a métodos sofisticados, como PCA e agrupamento atencioso.
Para instalar o pacote, você pode usar o PIP:
pip install faiss_vector_aggregatorAbaixo estão exemplos que demonstram como usar a biblioteca para agregar incorporações usando métodos diferentes.
Suponha que você tenha uma coleção de incorporações armazenadas em um índice FAISS e deseja agregá -las pelos IDs de documentos associados usando a média simples.
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 : caminho para a pasta que contém o índice de entrada e metadados de entrada.column_name : o campo de metadados pelo qual agregar incorporações (por exemplo, 'id' ).output_folder : caminho em que o índice de saída de saída e os metadados serão salvos.method="average" : especifica o método de agregação.Se você tiver pesos diferentes para as incorporações, poderá aplicar uma média ponderada para dar mais importância a certas incorporações.
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 : uma lista ou matriz de pesos correspondentes a cada incorporação.method="weighted_average" : Especifica o método médio ponderado.Para reduzir as incorporações de alta dimensão a um único vetor representativo usando 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" : especifica que o PCA deve ser usado para agregação.Use o cluster de K-Means para encontrar o centróide de incorporação para cada ID do documento.
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" : Especifica que o agrupamento K-Means deve ser usado.Para usar um mecanismo de atenção para agregar incorporações:
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" : especifica o método de agrupamento atencioso. Abaixo está uma descrição detalhada de cada método de agregação suportado pela biblioteca:
weights .trim_percentage .input_folder (str): caminho para a pasta que contém o índice de entrada de FAISs de entrada ( index.faiss ) e metadados ( index.pkl ).column_name (STR): o campo de metadados pelo qual agregar incorporações (por exemplo, 'id' ).output_folder (str): caminho em que o índice de saída e os metadados de saída será salvo.method (STR): o método de agregação a ser usado. As opções incluem:'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, opcional): pesos para o método weighted_average .trim_percentage (FLOAT, OPCIONAL): Fração para aparar de cada extremidade para trimmed_mean . Deve estar entre 0 e menor que 0,5.weights (list ou np.ndarray, opcional): pesos para o método weighted_average . Certifique -se de ter os seguintes pacotes instalados:
Você pode instalar as dependências usando:
pip install faiss-cpu numpy scipy scikit-learn langchain Nota: Substitua faiss-cpu pelo faiss-gpu se você preferir usar a versão GPU do FAISS.
As contribuições são bem -vindas! Sinta -se à vontade para enviar uma solicitação de tração ou abrir um problema no repositório do GitHub.
Ao contribuir, verifique se o seu código adere às seguintes diretrizes:
Este projeto está licenciado sob a licença do MIT. Consulte o arquivo de licença para obter detalhes.
FAISS de Langchain. Certifique -se de que suas incorporações e índices sejam tratados de forma consistente ao integrar com Langchain.