- BrainTools - https://www.braintools.ru -

AutoML: гид по автоматизации машинного обучения для начинающих

AutoML: гид по автоматизации машинного обучения для начинающих - 1

Александр Рыжков

Ментор Skillfactory, руководитель команды LightAutoML и 4х Kaggle Grandmaster

Каждый, кто пытался построить даже самую простую модель машинного обучения [1], знает, сколько всего нужно учесть: сбор данных, предобработка, выбор алгоритма, подбор гиперпараметров, оценка качества… Это большой объем рутинных задач, но есть и хорошие новости: их можно автоматизировать. На помощь придет AutoML.

В 2025 году AutoML уже не просто модное слово, а мощный инструмент, который меняет правила игры в Data Science. Разберемся, что это такое, каким бывает и как его использовать, чтобы стать еще круче в ML.

Что такое AutoML и зачем он нужен

Представьте себе автомобиль с автопилотом. Чтобы добраться из точки А в точку Б, не нужно самому крутить руль, жать на педали и следить за дорогой, — машина сделает все за вас. AutoML — это автопилот, но для машинного обучения. 

Это набор инструментов и техник, которые автоматизируют процесс создания моделей машинного обучения. Вместо того, чтобы вручную перебирать алгоритмы, настраивать параметры и проводить кучу экспериментов, вы доверяете это дело AutoML-системе.

Зачем это нужно 

  • Экономия времени и ресурсов. Разработка ML-моделей — процесс трудоемкий. AutoML сокращает время на рутинные операции, такие как подбор алгоритма и гиперпараметров. Вместо недель или месяцев модель можно получить за часы или даже минуты.

  • Доступность ML для не-экспертов. AutoML снижает порог входа в мир машинного обучения. [2] Теперь даже специалисты без глубоких знаний в ML (например, маркетологи, бизнес-аналитики) могут создавать и применять модели для решения своих задач. 

  • Улучшение качества моделей. AutoML-системы способны находить решения, которые сложно получить вручную. Они перебирают огромное количество вариантов, тестируют разные подходы и могут выявить оптимальные комбинации алгоритмов и параметров. Таким образом получаются более точные и эффективные модели.

  • Масштабирование ML в бизнесе. Компании, которые хотят активно использовать ML, сталкиваются с нехваткой квалифицированных специалистов. AutoML позволяет разгрузить существующих ML-инженеров [3] от рутины и дать возможность большему количеству сотрудников применять ML в своей работе.

Какие виды AutoML-решений бывают

Мир AutoML разнообразен, и решения можно классифицировать по нескольким признакам. Давайте разберемся в основных видах.

По происхождению:

  • Академические: разрабатываются в университетах и исследовательских лабораториях. Часто фокусируются на новых методах и алгоритмах, могут быть более экспериментальными и менее ориентированными на промышленное применение «из коробки».

  • Индустриальные: создаются компаниями для решения реальных бизнес-задач. Обычно более зрелые, надежные, ориентированы на простоту использования и интеграцию в существующие IT-инфраструктуры.

По доступности кода:

  • Open-source (открытый исходный код): код таких решений находится в открытом доступе, их можно свободно использовать, модифицировать и распространять. Это дает большую гибкость и контроль, а также способствует развитию сообщества вокруг инструмента.

  • Проприетарные (закрытый исходный код):принадлежат конкретным компаниям, их продают как коммерческие продукты или сервисы. Могут предлагать более продвинутые функции, поддержку и интеграцию.

Наиболее известные представители AutoML-решений

Сейчас на рынке существует множество AutoML-инструментов, и их количество постоянно растет. Вот лишь некоторые из наиболее известных и популярных, представляющих разные категории:

AutoGluon от Amazon [4] (open-source, индустриальный). Мощный и простой в использовании инструмент, разработанный Amazon. Отлично подходит для табличных данных, изображений и текста. Известен своей высокой скоростью обучения и хорошим качеством моделей «из коробки». Часто побеждает в соревнованиях и бенчмарках.

