Repolode
TutteInstitute

TutteInstitute/evoc

Библиотека Python для быстрого CPU-кластеризации больших высокоразмерных embedding-векторов с API в стиле scikit-learn.

Звёзды
356
Форки
22
Открытые issues
12
Последний коммит
8 дней назад

Что это?

EVōC (Embedding Vector Oriented Clustering) — библиотека для кластеризации больших наборов высокоразмерных embedding-векторов, например CLIP-векторов или выходов моделей эмбеддингов sentence-transformers, OpenAI и Cohere. Она задумана как замена связке UMAP и HDBSCAN для этой задачи и нацелена на высокое качество кластеризации при меньшем числе гиперпараметров и значительно меньшем времени выполнения.

Библиотека следует API scikit-learn, поэтому её можно использовать везде, где применяются другие алгоритмы кластеризации из sklearn. Помимо единого набора меток, она формирует несколько уровней кластеров с разной степенью детализации, позволяет извлекать иерархию между уровнями и отмечает дубликаты и почти дубликаты векторов. Она также принимает квантованные векторы int8 и бинарные векторы напрямую.

EVōC можно установить из PyPI; библиотека зависит от numpy, scikit-learn, numba, tqdm и tbb. Проект находится на ранней стадии бета-тестирования, поэтому его интерфейсы могут измениться. Извлечение кластеров основано на методе PLSCAN, описанном в статье на arXiv за 2025 год.

Ключевые возможности

  • 01Быстрая кластеризация embedding-векторов на CPU.
  • 02Формирует несколько уровней кластеров — от мелких к крупным.
  • 03Извлекает иерархию кластеров между уровнями.
  • 04Обнаруживает дубликаты и почти дубликаты векторов.
  • 05Напрямую работает с квантованными embedding-векторами int8 и бинарными векторами.
  • 06Предоставляет совместимый со scikit-learn интерфейс fit_predict.

Сценарии использования

  • Группировка CLIP-эмбеддингов или эмбеддингов предложений по темам в больших коллекциях текстов или изображений.
  • Построение многоуровневых карт тем с переходом от общих тем к более детальным.
  • Поиск дубликатов и почти дубликатов в корпусе эмбеддингов.

Быстрый старт

  1. 1

    Установите EVōC из PyPI с помощью pip

    pip install evoc
  2. 2

    Импортируйте EVōC и кластеризуйте векторы эмбеддингов с помощью fit_predict

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

Что важно знать

  • Библиотека находится на раннем этапе бета-тестирования, поэтому проблемы могут возникать, а функции — переставать работать.
  • Алгоритм ещё не опубликован, поэтому в README просят вместо него цитировать статью о PLSCAN.

Темы

Частые вопросы

Что такое evoc?
Библиотека Python для быстрого CPU-кластеризации больших высокоразмерных embedding-векторов с API в стиле scikit-learn. EVōC (Embedding Vector Oriented Clustering) — библиотека для кластеризации больших наборов высокоразмерных embedding-векторов, например CLIP-векторов или выходов моделей эмбеддингов sentence-transformers, OpenAI и Cohere. Она задумана как замена связке UMAP и HDBSCAN для этой задачи и нацелена на высокое качество кластеризации при меньшем числе гиперпараметров и значительно меньшем времени выполнения.
evoc можно использовать бесплатно? Какая у него лицензия?
evoc распространяется с открытым исходным кодом под лицензией BSD-2-Clause. Перед использованием в коммерческих продуктах проверьте условия лицензии.
evoc всё ещё поддерживается?
Активно поддерживается. Последний коммит в evoc — 29 окт. 2026 г..
Для чего можно использовать evoc?
Группировка CLIP-эмбеддингов или эмбеддингов предложений по темам в больших коллекциях текстов или изображений. Построение многоуровневых карт тем с переходом от общих тем к более детальным. Поиск дубликатов и почти дубликатов в корпусе эмбеддингов.
Как установить evoc?
Установите EVōC из PyPI с помощью pip: 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 проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Orange — инструмент визуального программирования с открытым исходным кодом для интеллектуального анализа данных, аналитики и визуализации на основе рабочих процессов с перетаскиванием элементов.

5,7 тыс.+1 за неделю1,1 тыс.PythonOtherОбновлён 3 часа назад

Header-only библиотека C++ с ускорением на CUDA и Python-обёртками для переиспользуемых примитивов машинного обучения, линейной алгебры и информационного поиска на GPU NVIDIA.

1,1 тыс.+3 за неделю256CudaApache-2.0Активно поддерживаетсяОбновлён 2 часа назад

Библиотека для Ruby, помогающая создавать приложения на базе LLM с единым интерфейсом к разным провайдерам, векторным базам данных, RAG-пайплайнам и ассистентам.

2 тыс.+1 за неделю270RubyMITАктивно поддерживаетсяОбновлён 16 дней назад