Погружаемся в машинное обучение без кода с Ex Machina

TL;DR

C3.ai — компания-разработчик программного обеспечения, которая предлагает ряд решений на основе машинного обучения, адаптированных для конкретных отраслей и предназначенных для крупных компаний. Один из их продуктов называется «Ex Machina», он находится в центре внимания этого поста и предназначен для:

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

⚡️ Интересный факт

«Ex Machina» происходит от латинского термина «deus ex machina» (или «бог из машины») — человек или вещь, которая появляется или вводится в ситуацию внезапно и неожиданно и обеспечивает искусственное или надуманное решение явно неразрешимой проблемы. сложность.[1]

🤹🏼‍♂️ Рабочий процесс гражданского специалиста по данным

Как и в случае с моими предыдущими сообщениями «Что делает ‹insert name›?», я решил сам попробовать Ex Machina.

Чтобы применить небольшую структуру к моей работе, я придумал упрощенный рабочий процесс, который может представлять собой путь, по которому идет обычный специалист по обработке данных:

Не имея необходимости писать какой-либо код или много знать об ML, вы, вероятно, захотите…

  • Загрузите некоторые данные,
  • Возможно внести некоторые изменения или подготовить данные для обучения модели,
  • Обучите модель, а затем, наконец,
  • Предскажите что-нибудь с этой моделью.

Мы вернемся к этим шагам, когда я буду разбираться во внутреннем устройстве этого продукта.

🚀 Вставай и беги

C3.ai недавно объявил о партнерстве с GCP. Постоянные читатели будут знать, что я предпочитаю это облако, поэтому я подумал, что смогу ли я раскрутить его через GCP Marketplace:

Поиск «C3.ai» быстро привел к списку продуктов торговой площадки, включая Ex Machina. В отличие от некоторых предложений, которые позволяют вам приступить к работе, не выходя из GCP, мне была предоставлена ​​ссылка для регистрации.

Это приведет вас на внешнюю целевую страницу, где вы можете подписаться на бесплатную 14-дневную пробную версию. Так я именно так и сделал!

Ex Machina предлагается как услуга подписки для каждого пользователя, которую можно использовать как управляемую услугу, размещенную на серверах C3.ai. Если вы выберете их уровень подписки «Корпоративный», вы также можете развернуть его в инфраструктуре или облаке по вашему выбору.

После регистрации вы можете войти в Ex Machina через сайт, размещенный на C3.ai.

Первое, что вы видите, это дашборд с навигацией слева, а на главной странице несколько разделов с примерами рабочих процессов, вашими последними проектами и ресурсами:

В проектах вы строите свои рабочие процессы машинного обучения, используя инструменты перетаскивания, которые вы размещаете на холсте.

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

Вы можете заплатить за разные размеры «среды» с большим объемом памяти в зависимости от ваших потребностей. Эти среды размещаются и управляются C3.ai. Я коснусь цен в конце поста.

Теперь давайте создадим рабочий процесс нашего специалиста по обработке и анализу данных Citizen!

⛽️ 1. Загрузите некоторые данные

Первый шаг — создать новый проект (см. символ «+» в правом верхнем углу панели «Недавние проекты»).

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

Расширение категории «Входные данные» показывает несколько различных подкатегорий источников данных, для простоты я выбрал загрузку файла CSV:

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

В этом случае я использовал набор данных Kaggle для Прогнозирования дефолта по кредиту:

После настройки узла и нажатия кнопки «Выполнить» вы можете увидеть образец данных, дважды щелкнув узел:

👩🏾‍🍳 2. Подготовьте данные

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

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

Для этой задачи я взглянул на узел «Описать столбцы» в категории «Анализ», перетащив его на наш холст:

Запуск и двойной щелчок по узлу «Описание столбцов» позволяет нам построить визуальный профиль данных и вывести ключевые сводки, которые могут нас заинтересовать:

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

Мы делаем это, потому что это помогает нам понять, насколько хорошо модель делает прогнозы на данных, которые она никогда раньше не видела. Нажмите здесь, если хотите узнать больше.

Я не верю, что Ex Machina автоматически разбивает ваш набор данных перед обучением модели, поэтому для этого я использовал узел «Случайное разделение» в категории «Преобразование», используя конфигурацию по умолчанию:

🏆 3. Обучите модель

Когда наши обучающие данные загружены и подготовлены, пришло время обучить нашу модель машинного обучения.

Надев шляпу гражданского специалиста по данным, я решил придерживаться категории узлов «AutoML» и, в частности, «Классификатора поиска моделей» — он может обучать несколько моделей за один шаг:

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

Для набора данных, который я собираюсь использовать, столбцы:

  • "Работающий", это логическое значение, 1 = работающий, 0 = безработный.
  • Bank Balance, банковский баланс заявителя на получение кредита.
  • "Годовой оклад" — годовой оклад соискателя кредита.