LightAutoML от Sber AI Lab [5] (open-source, индустриальный). Еще один сильный игрок, разработанный в Sber AI Lab, победитель соревнований Kaggle AutoML Grand Prix 2024. Специализируется на работе с табличными данными (но также способен обрабатывать и тексты, и картинки) и отличается высокой скоростью и эффективностью, особенно на больших датасетах. Активно развивается и пользуется популярностью в русскоязычном ML-сообществе [6] и за его пределами.

MLJAR-supervised от MLJAR [7] (open-source, индустриальный). Инструмент, ориентированный на простоту использования и визуализацию результатов. Предлагает удобный облачный (но платный) интерфейс и автоматическую генерацию отчетов. Хороший выбор для тех, кто хочет быстро получить рабочую модель и понять, что происходит «под капотом».

H2O AutoML от H2O.ai [8] (open-source, индустриальный). Часть более крупной платформы H2O, предназначенной для enterprise-решений. H2O AutoML известен своей масштабируемостью и поддержкой различных типов данных и алгоритмов. Может работать как локально, так и в облаке.

FLAML от Microsoft [9] (open-source, индустриальный) разработали в Microsoft Research. Фокусируется на эффективности и экономии вычислительных ресурсов. FLAML умеет автоматически находить оптимальные гиперпараметры и архитектуры моделей, минимизируя время и затраты на обучение.

Driveless AI от H2O.ai [10] (проприетарный, индустриальный). Коммерческий продукт от H2O.ai, предлагающий расширенные возможности AutoML с продуманным графическим интерфейсом, включая автоматическую генерацию фичей, интерпретацию моделей и развертывание в production. Driveless AI ориентирован на enterprise-клиентов и часто используется в крупных компаниях.

FEDOT от ИТМО [11] (open-source, академический).Интересный инструмент, разработанный в университете ИТМО. FEDOT использует эволюционный подход для автоматического поиска оптимальных пайплайнов машинного обучения, включая не только выбор алгоритмов, но и их последовательность и предобработку данных. Ориентирован на сложные задачи и поиск нестандартных решений.

AutoSklearn [12] (open-source, академический). Один из первых академических AutoML-инструментов, получивший широкую известность. AutoSklearn использует байесовскую оптимизацию и метаобучение для автоматического подбора алгоритмов и гиперпараметров. Хорошо подходит для задач классификации и регрессии.

TPOT [13] (open-source, академический): еще один популярный академический инструмент, использующий генетическое программирование для автоматического создания ML-пайплайнов. TPOT находит сложные и эффективные комбинации алгоритмов и предобработки, но может быть более ресурсоемким, чем другие инструменты.

Основные методы сравнения AutoML-решений

Как понять, какой AutoML-инструмент лучше? Существует несколько подходов к сравнению и оценке их эффективности. Давайте рассмотрим два наиболее авторитетных:

  • OpenML AutoML benchmark [14]. Это общедоступный бенчмарк, который позволяет сравнивать различные AutoML-системы на большом наборе датасетов. Результаты бенчмарка регулярно публикуются в научных статьях, что делает его объективным и надежным источником информации [15]. В 2024 году в журнале JMLR вышла статья, анализирующая результаты этого бенчмарка, и в топ-3 вошли LightAutoML, AutoGluon и H2O AutoML. Это подтверждает высокую эффективность этих инструментов на практике. OpenML-бенчмарк — это как независимое тестирование автомобилей, где все машины проходят одни и те же испытания и мы можем сравнить их результаты.

  • Kaggle AutoML Grand Prix 2024 [16]. 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 и получить ответ за считаные часы, а не недели. Это позволяет бизнесу быть более гибким и оперативно реагировать [17] на изменения рынка.

  • Автоматическое обновление моделей (на основе мониторинга их качества во времени). Мир меняется, данные меняются, и модели машинного обучения со временем могут терять свою актуальность. AutoML-системы можно настроить на автоматический мониторинг качества моделей в production и их переобучение или обновление при необходимости. Это обеспечивает стабильную и высокую производительность ML-решений на протяжении всего их жизненного цикла. Это как автоматическая настройка навигатора в автомобиле, который постоянно обновляет карты и маршруты, чтобы вы всегда ехали по оптимальному пути.

  • Решение бизнес-задач, состоящих из большого количества ML-подзадач, которые экономически невыгодно решать вручную: в крупных компаниях часто возникает потребность [18] в решении множества ML-задач, например для персонализации рекомендаций, оптимизации ценообразования, прогнозирования спроса и т. д. Ручное решение каждой из этих задач может быть слишком дорогим и трудоемким. AutoML позволяет автоматизировать процесс создания моделей для большого количества задач, делая ML экономически выгодным и масштабируемым решением для бизнеса.

