ML Underhood
3.46K subscribers
206 photos
27 videos
103 links
Рассказываем, чем живёт ML в Яндексе, и обсуждаем важные новости индустрии.

Вопросы и предложения > @yandex_ml_brand
Download Telegram
POV: вы пережили открытие RecSys 2025 и вернулись туда на следующий день

Продолжаем рассказывать, как проходит RecSys 2025 — девятая международная конференция о рекомендательных системах в Праге. В предыдущих сериях: TL;DR интересных статей и суммаризация воркшопов в Рекомендательной, а также таймлайн первого дня от Ивана Романова, нашего коллеги из Яндекс Вертикалей. Сегодня снова передадим слово Ивану: попросили его поделиться впечатлениями о втором дне конференции.

От второго дня конференции (он же первый «основной») у меня были заниженные ожидания: по опыту прошлых RecSys, сильнее всего запоминаются открывающий и закрывающий дни, когда в расписании есть воркшопы. Но всё оказалось лучше, чем я рассчитывал!

В аудитории с постерами постоянно бурлили интересные дискуссии. Мои коллеги, авторы работы Correcting the LogQ Correction, до последнего не снимали постер в ожидании Xinyang Yi, автора оригинальной статьи с LogQ. У меня тоже есть свои кумиры: повезло не только пообщаться с ребятами из Pinterest, но и задать вопросы одному из авторов статьи про PinFM.

Абсолютным фаворитом этого дня для меня стал постер от Amazon Music: Off-Policy Evaluation of Candidate Generators in Two-Stage Recommender Systems. Если коротко, авторы попытались замерить качество кандидатогенерации. Делать это на текущих пользовательских логах, на которые воздействует текущий КГ, неправильно из-за sample bias. А держать бесконечный рандомный сбор даже на 1% трафика — дорого. На помощь приходит off-policy evaluation: оценка политики на основе данных, собранных другой политикой.

Чисто академическая статья, в которой, как мне кажется, есть интересное направление работы с diversity: D-RDW. Diversity-Driven Random Walks. Авторы показывают алгоритм, который случайно ходит по сети «читатели — новости», выбирает материалы и проверяет, чтобы итоговый набор новостей соответствовал некоторым правилам баланса. Если соответствия нет — он подбирает другой набор, пока не получится нужная комбинация. Алгоритм сравнивают с MMR, на пальцах звучит прикольно — планирую закопаться и проверить.

Масштаб RecSys в этом году поражает. Слушать доклады можно не отходя от буфета (поймал на фото одного из звукорежиссёров), появилась комната для детей. Русскоговорящих на конференции много: в одном только чатике уже около 60 человек. А я познакомился с профессором из University of Pittsburgh, который закончил МГУ больше 30 лет назад.

Несколько инсайтов напоследок:

🔴В Google первые скрипты трейнов LLM переподнимали вручную в случае инцидентов ночью (когда обучение уходило в NaN/стопалось и т.п.) — после приняли решение вознаградить за это всех неравнодушных.
🔴Очень сложно есть и говорить на английском одновременно, это какой-то отдельный скилл. Присоединился на обеде к ребятам из IKEA и Telegraph, приходилось очень часто их переспрашивать.
🔴В IKEA и Telegraph сейчас используют только implicit feedback, хотя explicit тоже есть и такие действия уже логируются. А ещё ребята были очень удивлены размером Yambda-датасета и тем, как мы справляемся с обработкой таких объёмов данных, да ещё и с доказательством целесообразности скейла.


ML Underhood
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3👍1😁1
Третий день RecSys 2025: индустриальный трек

Конкуренция на индустриальном треке растёт: +104% сабмитов к предыдущему году. Всё, что выделил из этого многообразия работ Иван Романов, — читайте ниже.

Всё чаще звучало слово latency. Даже keynote оказался практичным: Jure Leskovec (именитый профессор из Стэнфорда) прорекламировал свой стартап Kumo — AutoML на графовых нейросетях с SQL-подобным языком для fit-predict по таблицам. Мне запомнился «наброс», что существует опенсорс-решение (CARTE: Pretraining and Transfer for Tabular Learning), которое из коробки даёт аналогичные результаты.

