Прошлой ночью AWS запустил SageMaker Canvas, визуальный интерфейс без кода для создания точных моделей машинного обучения. Тогда давайте приступим.

December 3rd update: here’s the second look, with a different data set: https://youtu.be/_qgNMirKq6A. Read the blog post first :)

Давным-давно…

Некоторые из вас, возможно, помнят Машинное обучение Amazon, первую попытку AWS использовать машинное обучение без кода. Сервис, запущенный в апреле 2015 года, позволяет пользователям извлекать табличные данные из S3 или Redshift для обучения и развертывания моделей в управляемой инфраструктуре. Поддерживаемые типы задач включали бинарную классификацию, мультиклассовую классификацию и модели линейной регрессии.

В свое время я ее подробно рассмотрел (часть 1, часть 2, часть 3), и она мне действительно понравилась. К сожалению, почти все остальные не согласились. Внедрение было ужасным, и в начале 2019 года сервис незаметно устарел, что является очень редким событием в мире AWS. Почему это не удалось, подлежит обсуждению. Слишком просто для пользователей, разбирающихся в машинном обучении, слишком наворочено для бизнес-пользователей, неподходящее время, слишком дорого и т. д. Ну да ладно.

Зализывая свои раны, AWS вернулась к чертежной доске и запустила SageMaker в конце 2017 года. Ориентированный на специалистов по данным и инженеров по машинному обучению, этот новый сервис, возможно, работал намного лучше благодаря удобному SDK, который использует управляемую инфраструктуру и мощные возможности машинного обучения. .

Конечно, это был только вопрос времени, когда вновь возникнет дискуссия «ML для бизнес-пользователей». Итак, SageMaker Canvas.

Распаковка SageMaker Canvas

Вы можете получить доступ к Canvas из консоли SageMaker Studio и запустить его точно так же, как если бы вы запускали SageMaker Studio. После нескольких минут первоначальной настройки открывается пользовательский интерфейс Canvas.

Нас приветствует короткое вступление, знакомящее с рабочим процессом Canvas. +1 за удобство использования.

Выбор данных

Базовые пользователи могут загружать файлы из:

  • Их локальный компьютер, хотя эта опция была для меня недоступна («Свяжитесь со своим администратором»: да?).
  • Ведро S3.

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

В качестве альтернативы более продвинутые пользователи могут подключиться к базе данных Redshift или Snowflake. Затем они могут запустить свой собственный код SQL для извлечения и объединения данных.

Здесь я просто импортирую набор данных Выживший на Титанике из корзины S3. Это займет всего пару кликов.

Построение модели

Создавая новую модель, я сначала выбираю только что импортированный набор данных.

Затем я выбираю столбец, который хочу предсказать (Survived).

Тип модели автоматически выводится из целевого столбца, и это нормально. Я мог бы также установить его сам, если бы захотел. Теперь, с какой стати вы говорите "категория 2" вместо "бинарная классификация", "категория 3+" вместо классификации по нескольким классам или "число" вместо линейной регрессии? Это звучит странно (даже немного глупо) и только всех запутает. Стандартные отраслевые условия, пожалуйста!

Я также вижу базовую статистику и визуализации в наборе данных. Хороший материал, хотя я бы предпочел получить их сразу после загрузки набора данных, не создавая модель.

При нажатии на столбец отображается сводка.

Я также могу снять флажки со столбцов, которые не хочу включать в обучение. Сохраняя все столбцы, я нажимаю «Быстрая сборка», чтобы… наверное, построить быструю модель. Обучение завершается сбоем почти сразу, и я получаю следующее сообщение об ошибке:

Это, вероятно, расстроит и смутит вашего обычного бизнес-пользователя:

  • значения ШАП? Какими бы они ни были, мне о них раньше не рассказывали.
  • Если в моем наборе данных слишком много пропущенных значений, почему мне не сообщили об этом раньше? Ошибочные столбцы должны были быть выделены на этапе базовой статистики.
  • Если значения SHAP нельзя рассчитать, почему бы не обойтись без них и не добавить упоминание в сводку модели?

Удалив неудачную модель (почему я не могу повторить попытку прямо сейчас?), я создаю новую, выбираю набор данных и снимаю выделение с проблемного столбца.

Затем я снова запускаю быструю сборку.

Анализ результатов

Результаты доступны через пару минут. Это слишком быстро для обычной работы SageMaker. Может быть, это работало на месте, подобно функции Быстрая модель в SageMaker Data Wrangler?