Практические примеры решения ML-задач при помощи AutoML-инструментов

Давайте посмотрим, как просто и быстро можно решить задачу машинного обучения с помощью AutoML. Возьмем классическую задачу выживания пассажиров «Титаника [19]» и решим ее с помощью библиотеки 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 это просто незаменимый инструмент.

Обучиться работе с моделями машинного обучения: от базовой математики [20] до написания собственного алгоритма — можно на совместной магистратуре Skillfactory и МИФИ «Прикладной анализ данных и машинное обучение». [21]

Автор: skillfactory_school

Источник [22]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/12681

URLs in this post:

[1] обучения: http://www.braintools.ru/article/5125

[2] машинного обучения.: https://blog.skillfactory.ru/mashinnoe-obychenie-primery/

[3] ML-инженеров: https://blog.skillfactory.ru/kto-takoy-nlp-inzhener-chem-on-zanimaetsya-i-kak-im-stat/

[4] AutoGluon от Amazon: https://github.com/autogluon/autogluon

[5] LightAutoML от Sber AI Lab: https://github.com/sb-ai-lab/LightAutoML

[6] русскоязычном ML-сообществе: https://t.me/lightautoml

[7] MLJAR-supervised от MLJAR: https://github.com/mljar/mljar-supervised

[8] H2O AutoML от H2O.ai: https://github.com/h2oai/h2o-3

[9] FLAML от Microsoft: https://github.com/microsoft/FLAML

[10] Driveless AI от H2O.ai: https://h2o.ai/platform/ai-cloud/make/h2o-driverless-ai/

[11] FEDOT от ИТМО: https://github.com/aimclub/FEDOT

[12] AutoSklearn: https://github.com/automl/auto-sklearn

[13] TPOT: https://github.com/EpistasisLab/tpot

[14] OpenML AutoML benchmark: https://openml.github.io/automlbenchmark/

[15] источником информации: http://www.braintools.ru/article/8616

[16] Kaggle AutoML Grand Prix 2024: https://lenta.ru/news/2024/09/13/pobedila/

[17] реагировать: http://www.braintools.ru/article/1549

[18] потребность: http://www.braintools.ru/article/9534

[19] классическую задачу выживания пассажиров «Титаника: https://www.kaggle.com/competitions/titanic

[20] математики: http://www.braintools.ru/article/7620

[21] совместной магистратуре Skillfactory и МИФИ «Прикладной анализ данных и машинное обучение».: https://new.skillfactory.ru/machine-learning-mag-mephi?utm_source=blog&utm_medium=habr&utm_campaign=none_vo_mifiml_blog_habr_course_none_none_all_automl_text&utm_content=automl?utm_term=text

[22] Источник: https://habr.com/ru/companies/skillfactory/articles/886770/?utm_campaign=886770&utm_source=habrahabr&utm_medium=rss

www.BrainTools.ru

Рейтинг@Mail.ru
Rambler's Top100