Следующая статья зацепила названием — User Long-Term Multi-Interest Retrieval Model for Recommendation. В качестве MLA-ментора предстоит «забустить» одну рексистему с помощью long-term-интересов. Явно разделяют долгосрочное и краткосрочное поведение пользователя и на вход долгосрочного энкодера передают в качестве query (как в encoder-decoder) выход краткосрочного. Обучают на два лосса. Кстати, заметен общий тренд: почти в каждой индустриальной статье используют несколько лоссов.

Не менее полезная статья — Zero-shot Cross-domain Knowledge Distillation: A Case Study on YouTube Music. Проблема: нужно запустить рексистему с нуля (YouTube Music), но уже есть готовая (на главной YouTube) с пересечением по фичам. Решение: переиспользовать веса, добавить спецтокены для новых фичей и дистиллировать артефакты от старой модели. Да, есть элемент overengineering, но главное — в индустрии начинают трогать cross-domain, и результаты уже позитивные.

Похожую проблему решают ребята из академии — LM-RecG: A Semantic Bias-Aware Framework for Zero-Shot Sequential Recommendation. Деталей в статье намного больше, но трудно сказать, что из этого работает (на академических датасетах буст настолько большой, что верится с трудом).

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

«Внебрачное дитя» европейских регуляций и Google — Cross-Batch Aggregation for Streaming Learning from Label Proportions in Industrial-Scale Recommendation Systems. Нельзя однозначно определить связь user-item, поэтому используют трюк из Learning from Label Proportions. Автор признал, что не знал о такой задаче до написания статьи, но был рад, что «поле уже немного пропахано».

Scaling Generative Recommendations with Context Parallelism on Hierarchical Sequential Transducers: инженерное ускорение HSTU (AllGather меняют на AllToAll, кастомные Triton-кернелы, jagged tensors — аналог NestedTensor из PyTorch в TorchRec). Около постера никого не было, визуализации классные, но темой вокруг особо не интересовались, хотя ускорение достойное — x5.

T2ARec: The Proposed Method — по метрикам отлично, но пугает SSM (state space model). Основное улучшение достигается через test-time alignment (во время теста модели выполняется градиентный спуск по двум вспомогательным задачам: сопоставление временных интервалов пользователей и сопоставление previous state с current state представления).


В конце дня был «званый ужин», на котором Иван успел посидеть за тремя русскоговорящими столами и вынести кое-какие инсайты:

— По ощущениям 2/3 участников используют GPT-интерфейс (VSCode, Cursor, либо разделённый экран: с одной стороны Jupyter Notebook, с другой — Perplexity/Gemini).

— У самого в квартальных целях — порешать эту проблему, так что, наверное, я biased, но повсюду говорят о холодном старте.

— С Сашей Петровым (gSASRec) обсуждали формулу хорошей статьи. Я уточнил, не обидится ли он на фидбек, что «читается просто». Его ответ порадовал: «Чем проще читается статья, тем сложнее её было писать».


ML Underhood
9🔥7👍4
Как YandexGPT научили размечать тикеты и экономить время разработчиков

DutyGPT — классификатор на базе YandexGPT 5 Lite в Яндекс Облаке, который по тексту тикета в трекере предсказывает, какой команде его логичнее всего передать. Раньше разработчики читали каждый тикет, сверялись с таблицами зон ответственности и вручную проставляли компоненты. У одного человека на это уходило до 25 часов в месяц, без учёта времени на исправление ошибок маршрутизации.

Техлид разработки общих AI-решений в Райдтехе Василий Дмитриев рассказал об инструменте, который освободил сотрудников от рутинной задачи.

Всё работает в реальном времени: как только в трекере создаётся тикет, автоматический триггер отправляет его содержимое в DutyGPT. Текст уезжает в дообученную модель, и мы получаем предсказание — команду и вероятность. Модель сама пишет в карточке комментарий вида «предсказываю такую-то команду с такой-то вероятностью» и проставляет нужную компоненту.

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

