Доска AI-объявлений


Channel's geo and language: Russia, Russian
Category: Technologies


Это не душный, а душевный канал про Data Science в Авито. Пишем о том, что у нас происходит, про ML, вакансии, мероприятия.

Related channels

Channel's geo and language
Russia, Russian
Statistics
Posts filter


Самое время написать про Jev!

На связи Данила Бочарников, DS-инженер команды поискового ранжирования в Авито. Сегодня разбираем модель от TypeSafe AI для быстрых решений внутри кода.

➡️ Что умеет Jev. Во многих задачах от модели нужно определить категорию запроса, оценить релевантность документа или выбрать следующий шаг агента.

Под такие сценарии TypeSafe разработала Jev. На вход модель получает контекст и вопросы, на выходе возвращает ответы и вероятности.
В API доступно три варианта:
— Choice позволяет выбрать вариант из заданного списка.
— Score позволяет поставить оценку по заданной шкале.
— Noul позволяет оценить вероятность того, что утверждение верно.

Несколько вопросов можно отправить одним запросом. Они обрабатываются параллельно и независимо на общем контексте. Подробнее в документации →

➡️ Технические нюансы. Для обучения используется RLCD (Reinforcement Learning for Calibrated Decisions). Модель учат выдавать решения с калиброванными вероятностями.

Идея знакома по классическому ML. Среди событий с предсказанной вероятностью 0.8 примерно 80% должны происходить.

Это позволяет задавать в коде пороги для автоматического действия или передачи задачи на проверку. При этом калибровка не гарантирует правильность отдельного ответа.

Как устроен RLCD →

➡️ Результаты и стоимость. В собственных тестах TypeSafe на четырёх сценариях автоматизации среднее время выполнения составило около 0.4 секунды у Jev против 78.1 секунды у Claude Sonnet 5. Разница примерно в 200 раз.

Полное совпадение итоговых наборов действий с эталоном у обеих моделей составило 67.8%. К результатам → 

Текущая цена Jev составляет $0.042 за миллион входных токенов, выход бесплатный. К тарифам → 

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

Захотелось попробовать Jev у себя?
🔥 Да, уже есть идеи
🤔 Пока не вижу подходящих задач

Кстати, коллеги уже недавно рассказали о результатах на реальной задаче в другом посте. Если тоже есть опыт, можно поделиться в комментариях ↓


Расскажу про программу Team Get Together (TGT) в Авито. Она предназначена для сотрудников, которые работают в распределённых командах и живут в разных городах.

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

Я живу в Нижнем Новгороде, основная часть команды находится в Москве, поэтому несколько раз в год я приезжаю туда на неделю, чтобы пообщаться с командой вживую, поработать и провести время в неформальной обстановке:
→ Перед Новым годом приезжаю с ребенком на детский праздник, который Авито устраивает для сотрудников и их детей, и совмещаю его с TGT.
→ Летом приезжаю на корпоратив, который обычно получается совместить с DS-выездом и тимбилдингом.
→ Весной и осенью, если на TGT собирается большая часть команды 🙂

Этим летом на DS-выезд я, к сожалению, приехать не смог. Зато мы с командой сходили поиграть в бильярд, а на следующий день в Лужниках у нас был корпоратив Avito Summer Vibe. Играли в настольный футбол, смотрели, как бывшие игроки сборной России Павлюченко и Кудряшов играют вместе с нашими футбольными командами, общались, а в завершение вечера послушали «Комнату культуры».

Ещё я встретился и поговорил с коллегами из команд, в которых работал раньше (онлайн мы почти не общаемся).

Если вы, как и я, работаете на удалёнке, то как в вашей компании проходят встречи с командой? Делитесь в комментариях.


Статьи для инженеров, которые работают с монетизацией и рекламой
 
В одном из прошлых постов я рассказывала про наши приключения по пути до KDD'26 😀 А сегодня делюсь подборкой статей с конференции. Думаю, они будут полезны для решения задач, связанных с обучением CTR/CR и моделей для монетизации.

📌 Статья про корректировку ставки с учётом ценности выдачи. Авторы рассматривают изменение ставки CPC продавцов, которые платят за клик, в зависимости от конверсии выдачи в контакт. При этом эта доп. корректировка в среднем должна сходиться к 1, чтобы продавец не рассматривал это как повышение цен. 

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

🤓 Почему полезно: это чисто наша постановка модели Bid Correction! Они буквально описывают проблемы, с которыми мы сталкиваемся, например, проблему холодного старта. 

Да и в целом статей про Bid Correction немного, так что, возможно, когда-нибудь и мы напишем свой текст по результатам разработок 😀 

Dynamic Bidding for Sponsored Products: Value-Based Bid Scaling with Per-SKU Normalization


📌 Текст про подход к обучению CTR, в котором учитывают влияние позиции на скоры модели. Конверсия из показа в клик зависит от позиции. При этом на этапе инференса позиция ещё не известна. 

