Repolode
TutteInstitute

TutteInstitute/evoc

Biblioteca Python para agrupar rapidamente, na CPU, grandes vetores de embeddings de alta dimensionalidade, com uma API no estilo scikit-learn.

Estrelas
356
Forks
22
Issues abertas
12
Último commit
há 9 dias

O que é?

EVōC (Embedding Vector Oriented Clustering) é uma biblioteca para agrupar grandes conjuntos de dados com vetores de embeddings de alta dimensionalidade, como vetores CLIP ou saídas de modelos de embeddings do sentence-transformers, OpenAI ou Cohere. Ela foi projetada para substituir um pipeline de UMAP mais HDBSCAN nessa tarefa, buscando uma boa qualidade de agrupamento com menos hiperparâmetros e muito menos tempo de execução.

A biblioteca segue a API do scikit-learn, então pode ser usada em qualquer lugar onde outros algoritmos de agrupamento do scikit-learn são usados. Além de um único conjunto de rótulos, ela produz várias camadas de clusters em diferentes granularidades, permite extrair uma hierarquia entre essas camadas e sinaliza vetores duplicados ou quase duplicados. Ela também aceita diretamente vetores quantizados em int8 ou binários.

EVōC pode ser instalado pelo PyPI e depende de numpy, scikit-learn, numba, tqdm e tbb. O projeto está em uma fase beta inicial, então suas interfaces podem mudar. A extração de clusters é baseada no método PLSCAN, descrito em um artigo do arXiv de 2025.

Recursos principais

  • 01Agrupa vetores de embeddings rapidamente na CPU.
  • 02Produz várias camadas de clusters, da granularidade mais fina à mais ampla.
  • 03Extrai uma hierarquia de clusters entre as camadas.
  • 04Detecta vetores duplicados e quase duplicados.
  • 05Trabalha diretamente com embeddings quantizados em int8 e binários.
  • 06Usa uma interface fit_predict compatível com scikit-learn.

Casos de uso

  • Agrupar embeddings de CLIP ou de frases em tópicos para grandes coleções de textos ou imagens.
  • Criar mapas de tópicos em camadas, que vão de tópicos amplos a tópicos mais específicos.
  • Encontrar itens duplicados ou quase duplicados em um corpus de embeddings.

Início rápido

  1. 1

    Instale o EVōC do PyPI com pip

    pip install evoc
  2. 2

    Importe o EVōC e agrupe seus vetores de embedding com fit_predict

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

Antes de usar

  • A biblioteca ainda está no início da fase beta, então problemas podem surgir e coisas podem parar de funcionar.
  • O algoritmo ainda não foi publicado, então o README pede que você cite o artigo sobre PLSCAN.

Tópicos

Perguntas frequentes

O que é evoc?
Biblioteca Python para agrupar rapidamente, na CPU, grandes vetores de embeddings de alta dimensionalidade, com uma API no estilo scikit-learn. EVōC (Embedding Vector Oriented Clustering) é uma biblioteca para agrupar grandes conjuntos de dados com vetores de embeddings de alta dimensionalidade, como vetores CLIP ou saídas de modelos de embeddings do sentence-transformers, OpenAI ou Cohere. Ela foi projetada para substituir um pipeline de UMAP mais HDBSCAN nessa tarefa, buscando uma boa qualidade de agrupamento com menos hiperparâmetros e muito menos tempo de execução.
evoc é gratuito? Qual é a licença?
evoc é open source sob a licença BSD-2-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
evoc ainda é mantido?
Manutenção ativa. O último commit de evoc foi em 29 de out. de 2026.
Para que posso usar evoc?
Agrupar embeddings de CLIP ou de frases em tópicos para grandes coleções de textos ou imagens. Criar mapas de tópicos em camadas, que vão de tópicos amplos a tópicos mais específicos. Encontrar itens duplicados ou quase duplicados em um corpus de embeddings.
Como instalar evoc?
Instale o EVōC do PyPI com pip: pip install evoc Importe o EVōC e agrupe seus vetores de embedding com fit_predict: import evoc clusterer = evoc.EVoC() cluster_labels = clusterer.fit_predict(data)
Onde consigo evoc?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/TutteInstitute/evoc

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados