Мы совместно с коллегами из Aitarget Tech, которые уже 8 лет ведут разработку в сфере рекламных технологий, обучили трансформационную ML-модель с целью генерации изображений для рекламных кампаний. Передаем слово Ане Корзун, стратегическому директору Aitarget, — она расскажет о кейсе подробнее.
Боль в digital-маркетинге
Рынок предлагает бизнесу большое количество рекламных площадок, закрывающих «боли» и потребности клиентов. Однако каждая из этих площадок имеет свои нюансы и особенности — например, устанавливает свои требования к размерам креативов. Как следствие, запуск рекламы на всех платформах сразу — задача нетривиальная. Она требует серьезных человеческих ресурсов на всех этапах продакшена. Дизайнеры должны проработать разные идеи, сформировать макеты и «ресайзы» для многотысячных товарных фидов.
Даже если у рекламодателя есть набор креативов, выход на новую площадку или тест формата становится вызовом. Чтобы модифицировать макеты, приходится «вырезать» все элементы вручную в графическом редакторе. В отдельных случаях эта задача нецелесообразна с точки зрения временных и финансовых затрат.
Наша суперсила — делать так, чтобы каждый товар находил своего покупателя. Для этого мы в Aitarget Tech упрощаем работу с изображениями для рекламных кампаний. Недавно мы запустили технологию SmART, которая оптимизирует работу с креативами для социальных медиа за счет автоматизации ресайзинга, а также оптимизирует работу Aitarget Tech. Она построена на базе нейросетей и платформе SberCloud ML Space.
SmART позволяет быстрее адаптировать креативы и, как следствие, оперативно запускать рекламные кампании на разных площадках. Что именно делает SmART? Определяет компоненты на готовом макете — логотип, текст, фон, фирменные элементы — и создает из них отдельные слои. Далее, при необходимости, с ними можно продолжить работу в любом привычном графическом редакторе [той же Figma]. Теперь с помощью SmaART можно сделать ресайз из любого формата, даже если это плоская картинка.
Платформа Aitarget Tech уже обрабатывает около 3 млн креативов ежедневно. Это показывает, что рынок заинтересован в таком инструменте.
Как мы обучали модель
Мы пользовались высокопроизводительной инфраструктурой SberCloud — платформой ML Space для развертывания моделей машинного обучения на базе суперкомпьютера Christofari. В ней «из коробки» доступны Docker-образы с необходимыми инструментами и библиотеками, которые можно запустить в JupyterLab, а через TensorBoard мониторить процесс обучения. Нейросетевые библиотеки для компьютерного зрения часто требуют определенных версий CUDA и связанных фреймворков. Чтобы управлять этими зависимостями, мы также собрали и использовали собственные docker-образы.
Для обучения ML-модели мы использовали сразу три обучающих набора данных. Одним из них был Open Images Dataset — самый большой открытый датасет [около 9 млн изображений] для детекции и сегментации объектов. В качестве второго набора выбрали COCO dataset. Он тоже содержит данные для задач сегментации, и его часто применяют для сравнения моделей в научных публикациях. Третий свод данных мы собрали самостоятельно. Так как мы специализируемся на рекламных технологиях, он состоит из 10 тысяч максимально релевантных рекламных изображений. Изначально он был в восемь раз больше, но сократился после очистки и дедупликации. Это позволило кратно увеличить качество работы модели.
Во время разметки возникли некоторые сложности — не всегда было понятно, что на изображении является товаром. Поэтому мы «на лету» обновляли гайдлайны для дата-сайентистов, чтобы результат получился однородным.
Что касается, непосредственно, процесса обучения модели SmART, то он состоял из двух этапов. Сперва нейросеть находила объекты на изображениях и обводила их прямоугольным контуром (bounding box). Для решения этой задачи мы использовали открытую архитектуру CBNetV2, в основу которой положен набор инструментов MMDetection.
Второй этап обучения модели был связан с уточнением границ объектов. Для определения их типа мы использовали архитектуру DeepMarc. Она хорошо себя показывает на задачах классификации, даже если объект не попал в обучающую выборку. Для нас это важно, поскольку рекламируемые товары разнообразны, и отразить все категории в одном датасете невозможно. Что касается обрисовки контуров для обнаруженных объектов, мы использовали архитектуру PointRend. Она избавляет от эффекта «рваных краев» при переносе текста, логотипа или изображения товара на новый слой или другой фон.
Разделение задачи обучения на два этапа позволяет улучшать каждую из представленных архитектур по отдельности, что важно при работе над развивающимся проектом. Мы регулярно модифицируем модель, так как в машинном обучении нельзя однозначно предсказать, как повлияет на результат то или иное изменение.
Работу нейросети мы проверяем на основе Open Images Dataset и собственного набора данных. Туда входят тысячи изображений, которые мы готовили для клиентов. Для текстовой информации обучающую выборку генерируем автоматически — накладываем на обычную картинку текст со случайно выбранным шрифтом и позицией. В итоге получаем изображение с точными координатами буквенной информации. Так, нам не нужно тратить время на разметку тестовых данных.
Что касается работы с логотипами, то в этом случае мы использовали готовый датасет. В нем уже были размечены bounding box’ы с бренд-марками различных компаний.
Тестирование и дальнейшие планы
Мы провели бета-тестирование SmART и планируем подготовить демоверсию инструмента, чтобы с ним могли познакомиться все желающие. По результатам тестов, SmART позволил увеличить вариативность площадок для рекламных кампаний, не используя дорогие ресурсы дизайнеров.
Мы продолжим развивать свой инструмент. Будем внедрять в него новые функции — они помогут показать товар с лучшей стороны, чтобы он как можно быстрее нашел своего покупателя.
Сейчас мы проектируем решение для модификации графических слоев — с ними можно будет работать без помощи сторонних редакторов. С помощью нейросети мы добавим возможность менять масштаб и ориентацию итогового изображения с вертикальной на горизонтальную, и внедрим инструменты для анимации с элементами макета.
Мы также начали использовать модели семейства ruGPT-3 от SberDevices, которые размещены в сервисе DataHub ML Space:
активно тестируем ruDALL-E для генерации сложных креативов по текстовому запросу пользователя. Например, это поможет сгенерировать визуал, который отражает идею продукта или кампании;
используем ruGPT-3 — генеративные модели, которые умеют продолжать тексты по «затравке» — для генерации названий, подписей к изображениям и описаний товаров.
Партнерство со Sbercloud позволило нам в несколько раз быстрее тестировать новые фичи для нашей платформы. Благодаря функциональным возможностям SberCloud ML Space, суперкомпьютеру Christofari, а также готовым решениям ruDALL-E и ruGPT-3, мы быстрее улучшаем продукт и получаем обратную связь.
Через некоторое время мы расскажем вам о первых результатах пользователей SmART.
Что еще почитать о работе в облаке в нашем блоге: