Аутсорсинг проектов Data Science от прототипа до производства всего за несколько шагов с визуализацией пользовательского интерфейса

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

В таких проектах Data Scientist обычно выполняет несколько ролей (часто беря на себя обязанности ML и Data Engineer), а процесс разработки требует учета бизнес-целей и контекста и предоставления показателей успеха с интервалом месяц. что может значительно усложнить разработку.

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

Процесс демонстрации результата был одним из ключевых моментов разработки.

Завершив несколько проектов и изучив уроки, я наконец получил некоторый опыт в том, как эффективно выполнять проекты по науке о данных и как экономить около 25 % времени в месяц.

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

Понимание контекста

При запуске проекта Data Science я счел полезным пройти следующие этапы:

  1. Определить бизнес-проблемы клиента;
  2. Определить гипотезы для решения проблем;
  3. Вникнуть в детали и ограничения системы (на этом этапе заказчик может настроить стартовые условия);
  4. Спроектируйте итеративный цикл разработки.

Итерационные циклы

В качестве примера рассмотрим один из моих проектов. Задача состояла в том, чтобы найти библиотеку, которая позволила бы отображать все данные и логику в чистом, легком и понятном виде. Клиентам нужно было создать интерактивное приложение, которое клиентская команда могла бы использовать каждый день. Требуется много работы, чтобы получить хороший интерфейс виджета, который кажется естественным. Для преодоления этих трудностей в моем случае выбор пал на Streamlit. Его пользовательский интерфейс действительно имел значение. И большая часть этого была простота.

Использование библиотеки Streamlit позволило команде ускорить итерационные циклы, что сделало команду более гибкой. Быстрый путь от прототипа к производству означал, что теперь команда могла получать отзывы, делиться идеями, создавать прототипы, выполнять итерации и быстро отправлять изменения своим бизнес-пользователям. Они могли бы показать больше, учитывая ограничения команды.

От POC до MVP с интерфейсным приложением

Переход проекта по науке о данных от Proof-Of-Concept к минимально жизнеспособному продукту, обеспечивающему ценность для бизнеса, может быть трудным переходом. Тому есть несколько причин:

  • Небольшой размер инженерной команды;
  • Затрудненный доступ к пользовательским данным;
  • Задержка обратной связи с пользователем.

Почему инженер по машинному обучению должен создавать прототипы интерфейсных приложений?

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

Streamlit как простой визуализатор динамического пользовательского интерфейса для POC

Streamlit — это библиотека Python с открытым исходным кодом, способная за считанные минуты превращать скрипты данных в общедоступные веб-приложения. Это позволяет очень легко создавать собственные веб-приложения с минимальными усилиями и нулевым знанием интерфейсных сред проектирования (все на python). Это отличный способ создавать простые, но элегантные интерактивные пользовательские интерфейсы для ваших проектов данных.

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

С помощью Streamlit я могу легко развернуть приложение, а клиенты могут взаимодействовать с ним и даже делиться своими отзывами. Затем, через неделю, мы можем вернуться и повторить это обновление нашего приложения на основе отзывов пользователей.

Несколько примеров пользовательского интерфейса из некоторых моих проектов

От внутреннего до облачного хостинга

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

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

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

Заключение

Развитие небольших проектов не так просто из-за постоянной гонки в развитии и смены приоритетов. Стандартизация решений с помощью Streamlit помогает нам повысить скорость и качество.

В следующей статье я расскажу о том, какие шаблоны разработки я использую….