SMILE.Cloud — машинное обучение без навыков программирования
В ИТМО создали облачный сервис, который помогает специалистам получить доступ к возможностям машинного обучения практически без навыков программирования на Python.
Для целого ряда типовых задач сервис позволяет визуально набросать пайплайн решения, импортировать в него данные, подобрать соответствующую модель машинного обучения и проверить ее качество. Эксперименты показывают, что для среднего специалиста по данным на типовых задачах инструмент ускоряет работу в 3-5 раз, позволяя в итоге выгрузить код модели на Python, чтобы вставить в сторонний проект.
В этой статье рассказываем, откуда появилась идея инструмента и на какой стадии находится его разработка.
Как появилась идея сервиса
Идея автоматизации рутины, в частности при построении математических моделей для обработки данных, в буквальном смысле витает в воздухе. Аналитики данных повсеместно сталкиваются с одними и теми же задачами. Возможно, сформулированы они по-разному, но в принципиально различных областях знаний людям приходится иметь дело с одинаковыми форматами (таблицами, временными рядами) и одними и теми же проблемами при их обработке. Возможно, для каждого специалиста в отдельности эти проблемы — новый вызов. Но по сути отрасль-то с ними уже сталкивалась и предложила свои способы решения.
Чтобы не тратить время на поиск ответов на одни и те же вопросы, необходимо использовать более высокоуровневые инструменты. Вся эволюция IT-отрасли построена как раз на этом переходе на другой уровень абстракции. Он ускоряет разработку и помогает избавиться от типовых ошибок. Фактически, высокоуровневый инструментарий освобождает людей от рутинных задач и помогает им тиражировать лучшие практики.
Подобный подход уже нашел свое применение в игровой индустрии, где в отдельных сегментах разработчики заняты в основном созданием инструментов, а конкретные игры реализуются практически без написания кода, причем в очень короткие сроки.
В основе облачного сервиса SMILE.Cloud лежит идея создания подобного высокоуровневого инструмента, но в сегменте обработки данных. Эта сфера менее консолидированная, а спектр решаемых задач очень широкий — необходимо преобразовывать данные, строить различные модели, визуализировать результат и проверять качество созданных моделей. Поэтому путь и реализация инструмента не столь очевидны. Но потребность в нем от этого не меньше.
Идея SMILE.Cloud не уникальна. Разработкой платформ для машинного обучения и искусственного интеллекта в мире занимается не только ИТМО, но и целый ряд крупный компаний-производителей ПО и владельцев данных, которые хотят обрабатывать их внутри, не отдавая на аутсорс. Однако это новая область, в которой пока нет отраслевых стандартов, в соответствии с которым можно было бы развивать инструменты (или на примере которых учиться). Разные команды пробуют собственные подходы. И какое из развивающихся решений займет заметную рыночную нишу, зависит по большей части от деталей, которые смогут привлечь или отпугнуть потенциального пользователя.
По сути, идет поиск баланса между гибкостью настройки и простотой решения конкретных задач. И в отличие от коммерческих компаний у университетской команды разработки есть определенное преимущество - творческая свобода в плане реализации новых идей, не ограниченная требованиями конкретных заказчиков.
Работа над проектом
Проект SMILE.Cloud начинался в 2019 году Национальном центре когнитивных разработок Университета ИТМО. В последние годы у команды, которая начала проект, было довольно много задач, связанных с машинным обучением и обработкой данных. Так что в основу инструмента лег ее собственный опыт по созданию и обучению типовых моделей. Благодаря ему удалось довольно быстро создать базовый прототип для дальнейшего развития. Облачный сервис получил название SMILE — Simple Machine Learning Editor.
В прошлом году на базе концепции платформы SMILE.Cloud один из основных разработчиков защитил кандидатскую диссертацию. И развитие инструмента продолжается.
Одна из основных задач команды разработки на сегодняшний день - интеграции в сервис популярных библиотек для машинного обучения. Например, сервис уже интегрирован с фреймворком FEDOT. Это еще одна разработка Национального центра когнитивных разработок, опенсорсный фреймворк, который позволяет автоматически собирать алгоритмы машинного обучения.
В целом команда мониторит эту сферу и старается интегрировать к себе все популярные опенсорсные инструменты. И это само по себе интересно, поскольку библиотеки работают все по-разному и не знают друг про друга. Чтобы можно было реализовывать модель из блоков различных библиотек необходимо решать вопросы унификации и поддерживать интеграции в актуальном состоянии с учетом обновления версий библиотек.
Текущая команда работает над сервисом около полугода. Ее задача — коммерциализировать инструмент. На практике это означает, что команда взаимодействует с индустрией, используя облачный сервис для решения промышленных задач на реальных данных. На выходе бизнес получает достаточно качественные модели, построенные с помощью платформы, а специалисты ИТМО — обратную связь о том, как инструмент стоит доработать, чего не хватает и что именно можно улучшить.
Подобных совместных проектов было уже много. Например, с Институтом дизайна и урбанистики. Команда предоставила сервис для решения задачи по классификации состояния домов по косвенным неочевидным признакам. Этот опыт был показателен тем, что урбанист работал в изоляции, без сопровождения разработчиками. И практика показала, что для решения нетривиальной задачи ему в принципе не нужен человек, пишущий код —модель и довольно сложных граф он построил сам после краткого инструктажа, не имея на старте ни малейших представлений о Python.
Что SMILE.Cloud может сегодня
С учетом серии проектов с бизнесом, SMILE.Cloud уже явно вышел за рамки прототипа и идет в направлении полу-индустриального инструмента.
С точки зрения архитектуры система представляет собой ядро, которое может взаимодействовать с различными библиотеками и обеспечивать их совместную работу. Пользователю все эти библиотеки доступны в едином пространстве. Кстати, они и определяют большую часть функционала SMILE.Cloud.
Основной потребитель сервиса — конкретный специалист — врач, урбанист, банковский аналитик, который понимает имеющиеся данные, но не обладает достаточными компетенциями именно в разработке, чтобы создавать модели машинного обучения с нуля. Платформа позволяет снизить порог входа для решения задачи, так что после инструктажа использовать ее может человек даже человек без IT-бэкграунда. Нескольких часов предварительного обучения достаточно, чтобы понять базовые принципы — какие задачи и какими методами можно решать, как скомпоновать это все на платформе.
Используя SMILE.Cloud, можно быстро накидать пайплайн решения конкретной задачи. Работа пользователя с сервисом сводится к добавлению на экран двух типов узлов:
Синие — узлы данных, в которые загружаются исходные материалы.
Зеленые — узлы моделей (или алгоритмы, поскольку там доступны не только модели машинного обучения, но и простейшие операции, вплоть до математических). Для работы сервиса модель необходимо настроить — выбрать параметры в зависимости от начальных данных, целевые столбцы. Если речь идет об использовании моделей автоматического машинного обучения, то для них необходимо выбрать одну из трех задач, которая на данный момент может быть решена.
Все остальное происходит автоматически. Проанализировав предложенный пайплайн, сервис предлагает ансамбль моделей, подобранных таким образом, чтобы задача решалась оптимальным образом. Для этого SMILE.Cloud использует специальные переборные алгоритмы. На некоторых задачах процедура позволяет повысить качество модели на 10-15%.
Поскольку при решении практических задач важно понимать, имеет смысл использование модели с точки зрения точности решения, отдельное внимание в SMILE.Cloud уделили оценке качества. Приемлемая точность зависит от задачи (в некоторых областях и 60% точности может быть достаточно, а в других 85-90% — неприемлемо), поэтому оценка предлагается в виде интервала для заданной модели и набора данных. Это помогает объективно оценить результаты решения.
В итоге обработка данных при помощи модели машинного обучения сводится к нескольким настраиваемым в визуальном редакторе блокам. Решение получается наглядным — все-таки при обсуждении между людьми объяснить смысл пяти блоков гораздо проще, чем разобраться с десятком строк кода. А код на Python при необходимости можно сгенерировать автоматически и экспортировать в свой проект в виде текста.
Дополнительно SMILE.Cloud позволяет систематизировать наработки в области обработки данных. Когда команда дата сайентистов большая, довольно сложно отследить, кто и что сделал, какую модель на каких данных обучил и какая версия этой модели сейчас в продакшене. Сервис позволяет все это централизованно хранить, а, значит, быстрее находить старые наработки и переиспользовать их.
Перспективы инструмента
Уже в существующем виде SMILE.Cloud существенно сокращает время, необходимое на проверку гипотез и быстрое прототипирование решений, связанных с обработкой данных. Группа проводила внутренние эксперименты — если сравнивать скорость построения моделей при помощи сервиса и работу специалиста средней квалификации, то на типовых задачах сервис обеспечивает ускорение в 3-5 раз. А конечная задача, которую ставят перед собой разработчики, — обеспечить решение любой более-менее типовой задачи по машинному обучению за 5-10 минут.
Помимо экономии времени, сервис также сокращает пропасть между хорошим специалистом в сфере машинного обучения и знатоком предметной области. Чтобы решить конкретную практическую задачу, обоим не хватает определенных знаний. В первом случае недостаточно понимания предметной области, а во втором — познаний в программировании. Специалисты с полным набором компетенций — редкость на рынке труда и стоят недешево, так что использование инструментов, вроде SMILE.Cloud, сделает машинное обучение более доступным.