В Convert Group Data Science мы стремимся преобразовать потребности клиентов в сложные решения, ориентированные на данные, которые могут сделать наши продукты более интеллектуальными и ускорить рабочие процессы обеспечения качества. Этот пост посвящен тому, как мы разработали Imagine API,микрослужбу сходства изображений на основе машинного обучения, которая используется для предоставления eRetail Content (eRC), одного из наших ключевых продуктов, с семантические знания, позволяющие, среди прочего, ежедневно полностью автоматизировать оценку соответствия контента десяткам тысяч отслеживаемых изображений продуктов.

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

Источники данных и соответствие контента

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

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

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

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

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

Сходство изображений

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

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

  • ETL. Собирайте изображения продуктов и стандартизируйте их в едином формате.
  • Обучение модели. Обучайте сверточный вариационный автоэнкодер на наборе изображений.
  • Вывод: используйте модель, чтобы получить векторное вложение для каждого изображения, отображенного в скрытом пространстве изученного распределения изображений.
  • Измерение расстояния. Оцените расстояние схожести для пары изображений продукта, учитывая изображение продукта эталонного бренда и изображения того же продукта розничного продавца.
  • Поиск. Найдите наиболее похожую пару, применяя эмпирический порог, который позволяет отличить соответствующие изображения продуктов от несовместимых. Это также полезно с точки зрения бизнеса для удовлетворения качественных требований.

Сходство изображений как услуга

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

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

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

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

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

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

MLflow автоматически обрабатывает сериализацию и десериализацию модели, предоставляя REST API, предназначенный для поддержки двух разных типов запросов POST через один входной адаптер, а именно:

запрос на основе файловой системы

запрос на основе URI

На рис. 1 показан сервис подобия изображений с его внутренними компонентами. Компоненты программно определяются с помощью модели pyfunc и основаны на модели глубокого обучения. Микросервис объединяет четыре компонента, а именно:

1) компонент интерфейса адаптера загрузки

2) компонент преобразования изображения

3) компонент вывода модели и

4) логическая составляющая подобия

Развертывания и прогнозы в реальном времени

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

На стороне машинного обучения:

  • отслеживать время выполнения обучения (параметры {гипер} модели журнала, показатели производительности, модель версии и артефакты данных)
  • чтобы в целом обеспечить воспроизводимость и повторяемость конвейера машинного обучения

Что касается операционной стороны:

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

Развертывание моделей управляется с помощью API моделей MLflow с использованием центрального репозитория моделей в выделенной корзине S3, что решает проблему переноса артефактов машинного обучения из среды выполнения обучения в рабочую среду.

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

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

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

Таким образом, конечная точка API схожести изображений предназначена для получения запроса на схожесть:

  • Слабо связан с eRC через адаптер файловой системы
  • Полная отвязка через адаптер URI

Служба сбора данных работает независимо, так как хранит изображения в корзинах S3 и предоставляет eRC свежие данные. К моменту обогащения данных приложение одновременно запрашивает характеристики подобия, отправляя POST в службу подобия изображений в режиме пакетного прогнозирования, пока конвейер данных не будет исчерпан.

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

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

Учитывая, что наша инфраструктура находится в корзинах AWS и S3, чтобы в полной мере использовать пропускную способность сети AWS и предотвращать возможные узкие места, служба схожести изображений работает как часть той же сети и использует s3fs FUSE (файл system в пользовательском пространстве) для монтирования сегментов S3 в контейнерной среде микросервисов.

На рис. 2 показан полный сервис схожести изображений, размещенный в производственной среде.

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

Затем мы продемонстрируем производительность задачи сходства изображений с помощью A/B-теста, чтобы нагрузить два адаптера API.

A/B-тестирование

Чтобы убедиться, что API готов к рабочим нагрузкам производственного уровня, рекомендуется провести A/B-тестирование. В этом упражнении мы в первую очередь сосредоточимся на пропускной способности API, а не на производительности извлечения модели.

Тестируемая рабочая нагрузка включает отправку eRC-запроса POST каждой паре продуктов бренда и розничного продавца, чтобы получить сходство изображения эталонного изображения бренда с высоким разрешением (обычно при минимальном разрешении 2000x2000 пикселей) с рядом изображений розничного продавца с более низким разрешением.

Чтобы проверить это, мы создали запрос статического размера для получения результатов подобия и отправили POST в течение 1, 2 и 3 окон параллелизма в течение 60 минут, протестировав оба метода и измерив среднюю задержку и время ожидания за запрос.

Понятно, что адаптер s3fs демонстрирует заметную надежность по сравнению с адаптером URI, и это подтверждается стабильной средней задержкой между 1 и 2 окнами параллелизма и минимальным временем ожидания, измеренным ниже 1. Это важный вывод, даже если в реальных условиях eRC не будет выполнять одновременные запросы POST, и результаты сходства различаются для каждого запроса. В реальных цифрах еженедельно обслуживается более 60 000+ запросов.

Вердикт

Принятие MLflow не только помогло нам преобразовать монолитное приложение ML в воспроизводимую операцию с несколькими отслеживаемыми данными и зарегистрированными показателями; он также изменил способ, которым eRC обеспечивает соответствие контента. Кроме того, это позволило команде DS сохранить право собственности на создание и развертывание моделей, сводя к минимуму трения между командами с группами разработчиков SRE и Core.

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

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

Об авторе и команде DS

Ставрос Ниафас — инженер по машинному обучению в Convert Group и активный участник MLflow.

Особая благодарность людям, которые внесли свой вклад в этот пост и в проект Image Similarity за последние два года: Константинос Пехливанис, Панайотис Симакис, Илиас Антонопулос и Иоаннис Даскалопулос.

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

Convert Group лидирует в области анализа рынка данных и аналитики в электронной коммерции и многоканальной индустрии. Работая в Европе, Латинской Америке и Африке, Convert Group использует свою платформу и услуги eRetail Suite, чтобы раскрыть цифровой потенциал розничных продавцов и производителей электронных аптек. Мировые производители здравоохранения. Convert Group входит в число 1000 самых быстрорастущих компаний Европы два года подряд по версии Financial Times и Statista и является членом ESOMAR.