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-Meansクラスタリングを使用して、各ドキュメント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-meansクラスタリングを使用する必要があることを指定します。埋め込みを集約するために注意メカニズムを使用するには:
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、optional): trimmed_meanの両端からトリミングする分数。 0から0.5未満の間である必要があります。weights (リストまたはnp.ndarray、オプション): weighted_averageメソッドのウェイト。 次のパッケージをインストールしていることを確認してください。
以下を使用して依存関係をインストールできます。
pip install faiss-cpu numpy scipy scikit-learn langchain注: FAISSのGPUバージョンを使用する場合は、 faiss-cpu faiss-gpuに置き換えます。
貢献は大歓迎です! Pullリクエストを送信するか、GitHubリポジトリで問題を開きてください。
貢献するときは、コードが次のガイドラインに準拠していることを確認してください。
このプロジェクトは、MITライセンスの下でライセンスされています。詳細については、ライセンスファイルを参照してください。
FAISS Vectorストアと互換性があります。 Langchainと統合するときに、埋め込みとインデックスが一貫して処理されることを確認してください。