Предлагается добавить к базовой CTR-модели головы, которые будут предсказывать скоры для бакетов позиций: например, одна голова для первой позиции, другая — для 2-5, третья — для 6-10, и т.д. 

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

🤓 Почему полезно: это интересный подход к решению positional bias для CTR-моделей. Мы сейчас также исследуем разные способы вычитания эффекта позиции, и этот способ тоже стоит попробовать! 

CADET: Context-Conditioned Ads CTR Prediction With a Decoder-Only Transformer


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

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

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

🤓 Почему полезно: мы думаем не только о том, чтобы обучить как можно более качественные модели, но ещё и хотим на этапе офлайн-обучения принимать качественные решения про влияние на бизнес-метрики.

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

A Unified Approach to Interpretable Causal Root Cause Attribution


Делитесь своими статейными находками последних дней ❤️


Почти 40% ручных проверок в модерации Авито приходились на дубли. И некоторые из них — настоящая головоломка даже для опытного модератора.

Привет! Я Баяр Пак, DS-инженер в Автоматической модерации. Расскажу, как и зачем мы учим LLM находить дубли и как с нашей задачей справился хайповый Jev.

➡️ Условный пример. Две вакансии мерчандайзера, в которых всё идентично, кроме одного: во второй за +4 000 ₽/мес нужно ещё разгружать грузовики с товаром. Будем ли считать эти вакансии дублями? А если вместо уточнения про грузовики будет дополнительная обязанность «красиво раскладывать товар», и зарплата будет та же?

Интуитивно кажется, что в одном случае нужна объективно крепкая спина, а в другом — очень субъективное чувство прекрасного.

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

➡️ Как пробовали решать: ручной и автоматический промптинг и обучение адаптеров к LLM.

В отличие от многих других нарушений, с дублями промптинг, ни ручной, ни автоматический, нужного качества не дал: слишком специфичная и сложная проверка. 

А вот SFT с LoRA-адаптером даёт заметный прирост. Для небольшой Qwen3-VL-8B это +11–20% к качеству и выход на уровень ручных модераторов, а для более крупной Qwen3.5-35B до +30%.

➡️ А что Jev? Уже вторую неделю весь интернет трубит о Jev и его невероятной крутости, и мы не смогли остаться в стороне. Взяли небольшую тестовую выборку и сравнили Jev с нашими продовыми подходами.

Что получилось:
🔍 Jev оказался лучше ванильной Qwen3-VL-8B примерно на 14% по качеству.

🔍 С ванильной Qwen3.5-35B-A3B он шёл фактически вровень, разница меньше процента.

🔍 А вот наша 8B с адаптером оказалась лучше Jev почти на 30%.

Небольшая модель, дообученная под конкретную задачу, пока уверенно бьёт хайповую новинку из коробки. Что, в целом, вполне естественно. А вот само качество Jev по сравнению с ванильными LLM приятно удивило. Ждём хороший опенсорс!


Заглядывайте к нам за кулисы — показываем, как прошла закрытая встреча комьюнити DS-инженеров. В этот раз собирались вместе с коллегами из других компаний: объединялись по интересам, много нетворкали и играли в квиз.

Расскажите, пошли бы на такой ивент без профессиональной повестки, только для нетворка?)

Пишите ответ в комменты или голосуйте реакциями:
👍 конечно, интересно ж пообщаться!
🌚 нет, я на такие встречи не хожу


Встретимся 7 октября на Avito DS Meetup?
Собрали доклады про RL, AI-агентов и BidCorrection — с продуктовыми задачами внутри.

🔍 RL для Авито | Булат Шарипов
Булат расскажет про полный цикл обучения собственных языковых моделей: адаптация под русский язык, алаймент, GRPO/DAPO/GSPO и трудности агентского RL.

🔍 Как повысить качество трафика для продавцов, которые платят за клики | Владислав Воробьев, Авито
Влад поделится, как BidCorrection учится оценивать относительную ценность входящего трафика и учитывать её в ранжировании.

Обсудим необычную постановку задачи: изменить состав трафика, сохраняя среднюю поправку объявления около единицы. Разберём, как обучить такую модель и проверить, что её применение приносит пользу.

🔍 Что на самом деле нужно делать AI-инженеру, чтобы автоматизировать процессы агентами | Всеволод Викулин, Т-Банк
Узнаете, как выбирать процессы для автоматизации, от чего отказаться и на чём фокусироваться. Плюс про команду, роли и ответственность.

Приходите слушать доклады, общаться с DS-сообществом. А ещё искать пасхалки, которые мы для вас спрятали 😉

📆 7 октября, начало в 18:30

Количество офлайн-мест ограничено ➡️регистрация обязательна⬅️


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

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

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

Угадайте, что могло пойти не так (спойлер: всё).

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

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

Отсюда первый вывод: guardrail закладывается в дизайн первой итерации, а не добавляется после жалоб.


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

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

