Ozon: трансформер в поисковых подсказках — честные доли процента на масштабе в триллионы
Опубликованные приросты по итерациям: CTR поисковых подсказок +10%, затем ещё +10% и +3%; доля пустой выдачи снизилась на 3%; доля пользователей, завершающих сессию заказом, выросла на 0,3%. Каждая цифра получена в A/B-эксперименте на реальном трафике и опубликована самой командой в инженерном блоге — с честным признанием, что кликабельность растёт легче, чем конверсия в заказ. На первый взгляд скромно — но при GMV в триллионы рублей доли процента являются существенным бизнес-эффектом, и именно так выглядят реальные цифры рекомендательных систем. Дополнительный, менее заметный результат — инфраструктурный: динамическая компиляция формул ранжирования втрое снизила потребление CPU поисковым сервисом (с 15%+ до 5–6%) и сократила время запроса на 10 мс — на потоке в десятки тысяч RPS это и экономия железа, и прямой вклад в скорость выдачи. Рамки достоверности: все цифры — самоотчёт компании без независимого аудита. Но это самоотчёт особого рода — опубликованный инженерами с описанием методологии A/B-экспериментов и признанием слабых мест (затухание эффекта, разрыв между CTR и заказами), что резко снижает риск маркетингового приукрашивания. Отдельно (это прогноз, а не результат): по оценке, приведённой Forbes, будущий ИИ-ассистент поиска может добавить Ozon 3–5% GMV в перспективе одного-двух лет. Смешивать эту оценку с измеренными +0,3% нельзя — это разные жанры цифр. На наш взгляд, главная ценность кейса — калибровочная. Он задаёт рынку эталон честной отчётности: последовательность +10% → +10% → +3% показывает не только эффект, но и его затухание, а метрика «+0,3% пользователей с заказом» — насколько дорого даётся каждая доля процента на зрелом продукте. Когда вендор или интегратор обещает «+15% конверсии от ИИ в поиске», этот кейс — готовая линейка для проверки: у одной из сильнейших ML-команд страны, с собственным GPU-кластером и триллионным GMV, документированный эффект на порядок скромнее. Второе наблюдение — архитектурное: на наш взгляд, выбор модели на сотни миллионов параметров вместо модного «LLM на миллиарды» — это и есть инженерная зрелость. Ozon подобрал минимальную архитектуру, которая решает задачу в жёстком лимите латентности, вместо максимальной, которая решала бы её в презентации.
- Ozon Tech: генеративный трансформер в поисковых подсказках (архитектура, обучение на событиях, RPS, лимит 300 мс, итерации, риски генерации) — Habr (блог Ozon Tech), n/a
- Как Ozon ускорил расчёт факторов ранжирования динамической компиляцией (трёхуровневый поиск, CPU 15%+ → 5–6%, −10 мс) — Habr (блог Ozon Tech), n/a
- Ozon открыто рассказал об алгоритмах рекомендаций (пресс-брифинг о прозрачности, Алексей Минаев; >1000 признаков, вес персонализации ≈10%) — Телеспутник, 2022-04
- Принцип работы поиска на Ozon (5 шагов ранжирования, до 2000 кандидатов, нейросеть вероятности покупки) — SellerMoon, n/a
- Ozon задумался о создании ИИ-ассистента для помощи в поиске товаров (оценка +3–5% GMV за 1–2 года) — Forbes Russia, n/a
- GMV Ozon по годам (2024 ≈ 2,9 трлн ₽) — Smart-Lab (по отчётности компании), n/a
Контекст
Ozon — один из двух крупнейших маркетплейсов России с GMV порядка 2,9 трлн рублей за 2024 год. На таком масштабе поисковая строка — это не «функция сайта», а главный дистрибуционный канал: значительная часть заказов начинается с запроса, и каждая доля процента конверсии поиска измеряется миллиардами рублей оборота.
Команда Ozon Tech ведёт подробный инженерный блог на Habr и — редкость для рынка — публикует не только архитектуру своих ML-систем, но и реальные приросты метрик, включая скромные. Компания вообще необычно открыта в теме алгоритмов: ещё в апреле 2022 года на пресс-брифинге о прозрачности рекомендательных сервисов заместитель управляющего директора Ozon Алексей Минаев публично рассказывал, как устроены поиск и рекомендации маркетплейса — на фоне обсуждения в Госдуме законопроекта о регулировании рекомендательных алгоритмов. По официальному описанию компании, отбор и сортировка предложений проходят пять стадий за доли секунды (Телеспутник).
Для отрасли эта открытость — не косметика. Рынок ИИ-кейсов в ритейле переполнен вендорскими презентациями с двузначными «приростами конверсии» без методологии; инженерный блог, где раскрыты архитектура, ограничения и точные приросты по итерациям A/B-тестов, — почти единственный жанр, по которому можно калибровать собственные ожидания.
При этом поиск Ozon — сложная многоуровневая система: базовый уровень полнотекстово ищет по миллионам товаров, средний точно ранжирует тысячи отобранных кандидатов, верхний применяет персонализацию (Habr, блог Ozon Tech). В ранжировании участвует более тысячи признаков; по публичному рассказу компании, вес персонализации в нём — около 10% (популярность товара — 29%, продажи — 17%, цена — 5%), причём веса регулярно пересматриваются. Этот кейс собран из таких первоисточников: он про генеративный трансформер в поисковых подсказках — и про то, как выглядят настоящие цифры эффекта рекомендательных систем, когда их публикует сама инженерная команда, а не отдел маркетинга.
Проблема
Поиск — входная точка покупки на маркетплейсе. Слабые подсказки означают длинный путь к товару и пустые выдачи, которые убивают конверсию: пользователь, дважды упершийся в «ничего не найдено», уходит к конкуренту. Экономика подсказок проста: большинство покупателей набирают запрос с телефона, где каждый лишний символ — трение, а каждая ошибка в раскладке — риск пустой выдачи; хорошая подсказка сокращает набор до нескольких символов и одновременно направляет пользователя в запрос, по которому выдача гарантированно непустая.
Классические подсказки, собранные из словаря популярных запросов, плохо справляются со спецификой маркетплейса: миллионы товаров, названия брендов и артикулы, опечатки, транслитерация («ксиоми», «xiaomi», «сяоми»), длинный хвост редких запросов, по которым словарная подсказка просто молчит. Именно эту специфику Ozon Tech называет причиной перехода к генеративной модели, обученной на доменных данных маркетплейса (Habr).
Инженерные ограничения при этом жёсткие: подсказки должны отдаваться при десятках тысяч запросов в секунду и укладываться в лимит 300 миллисекунд — иначе пользователь напечатает запрос быстрее, чем система его «подскажет», и вся ценность функции обнулится. Это ограничение сразу отсекает большие языковые модели на миллиарды параметров: их инференс на таком потоке либо не уложится в латентность, либо потребует неокупаемого GPU-парка.
Наконец, генеративный подход добавляет собственный класс рисков, которых у словарных подсказок не было в принципе: модель может сгенерировать грамматически кривую фразу, семантический дубль соседней подсказки, запрос, ведущий в пустую выдачу, токсичную формулировку из обучающих данных — или вовсе выдуманный бренд и несуществующий товар. Каждый из этих режимов отказа пришлось закрывать отдельным контуром постобработки.
Решение
Ozon Tech построил генеративный decoder-only трансформер на несколько сотен миллионов параметров, обученный не на обычном тексте, а на токенах пользовательских действий.
Обучение шло в два этапа. Сначала pretrain на цепочках пользовательских событий — запросах, кликах, фильтрах, просмотрах товаров; одна последовательность может охватывать месяцы взаимодействий пользователя с маркетплейсом. Затем fine-tuning на целевой задаче: генерация подсказки по контексту сессии и набранному префиксу. Такой подход позволяет модели «знать» бренды, артикулы, опечатки и транслитерацию из реального поведения покупателей, а не из внешнего корпуса (Habr, блог Ozon Tech).
Инференс — на GPU-кластере через TensorRT-LLM, что позволяет держать десятки тысяч запросов в секунду в лимите 300 мс. Кандидаты генерируются beam search — модель одновременно ведёт несколько вариантов продолжения и выбирает лучшие, что даёт разнообразный список подсказок вместо одного «самого вероятного» ответа. Затем кандидаты проходят постобработку: удаление дублей, фильтрацию запретных формулировок и проверку, что подсказка не ведёт в пустую выдачу. Именно эта «скучная» обвязка закрывает специфические риски генеративного подхода — от грамматических ошибок до выдуманных брендов: сгенерированный, но несуществующий товар отсекается на проверке непустоты выдачи, не доходя до пользователя.
Дальнейший путь запроса тоже документирован. Выбранная подсказка уходит в поисковый конвейер: система подбирает кандидатов по ключевым словам и синонимам, отбирает до 2000 релевантных позиций, нейросеть оценивает вероятность покупки каждой от 0 до 1, затем применяются бустинги и дебусты — и только после этого пользователь видит выдачу; по отраслевым разборам, весь конвейер укладывается в доли секунды (SellerMoon). Подсказка, таким образом, — первый фильтр гигантской воронки, и её качество определяет качество входа во все последующие ступени.
Раскатка велась итерациями с A/B-измерением на каждой — и эта последовательность сама по себе поучительна. Первая итерация — базовая генерация коротких подсказок: +10% к CTR подсказок; модель просто начала закрывать запросы, на которых словарный саджест молчал. Вторая — многословные подсказки с длинными фрагментами: ещё +10%; пользователю стали предлагать не «телевизор», а сформулированный запрос целиком. Третья — работа с опечатками: ещё +3% к CTR, минус 3% к доле пустой выдачи и +0,3% к доле пользователей, завершающих сессию заказом — впервые эффект дошёл до финальной бизнес-метрики. Команда прямо формулирует главное наблюдение этих итераций: CTR растёт легче, чем бизнес-метрики, — кликабельность подсказок можно поднять быстро, а вот довести эффект до заказа гораздо труднее.
Подсказки — только видимая часть поискового стека. В том же блоге Ozon Tech описывает, как устроено ранжирование: трёхуровневая система (полнотекстовый отбор по миллионам товаров → точное ранжирование тысяч кандидатов → персонализация), тысячи факторов ранжирования с высокой вложенностью. Когда рекурсивная интерпретация формул этих факторов стала съедать более 15% CPU всего сервиса, команда написала компилятор, генерирующий JVM-байт-код в рантайме: потребление CPU упало до 5–6%, а общее время запроса сократилось на 10 миллисекунд. Отраслевые разборы дополняют картину: из всех кандидатов отбирается до 2000 позиций, нейросеть оценивает вероятность покупки каждой от 0 до 1, затем применяются бусты и дебусты (SellerMoon). Это полезно держать в голове, читая про «+10% CTR»: за каждым процентом стоит инфраструктура, где 10 миллисекунд — заметная победа.
Результат
Опубликованные приросты по итерациям: CTR поисковых подсказок +10%, затем ещё +10% и +3%; доля пустой выдачи снизилась на 3%; доля пользователей, завершающих сессию заказом, выросла на 0,3%. Каждая цифра получена в A/B-эксперименте на реальном трафике и опубликована самой командой в инженерном блоге — с честным признанием, что кликабельность растёт легче, чем конверсия в заказ.
На первый взгляд скромно — но при GMV в триллионы рублей доли процента являются существенным бизнес-эффектом, и именно так выглядят реальные цифры рекомендательных систем. Дополнительный, менее заметный результат — инфраструктурный: динамическая компиляция формул ранжирования втрое снизила потребление CPU поисковым сервисом (с 15%+ до 5–6%) и сократила время запроса на 10 мс — на потоке в десятки тысяч RPS это и экономия железа, и прямой вклад в скорость выдачи.
Рамки достоверности: все цифры — самоотчёт компании без независимого аудита. Но это самоотчёт особого рода — опубликованный инженерами с описанием методологии A/B-экспериментов и признанием слабых мест (затухание эффекта, разрыв между CTR и заказами), что резко снижает риск маркетингового приукрашивания. Отдельно (это прогноз, а не результат): по оценке, приведённой Forbes, будущий ИИ-ассистент поиска может добавить Ozon 3–5% GMV в перспективе одного-двух лет. Смешивать эту оценку с измеренными +0,3% нельзя — это разные жанры цифр.
На наш взгляд, главная ценность кейса — калибровочная. Он задаёт рынку эталон честной отчётности: последовательность +10% → +10% → +3% показывает не только эффект, но и его затухание, а метрика «+0,3% пользователей с заказом» — насколько дорого даётся каждая доля процента на зрелом продукте. Когда вендор или интегратор обещает «+15% конверсии от ИИ в поиске», этот кейс — готовая линейка для проверки: у одной из сильнейших ML-команд страны, с собственным GPU-кластером и триллионным GMV, документированный эффект на порядок скромнее.
Второе наблюдение — архитектурное: на наш взгляд, выбор модели на сотни миллионов параметров вместо модного «LLM на миллиарды» — это и есть инженерная зрелость. Ozon подобрал минимальную архитектуру, которая решает задачу в жёстком лимите латентности, вместо максимальной, которая решала бы её в презентации.
Уроки для индустрии
- Реальные приросты рекомендательных систем измеряются долями процента и единицами процентов: +0,3% пользователей с заказом на масштабе Ozon — это успех, а «+14% GMV от персонализации» — красный флаг фабрикации.
- Латентность определяет архитектуру: лимит 300 мс при десятках тысяч RPS диктует и размер модели (сотни млн параметров, не миллиарды), и стек инференса (TensorRT-LLM).
- Итеративная раскатка с измерением на каждом шаге (+10% → +10% → +3%) честнее одного громкого релиза: видно и эффект, и его затухание.
- CTR растёт легче, чем бизнес-метрики: кликабельность подсказок поднимается быстро, а довести эффект до заказа — отдельная, более трудная работа (собственное наблюдение команды Ozon Tech).
- Генеративные подсказки приносят новые классы рисков — кривая грамматика, дубли, токсичные формулировки, выдуманные бренды, подсказки в пустую выдачу — и без контура постобработки в продакшен их выпускать нельзя.
- Персонализация — лишь ≈10% веса в ранжировании Ozon: базовые сигналы (популярность, продажи, цена) по-прежнему решают больше.
- Публикация скромных цифр — признак зрелости инженерной культуры: таким источникам можно верить и в остальном.
Частые вопросы
Какой реальный эффект дал трансформер в поиске Ozon?
По публикации Ozon Tech на Habr: CTR поисковых подсказок вырос на 10%, затем ещё на 10% и 3% по итерациям; доля пустой выдачи снизилась на 3%; доля пользователей, завершающих сессию заказом, выросла на 0,3%. Все цифры — из A/B-экспериментов на реальном трафике.
Насколько велика модель Ozon и почему не LLM на миллиарды параметров?
Ozon Tech описывает decoder-only трансформер на несколько сотен миллионов параметров с инференсом через TensorRT-LLM на GPU-кластере. Размер продиктован жёстким лимитом: ответ за 300 мс при десятках тысяч запросов в секунду — многомиллиардная модель в такой бюджет латентности и железа не вписывается.
Чем генеративные подсказки опаснее словарных?
Модель может сгенерировать грамматически некорректную фразу, семантический дубль, подсказку в пустую выдачу, токсичную формулировку или выдуманный бренд. Ozon закрывает эти риски постобработкой: дедупликацией, фильтрами запретных формулировок и проверкой непустоты выдачи.
Правда ли, что персонализация Ozon дала +14% GMV?
Нет, такой цифры в публичных материалах Ozon не существует. Документированный эффект — +0,3% пользователей с заказом; оценка +3–5% GMV относится к будущему ИИ-ассистенту и является прогнозом (Forbes), а не измеренным результатом.
Что известно про ранжирование выдачи Ozon?
Поиск устроен в три уровня: полнотекстовый отбор по миллионам товаров, точное ранжирование тысяч кандидатов (по отраслевым разборам — до 2000 позиций с нейросетевой оценкой вероятности покупки), затем персонализация. В ранжировании более тысячи признаков; по публичному рассказу компании, популярность весит ≈29%, продажи ≈17%, персонализация ≈10%, цена ≈5%, и веса регулярно пересматриваются.