Как происходит обучение

Перед запуском рассматривался вариант обучения без файнтюна — условный zero/few-shot на «голом» LLM. Но в проде его не пробовали: чтобы это работало, модель нужно кормить подробными описаниями зон ответственности каждой команды, а это десятки сущностей (в одной группе — ~30, а, например, в Доставке — 50+). Нужна постоянная ручная поддержка актуальности. Поэтому пошли путём дообучения под нужные домены.

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

Дособрали данных — подскочили до 69% и задумались, много это или мало. Померили человеческую точность на этом же процессе и получили около 70%. Фактически модель уже размечала «как человек» — с этим результатом и решили выкатываться. Ну а дальше заработал автоматический сбор правильных и неправильных кейсов. Менее чем за год дошли до стабильных 75%+ по организациям, а в некоторых командах — до ~80%.

Важно понимать, что 100% никогда не будет, потому что у команд появляются новые зоны ответственности, и модель нужно постоянно переобучать. Но дойти до 85–90% — реальная цель (по всем командам).

У проекта есть отдельная доска для контроля качества разметки, и когда на ней видна деградация (модели без дообучения закономерно «плывут»), вручную запускается новый цикл обучения: собираются свежие тикеты по конкретным командам и обновляется датасет. Ближайший план — автоматизировать этот контур, чтобы переобучение происходило самостоятельно, примерно раз в месяц.

Результаты

С марта 2024 DutyGPT сэкономил ~1000 часов у разработчиков на разметке тикетов. С момента запуска к автоматической разметке присоединились порядка 89 команд.

ML Underhood
🔥269🐳6
Как устроена первая Нейроредакция в Яндексе

В 2023 редакция ПромоСтраниц, выросшая из Дзена, начала эксперименты с LLM в написании лонгридов для клиентов. Первый нейротекст о пляжах Турции команда выпустила в апреле. Примерно тогда же команда собрала фреймворк «Барсук» — с промптами для каждого этапа работы от брифа до финальной версии.

Дальше редакция стала оптимизировать процесс:

— Сделали макрос на базе «Барсука», в который загружается бриф от клиента и тема, а дальше автоматически формируются нужные промпты.

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

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


ИИ-редактор внутри кабинета

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

Размножатор. Рекламодатель или нейросеть создают описание продукта; выделяются аудитории, которым он может быть интересен и для каждого сегмента подбираются потребности, которые нужно обыграть в тексте. Пишется исходная статья, которая потом рерайтится под разные ЦА. Описание продукта остаётся тем же, но сценарии, акценты и подача меняются.

Улучшатор. Работает со стилистикой, помогает убрать воду, упростить, переформулировать заголовки, добавить конкретику, написать призыв к действию; можно применить как ко всему тексту, так и к фрагменту.

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

Результаты

За время существования Нейроредакция выпустила 1196 нейростатей, и многие из них показали метрики лучше человеческих. Ещё несколько цифр:

— 1–2 часа вместо 8 на производство текста;
— х2 текстов при том же бюджете;
— +80 млн рублей за счёт экспресс-запусков.

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

Обычный флоу работы выглядит так:
— до 5 рабочих дней на темы и планы статей; до 8 рабочих дней на написание, в среднем пакет включает 5 текстов.
Дорогой пакет под экспресс-запуск:
— 10 текстов за 5 рабочих дней.

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

ML Underhood
9🔥5🗿4🎉3👍2👎2😁1💯1🫡1
Это отложенное сообщение: читайте, как прошло открытие EMNLP 2025, пока мы отсыпаемся и готовимся к новому дню

В этом году Conference on Empirical Methods in Natural Language Processing (или просто EMNLP) проходит в Сучжоу.

Скоро расскажем, какие статьи привезли в Китай наши коллеги и что интересного они узнали. А пока делимся несколькими кадрами с открытия и велком-ужина. В главных ролях: Екатерина Еникеева, Владислав Негодин, Николай Карпачёв, Александр Шишеня, плюшевая панда и постер #53.

ML Underhood
13🥰3👏3👍2🔥1🤩1