惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
Google DeepMind News
Google DeepMind News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Proofpoint News Feed
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
U
Unit 42
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
G
Google Developers Blog
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
Jina AI
Jina AI
量子位
宝玉的分享
宝玉的分享
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
美团技术团队
The Hacker News
The Hacker News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tailwind CSS Blog
博客园 - 司徒正美
博客园 - 叶小钗
Hugging Face - Blog
Hugging Face - Blog
P
Palo Alto Networks Blog
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
Vercel News
Vercel News
Martin Fowler
Martin Fowler
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Forbes - Security
Forbes - Security
Attack and Defense Labs
Attack and Defense Labs
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
P
Privacy International News Feed
G
GRAHAM CLULEY
The Last Watchdog
The Last Watchdog
C
Cyber Attacks, Cyber Crime and Cyber Security
AI
AI
V2EX - 技术
V2EX - 技术

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Окей, Lamoda, что надеть на вечеринку? Как обучить LLM навыкам ИИ-стилиста
a_vasilych ( · 2026-05-21 · via Все публикации подряд на Хабре

Уровень сложностиСредний

Время на прочтение13 мин

Охват и читатели23

Кейс

Как объяснить алгоритму, что кожаная куртка и очки героя мемов Джейсона Стетхема — это не просто одежда, а часть стиля? Классические поисковые системы хорошо работают с запросами, в которых указаны категории и атрибуты товаров, но не «чувствуют» дополнительный fashion-контекст. А это ключевая способность эксперта по моде — понять каждого своего клиента и собрать ему подходящий лук даже для самого оригинального кейса. 

Меня зовут Артем Нигоян, я дата-сайентист в Lamoda Tech и занимаюсь разработкой ИИ-стилиста. Этот продукт помогает подбирать товары и образы для наших пользователей. В его основе наша собственная LLM с навыками стилиста — предельно гибкая и контролируемая, покрывающая максимум разных запросов от пользователей.

В августе 2025 года ИИ-стилист появился в формате Telegram-бота, а в конце декабря был интегрирован в приложение Lamoda. 

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

Почему не готовое решение 

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

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

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

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

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

Мы сравнили* возможные подходы по ключевым критериям.

Готовое решение вне РФ

Готовое решение в РФ

Свое решение

Юридическая защита (защита данных, ответственность, соответствие регуляторным требованиям)

Низкая

Высокая

Максимальная

Отказоустойчивость, гарантия доступа и поддержки

Низкая: имеются риски блокировок

Высокая: нет риска блокировок, но отсутствует полный контроль

Максимальная: завязаны на внутренний полностью контролируемый контур

Качество в fashion-домене (понимание специфики запросов в сфере fashion, определение атрибутов товаров по фото и т.д.)

Высокое

Среднее

Контролируемо и зависит от обучения

Гибкость, возможность дообучения на особых сценариях

Низкая: контроль только через системный промпт 

Низкая: контроль только через системный промпт 

Высокая: возможность учета обратной связи и точечных улучшений

Широкий выбор LLM

Да

Нет

Да: подойдет любой опенсорсный чекпоинт с коммерческой лицензией

Стоимость при масштабировании

Высокая: оплата за каждый токен

Высокая: оплата за каждый токен

Средняя: достижим компромисс

*Сравнение актуально на лето 2025 года, когда проводился анализ.

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

Продукт на основе LLM создавался в несколько этапов.

  1. Начало Q3 2025 — версия Magic Search: чат-бот в Telegram генерирует запросы в поиск и показывает товары, но не умеет поддерживать полноценный диалог с пользователем.

  2. Конец Q3 2025 — v1-агент: чат-бот в Telegram генерирует описания товаров, аргументирует их выбор, а также обрабатывает уточнения пользователей, касающиеся цвета, категорий, брендов и ценового сегмента.

  3. Конец Q4 2025 — чат-бот в приложении Lamoda: полноценный диалоговый ассистент.

1 этап. Magic Search: переводчик сложных запросов на язык поискового движка

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

Как это изменить? Использовать LLM в качестве переводчика с человеческого языка на поисковый. 

В этом случае пайплайн работы такого продукта будет выглядеть следующим образом: 

→ получаем сложный запрос клиента и отправляем его в LLM, 

→ LLM генерирует поисковые запросы, 

→ с ними идем в наш поиск,

→ выдаем клиенту релевантные товары. 

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

1. Реальные запросы

Чтобы получить реальные пользовательские запросы, мы протестировали LLM-решение на наших коллегах в Lamoda. Так у нас появилось много диалогов, и из них мы смогли извлечь различные интенты (намерения), с которыми клиенты потенциально могут прийти к ИИ-стилисту. 

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

Примеры того, что мы увидели: 

  • запросы конкретных товаров: «шорты багги», «джинсовые шорты», «молочные джинсы»,

  • запросы товаров со сложными атрибутами: «ремень цепочка», «шорты багги джинсовые», 

  • запросы, связанные с конкретными мероприятиями или событиями: «утро невесты», «образ на гендер-пати».

2. Синтетические запросы

Разнообразия реальных запросов нам не хватило, поэтому мы решили сгенерировать с помощью другой LLM дополнительный список интентов, с которыми к нам потенциально могут обратиться пользователи Lamoda.

Остановились на двухэтапной генерации:

а) Собрали список стилей, поводов (occasion), законодателей мод, и на их основе сгенерировали профайлы различных «синтетических» клиентов: указали гендер (men/women/boys/girls), возраст, профессию, увлечения, а также стиль общения и возможные интенты, с которыми каждый такой пользователь мог бы прийти на сайт Lamoda.

Пример описания персонажа:

Марина, 32 года, маркетолог в IT-компании, высокий доход, занимается йогой и пилатесом, любит путешествия по Азии, не замужем, увлекается фотографией.

Стиль общения:

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

Интенты:

«образ в стиле квайет лакшери», «йогакор аутфит», «деловой гардероб для офиса», «платье как у Уэнсдей», «образ для фотосессии», «кэжуал лук на выходные».

 б) Затем для этих персонажей мы сгенерировали эталонные ответы на их запросы. 

Пример №1: Образ в стиле Джеймса Бонда

Гендер: men

Поисковые запросы:

«черный смокинг приталенный»

«рубашка белая хлопок классическая»

«галстук черный шелк»

«туфли оксфорды черные кожа»

«наручные часы металл»

Пример №2: Quiet Luxury образ с платьем для презентации

Гендер: women

Поисковые запросы:

«платье миди черное шелк приталенное»

«жакет кремовый приталенный с пуговицами»

«туфли лодочки кремовые кожа»

«клатч черный кожа без декора»

«серьги золотистые минималистичные»

Выбор и обучение модели

Для обучения нашей LLM мы использовали видеокарту А100 на 80 Гб, в обучающей выборке было порядка 11 тысяч примеров. 

Все модели, с которыми мы провели эксперименты, можно разделить на два класса:

  • 4b и 8b — для них проводили файнтюнинг всех весов модели

  • 14b — обучали только LoRA-адаптер, rank = alpha = 384

Качество ответов оценивалось при помощи модели-судьи, в роли которой выступала GPT-4o. Оценка в диапазоне от 0 до 5 выставлялась по заранее определенным ключевым критериям.

Посмотрим на результаты сравнения:

Стартовый чекпоинт

Qwen3-14B-Base

RuadaptQwen3-4B-Instruct

QVikhr-3-4B-Instruct 

Qwen3-8B-Instruct

Qwen3-8B-Base

Qwen3-14B-Base 

Обучающая выборка

Диалоги 

Интенты 

Диалоги + Интенты 

Оценка G-eval 

3.958

3.989

4.090 

4.319

4.491

4.506

Какие выводы мы сделали:

1. Файнтюнинг под конкретную задачу позволяет уменьшить размер модели почти в 3,5 раза.

