
Александр Рыжков
Ментор Skillfactory, руководитель команды LightAutoML и 4х Kaggle Grandmaster
Каждый, кто пытался построить даже самую простую модель машинного обучения, знает, сколько всего нужно учесть: сбор данных, предобработка, выбор алгоритма, подбор гиперпараметров, оценка качества… Это большой объем рутинных задач, но есть и хорошие новости: их можно автоматизировать. На помощь придет AutoML.
В 2025 году AutoML уже не просто модное слово, а мощный инструмент, который меняет правила игры в Data Science. Разберемся, что это такое, каким бывает и как его использовать, чтобы стать еще круче в ML.
Что такое AutoML и зачем он нужен
Представьте себе автомобиль с автопилотом. Чтобы добраться из точки А в точку Б, не нужно самому крутить руль, жать на педали и следить за дорогой, — машина сделает все за вас. AutoML — это автопилот, но для машинного обучения.
Это набор инструментов и техник, которые автоматизируют процесс создания моделей машинного обучения. Вместо того, чтобы вручную перебирать алгоритмы, настраивать параметры и проводить кучу экспериментов, вы доверяете это дело AutoML-системе.
Зачем это нужно
-
Экономия времени и ресурсов. Разработка ML-моделей — процесс трудоемкий. AutoML сокращает время на рутинные операции, такие как подбор алгоритма и гиперпараметров. Вместо недель или месяцев модель можно получить за часы или даже минуты.
-
Доступность ML для не-экспертов. AutoML снижает порог входа в мир машинного обучения. Теперь даже специалисты без глубоких знаний в ML (например, маркетологи, бизнес-аналитики) могут создавать и применять модели для решения своих задач.
-
Улучшение качества моделей. AutoML-системы способны находить решения, которые сложно получить вручную. Они перебирают огромное количество вариантов, тестируют разные подходы и могут выявить оптимальные комбинации алгоритмов и параметров. Таким образом получаются более точные и эффективные модели.
-
Масштабирование ML в бизнесе. Компании, которые хотят активно использовать ML, сталкиваются с нехваткой квалифицированных специалистов. AutoML позволяет разгрузить существующих ML-инженеров от рутины и дать возможность большему количеству сотрудников применять ML в своей работе.
Какие виды AutoML-решений бывают
Мир AutoML разнообразен, и решения можно классифицировать по нескольким признакам. Давайте разберемся в основных видах.
По происхождению:
-
Академические: разрабатываются в университетах и исследовательских лабораториях. Часто фокусируются на новых методах и алгоритмах, могут быть более экспериментальными и менее ориентированными на промышленное применение «из коробки».
-
Индустриальные: создаются компаниями для решения реальных бизнес-задач. Обычно более зрелые, надежные, ориентированы на простоту использования и интеграцию в существующие IT-инфраструктуры.
По доступности кода:
-
Open-source (открытый исходный код): код таких решений находится в открытом доступе, их можно свободно использовать, модифицировать и распространять. Это дает большую гибкость и контроль, а также способствует развитию сообщества вокруг инструмента.
-
Проприетарные (закрытый исходный код):принадлежат конкретным компаниям, их продают как коммерческие продукты или сервисы. Могут предлагать более продвинутые функции, поддержку и интеграцию.
Наиболее известные представители AutoML-решений
Сейчас на рынке существует множество AutoML-инструментов, и их количество постоянно растет. Вот лишь некоторые из наиболее известных и популярных, представляющих разные категории:
AutoGluon от Amazon (open-source, индустриальный). Мощный и простой в использовании инструмент, разработанный Amazon. Отлично подходит для табличных данных, изображений и текста. Известен своей высокой скоростью обучения и хорошим качеством моделей «из коробки». Часто побеждает в соревнованиях и бенчмарках.
LightAutoML от Sber AI Lab (open-source, индустриальный). Еще один сильный игрок, разработанный в Sber AI Lab, победитель соревнований Kaggle AutoML Grand Prix 2024. Специализируется на работе с табличными данными (но также способен обрабатывать и тексты, и картинки) и отличается высокой скоростью и эффективностью, особенно на больших датасетах. Активно развивается и пользуется популярностью в русскоязычном ML-сообществе и за его пределами.
MLJAR-supervised от MLJAR (open-source, индустриальный). Инструмент, ориентированный на простоту использования и визуализацию результатов. Предлагает удобный облачный (но платный) интерфейс и автоматическую генерацию отчетов. Хороший выбор для тех, кто хочет быстро получить рабочую модель и понять, что происходит «под капотом».
H2O AutoML от H2O.ai (open-source, индустриальный). Часть более крупной платформы H2O, предназначенной для enterprise-решений. H2O AutoML известен своей масштабируемостью и поддержкой различных типов данных и алгоритмов. Может работать как локально, так и в облаке.
FLAML от Microsoft (open-source, индустриальный) разработали в Microsoft Research. Фокусируется на эффективности и экономии вычислительных ресурсов. FLAML умеет автоматически находить оптимальные гиперпараметры и архитектуры моделей, минимизируя время и затраты на обучение.
Driveless AI от H2O.ai (проприетарный, индустриальный). Коммерческий продукт от H2O.ai, предлагающий расширенные возможности AutoML с продуманным графическим интерфейсом, включая автоматическую генерацию фичей, интерпретацию моделей и развертывание в production. Driveless AI ориентирован на enterprise-клиентов и часто используется в крупных компаниях.
FEDOT от ИТМО (open-source, академический).Интересный инструмент, разработанный в университете ИТМО. FEDOT использует эволюционный подход для автоматического поиска оптимальных пайплайнов машинного обучения, включая не только выбор алгоритмов, но и их последовательность и предобработку данных. Ориентирован на сложные задачи и поиск нестандартных решений.
AutoSklearn (open-source, академический). Один из первых академических AutoML-инструментов, получивший широкую известность. AutoSklearn использует байесовскую оптимизацию и метаобучение для автоматического подбора алгоритмов и гиперпараметров. Хорошо подходит для задач классификации и регрессии.
TPOT (open-source, академический): еще один популярный академический инструмент, использующий генетическое программирование для автоматического создания ML-пайплайнов. TPOT находит сложные и эффективные комбинации алгоритмов и предобработки, но может быть более ресурсоемким, чем другие инструменты.
Основные методы сравнения AutoML-решений
Как понять, какой AutoML-инструмент лучше? Существует несколько подходов к сравнению и оценке их эффективности. Давайте рассмотрим два наиболее авторитетных:
-
OpenML AutoML benchmark. Это общедоступный бенчмарк, который позволяет сравнивать различные AutoML-системы на большом наборе датасетов. Результаты бенчмарка регулярно публикуются в научных статьях, что делает его объективным и надежным источником информации. В 2024 году в журнале JMLR вышла статья, анализирующая результаты этого бенчмарка, и в топ-3 вошли LightAutoML, AutoGluon и H2O AutoML. Это подтверждает высокую эффективность этих инструментов на практике. OpenML-бенчмарк — это как независимое тестирование автомобилей, где все машины проходят одни и те же испытания и мы можем сравнить их результаты.
-
Kaggle AutoML Grand Prix 2024. Kaggle — это крупнейшая в мире платформа для соревнований по анализу данных. Kaggle AutoML Grand Prix 2024 — соревнование, посвященное AutoML-инструментам. Участники соревновались в решении пяти задач машинного обучения, на каждую из которых давалось всего 24 часа и было разрешено использовать различные AutoML-системы. В этом соревновании победу одержал LightAutoML (единственное решение, занявшее первое место по двум из пяти задач), второе место занял AutoGluon, а команды, использовавшие Driveless AI, заняли четвертое и пятое места. Kaggle AutoML Grand Prix — это как гонки «Формулы-1» для AutoML (интересный факт: количество очков за каждый этап Grand Prix в точности совпадает с количеством очков, которые получает гонщик «Формулы-1» за конкретное место по итогам гонки), где лучшие команды и инструменты соревнуются за звание чемпиона.
В чем польза AutoML-решений для бизнеса
-
AutoML помогает ML-специалистам с решением рутинных задач, например подбором алгоритмов и гиперпараметров. ML-специалисты освобождаются для более творческих и сложных задач: анализ данных, разработка новых фич, интерпретация моделей и их интеграция в бизнес-процессы.
-
Ускорение разработки моделей за счет быстрой проверки гипотез. AutoML позволяет очень быстро создавать прототипы ML-моделей и оценивать их потенциал. Например, если маркетологу нужно проверить гипотезу о том, какие факторы влияют на отток клиентов, он может быстро построить модель с помощью AutoML и получить ответ за считаные часы, а не недели. Это позволяет бизнесу быть более гибким и оперативно реагировать на изменения рынка.
-
Автоматическое обновление моделей (на основе мониторинга их качества во времени). Мир меняется, данные меняются, и модели машинного обучения со временем могут терять свою актуальность. AutoML-системы можно настроить на автоматический мониторинг качества моделей в production и их переобучение или обновление при необходимости. Это обеспечивает стабильную и высокую производительность ML-решений на протяжении всего их жизненного цикла. Это как автоматическая настройка навигатора в автомобиле, который постоянно обновляет карты и маршруты, чтобы вы всегда ехали по оптимальному пути.
-
Решение бизнес-задач, состоящих из большого количества ML-подзадач, которые экономически невыгодно решать вручную: в крупных компаниях часто возникает потребность в решении множества ML-задач, например для персонализации рекомендаций, оптимизации ценообразования, прогнозирования спроса и т. д. Ручное решение каждой из этих задач может быть слишком дорогим и трудоемким. AutoML позволяет автоматизировать процесс создания моделей для большого количества задач, делая ML экономически выгодным и масштабируемым решением для бизнеса.
Практические примеры решения ML-задач при помощи AutoML-инструментов
Давайте посмотрим, как просто и быстро можно решить задачу машинного обучения с помощью AutoML. Возьмем классическую задачу выживания пассажиров «Титаника» и решим ее с помощью библиотеки LightAutoML.
# Импортируем необходимые библиотеки
import pandas as pd
from lightautoml.automl.presets.tabular_presets import TabularAutoML
from lightautoml.tasks import Task
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Загружаем тренировочные и тестовые данные о пассажирах «Титаника» из CSV-файла
train_data = pd.read_csv('../input/titanic/train.csv')
test_data = pd.read_csv('../input/titanic/test.csv')
sample_submission = pd.read_csv('../input/titanic/gender_submission.csv')
# Выделяем целевую переменную 'Survived' (выжил или нет)
TARGET_NAME = 'Survived'
# Разделяем обучающую выборку на тренировочную и валидационную для оценки модели
train, valid = train_test_split(train_data,
test_size=0.2,
random_state=42,
stratify=train_data[TARGET_NAME].values)
# Инициализируем TabularAutoML - пресет для табличных данных
automl = TabularAutoML(task=Task('binary'), # Указываем тип задачи - бинарная классификация (выжил / не выжил)
timeout=300, # Ограничиваем время работы AutoML 300 секундами = 5 минутами
cpu_limit=4) # Ограничиваем количество используемых CPU 4 ядрами
# Укажем роли переменных
roles = {'target': TARGET_NAME, # Указываем имя целевой переменной
'drop': ['PassengerId']} # Указываем список признаков, которые нужно исключить из обучения
# Обучаем AutoML-модель на тренировочных данных
automl.fit_predict(train, roles=roles, verbose = 1)
# Оцениваем качество модели на валидационной выборке (для примера)
valid_true = valid[TARGET_NAME].values
valid_pred = (automl.predict(valid).data[:, 0] > 0.5).astype(int)
accuracy = accuracy_score(valid_true, valid_pred)
print(f'Accuracy на валидационной выборке: {accuracy:.4f}')
# Получаем предсказания AutoML-модели на тестовых данных
test_pred = automl.predict(test_data)
# Округляем предсказания до целых чисел (0 или 1) для бинарной классификации
test_pred_int = (test_pred.data[:, 0] > 0.5).astype(int)
# Создаем DataFrame с результатами в формате, требуемом для отправки на Kaggle
submission = pd.DataFrame({'PassengerId': test_data['PassengerId'], 'Survived': test_pred_int})
# Сохраняем результаты в CSV-файл submission.csv
submission.to_csv('submission.csv', index=False)
print('Submission file успешно создан: submission.csv')
Всего несколько строчек кода — и у нас есть рабочая модель для решения задачи классификации! Конечно, для максимального качества нужно больше времени на обучение и более тщательная предобработка данных, но для быстрого старта и проверки гипотез AutoML это просто незаменимый инструмент.
Обучиться работе с моделями машинного обучения: от базовой математики до написания собственного алгоритма — можно на совместной магистратуре Skillfactory и МИФИ «Прикладной анализ данных и машинное обучение».
Автор: skillfactory_school