Точность модели не велика, но достаточно высока, чтобы оправдать запуск полноценного обучения позже. Важность функции (также известная как «влияние столбца») хорошо отображается с использованием коробчатых диаграмм и точечных диаграмм, хотя мне не хватает возможностей масштабирования.

Я также получаю причудливое представление матрицы путаницы.

… а также правильные показатели машинного обучения.

Создавая другую модель (почему я не могу повторно использовать быструю сборку?), я запускаю полноценную обучающую работу, которая выполняется несколько часов (SageMaker AutoPilot **кашель**).

Метрики значительно лучше.

Судя по всему, я смог поделиться моделью в SageMaker Studio. Функция мне не подошла.

Генерация прогнозов

Я могу использовать свою модель для прогнозирования новых данных либо в пакетном режиме, либо в режиме одиночного прогнозирования. Для простоты я буду использовать тренировочный набор.

Во-первых, я запускаю пакетный прогноз в пару кликов.

Через несколько секунд результаты доступны, и я могу загрузить их в файл CSV.

Прогнозы сохраняются для использования в будущем. Я не смог их удалить, так как кнопка была неактивна.

Я также не мог проверить одиночные прогнозы. Хм.

Подводя итоги

Так мне нравится Canvas или как? Тут ничего не происходит.

Добро

  • SageMaker Canvas делает то, что говорит на жестяной банке: машинное обучение с нулевым кодом для наиболее популярных задач машинного обучения на предприятии (классификация, регрессия и временные ряды).
  • Пользовательский интерфейс достаточно понятен и удобен, хотя я хотел бы иметь возможность изменять размер панелей (давняя беда многих консолей AWS) и масштабировать визуализации.
  • Я ожидаю, что задания Canvas будут такими же точными, как и задания на основе кода. Действительно, можно с уверенностью предположить, что обучение модели основано на SageMaker AutoPilot и Прогноз, которые поддерживают встроенную разработку функций, настройку модели и т. д.
  • Пакетное прогнозирование с помощью моделей Canvas достаточно просто, без необходимости иметь дело с какой-либо гадостью во время вывода (что мне больше всего не нравится в SageMaker в целом).

Плохо

  • Canvas поддерживает только табличные данные (категориальные, числовые, текстовые, дату и время), а форматы входных файлов, по-видимому, ограничены несжатым CSV (мы не узнаем наверняка, пока документ не скажет что-то полезное ). Пользователям с немного более сложными данными придется заниматься подготовкой данных, и…
  • Canvas не интегрирован с инструментами подготовки данных. Если у вас есть нетронутый файл CSV, вам повезло. Что, если вам нужно преобразить его или немного почистить? Интеграция пользовательского интерфейса с SageMaker Data Wrangler или Glue Data Brew будет иметь большое значение для создания бесшовного опыта. ML без кода требует подготовки данных без кода.
  • Прогнозирование не может быть автоматизировано. Представьте, что мне нужно прогнозировать новый файл CSV каждый день. Нужно ли мне вручную загружать его на S3 и использовать консоль Canvas для прогнозирования? Есть ли путь к автоматизации? Возможно, это возможность обмена моделями в Studio, но я не смог ее протестировать.
  • Canvas выглядит дорого. 1,9 доллара в час за консоль? 30 долларов за работу по обучению клеток на миллион? Я мог бы обучить тот же набор данных (50 тысяч строк с 20 функциями) на спотовом экземпляре ml.m5.large для доли этого и написать 50 строк Python, чтобы автоматизировать его для моих бизнес-пользователей… Am Я что-то пропустил здесь?

Уродливый

Я слишком хорошо знаю, какое давление вызывает запуск сервисов в re:Invent, но…

  • Документация настолько минимальна, насколько это возможно.
  • Слишком много функций не работают при запуске.

Заключение

Так что мне остается? Честно говоря, я не уверен. Canvas работает (не считая временных багов), но ни в коем случае не новаторский. Набор функций почти такой же, как у Amazon Machine Learning в 2015 году. По шкале времени машинного обучения это столетие назад. Как насчет компьютерного зрения, обработки естественного языка, мультимодальных наборов данных, ансамблей, трансформеров и т. д.? И да, корпоративные клиенты используют их. Я разговариваю с ними каждый день.

Находится ли Canvas на правой стороне границы MVP, и вызовет ли он достаточное волнение, чтобы побудить AWS быстро итерировать его?

Или слишком мало слишком поздно?

Я осторожно склоняюсь к первому, но пока рано говорить.