optuna/optuna

Фреймворк для оптимизации гиперпараметров

LLMOps⭐ 14 820Pythonпоследний релиз: v5.0.0
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Optuna — это фреймворк для автоматической оптимизации гиперпараметров в машинном обучении с использованием Python API.

Зачем нужен

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

Что можно реализовать

  • Автоматический подбор гиперпараметров для моделей scikit-learn (например, SVR или Random Forest)
  • Многоцелевая оптимизация (multi-objective optimization) с учетом ограничений
  • Параллельный запуск сотен экспериментов для ускорения поиска оптимальных конфигураций
  • Визуализация истории оптимизации для анализа эффективности разных стратегий поиска

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

  • Imperative define-by-run API: пространство поиска определяется прямо в коде с использованием условных операторов и циклов, что обеспечивает высокую модульность
  • Встроенные эффективные алгоритмы сэмплирования и прунинга (pruning) для отсечения бесперспективных испытаний
  • Легкая масштабируемость: возможность распределенных вычислений с минимальными изменениями в коде
  • Готовые функции визуализации результатов оптимизации
  • Поддержка современных алгоритмов, таких как Gaussian Process-Based Sampler (GPSampler)

👤 Кому подойдёт: Data Scientists, ML-инженеры и исследователи, занимающиеся настройкой моделей машинного обучения на Python

Релизы

v5.0.0majorbreaking
🕐 14 дн назад · релиз на GitHub ↗

Optuna v5.0: новый дефолтный TPESampler с multivariate, встроенная поддержка ограничений, PED-ANOVA по умолчанию и стабилизация GPSampler.

  • Breaking: Удалён модуль optuna.multi_objective, устаревшие интеграции (AllenNLP, Chainer, MXNet) и аргументы system_attrs/categorical_distance_func.
  • Added: TPESampler стал дефолтным для многокритериальной оптимизации, включены multivariate TPE и constant liar strategy.
  • Added: В ядро Trial добавлены set_constraint() и constraints для прямой работы с ограничениями, аргумент constraints_func устарел.
  • Added: PED-ANOVA стал оценщиком важности параметров по умолчанию, поддерживая условные пространства и мультиобъективные задачи.
  • Added: GPSampler стабилизирован и получил MC-функции приобретения (qLogEI, qLogCEI и др.) для учёта неопределённости параллельныхTrials.
v4.9.0majorbreaking
🕐 3 мес назад · релиз на GitHub ↗

Улучшение GPSampler для параллельной оптимизации, деprecation многих параметров и перенос callback'ов в OptunaHub.

  • Added: GPSampler теперь использует Kriging Believer для более эффективной параллельной многоцелевой оптимизации с учётом запущенных trials.
  • Deprecated: Устарели многие аргументы TPESampler, параметры x0/sigma0 в CmaEsSampler, модуль optuna.terminator и legacy-импорты из optuna.integration.
  • Deprecated: Класс RetryFailedTrialCallback переименован в RetryHeartbeatStaleTrialCallback для устранения путаницы.
  • Deprecated: Callback'ы (Comet, MLflow, TensorBoard, Trackio, WeightsAndBiases) и PyCmaSampler перенесены в пакет optuna_integration или OptunaHub.
  • Fixed: Исправлено вычисление важности для распределённых параметров, устранена ошибка выборки в BruteForceSampler и сделан QMCSampler stateless.