Skip to main content

Intelliant Core: Графовый алгоритм поиска семантических ядер

PyPI version Python 3.14 License: MIT

Intelliant Core - это специализированный алгоритм машинного обучения, основанный на метаэвристике муравьиной колонии (Ant Colony Optimization, ACO).

В отличие от классических методов, алгоритм не пытается очертить математические границы кластеров в гиперпространстве. Он переводит многомерные данные (например, эмбеддинги языковых моделей) в формат графа ближайших соседей (KNN) и использует роевой интеллект для поиска самых плотных семантических центров (ядер).

Алгоритм оптимизирован через Numba и разреженные матрицы (Sparse CSR), что позволяет ему обрабатывать сотни тысяч объектов за несколько секунд на обычных CPU, обходя ограничения памяти (OOM), свойственные индустриальным стандартам вроде HDBSCAN.

Основные возможности и особенности

  • Независимость от размерности: Работает с графом связей (cosine, euclidean), а не с сырыми координатами. Отлично подходит как для 2D/3D пространств, так и для 384D+ эмбеддингов.
  • Min-Max Ant System (MMAS): Защита от стагнации феромонов, предотвращающая коллапс графа в "черную дыру" одного хаба.
  • Elitist Ants (Элитные муравьи): Ускоренное формирование ядер за счет жадного поведения выделенной группы агентов.
  • Node Density (Гравитация узлов): Опциональная эвристика, позволяющая муравьям оценивать локальную плотность целевой точки, ускоряя сходимость алгоритма в 2 раза.
  • Noise Absorption: Встроенный модуль абсорбции для перераспределения пограничных точек (шума) по найденным ядрам через взвешенный KNN.

Требования и технологии

Для обеспечения максимальной производительности и воспроизводимости проект опирается на современный стек Python:

  • Python: >= 3.14
  • Пакетный менеджер: uv (обеспечивает сверхбыстрое разрешение зависимостей).
  • Аппаратное ускорение: Поддержка CUDA (NVIDIA) и MPS (Apple Silicon) для генерации эмбеддингов через PyTorch.
  • Необходима настройка токена Hugging Face для загрузки тестовых датасетов.

Установка и запуск

Установка через PyPI (Для использования библиотеки)

Пакет официально опубликован на PyPI. Вы можете установить ядро алгоритма с помощью pip или uv:

pip install intelliant-core
# или
uv add intelliant-core

Установка для разработки (Сборка из исходников и тесты)

Если вы хотите запускать исследовательские ноутбуки и бенчмарки из данного репозитория:

  1. Клонируйте репозиторий:

    git clone https://github.com/yourdisenchantment/intelliant-core.git
    cd intelliant-core
    
  2. Создайте файл .env в корне проекта: Добавьте в него ваш токен от Hugging Face для загрузки датасетов (например, AG_NEWS):

    HF_API_TOKEN=hf_ваша_строка_токена
    
  3. Установите все зависимости проекта: Используйте менеджер uv для установки всех зависимостей (базовые, ML, Dev + Optional):

    uv sync --all-groups --all-extras
    

    Примечание: --all-groups устанавливает базовые зависимости, ML и dev-пакеты (включая pre-commit), а --all-extras добавляет опциональные пакеты (включая ruff для линтинга).


Пример использования (Quick Start)

Алгоритм принимает на вход любую разреженную матрицу графа (SciPy CSR Matrix). Ниже приведен базовый пайплайн работы:

import numpy as np
from intelliant_core import IntelliantCoreExtractor

# Вспомогательные функции (доступны в папке utils/ репозитория)
from utils.utils import build_knn_graph, get_threshold, absorb_noise

# 1. Построение разреженного KNN-графа из эмбеддингов (N, D)
knn_graph = build_knn_graph(X_embeddings, n_neighbors=15, metric="cosine")

# 2. Инициализация и запуск муравьиного роя
aco = IntelliantCoreExtractor(
    n_ants=1000,
    n_iterations=20,
    use_elite_ants=True,
    verbose=True
)
aco.fit(knn_graph, initial_pheromone=1.0)

# 3. Динамическое отсечение слабых связей (автоматический порог Оцу)
pheros = aco.pheromone_matrix.data
_, cutoff_val = get_threshold(pheros, method="otsu")
raw_labels, n_clusters = aco.get_labels(threshold_value=cutoff_val)

# 4. Поглощение пограничного шума (опционально)
final_labels = absorb_noise(X_embeddings, raw_labels, min_cluster_size=50)

Структура тестов

(Секция в процессе заполнения. Вскоре здесь появятся описания тестовых блокнотов, демонстрирующих работу алгоритма на синтетических данных и сравнение с HDBSCAN).


План развития

Проект находится в стадии активного развития и исследований. Запланированные нововведения:

  • Разработка адаптивного (динамического) cutoff на основе анализа графика распределения феромонов (отказ от жестко заданного процентиля).
  • Миграция на архитектуру src-layout, настройка сборки пакета через hatchling/uv и успешная публикация библиотеки на PyPI.
  • Внедрение системы автокалибровки гиперпараметров (число муравьев, длина пути, испарение) на основе метрик связности входящего KNN-графа.
  • Проведение экспериментов на эмбеддингах различной размерности: сравнение легковесных моделей с тяжеловесными (например, использование google/embeddinggemma-300m для генерации векторов разной размерности) для проверки аппаратной устойчивости алгоритма.

Release files for intelliant-core 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for intelliant-core 0.1.1
File Size Uploaded
intelliant_core-0.1.1.tar.gz 11.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for intelliant-core 0.1.1
File Interpreter ABI Platform
intelliant_core-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 22.5 kB

Release files / intelliant_core-0.1.1.tar.gz

Download URL intelliant_core-0.1.1.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8d05cc68809c71ac9419194d489d6827a52ac3963ed1bfef39799f88bc49bc25
BLAKE2b-256 checksum
How to use checksums
c44d98c457ad122d5942692880c962a4bd5a41b8aebd8a4458108d3e6701cd06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / intelliant_core-0.1.1-py3-none-any.whl

Download URL intelliant_core-0.1.1-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fc923d6c3fd975d7a7fdee4812feae9b1cbdfad32ae8c9286899da5c80031376
BLAKE2b-256 checksum
How to use checksums
fe5bcffaaa7f19e4b2e5ed581fb8900569f8e09fe31ed6714591a624e88f1b54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page