Оптимизируйте профили домашних животных для приложения Petfinder от Purina, используя настраиваемые метки Amazon Rekognition и AWS Step Functions.

Максимальная эффективность профилей домашних животных в приложении Petfinder от Purina с помощью настраиваемых меток Amazon Rekognition и AWS Step Functions

Компания Purina US, дочерняя компания Nestlé, имеет долгую историю того, что помогает людям легче усыновлять животных через Petfinder, цифровую площадку более чем 11 000 приютов и групп спасателей животных в США, Канаде и Мексике. В качестве ведущей платформы по усыновлению животных, Petfinder помог миллионам домашних животных найти свой настоящий дом.

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

В этом посте описывается, как Purina использовала Amazon Rekognition Custom Labels, AWS Step Functions и другие сервисы AWS для создания модели МО, которая определяет породу питомца по загруженному изображению, а затем использует предсказание для автозаполнения атрибутов питомца. Решение сосредоточено на основных принципах разработки рабочего потока приложения ИИ/МО – подготовка данных, обучение модели, оценка модели и мониторинг модели.

Обзор решения

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

С помощью Rekognition Custom Labels, который основан на существующих возможностях Amazon Rekognition, вы можете идентифицировать объекты и сцены на изображениях, специфичные для вашего бизнеса. Он уже обучен на десятки миллионов изображений во множестве категорий. Вместо тысяч изображений вы можете загрузить небольшой набор обучающих изображений (обычно несколько сотен изображений или меньше на каждую категорию), специфичных для вашего случая использования.

Решение использует следующие сервисы:

  • Amazon API Gateway – полностью управляемый сервис, позволяющий разработчикам легко публиковать, поддерживать, мониторить и защищать API любого масштаба.
  • AWS Cloud Development Kit (AWS CDK) – это фреймворк разработки программного обеспечения с открытым исходным кодом для определения инфраструктуры облачных вычислений в коде современных языков программирования и ее развертывания с помощью AWS CloudFormation.
  • AWS CodeBuild – полностью управляемый сервис непрерывной интеграции в облаке. CodeBuild компилирует исходный код, выполняет тесты и создает пакеты, готовые к развертыванию.
  • Amazon DynamoDB – быстрый и гибкий сервис нереляционных баз данных любого масштаба.
  • AWS Lambda – событийный вычислительный сервис, позволяющий запускать код для практически любого типа приложений или бэкэнд-сервисов без предоставления или управления серверами.
  • Amazon Rekognition предлагает предварительно обученные и настраиваемые возможности компьютерного зрения для извлечения информации и понимания изображений и видео. С помощью Amazon Rekognition Custom Labels вы можете идентифицировать объекты и сцены на изображениях, специфичные для вашего бизнеса.
  • AWS Step Functions – это полностью управляемый сервис, который упрощает координацию компонентов распределенных приложений и микросервисов с помощью визуальных рабочих процессов.
  • AWS Systems Manager – это безопасное решение управления ресурсами на AWS, в мультименеджерной облачной среде и в гибридных средах. Parameter Store, возможность Systems Manager, предоставляет безопасное и иерархическое хранилище для управления конфигурационными данными и управления секретами.

Решение Purina развертывается в качестве конечной точки API Gateway HTTP, которая маршрутизирует запросы для получения характеристик питомца. Оно использует Rekognition Custom Labels для предсказания породы питомца. Модель машинного обучения обучается на основе профилей питомцев, извлеченных из базы данных Purina, предполагая, что основная метка породы является истинной меткой. Для хранения характеристик питомцев используется DynamoDB. Для обработки запроса на характеристики питомцев используется Lambda, координирующая работу между API Gateway, Amazon Rekognition и DynamoDB.

Архитектура реализуется следующим образом:

  1. Приложение Petfinder маршрутизирует запрос для получения характеристик питомца через API Gateway.
  2. API Gateway вызывает функцию Lambda для получения характеристик питомца.
  3. Функция Lambda вызывает конечную точку рекогниции пользовательских меток для предсказания породы питомца.
  4. Функция Lambda использует предсказанную информацию о породе питомца для выполнения поиска характеристик питомца в таблице DynamoDB. Она собирает характеристики питомца и отправляет их обратно в приложение Petfinder.

На следующей диаграмме представлена схема рабочего процесса решения.

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

Обучение модели

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

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

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

Конечный автомат Step Functions разработан для автоматического переобучения модели Amazon Rekognition. Обратная связь собирается во время ввода профиля — каждый раз, когда порода, которая была выявлена по изображению, изменяется пользователем на другую породу, исправление записывается. Этот конечный автомат запускается после достижения определенного количества исправлений и сбора дополнительных данных.

Конечный автомат выполняет несколько шагов для создания решения:

  1. Создание файлов обучающего и проверочного наборов данных, содержащих список путей к изображениям Amazon Simple Storage Service (Amazon S3) и их метки для использования в Amazon Rekognition.
  2. Создание набора данных Amazon Rekognition с использованием файлов набора данных.
  3. Тренировка версии модели Amazon Rekognition после создания набора данных.
  4. Запуск версии модели после завершения обучения.
  5. Оценка модели и создание метрик производительности.
  6. Если метрики производительности удовлетворительны, обновление версии модели в Parameter Store.
  7. Ожидание распространения новой версии модели в функциях Lambda (20 минут), затем остановка предыдущей модели.

Оценка модели

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

Ниже представлены несколько скриншотов рабочего процесса прогнозирования породы питомца с помощью Rekognition Custom Labels.

Развертывание с помощью AWS CDK

Конечный автомат Step Functions и связанная с ним инфраструктура (включая функции Lambda, проекты CodeBuild и параметры Systems Manager) развертываются с использованием AWS CDK и Python. Код AWS CDK синтезирует шаблон CloudFormation, который используется для развертывания всей инфраструктуры для решения.

Интеграция с приложением Petfinder

Приложение Petfinder получает доступ к конечной точке классификации изображений через конечную точку API Gateway с использованием POST-запроса, содержащего JSON-полезную нагрузку с полями для пути к изображению в Amazon S3 и количеством результатов, которые должны быть возвращены.

Затронутые KPI

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

  • Сокращение усилий для приютов для животных при создании профилей животных
  • Более полные профили животных, ожидаемо улучшающие релевантность поиска

Метрики для измерения усилий и полноты профиля включают количество автоматически заполненных полей, которые были скорректированы, общее количество заполненных полей и время загрузки профиля животного. Улучшение релевантности поиска определяется косвенно путем измерения ключевых показателей производительности, связанных с коэффициентами усыновления. Согласно Purina, после запуска решения, среднее время создания профиля животного в приложении Petfinder сократилось с 7 до 4 минут. Это огромное улучшение и экономия времени, потому что в 2022 году было загружено 4 миллиона профилей животных.

Безопасность

Данные, передаваемые через диаграмму архитектуры, зашифрованы в пути и в покое, в соответствии с рекомендациями AWS о наилучших практиках “Well-Architected”. Во время всех взаимодействий с AWS эксперт по безопасности просматривает решение, чтобы обеспечить безопасную реализацию.

Заключение

Благодаря своему решению, основанному на Rekognition Custom Labels, команда Petfinder может ускорить создание профилей животных для приютов, снижая административную нагрузку на персонал приюта. Развертывание, основанное на AWS CDK, выполняет рабочий процесс Step Functions для автоматизации обучения и развертывания. Чтобы начать использовать Rekognition Custom Labels, ознакомьтесь с руководством Getting Started with Amazon Rekognition Custom Labels. Вы также можете ознакомиться с некоторыми примерами Step Functions и начать работать с AWS CDK.