Месяц гипотез, и механизм нашёлся в самом пороге: механика давала тестовым объявлениям больше показов, показы портили их поведенческие счётчики, модель конверсии честно занижала предикт, и тестовые объявления выпадали на пороге, который мы ввели ради качества. Модель права, счётчики правы, но всё ломает общий порог.

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


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

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


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

Для них каждый наш тест был всплеском трафика, а каждое выключение — падением ниже, чем было до, потому что смещение в счётчиках вымывается неделями.

В итоге, получилось так, что одна вертикаль требовала ленту не раскатывать, другая — раскатить обратно.

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


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

А теперь к вам: какие из ошибок уже испытали на своей шкуре?) Голосуйте реакциями: 

🔥 — guardrail задним числом
🤯 — feedback loop через счётчики
😁 — тест, который не измеряет то, ради чего запущен 
😭 — откат оказался хуже самого теста

И расскажите в комментариях, как ищете оптимальное соотношение между релевантностью для пользователя и выручкой компании — интересно сравнить)




Video is unavailable for watching
Show in Telegram
А с чего всё начиналось у вас?
С первой программы на Паскале? С пиксельных игр на старом компьютере? С «А что будет, если нажать сюда?» — и внезапно сломанной винды?

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

Если захотелось ещё сильнее погрузиться в ностальгию, заходите в эмулятор 2006 года будущего разработчика.

🤩 В интерфейсе Windows XP можно поиграть в олдскульные игры и поугадывать фильмы в викторинах. Лутайте баллы, поднимайтесь в рейтинге и получайте не виртуальные призы. 

Всех ждём XD

P.S. Эмулятор реально олдскульный, поэтому для старта на телефоне тапните по экрану, а на компе жмите два раза на левую кнопку мыши.


Летний сезон митапов всё, но впереди ещё много конференций и поводов встретиться.

Собрали небольшой дайджест событий до конца года — сохраняйте 👇

Все конференции из списка проходят офлайн в Москве и онлайн.


🖥 E-CODE | 12–13 сентября

*️⃣ Practical ML Conf | 19 сентября

☄️ Avito.Tech.Conf | 26 сентября

👨‍💻 AI Cases Conf | 19 октября

🤖 AI Native Conf | 20 октября

💬 Conversations | 2 декабря

И это ещё не всё! Совсем скоро придём с анонсом ещё одного нашего митапа, который пройдёт 7 октября. Сохраняйте дату 🗂


Делитесь, куда пойдёте, и пишите, какие конференции забыли упомянуть?


В связи с этим вопрос: а вы заметили, что работа стала более интеллектуально плотной и требующей более частого принятия решений?
Poll
  •   👍 Однозначно!
  •   🥱 Устаю сильнее, но сомневаюсь, что дело в количестве принимаемых решений
  •   🧑‍💻 Вообще не вижу изменений
  •   ⚡ Наоборот — AI разгрузил мой мозг
  •   🤷 Не использую агентов так часто, чтобы заметить разницу
19 votes


Народ, привет! С вами снова Андрей — DS инженер в команде горизонтальных технологий Авито.

Последние два года я активно пользуюсь кодинг-агентами: начинал с GitHub Copilot и через Cursor пришёл к Claude Code и Codex. И с каждым днём у меня усиливается ощущение, что работа становится всё более интеллектуально плотной.

Что я имею в виду. Раньше, в доагентскую эпоху 🦕, фича-цикл был растянут: придумать, как реализовать некую функциональность → зафиксировать принятые решения → пару дней на чилле писать код 🍸

Сейчас, по моему личному ощущению, цикл сократился радикально: обсудил с агентом варианты реализации → агент за 2 минуты обновил документацию → агент за 3–5 минут реализовал функциональность → я рецензирую код и документацию перед pull request. В итоге за один рабочий день приходится делать десятки выборов и вычитывать сотни строк сгенерированного кода и документации.

С одной стороны: «Вау! Я за один день могу сделать гораздо больше!». Но с другой — в конце дня одна мысль в голове: «Я устал как ишак и мозга достаточно только для очередного детектива Донцовой или сериала на России 1» (о каком небезызвестном сериале идёт речь, угадайте по набору эмодзиков 🍎🧍🧍🏃🏼‍♀️ 💨😢📣)


19 сентября на конференции выступят сразу два эксперта Авито ✏️

В 14:50 в зале «Данные» Дмитрий Веснин расскажет, как мы развивали трансформерный item-энкодер в рекомендательной модели: заменили DCN трансформерной архитектурой, стабилизировали обучение и реализовали собственный self-attention на Triton.

В 15:30 Анастасия Рысьмятова поучаствует в дискуссии про AI-агентов. Участники обсудят, в каких сценариях агенты уже приносят измеримую пользу, а где пока остаются эффектными демками.

Где и когда
📍 Москва и онлайн
📅 19 сентября

Программа и регистрация — по ссылке.


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

Ответы в карточках ⬆️

Вы тоже можете попасть к нам: переходите на страницу стажировок и подписывайтесь на анонсы!



15 last posts shown.