Это видно в сравнении первых двух моделей, обученных с чекпоинтов Qwen3-14B-Base и RuadaptQwen3-4B-Instruct: уменьшив количество параметров с 14 до 4 млрд и обучив мéньшую модель генерировать запросы на интентах, мы получили небольшой прирост в качестве. 

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

2. При старте обучения с Base-чекпоинта можно получить чуть более высокие метрики, чем при старте с Instruct-модели. 

Посмотрим на метрики моделей Qwen3-8B-Instruct и Qwen3-8B-Base: несмотря на то, что они обучались на абсолютно одинаковых диалогах, можно заметить статистически значимое превосходство модели, полученной из Base-чекпоинта.

3. При обучении моделей с одного чекпоинта наибольший прирост качества мы получили благодаря task-specific примерам.

К этому выводу можно прийти, если сравнить первый и последний столбец: в качестве стартового чекпоинта использовалась модель Qwen3-14B-Base. Но в первом случае в обучающей выборке используются только fashion-диалоги, а во втором к ним добавляются подборки на основе интентов, процесс генерации которых был описан выше. 

Сравниваем с готовыми решениями

При обучении собственной модели всегда хочется посмотреть на нее в сравнении с готовыми решениями — GPT-5 или большой open-source моделью. Мы протестировали несколько LLM, подав в них тот же системный промпт, который используем для нашей.

Посмотрим, что получилось (в качестве судьи использована GPT-4o).

Модель 

Qwen3-14B-Base

openai/gpt-oss-120B

t-tech/T-pro-it-2.0 32B

GPT-5 

Обучающая выборка

Диалоги + Интенты 

Без обучения (только системный промпт) 

Оценка G-eval 

4.506

3.778

4.139

4.458

Оказалось, что метрики на тестовой выборке для нашей 14-миллиардной модели сравнимы с GPT-5 — за счет того, что наша LLM заточена именно под fashion-задачу. У других тестируемых моделей метрики оказались значительно ниже. 

Делаем вывод, что обучение LLM на доменных знаниях существенно повышает качество ответов и позволяет использовать модели с небольшим количеством параметров.

Magic Search: примеры запросов

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

Попробуем ввести запрос, который в основном поиске приложения был проблемным кейсом с низкой конверсией — «шорты багги джинсовые». Здесь можно заметить, что Magic Search справляется с таким запросом и сразу предоставляет довольно широкий выбор.

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

И конечно, мы не могли обойти запрос образа в стиле Стетхема. На этот раз результат нас более чем устроил.

Архитектура решения 

Рассмотрим архитектуру нашего решения:

  • Сервис работает на базе бота в Telegram, куда клиент приходит со своим запросом.

  • Запрос обогащается системным промптом и поступает на vLLM-сервер с развернутой моделью.

  • Мы получаем поисковые запросы, которые отправляются в отдельный сервис для поиска товаров (SKU retrieval service). В ежедневно обновляемом индексе он находит подходящие товары.

  • Мы показываем эти товары клиенту в боте.

А так выглядит упрощенная схема:

2 этап. v1-агент: полноценный чат-бот

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

Для того, чтобы обучить такую LLM, нам понадобилось множество диалогов на  fashion-тематику. Мы искали их на известной открытой платформе Hugging Face, но там обнаружилось мало датасетов, лучший среди них — всего 3000 диалогов, которые сгенерированы GPT-3.5 на английском языке.

