Intelliant Core: Графовый алгоритм поиска семантических ядер
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
Установка для разработки (Сборка из исходников и тесты)
Если вы хотите запускать исследовательские ноутбуки и бенчмарки из данного репозитория:
-
Клонируйте репозиторий:
git clone https://github.com/yourdisenchantment/intelliant-core.git cd intelliant-core
-
Создайте файл
.envв корне проекта: Добавьте в него ваш токен от Hugging Face для загрузки датасетов (например,AG_NEWS):HF_API_TOKEN=hf_ваша_строка_токена
-
Установите все зависимости проекта: Используйте менеджер
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)
| File | Size | Uploaded | |
|---|---|---|---|
| intelliant_core-0.1.1.tar.gz | 11.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|