Создание MLGUI, пользовательских интерфейсов для приложений машинного обучения

Источник · Перевод автора

Машинное обучение съедает мир и распространяется и на устоявшиеся дисциплины в программном обеспечении. Готов ли мир после MLOps приветствовать MLGUI (графический пользовательский интерфейс машинного обучения)?

Филип Воллет (Philip Vollet) – знаменитость в области науки о данных. В качестве старшего инженера по обработке данных в KPMG в Германии Воллет возглавляет небольшую группу инженеров по машинному обучению и данных, создающих уровень интеграции для внутренних данных компании со стандартизацией доступа для внутренних и внешних заинтересованных сторон. Помимо KPMG, Vollet создал цепочку инструментов для поиска, обработки и обмена контентом по науке о данных, машинному обучению, обработке естественного языка и открытым исходным кодом с использованием именно этих технологий.

Хотя есть много влиятельных лиц в социальных сетях, которые делятся взглядами на науку о данных и машинное обучение, Воллет действительно знает, о чем говорит. В то время как большинство из них сосредоточено на вопросах построения моделей и масштабирования инфраструктуры, Vollet также рассматривает пользовательское представление или фреймворки для создания пользовательских интерфейсов для приложений, использующих машинное обучение. Мы были заинтригованы, чтобы обсудить с ним, как создание этих пользовательских интерфейсов необходимо для раскрытия истинного потенциала ИИ.

Жизненный цикл проектов машинного обучения

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

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

Все начинается с составления бюджета, а затем – с распределения людей. Исходя из бюджета проекта, проект укомплектован персоналом. Затем проект необходимо перенести в среду DevOps КПМГ. Следовательно, планируются спринты, проводятся консультации с заинтересованными сторонами и начинается жизненный цикл реализации проекта. На этом уровне абстракции каждый программный проект выглядит одинаково.

Непрерывная интеграция / непрерывная доставка – еще одна хорошая практика DevOps, которую применяет команда Vollet. В проектах с машинным обучением отличает то, что нужно управлять большим количеством артефактов. Важно отметить, что существуют наборы данных и модели, и эволюция в обеих из них вполне реальна: «Возможно, сегодня модель идеально соответствует нашим потребностям, но через шесть месяцев мы должны ее переоценить», – сказал Воллет. MLOps, кто-нибудь?

Итак, в какой момент пользовательский интерфейс вступает в игру в проектах машинного обучения? Краткий ответ – как можно скорее. Как правило, Vollet рассматривает возможность вовлечения заинтересованных сторон в цикл уже на первой итерации, потому что они могут ознакомиться с проектом, и их отзывы могут быть учтены на раннем этапе.

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

Создание пользовательских интерфейсов для приложений машинного обучения

Какие ключевые критерии следует учитывать при выборе фреймворка для создания пользовательского интерфейса для приложений машинного обучения? Для команды Воллета возможность работать локально в собственном облаке KPMG является главным приоритетом. Для многих проектов в КПМГ это требование.

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

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

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

По умолчанию Vollet использует Streamlit, «потому что это очень просто. У вас есть такие функции, как выбор даты. Кроме того, у вас может быть интерфейс с загрузкой файла, который бизнес-аналитики могут использовать в качестве интерфейса для загрузки файлов Excel или CSV, а затем внести некоторые изменения».

Для чего-то более продвинутого Vollet выбрал Gradio: «Он больше ориентирован на машинное обучение. В него встроено так много функций за короткое время. Вы можете запустить его на ноутбуках Jupyter или в Google Colab. Он супер-интегрированный, и это круто, я очень рекомендую его».

Сюжетно с Dash – еще один вариант, который высоко ценит Vollet. Dash обещает дать пользователям возможность создавать и развертывать аналитические веб-приложения с использованием Python, R и Julia. Никакого JavaScript или DevOps не требуется. Plotly – это платформа, созданная для использования Dash. По словам Воллета, этот больше подходит для предприятий, так как ему нужна инфраструктура для работы, но у него хорошая поддержка графиков.

И последнее, но не менее важное: есть то, что Воллет называл новичком в квартале, Панелью. Это приложение высокого уровня и решение для панели управления Python. Panel работает с визуализациями из Bokeh, Matplotlib, HoloViews и многих других библиотек построения графиков Python, что позволяет мгновенно просматривать их по отдельности или в сочетании с интерактивными виджетами, которые ими управляют.

MLGUI: искусство и наука разработки графических интерфейсов для приложений машинного обучения

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

Еще один инструмент, упомянутый Воллетом, был Gooey. Это тот инструмент, который больше используется для создания пользовательского интерфейса приложения или скрипта Python. Это не столько библиотека диаграмм, которую люди используют для создания пользовательского интерфейса для приложений машинного обучения, хотя ее можно использовать для этого.

Похоже, что интеграция сосредоточена вокруг записных книжек для анализа данных. Например, при использовании Google Colab вы можете использовать Gradio и Plotly, поэтому они в некотором смысле интегрированы, – сказал Воллет. «Если вам нужна полная интеграция стека, то, возможно, вам будет лучше с Dash», – добавил он.

Другой интересный вопрос – в какой степени эти фреймворки предлагают некоторую поддержку MLOps. Если в модель машинного обучения будет добавлена новая функция, смогут ли эти фреймворки подобрать и использовать ее, или это придется делать вручную? Gradio может это сделать, по крайней мере, до некоторой степени; в других фреймворках это будет ручной процесс, сказал Воллет.

Мы пришли к выводу, что MLGUI – еще одна развивающаяся область, смежная с наукой о данных и машинным обучением. Подобно тому, как MLOps – это применение принципов и практик DevOps к особым потребностям, возникающим в результате масштабного развития машинного обучения, мы утверждаем, что MLGUI – это рост. Это хорошо известное искусство и наука разработки графического интерфейса пользователя для приложений с изюминкой его применения в приложениях, использующих машинное обучение. Хотя на данный момент это не отдельная категория, возможно, так и должно быть.