Как в Авито обучили базовую генеративную модель русскому языку, чтобы пользователям стало проще создавать объявления


Компания
Авито — одна из крупнейших IT-компаний в России и самая популярная онлайн-платформа объявлений в мире по данным Similarweb. Ежемесячная аудитория составляет более 70 млн пользователей, на платформе более 220 млн объявлений в пяти направлениях: Товары, Работа, Услуги, Недвижимость, Транспорт.


Август 2024
Клиентское обслуживание
Розничная торговля
Инструменты
Своя LLM на базе Mistral7b
LoRA
VisionTransformer
В Авито много задач и процессов, где используются нейросети. Фактически алгоритмы машинного обучения сопровождают пользователя на каждом шагу. Появление генеративных нейросетей стало новым этапом развития сервисов Авито. Но компании предстояло определить бизнес-цель, для которой генеративные нейросети имели бы прикладную ценность.

Авито — UGC-платформа (user generated content), где ежедневно появляется по несколько миллионов объявлений. Контент — это основа площадки, то, благодаря чему покупатели находят продавцов и наоборот.



Задача

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

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



Одна из ценностей Авито звучит как «Упрощай», поэтому внедрение генеративных сетей должно было помочь пользователям упрощать взаимодействие с площадкой.



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


В Авито уже были внедрены AI-алгоритмы, определяющие, какой предмет изображен на фотографии, и предлагающие категорию для размещения. Создание текстового описания с помощью генеративного AI стало логичным шагом.




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


Проблема

У опенсорс-моделей, которых хватает на рынке, есть три проблемы:
  1. Они намного лучше работают с английским языком, чем с русским.
  2. Их токенизаторы плохо адаптированы для русского языка. Из-за этого модели работают медленно. Токенизатор — часть модели, чья задача преобразовать текст в данные, которые могут быть дальше обработаны моделью.
  3. Они плохо приспособлены к прикладным задачам Авито.
Обучение модели состояло из двух этапов. На первом собрали много данных из разных корпусов, доступных в Open Source, и добавили данные Авито. Получившиеся 1,5 Тб информации очистили от дублей — дата-сет уменьшился до 1,1 Тб. После этого обучали модель предсказывать следующий токен — взяли существующую языковую модель Mistral 7В и дообучили на своих данных. Обучение длилось 15 дней.

Вторым стал SFT-этап (Supervised fine-tuning), когда модель обучалась на данных в формате «задание (вопрос) – ответ». Считается, что если на этапе претрейна языковая модель больше узнает о мире в целом, то на SFT-этапе модели показывают, как правильно отвечать на конкретные вопросы.


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

(Massive Multitask Language Understanding)

Это общепринятый тест возможностей языковой модели, состоит из 16 000 вопросов с несколькими вариантами ответов по 57 академическим предметам. Оценивает возможности модели в целом.


Результат по сравнению с моделью Mistral 7В: показатель вырос с 0,52 до 0,541
Тест 1. MMLU
Подобные MMLU задачи, но прикладные к опыту Авито. Например, дали объявление с нарушенным правилом платформы и попросили нейросеть выбрать вариант ответа, какое именно нарушение было.


Результат по сравнению с моделью Mistral 7В: показатель вырос с 0,149 до 0,516. То есть почти в 3,5 раза лучше.
Тест 2. Moderation
Определение, насколько поисковый запрос пользователя релевантен заголовку объявления. Модель должна ответить «Да» или «Нет».


Результат по сравнению с моделью Mistral 7В: показатель вырос с 0,440 до 0,749
Тест 3. Relevance
Проверили получившуюся модель на трех тестах. В результатах: 0 — это нет правильных ответов, 1 — все ответы верны.


Тесты и результаты работы модели

Пример теста Relevance

Пример теста Moderation


По следующему запросу и заголовку определите, релевантны ли они. Ответ «Да» или «Нет».
Запрос: garmin descent mk2
Заголовок: Часы Garmin Descent Mk2i Titanium Carbon Gray DLC
Ответ: Да

Ниже приведен текст объявления на Авито и варианты нарушений правил в этом объявлении. Нужно ответить цифрой от 0 до 6, которая соответствует ответу на вопрос: Есть ли нарушения из перечисленных в тексте?
0) Нет нарушений 1) Ключевые слова в описании, 2) Несколько товаров в одном объявлении, 3) Контакты в описании, 4) Дискриминация по полу, 5) Дискриминация по возрасту, 6) Дискриминация по социальному положению
Текст: ! Начал действовать новый каталог Avon посвящённый к 8 марта. Очень много акций и подарков 😍 Сделай заказ на 999 руб., получи скидку 30% (к оплате 699 руб.) и 2 подарка со следующим заказом. Интересует моё предложение? 🤗 Рассказать подробнее? Жду ответа! 😉
одноклассники:
вк: https://vk.com/ks
вотсап/вайбер : 890
P.S. Выходит хорошая экономия на подарки
Ответ:
Токенизатор Open Source моделей заточен под работу с английским языком. Например, при использовании Mistral токен на этом языке состоял в среднем из 3,75 символа, а на русском — из 2,15. Мы обучили свой токенизатор на российских данных, тогда длина токена на русском увеличилась до средних 3,35 символов.
Подменив старый токенизатор модели на наш новый по описанной в этой статье методике, удалось увеличить скорость работы модели по предсказанию в полтора раза.


Подмена токенизатора

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


Что получилось на проде, и как отреагировали пользователи

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



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





Важной частью новой функции стал алгоритм Image-to-text, который генерирует описание, опираясь на изображение товара, приложенное продавцом.


В качестве базовой архитектуры был выбран трансформер со специальной архитектурой: в качестве encoder-модели у него используется VisionTransformer, а в качестве decoder модели — GPT.




Результаты замеров

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

60%

На 1,7%

Продавец по-прежнему может оформить описание самостоятельно, а может воспользоваться помощью нейросети для ускорения процесса. Текст, придуманный ею, можно корректировать — например, запросить другой вариант или добавить новые пункты.
В Авито планируют расширять возможности больших языковых моделей: в работе у команды уже есть несколько идей, как внедрить генеративные нейросети во внутренние продукты, чтобы взаимодействие пользователей с Авито становилось удобнее. И конечно, продолжается работа над тем, чтобы качество сгенерированных объявлений становилось лучше.

Что дальше

Другие кейсы