Всем привет! Меня зовут Диляра. Я дата‑сайентист команды разработки F5 Platform — low‑code платформы для аналитики данных средних и крупных предприятий. Наша команда разрабатывает математический сервис продукта, алгоритмы обработки данных и модели для пресейл и пилотных проектов, а также занимается их запуском в эксплуатацию.
В статье я расскажу о том, с какими типовыми проблемами мы столкнулись при внедрении F5 Platform, какой инструмент разработали для их преодоления, и как он помог нам ускорить проведение пилотных проектов. Я хочу поделиться историей создания F5 Future — no‑code сервиса приложений, призванного облегчить работу дата‑сайентистов и бизнес‑пользователей при проверке гипотез и проведении пилотных проектов по анализу данных.
Типовые проблемы пилотных проектов
Платформенное решение — это сложный ИТ‑продукт, требующий развитой инфраструктуры и квалифицированных специалистов. Его внедрение — длительный и ресурсозатратный процесс, а первые видимые результаты появляются через некоторое время после начала эксплуатации. Как правило, предупреждение об этом вызывает у заказчиков недоверие и скепсис. Поэтому крайне важно «приземлить» обсуждение: показать руководству метод решения бизнес‑задачи, а экспертам и математикам — наглядные данные и работающие модели. И позже, на этапе проверки гипотезы и пилотного проекта продемонстрировать результат, чтобы подтвердить как решаемость задачи, так и способность нашего продукта ее решить.
Однако, применять платформенное решение на этом этапе целиком — сомнительная затея: проект реализуется на отдельном бизнес‑процессе, так что пригодится лишь малая часть возможностей продукта.
Необходим «тестовый мул» — решение, которое будет максимально приближено по возможностям и интерфейсу к конечному продукту, но при этом оставаться легковесным и гибким, чтобы минимизировать усилия всех сторон. Это обусловлено и тем, что на старте проекта далеко не всегда понятна его эффективность, соответственно и необходимость в капитальном решении.
Очень часто в качестве «мулов» используют open‑source решения, адаптация которых порой становится проектом внутри проекта, а для их корректной работы с данными требуются немалые усилия ИТ‑специалистов и дата‑сайентистов. При этом качество работы таких решений даже после всех манипуляций может оставаться сомнительным.
В итоге то, что изначально планировалось как легкая прогулка по новой технологии, может превратиться в масштабный проект, который пытаются «вытянуть» несколько подразделений. Добавьте к этому разницу в компетенциях, необходимость научить дата‑сайентистов понимать потребности бизнеса и наоборот. При этом каждое подразделение должно продолжать эффективно выполнять свои ежедневные задачи, ведь пока не подтвержден экономический эффект, этот тяжеловесный проект — всего лишь факультатив.
Получаем еще одно требование к «мулу» — он должен быть понятным и доступным как для бизнес‑пользователя, затеявшего эксперимент, так и для дата‑сайентиста, подключившегося к проекту. Инструмент должен обладать набором функций и алгоритмов, закрывающих большинство типовых задач, которые возникают на этапе проверки концепции.
Потребность в «понятности и доступности» подтвердилась и в процессе демонстраций решения. Сложности в понимании F5 Platform возникают еще на этапе презентации продукта — показать и объяснить нужно столько, что запомнить и усвоить с первого раза может быть непросто. А еще мы выявили потребность как заказчиков, так и наших коллег в дополнительных знаниях о машинном обучении.
Таким образом, «мул» должен содержать еще и набор готовых кейсов, которые можно использовать как для демонстрации возможностей во время презентаций, так и для обучения технологии как таковой.
Появление F5 Future
От пилота к пилоту и от презентации к презентации мы постоянно встречали эти потребности:
нужно легко, но функционально
нужно понятно и доступно
нужны примеры.
Мы заметили, что решения большинства уникальных задач сводятся к нескольким базовым сценариям реагирования и ряду универсальных ML‑алгоритмов. Постепенно наши наработки превратились во внутреннюю библиотеку типовых решений и средств визуализации.
В основу библиотеки легли как собственные наработки, так и: классическая scikit‑learn — набор основных базовых алгоритмов машинного обучения, prophet — библиотека для прогнозирования временного ряда, shap — для интерпретации результатов работы алгоритмов регрессии и классификации, pyod — библиотека для выявления аномалий и т. д.
Применяя ее на практике, мы смогли:
сократить время проверки гипотез с 5 до 1–2 рабочих дней;
на 50% снизить вовлеченность дата‑сайентистов;
на 30% ускорить пилотные проекты.
Но главное — мы помогли повысить уровень доверия к технологии. И, что более важно, — у сотрудников, никогда ранее не работавших с аналитикой данных, появился интерес к специфике работы дата‑сайенс команд.
Однако, путь, который мы прошли от библиотеки решений до F5 Future, нельзя назвать безоблачным. Когда мы начали показывать первые прототипы нашим пользователям — бизнес‑аналитикам, менеджменту, отделу по работе с клиентами и другим заинтересовавшимся, меня удивило то, что несмотря на очень простой дизайн, многие аспекты сервиса оставались для пользователей сложными и непонятными.
Приходилось работать над формулировками, скрывать лишнее, добавлять инструкции и описания, и самое главное — дорабатывать графики и таблицы. В итоге для реализации финального варианта мы выбрали dash и plotly — фреймворк, показавший себя как очень приятный глазу, с большим арсеналом инструментов для веб‑приложений. В частности, plotly позволяет интерактивно взаимодействовать с графиками.
Значительно продвинутся в улучшении пользовательского опыта позволила придуманная нами концепция трех шагов — загрузка, обучение и результат. Однако, придерживаться этой концепции оказалось сложнее, чем мы ожидали. Разные методы решения задач и разные алгоритмы требуют индивидуальных подходов и не всегда хорошо помещаются в концепцию трех шагов. Развивая функционал, нам хотелось снабдить пользователей различными отображениями данных, новым функционалом, дополнительными инсайтами, статистикой по данным. К тому же, данные могут быть разными по своей сути, иногда пользователю удобнее их просмотреть в табличном виде, а иногда в графическом. Воспользоваться результатом работы модели иногда уместнее загрузив файл с данными для построения прогноза, порой хочется воспользоваться «калькулятором», т. е. ввести значения всех параметров вручную или с помощью ползунков, а иногда, как в случае с построением прогноза — задать промежуток времени в будущем, на котором хотим увидеть прогноз. Все это требует индивидуального подхода в разработке, например, добавлении новых вкладок, или, наоборот, перемещении каких‑то действий «под капот».
Стоит отметить также работу дизайнера и разработчиков, которые терпеливо раза три перекраивали дизайн.
В результате всех «мук рождения» F5 Future получился таким, каким вы видите его сейчас — удобным и легковесным no‑code инструментом, который позволяет любому человеку стать немножко дата‑сайентистом и не привлекать дополнительные силы для проверки различных гипотез.
Результат
Библиотека F5 Future содержит кейсы из различных сфер: энергетика, промышленность, финансы, ритейл. Все кейсы созданы на базе наших реализованных проектов. Данные, конечно, сгенерированы или взяты из открытых источников, но методика и типовые эффекты схожи с реальными. Пользователь может изучить как базу готовых кейсов, так и загрузить собственные данные, чтобы пройти сценарий решения своей прикладной задачи «по‑новому» и понять, можно ли ее решить алгоритмами машинного обучения.
В F5 Future сейчас есть 4 алгоритма для решения задач:
восстановления регрессии (Random Forest Regressor). По набору признаков определяется значение целевого параметра. Например, с помощью такого алгоритма можно предсказать количество прогуливающихся по набережной в зависимости от температуры воздуха, скорости ветра и количества осадков. Алгоритм на основе «случайного леса» менее требователен с точки зрения подготовки датасета. Так, например, нет необходимости стандартизировать данные, в отличие от алгоритма линейной регрессии. Ансамбль деревьев устойчив к переобучению. Кроме того, нет необходимости следить за линейной независимостью признаков.
классификации (Random Forest Classifier). По набору признаков определяется принадлежность набора признаков к тому или иному классу. Здесь мы имеем те же преимущества — гибкость и устойчивость. И, как и в предыдущем случае, минимальные требования к датасету.
прогноза по историческим данным (Prophet Forecaster). Показания целевого признака определяются по тому, как признак менялся в прошлом. Здесь мы обернули аддитивный алгоритм prophet, комбинирующий нелинейную трендовую составляющую с сезонными компонентами (суточные, недельные, годовые и т. п. Составляющие). Алгоритм устойчив, работает тем лучше, чем больше данных для обучения. При этом устойчив к пропускам в обучающей выборке.
детекции аномалий. (Smart Isolation Forest Anomaly Detector) Определяются нехарактерные, аномальные значения целевого параметра или набора целевых параметров. Алгоритм на основе изолирующего леса определяет точки, наиболее удаленные от основного массива точек. Точка считается тем более изолированной, чем меньше глубина дерева необходимая для изоляции этой точки по сравнению с основным массивом данных.
Эти алгоритмы покрывают основную долю кейсов, с которыми мы встречаемся, и позволяют быстро проверить решаемость каждой конкретной задачи. Кроме того, мы выбрали эти алгоритмы, потому что они самые стабильные, наименее требовательные к формату входных данных, и в большинстве случаев показывают достойный результат.
Интересная история приключилась с возможностью интерпретации аномалий. Алгоритм и даже сами интерпретации у нас были, но не хватало интерактивности. На помощь пришел один из пользователей, предложивший показывать признаки, влияющие на аномалию. Теперь по клику можно увидеть вклад сенсоров в аномалию в порядке убывания. Технологически, для ускорения процесса пришлось заранее рассчитать вклад для каждой точки и подкачивать эту информацию по необходимости.
Работа с F5 Future
Все, что нужно для работы с сервисом — файл с данными и доступ в интернет. Библиотека доступна в облаке и совершенно бесплатна, а для работы с ней не нужны специальные знания в дата‑сайенс — проверено на маркетинге. Размещение в облаке позволяет сэкономить время на развертывании решения в контуре заказчика, а также повысить доступность сервиса. Но если вы захотите развернуть библиотеку в своем контуре, мы сделаем это за 1 рабочий день.
Безопасность сервиса обеспечивается шифрованием по протоколу https. Мы не храним данные пользователей — после завершения сессии или при переходе на другой алгоритм данные удаляются. При необходимости можно скачать результаты работы моделей. Если была проведена работа с калькулятором, итог также можно скачать отдельным файлом.
Логика работы с сервисом максимальная простая: загрузка данных — обучение модели — результат.
Шаг 1. Загрузка данных
Выбор алгоритма или референсного кейса.
При решении задачи первым делом ее нужно перевести с языка бизнеса на математический ‑- понять, алгоритм какого класса лучше всего подойдет для ее решения. Чтобы было проще определиться, можно подсмотреть примеры уже решенных задач.
Подготовка данных.
Это самая сложная часть работы с F5 Future. Пока что препроцессинг данных доступен только в F5 Platform, поэтому пользователю придется самостоятельно изучить, почистить, отредактировать, сгруппировать или перегруппировать данные. Возможно, какую‑то часть признаков даже придется сгенерировать.
На каждом этапе работы F5 Future мы предусмотрели подсказки, которые помогут сделать все правильно. Кроме того, пользователь может связаться с нами, и мы поможем не только с подготовкой данных, но и пройдем вместе с пользователем все этапы решения задачи и посоветуем, что делать дальше.
Шаг 2. Обучение модели
Запуск алгоритма.
Все, что требуется сделать после того, как данные загружены — нажать кнопку «Далее» и подождать, пока математический сервис, спрятанный под капот, не сделает всё за пользователя. По нашему опыту, обработка файла максимального объема в 100 Мбайт занимает не больше 10 минут.
Оценка качества модели.
После обучения модели пользователю становятся доступны метрики качества, которые покажут, насколько модели можно доверять. Цветовая индикация и цифровое сопровождение подскажут, насколько конкретно этот алгоритм и обученная на его основе модель подходят для решения конкретно этой задачи.
Вводя метрику качества модели, мы хотели «убить двух зайцев»: предоставить опытным специалистам дополнительный инструмент контроля качества модели, а начинающим показать, что метрики важны, за ними надо следить и их можно улучшать, работая с параметрами модели и с самими данными.
В этой же секции можно изучить данные и определить, какие из показателей оказались наиболее значимыми, как в среднем влияет каждый конкретный признак на результат и т. д. Также пользователь может получше узнать свои данные, просмотрев распределение данных для каждого признака в выборке.
Шаг 3. Результат
Применение модели на актуальных данных.
Если пользователя устраивает качество обучение модели, следующий и последний шаг позволяют применить модель на актуальных данных. Результат обучения выводится в виде информативных таблиц и графиков. Мы постарались собрать в сервисе достаточный объем инструментов визуализации, чтобы, с одной стороны — предоставить пользователю весь необходимый для анализа результатов инструментарий, с другой — не перегрузить сервис.
Например, для задач, где применяется алгоритм восстановления регрессии, мы ввели график частичной зависимости (partial dependence plot) — он будет полезен при проработке сценариев «что, если?» — оценки влияния различных факторов на изменение целевой функции, например, потребления топлива или изменения стоимости товара. Также для этих целей мы сделали удобный калькулятор.
Все результаты расчетов можно выгрузить для использования в дальнейшей работе.
Все необходимые действия для преобразования данных спрятаны далеко в «коробку». Например, сортировка по времени, если мы имеем дело с временными рядами, или же преобразование категориальных данных (имеющих строковые значение) в численные. Все эти операции выполняются, преобразования сохраняются, а затем, на третьем шаге, применяются автоматически.
Заключение
Вокруг машинного обучения существует некий флер мистики, таинственности и, часто, недоступности. Очень хотелось сдуть эту «вуаль волшебства» и рассказать простым языком о том, что это такое — не вдаваясь в детали, при этом сделав машинное обучение понятнее и доступнее (как ни крути, чтобы объяснить все, потребуется курс по data science). Я надеюсь, что эта статья поможет приблизить наше мирное high tech Future, а сам сервис, который вы найдете по ссылке, даст понимание о возможностях машинного обучения. Добро пожаловать.