Поэтому решили самостоятельно генерировать синтетические диалоги, для чего написали отдельный фреймворк с двумя «собеседниками»: клиентом и стилистом. Роль клиента отыгрывает одна LLM, роль стилиста — другая. Процесс генерации одного диалога выглядит следующим образом:

  1. Мы получаем запрос от LLM-клиента: «Что надеть на вечеринку».

  2. LLM-стилист может задать уточняющий вопрос: «Нужен мужской или женский образ?» и дождаться ответа LLM-клиента.

  3. При переходе к шагу подбора товаров LLM-стилист вызывает инструмент поиска с подходящими поисковыми запросами и получает ответ — описание товаров с их индексацией в рамках диалога (пример: [0] платье; категория: женщинам — одежда — платья и сарафаны — платье; бренд: nume; …)

  4. Полученные товары описываются LLM-стилистом, и это сообщение отправляется LLM-клиенту.

  5. LLM-клиент может уточнить свой запрос: например, написать, что хочет что-то ярче, дороже, креативнее и так далее.

  6. Диалог продолжается до сходимости — пока LLM-клиент не сгенерирует специальный токен завершения беседы, описанный в его системной инструкции.

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

Функцию необходимо вызвать в момент, когда модель генерирует текст в специальном формате между служебными токенами <tool_call> и </tool_call> (актуально для Qwen-архитектур). 

Пример вызова функции:

<tool_call>{
"name": "get_retrieval",
"arguments": {
"gender": "men",
"queries": ["middle брюки треккинговые мужские серые",
        "middle кроссовки треккинговые мужские коричневые с протектором"]
}
}</tool_call>

Между служебными токенами заключается тело запроса к инструменту, а именно:

  • get_retrieval — название инструмента, к которому обращается модель,

  • gender — раздел каталога (men, women, boys, girls) — LLM понимает, какой аргумент проставить исходя из контекста в рамках диалога,

  • queries — список поисковых запросов с указанием ценового сегмента для дополнительной фильтрации (economy, middle и premium).

Пример запроса в чат-боте:

Архитектура модели для поиска товаров

Модель для поиска товаров по сложным запросам имеет двухбашенную архитектуру с двумя эмбеддерами — для товара (SKU) и для запроса (query). Картиночный энкодер модели используется для получения эмбеддинга изображения товара, а текстовый энкодер кастомной CLIP-модели для fashion-домена — для получения эмбеддинга текстового описания. Полученные эмбеддинги конкатенируются, прогоняются через еще один слой, и мы получаем эмбеддинг товара. Эмбеддинг запроса получается при помощи того же текстового энкодера с добавлением поверх него обучаемого слоя. В идеальном сценарии векторное представление любого поискового запроса должно быть максимально близко к векторным представлениям релевантных товаров.

Обучающая выборка состояла из двух частей:

  • пара «реальный запрос - товар» на основе добавлений в корзину,

  • пара «синтетический запрос - товар», полученные при помощи проприетарной LLM. 

Всего в обучающей выборке было 843 тысячи товаров. При контрастивном обучении мы использовали функцию потерь Circle Loss. Полученная модель успешно прошла тест в основном поиске.

О том, как мы оценивали качество модели, расскажу ниже, а пока посмотрим на новый этап ее развития.

3 этап. Где теперь живет ИИ-стилист

В конце декабря 2025 года мы перенесли чат-бот из Telegram в приложение Lamoda. Он вошел в экосистему «Г(ии)д по стилю», носит название ИИ-стилиста и доступен с главной страницы.

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

В первом квартале 2026 года мы внесли несколько полезных обновлений:

  • Добавили праздничные интенты: сценарии подбора подарков и образов на особые события.

  • Ускорили генерацию: оптимизировали системную инструкцию и изменили формат сообщений с описанием подборки.

  • Уменьшили нагрузку на поиск: стали кэшировать выдачу по старым запросам в рамках диалога и отправлять только новые поисковые запросы.

  • Сделали шаг к обновлению визуала: LLM уже научилась генерировать флаг «образ/не образ», а скоро различное отображение таких подборок будет реализовано в приложении.

Оценка качества

Опишу, как мы оцениваем работу модели в метриках.

  • Оффлайн-оценка осуществляется моделью-судьей на отложенной выборке.

  • В каждом диалоге отдельно оценивается каждый ответ LLM-стилиста.

  • Оценка проходит по 28 критериям, расположенным в порядке убывания критичности.

  • Каждая оценка лежит в диапазоне от 0 до 5, где 0 — это критическая ошибка, связанная с безопасностью ответа или техническими проблемами обработки, а 5 — идеальный ответ. Финальная оценка — это среднее по всем ответам.

