Репозиторий содержит прототип мультиагентной системы (МАС), предназначенной для построения гибридных пайплайнов машинного обучения на основе нескольких AutoML-фреймворков. Система поддерживает сценарии:
- базовый: оркестрация существующих AutoML-фреймворков (AutoGluon, Auto-sklearn 2.0, FEDOT и т.д.) через промпты и function calling;
- продвинутый: расширение пайплайнов за счёт поиска новых моделей в научных публикациях, их кодовой реализации и интеграции в выбранные AutoML-инструменты;
- мета-оптимизация: динамическая комбинация сильных сторон разных AutoML-фреймворков и сравнение результатов гибридного пайплайна с индивидуальными решениями.
В качестве эталонных датасетов для проверки качества предлагается использовать AMLB: an AutoML Benchmark.
├── data/ # Заготовленные каталоги для датасетов
├── docs/ # Документация и дизайн-артефакты
├── experiments/notebooks/ # Исследовательские ноутбуки
├── scripts/ # CLI-скрипты для запуска пайплайнов
├── src/mas_automl/ # Исходный код МАС
│ ├── agents/ # Агент-планировщик, исследователь, исполнитель
│ ├── config/ # Конфигурационные схемы и настройки
│ ├── integrations/ # Адаптеры к AutoML-фреймворкам и сторонним сервисам
│ ├── pipelines/ # Регистры и описание гибридных пайплайнов
│ └── services/ # Оркестраторы, вспомогательные сервисы
└── tests/ # Автоматические проверки и smokе-тесты
- Установите uv (если ещё не установлен).
- Создайте и активируйте виртуальное окружение (Python 3.11):
uv venv --python 3.11
- Синхронизируйте зависимости (базовый набор):
uv sync
- Для добавления тяжёлых AutoML-фреймворков установите дополнительный набор:
uv sync --extra automl
Примечание:
auto-sklearnдоступен только в Linux окружениях. Установите его вручную при необходимости:uv pip install "auto-sklearn<0.15" --python 3.10 - Установите dev-зависимости для тестирования и линтинга:
uv sync --extra dev
- Запустите демонстрационный скрипт/CLI:
uv run aetherml --help # Альтернатива (если по каким-то причинам не сработал entry point): uv run -m mas_automl --help
PlannerAgent— отвечает за анализ задачи и формирование плана пайплайна.ResearchAgent— выполняет анализ литературы и веб-источников для поиска новых моделей.ExecutorAgent— оркестрирует запуск выбранных AutoML-фреймворков и сбор результатов.HybridPipeline— объект-описание пайплайна, объединяющего шаги из разных фреймворков.BenchmarkRunner— сервис, обеспечивающий сравнение гибридных решений с базовыми.
-
Запуск всех тестов:
uv run -m pytest
-
Запуск тестов интеграций (smoke) для адаптеров:
uv run -m pytest tests/test_integrations_baseline.py -q
-
На Windows отсутствие
auto-sklearnне приведёт к падению: в тестах используетсяpytest.importorskip, и соответствующие сценарии будут пропущены, если фреймворк не установлен. -
Полезные флаги:
-k "<substr>"— отфильтровать тесты по подстроке;-vv— подробный вывод;-s— не захватывать stdout/stderr (удобно для отладки);--maxfail=1— остановиться на первом падении.
Пример запуска одного теста с подробным выводом:
uv run -m pytest tests/test_integrations_baseline.py::test_autogluon_adapter_runs_on_synthetic_data -vv -sCLI уже экспортирован как консольная команда aetherml:
uv run aetherml --help-
Показать список зарегистрированных пайплайнов:
uv run aetherml list-pipelines
-
Запустить пайплайн (по умолчанию
defaultизpipelines/registry.py):uv run aetherml run --name default
Примечание: адаптеры ожидают в параметрах шага
params['dataset']словарь вида:{ "train": pd.DataFrame, # обучающая выборка с колонкой таргета "test": pd.DataFrame, # тестовая выборка с колонкой таргета "label": "target", # имя колонки таргета "problem_type": "classification" | "regression", # опционально }В демонстрационном CLI данные не подгружаются автоматически — он показывает каркас оркестрации и агрегации метрик.
- Быстрая локальная проверка адаптера на синтетике — см. тесты в
tests/test_integrations_baseline.py. Их удобно использовать как живые примеры входного формата. - Если нужно посмотреть метрики и трассировку:
- добавьте временные
print()илиrich.print()в адаптер; - запустите один тест с флагами
-vv -s.
- добавьте временные
- Линтинг и типизация:
uv run ruff check . uv run mypy src - Работа с тяжелыми фреймворками:
- Устанавливайте через
uv sync --extras automl. На Windows некоторые пакеты (например,auto-sklearn) недоступны — соответствующие тесты будут пропущены. - Для экономии времени подберите минимальные значения
time_limit/timeoutвstep.paramsдля адаптеров.
- Устанавливайте через
- Добавить реальные промпты и подключение LLM API для агентов.
- Реализовать адаптеры к выбранным AutoML-фреймворкам (AutoGluon, Auto-sklearn 2.0, FEDOT и др.).
- Настроить автоматический веб-скрейпинг и извлечение новых моделей из научных статей.
- Подготовить набор сценариев на базовых датасетах AMLB для воспроизводимых экспериментов.
Добавьте выбранную лицензию в файл LICENSE при необходимости.