и метка обучения (то, что мы хотим, чтобы наша модель предсказывала):

  • По умолчанию, это логическое значение 1 = значение по умолчанию 0 = значение по умолчанию не применялось в прошлом.

Нажав «Обучить», вы создадите таблицу лидеров моделей, упорядоченных по выбранному вами показателю. Затем вы можете выбрать лучшее и сохранить его на потом:

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

🤖 4. Получите прогнозы

А теперь самое интересное, получение прогнозов!

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

После запуска узла «AutoML Predict» и двойного щелчка по нему вы можете увидеть обновленную выборку данных с новым столбцом, показывающим прогнозы моделей, т. е. вероятность дефолта заявителя по кредиту:

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

В конечном счете, наш гражданский специалист по данным захочет включить прогнозы (или информацию, полученную с помощью ML) в свои обычные бизнес-задачи. Поэтому нам, вероятно, нужно получить данные из Ex Machina в какое-то другое место, подходящее для проведения дальнейшей аналитики или, возможно, для создания информационной панели или отчета.

На момент написания статьи категория узлов «Выход» выглядела несколько ограниченной по сравнению с огромным количеством источников данных, инструментов бизнес-аналитики и аналитики, доступных сегодня на рынке. Я также отметил отсутствие узлов для прямого вывода в BigQuery и Google Cloud Storage… может быть это ограничение пробной версии?

Насколько я видел, в списке присутствовали AWS S3, Azure ADLS и крупные игроки корпоративных хранилищ данных, такие как Snowflake. Я попробовал подключение Snowflake, но не смог заставить его работать (подробнее об этом в следующем разделе этого поста).

Маловероятно, что наш гражданский специалист по данным сможет подключиться к большинству этих целей без «ИТ-поддержки». Поэтому постарался держаться поближе к персоне и использовал параметр «Экспорт в CSV» через параметры узла «AutoML Predict»:

Вот и все, наш рабочий процесс завершен, от загрузки данных до получения некоторых прогнозов из модели машинного обучения — без необходимости писать ни единой строки кода!

⚖️ Первые впечатления

Вот краткий отчет о том, как я экспериментировал с Ex Machina:

Настраивать:

Приступить к работе с пробной версией было довольно просто.

Я попытался передать прогнозы из моего примера рабочего процесса в таблицу базы данных Snowflake без особого успеха.

Я создал базу данных, таблицу и схему в Snowflake и смог успешно протестировать соединение в Ex Machina:

Но когда я попытался записать некоторые данные, запустив узел «Выходные данные — Снежинка», я получил довольно бесполезное сообщение об ошибке:

Вот и все, никакой публикации подписи в документации или любого простого способа подать заявку в службу поддержки. На канве было другое сообщение об ошибке в конфигурации для ноды, но, похоже, оно не имело никакого отношения к Snowflake:

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

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

Простота использования:

Парадигма рабочего процесса «перетаскивание» не является чем-то новым, но Ex Machina — один из первых облачных примеров, которые я видел и ориентирован на ML. Это отличная отправная точка для гражданских специалистов по данным.

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

Стоимость:

Ex Machina предлагается по подписке пользователя с вариантами Free, Team, Pro и Enterprise (для развертывания в вашей собственной инфраструктуре):

Team и Pro добавляют некоторые дополнительные функции по сравнению с версией Personal. Некоторые основные моменты включают совместную работу, интеграцию SSO и поставщика удостоверений, вы также получаете больше памяти и не ограничиваете количество узлов AutoML, которые вы можете добавить в проект.

Предлагаются также некоторые базовые возможности планирования и управления моделями, но пока ничего близкого к поддержке полного жизненного цикла MLOps.

В целом:

Ex Machina первоначально была запущена около года назад, поэтому она все еще относительно незрела по сравнению с другими крупными игроками в области продуктов для гражданских данных, такими как Alteryx и KNIME.

Что касается чистого «AutoML», то у него есть конкуренты, такие как H20.ai, DataRobot и GCP Vertex AI. Они предлагают аналогичный опыт «без кода», но гораздо более сложны, когда речь идет об автоматизации общих задач, таких как подготовка данных, выбор модели, объяснимость и, конечно же, производство моделей.

На данный момент Ex Machina кажется чем-то средним между лучшими продуктами «drag-and-drop» и AutoML на рынке.

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

Если C3.ai продолжит инвестировать в этот продукт, добавляя функции и улучшая взаимодействие с пользователем, он может стать серьезным соперником на растущем рынке.

🙏🏼 Еще раз спасибо, что прочитали мой пост, если у вас есть какие-либо вопросы или отзывы, пожалуйста, свяжитесь с нами!

📇 Ссылки

[1] Britiannica, deus ex machina, https://www.britannica.com/art/deus-ex-machina