Сравним три наши версии. Здесь New — это оптимизированный промпт, а Old — бот для версии в Telegram.

Модель

Модель-учитель

Модель 2025 Q3

Модель 2025 Q3

Модель 2026 Q1

Системный промпт

New 

Old

New

New

Оценка LLM-as-a-Judge

4.358

3.368

4.242

4.347

Видим, что при переходе на оптимизированный системный промпт мы получили существенный прирост метрики. Менее существенный, но также заметный и значимый рост мы получаем и за счет дообучения модели на новых fashion-диалогах. 

Вместе оба подхода позволяют нам максимально приблизить качество ответов модели к качеству модели-учителя. В нашем узком fashion-домене это позволяет «переложить» почти все знания модели-учителя GLM-4.5 от Z.AI в модель всего на 8 млрд параметров. Это позволяет разворачивать такие модели даже на партиции видеокарты и, тем самым, упрощает масштабирование.

Планы и дальнейшие шаги

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

1. Качество подбора

  • Обучение чувству стиля: использование образов от стилистов в обучающей выборке

Модель для первых запусков была обучена на синтетических диалогах, сгенерированных LLM-стилистом, из-за чего все знания о мире моды и о сочетаниях товаров были унаследованы также от LLM-учителя, а она не специализируется в fashion. Чтобы сделать подборки более стильными, мы добавили в обучение диалоги на основе образов из каталога Lamoda, которые были размечены реальным стилистом под различные интенты. 

  • База знаний о моде

Сейчас модель знает о моде только то, что в нее заложено на этапе претрейна и SFT. Но тренды меняются быстро, и знания устаревают. Получить новые данные возможно только через дообучение модели.

Альтернативный подход — разработка обновляемой базы fashion-экспертизы, к которой LLM будет обращаться, если потребуется более глубокий анализ в контексте моды и трендов.

2. Персонализация

  • Переход к использованию гибридного поиска

На текущий момент товары для LLM-стилиста ищет отдельная модель-ретривер, которая хорошо справляется со сложными запросами, но не учитывает персональные предпочтения клиентов на основе их действий на сайте и в приложении. В целевой архитектуре инструментом поиска для LLM станет основной поиск Lamoda, в котором будут заложены знания модели-ретривера.

  • Реализация долгосрочной памяти: максимальный уровень персонализации

Зачастую пользователи в ходе диалога рассказывают о своих предпочтениях и стиле жизни намного больше, чем мы знаем о них на основе действий на Lamoda. Это приводит к логичной идее — реализовать механизм долгосрочной памяти, который позволит сделать рекомендации от LLM-стилиста максимально персонализированными.

3. Новые сценарии

  • Обучение VLM — учет мультимодальных входных данных

Добавление визуальной компоненты позволит расширить спектр задач для ИИ-стилиста: он сможет учитывать цветотип пользователя, его тип фигуры, проводить детальный анализ гардероба. На текущий момент уже обучен VLM-стилист в LoRA сетапе, мы активно прорабатываем наиболее релевантные продуктовые сценарии.

  • Переход к агентской архитектуре: новые инструменты в арсенале бота

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

Заключение

Мы прошли путь от идеи до работающего продукта в приложении примерно за полгода. Выбор собственного решения оказался оправданным, а узость fashion-домена не стала ограничением — так мы смогли использовать компактную модель и упростить масштабирование.

По данным на 20 марта 2026 года, к ИИ-стилисту обратились 292 тысяч уникальных пользователей, и он обработал 1,45 млн сообщений. 62% запросов конвертируются в клик на карточку товара, 7% — в добавление в корзину.

Теперь вы узнали больше о том, как работает ИИ-стилист в Lamoda. Если есть вопросы, задавайте их в комментариях.

Спасибо за внимание!