Repolode
TutteInstitute

TutteInstitute/evoc

高次元の埋め込みベクトルをCPUで高速にクラスタリングする、scikit-learn風APIのPythonライブラリ。

スター
356
フォーク
22
未解決の Issue
12
最終コミット
8 日前

これは何?

EVōC(Embedding Vector Oriented Clustering)は、CLIPベクトルやsentence-transformers、OpenAI、Cohereの埋め込みモデルの出力など、高次元の埋め込みベクトルからなる大規模データセットをクラスタリングするライブラリです。この用途でUMAPとHDBSCANを組み合わせたパイプラインを置き換えることを目指しており、少ないハイパーパラメーターと大幅に短い実行時間で、質の高いクラスタリングを実現します。

scikit-learn APIに準拠しているため、ほかのscikit-learnのクラスタリングアルゴリズムと同じ場所で利用できます。単一のラベルセットだけでなく、粒度の異なる複数レイヤーのクラスタを生成し、それらをまたぐ階層構造を抽出できるほか、重複またはほぼ重複するベクトルにもフラグを付けます。int8やバイナリ量子化されたベクトルもそのまま受け付けます。

EVōCはPyPIからインストールでき、numpy、scikit-learn、numba、tqdm、tbbに依存します。プロジェクトは初期ベータ版のため、インターフェースが変更される可能性があります。クラスタ抽出には、2025年のarXiv論文で説明されているPLSCAN手法を採用しています。

主な機能

  • 01埋め込みベクトルをCPUで高速にクラスタリングします。
  • 02細かい粒度から粗い粒度まで、複数レイヤーのクラスタを生成します。
  • 03各レイヤーをまたぐクラスタ階層を抽出します。
  • 04重複またはほぼ重複するベクトルを検出します。
  • 05int8およびバイナリ量子化された埋め込みをそのまま扱えます。
  • 06scikit-learn互換のfit_predictインターフェースを使用します。

ユースケース

  • 大規模なテキストや画像のコレクションで、CLIPやsentence embeddingsをトピックごとにグループ化する。
  • 大まかなトピックから細分化されたトピックまで段階的に掘り下げられる、階層型のトピックマップを構築する。
  • 埋め込みコーパス内の重複またはほぼ重複するアイテムを見つける。

クイックスタート

  1. 1

    pip で PyPI から EVōC をインストールする

    pip install evoc
  2. 2

    EVōC をインポートし、fit_predict で埋め込みベクトルをクラスタリングする

    import evoc clusterer = evoc.EVoC() cluster_labels = clusterer.fit_predict(data)

使う前に知っておきたいこと

  • このライブラリはまだベータ初期段階のため、予期せず動作しなくなることがあります。
  • アルゴリズムはまだ公開されていないため、README では代わりに PLSCAN 論文を引用するよう求めています。

トピック

よくある質問

evoc とは?
高次元の埋め込みベクトルをCPUで高速にクラスタリングする、scikit-learn風APIのPythonライブラリ。 EVōC(Embedding Vector Oriented Clustering)は、CLIPベクトルやsentence-transformers、OpenAI、Cohereの埋め込みモデルの出力など、高次元の埋め込みベクトルからなる大規模データセットをクラスタリングするライブラリです。この用途でUMAPとHDBSCANを組み合わせたパイプラインを置き換えることを目指しており、少ないハイパーパラメーターと大幅に短い実行時間で、質の高いクラスタリングを実現します。
evoc は無料で使えますか?ライセンスは?
evoc は BSD-2-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
evoc は今もメンテナンスされていますか?
活発にメンテナンス中。evoc の最終コミットは 2026年10月29日 です。
evoc は何に使えますか?
大規模なテキストや画像のコレクションで、CLIPやsentence embeddingsをトピックごとにグループ化する。 大まかなトピックから細分化されたトピックまで段階的に掘り下げられる、階層型のトピックマップを構築する。 埋め込みコーパス内の重複またはほぼ重複するアイテムを見つける。
evoc のインストール方法は?
pip で PyPI から EVōC をインストールする: pip install evoc EVōC をインポートし、fit_predict で埋め込みベクトルをクラスタリングする: import evoc clusterer = evoc.EVoC() cluster_labels = clusterer.fit_predict(data)
evoc はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/TutteInstitute/evoc

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト