Доска AI-объявлений
3.72K subscribers
270 photos
4 videos
140 links
Это не душный, а душевный канал про Data Science в Авито. Пишем о том, что у нас происходит, про ML, вакансии, мероприятия.
Download Telegram
Live с Practical ML🚀

Ходили послушать и поддержать Антона Семенистого, выступавшего с докладом про DL CTR модели в поиске. Более того, у Антона сегодня день рождения.

Антон, поздравляем тебя и желаем плодотворной творческой работы и успехов! 🎉
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29🎉53👍1🤪1
Привет! Я Сергей Кляхандлер, техлид в команде LLM Авито. Мы с коллегами продолжаем разрабатывать мультимодальную модель для улучшения поисковой выдачи на платформе. В прошлом году научили её создавать автоописания для объявлений, чтобы упростить жизнь продавцам.

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

Как теперь обстоят дела с автоописанием
1️⃣ Научили модель анализировать все фото из объявления, а не только одно. Теперь она предлагает более полные и точные тексты.

2️⃣ Избавились от излишней «сухости» в описаниях. Они стали живее и понятнее, при этом информативность осталась на прежнем высоком уровне.

🎉 Результат: +5.7% к использованию сервиса, а продавцы на 10.8% чаще получают подходящий текст с первого раза.

Что мы придумали ещё
Ещё один проект инициировала команда Поиска. Вместе с командой LLM, в нём участвовала инженер Камила Алибаева и тимлид — Илья Валяев.

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

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

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


🎉 Результат: покупатели стали видеть на 22% больше релевантных объявлений, а количество уникальных пар «покупатель-продавец» выросло на 0.8%.

Подробный разбор с техническими деталями и цифрами читайте в моей статье на Хабре.

А если у вас есть идеи, что ещё можно улучшить — welcome в комментарии! 👇
🔥20👍6
👋 Всем привет! DataFest давно прошёл, а мы ничего не показали! Исправляемся. Отобрали 10 докладов и оставили ссылки на них в одном месте, чтобы вам не искать. Читайте описания и выбирайте интересные выступления.

Вот что можно посмотреть:

👉 Какие LLM уже разработали наши инженеры.
👉 Как мы интегрируем нейросети в продукты и рабочие процессы.
👉 Как применяем ML.
👉 Как стажируются и растут DS-инженеры в Авито.
👉 Бонус: открытый диалог мастеров по Kaggle о том, какие мифы существуют вокруг соревновательного ML.

Заходите в статью и выбирайте интересные доклады

Приятного просмотра 🙂
🔥12👍5🤝1
👀 На горизонте видна возможность интересной работы 👀

Если вы DS-инженер уровня middle+ и хотите работать в бигтехе — то приглашаем на осенний Weekend Offer в Авито. Сможете пройти все HR-этапы в ускоренном режиме и получите возможность дойти до оффера.

Что получите, если придёте на WO:
✔️ Обратную связь от команд сразу после собеседования.
✔️ Вероятность оффера через два дня после первого интервью.
✔️ Возможность попробовать себя в разных командах.

Что мы ждём от участников:
📌 Не менее трёх лет опыта в Data Science.
📌 Стек — NLP или классический ML.

Почему у нас классно:
Авито — большой продукт, которым пользуется каждый третий житель России. У нас развитая инфраструктура для разработки и обучения LLM, современные технические решения и, конечно, все айтишные плюшки: мощное железо, отличный офис или удалёнка, дополнительные дни отпуска.

→ Регистрируйтесь на мероприятие и отправляйте свои анкеты до 10 октября
👍117👀1
Всем привет! Меня зовут Алина, я DS Team Lead команды Auction Efficiency. В посте расскажу, почему хожу на профильные конференции, но сначала немного про мою команду 😇

В Авито продавцы платят за разные целевые действия: клики, сделки, звонки. Мы также хотим учитывать этот потенциал за оплату разных действий в поиске и рекомендациях — для этого рассчитываем монетизационный фактор. За его качество наша команда и отвечает.

Для оценки этого фактора мы используем ML-модели предсказаний целевых действий. Сейчас это catboost, но мы активно смотрим в сторону DL-моделей. И чтобы понимать, какие подходы есть сейчас и как они работают, мы не только читаем статьи, но и ходим на конференции.

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

На конференции можно ходить, чтобы поддерживать коллег. Выступать всегда немного волнительно, особенно в первый раз. Поэтому приятно, когда в зале есть знакомые лица. Например, мы недавно ходили на Practical ML — поддерживали Антона Семенистого. Он рассказывал про DL CTR.

Ещё на таких мероприятиях можно в неформальной обстановке наладить контакт, а потом узнать подробнее про устройство бизнеса и команды. Например, на Practical ML мы слушали доклад про модель Argus, которая актуальна и для Авито, и, конечно, поболтали с ребятами из других компаний.

Ещё я как-то выигрывала два промокода в Лавку, управляя птичкой, а потом узнала, как команда Яндекс Плюс выбирает кешбэки для покупателей 😁

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

А за что вы любите или не любите конференции?
175🔥4
Собеседование в прямом эфире: ML system design
13 октября | 18:30 мск

Что будет на стриме:
1️⃣ Разберём ML system design кейс, который ещё в недавнем прошлом предлагали на реальных собеседованиях.

2️⃣ Поговорим про компетенции, которые в Авито ждут от DS-инженеров.

3️⃣ Разберём результаты по итогам решения кейса и ответим на ваши вопросы.

Кто будет на стриме:
👤 Интервьюеры — Саша Ледовский, руководитель DS команд монетизации Авито и Максим Каширин, руководитель Data Science направления в модерации Авито.

👤 Кандидат —Дмитрий Савелко, LLM-инженер в R&D команде банка Точка.

Больше информации про событие и регистрация на Timepad.
Пришлём вам ссылку с напоминанием за 5 минут до старта 🚀
👍9🔥71
Привет! Меня зовут Артём, я DS-инженер в команде Auction Efficiency, занимаюсь CTR-моделями в Поиске.

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

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


project/
├── code
├── configs
├── notebooks
├── data/
│ ├── input
│ └── output
├── results
├── models
├── requirements.txt
├── .gitignore
└── README.md


Пройдёмся по ней более подробно:
code: .py файлы с полезными функциями и классами.
configs: различные конфиги для обучения моделей и трансформации данных.
notebooks: jupyter-ноутбуки, в которых обычно происходит вызов функций и методов классов из python-файлов директории code.
— data: входные и выходные данные.
results: результаты (метрики и др.)
models: сохранённые модели для воспроизведения результатов.
requirements.txt: файл с зафиксированными версиями библиотек.
.gitignore: файл для создания правил по добавлению файлов в Git.
README.md: описание проекта.

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

В следующий раз я расскажу, как навести порядок в своих jupyter-ноутбуках, поэтому, если такие практические советы вам интересны — ставьте ✍️ под постом, чтобы мы продолжили развивать это направление!

И ловите полезные ссылки по этой теме:
Cookiecutter Data Science: шаблон, с помощью которого можно в автоматическом режиме настроить свой Data Science проект с нуля.

Обзор от ИИ Google: если поискать в интернете data science project structure, то Google предоставляет классный конспект на эту тему.

How to organize your Python data science project: ещё один подход к организации DS проекта.

А как вы структурируете свои DS-проекты? Рассказывайте в комментариях
32👍252
Привет! Я Ярослав Хрипков — DS-инженер в команде LLM. Проведу в этом канале наш первый ML reading club в прямом эфире.

Мы прочитаем и разберём статью Qwen3-Next: Towards Ultimate Training & Inference Efficiency, чтобы понять, как и почему у компании Alibaba всё так круто сработало с этой версией модели.

Узнаем:
➡️ Чем хороша эта модель.
➡️ Из-за чего выросло её качество.
➡️ Как gated attention и gated delta блоки улучшили эффективность модели.

Для контекста заглянем и в другие материалы:

Gated Delta Networks: Improving Mamba2 with Delta Rule

Gated Attention for Large Language Models: Non-linearity, Sparsity, and Attention-Sink-Free

🎤Эфир проведу 14 октября в 18:00 прямо в этом канале. Приходите, будет интересно!

Нюанс: если эфир будет плохо работать, попробуйте использовать сторонние сервисы и приложения, чтобы подключиться с другого IP 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24🙏42🤷1
👋 Привет! Напоминаем, что ждём вас на нашем первом ML reading club. Обсудим статью Qwen3-Next: Towards Ultimate Training & Inference Efficiency, и разберёмся, что такого классного в новой модели от Alibaba.

Эфир пройдёт в этом канале завтра, в 18:00. Ссылку пришлём за час до старта.
9👍8
Через час начинаем ML reading club в этом канале
7
Live stream scheduled for
Привет, это Настя Козий — DS Tech Lead команды Horizontal ML Technologies в юните DS SWAT. Ищу ребят, которые хотят одновременно работать над продовыми задачами и заниматься образованием.

Почему это крутая возможность?

1️⃣ Уникальная комбинация ролей

✦ Вы получите классическую позицию DS-инженера: обучение моделей, эксперименты, выкатка в прод и всё, что мы любим в боевом ML.

✦ Но вместе с этим официальная часть работы — заниматься образованием. Вы будете читать лекции, делать курсы и делиться экспертизой. Причём не «дополнительно в свободное время», а в рабочие часы в рамках должностных обязанностей.

2️⃣ Разнообразие продовых задач

У нашей команды проекты из разных доменов: компьютерное зрение, обработка текста, работа со звуком и многое другое. Наши технологии используют во всём Авито!

3️⃣ Образование как драйвер развития

✦ Подготовка материалов — это возможность глубже понять алгоритмы и научиться объяснять сложные вещи простым языком.

✦ Ваши лекции будут смотреть и пересматривать сотни, а потом и тысячи студентов. Это шанс заявить о себе так же громко, как сделали когда-то Соколов, Воронцов, Кантор и другие.

Если чувствуете, что такая позиция для вас, откликайтесь на странице вакансии или пишите мне в ЛС @steysie
👍20🔥9🥰3🥱1
📌 Запись трансляции ML reading club

14 октября Ярослав Хрипков — DS-инженер в команде LLM в прямом эфире разбирал, почему новая модель от Alibaba лучше своих предшественниц. Как и обещали, выкладываем видео, оно длится около получаса.

О чём говорили:

1:15 — Как устроен Gated DeltaNet
2:19 — Gated DeltaNet vs Linear Attention/Mamba-2
5:15 — Что даёт Gated DeltaNet
7:09 — Как работает Gated Attention
11:27 — Как выглядит модель целиком
15:05 — Изменения гиперпараметров
20:00 — Производительность Qwen3-Next
20:44 — Метрики качества Qwen3-Next
24:20 — Наблюдения от слушателя

Видео на ютуб-канале AvitoTech
👍15🔥102
Мы обсудили общий подход к организации проектов в DS в первой части, а сейчас подробнее остановимся на jupyter-ноутбуках.

Считается плохой практикой писать весь свой код в ноутбуках. И да, и нет:
Да, лучше писать production-код в .py файлах.
Нет, не стоит отказываться от ноутбуков — ими очень удобно пользоваться для исследований и обучения моделей.

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

Рассмотрим базовые разделы, которые могут встречаться практически в каждом ноутбуке:
Импорты: делаем импорт пакетов (библиотек). Причём я стараюсь не складывать импорты в одну ячейку, потому что это помогает ориентироваться в коде
— Базовые импорты: основные пакеты, типа os, pandas и другие
— ML импорты: например, scikit-learn, catboost и другие
— Spark импорты: import pyspark.sql.functions as F и другие
Параметры: определяем константы, которые будут использоваться во всём ноутбуке
Пути: фиксируем пути к файлам и папкам
— Входные: для файлов, по которым мы будем читать файлы
— Выходные: для файлов, по которым мы будем проводить запись
Данные: читаем входные файлы
Функции: храним функции, которыми пользуемся на протяжении всего ноутбука

Перечислим другие возможные разделы:
EDA (Exploratory Data Analysis): проводим разведывательный анализ данных. Его удобно разбивать на несколько разделов, например:
— Знакомство с данными
— Проверка на пропуски и дубликаты
— Описательные статистики
— Анализ целевой переменной
— Анализ признаков
— Выводы
Сбор признаков: формируем датасет для обучения
Обучение
— Бейзлайн: тренируем бейзлайн модель
— Улучшение: улучшаем бейзлайн
Результаты: считаем оффлайн-метрики
Выводы: делаем выводы
ToDo: фиксируем направления для развития

Для написания текста в jupyter-ноутбуках используются markdown-ячейки. Я рекомендую разобраться с этим языком разметки — научитесь красиво оформлять текст в ноутбуках и писать README.md файлы. В конце статьи будут ссылки, которые могут вам помочь.


Вернёмся к структуре ноутбука, но теперь обсудим, как её оформлять:
— Крупные разделы (выше выделены жирным шрифтом) выделяются с помощью заголовка первого уровня (# Импорты).
— Подразделы выделяются с помощью заголовка второго уровня (## Входные пути).
— И так далее.

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

После правильного оформления ноутбука заголовки помогут вам быстро по нему передвигаться.
Для этого:
— В Visual Studio Code нужно на вкладке Explorer открыть раздел Outline.
— В Jupyterlab это нажать на Table Of Contents в левом меню.

Теперь вы можете быстро перемещаться между разделами своего ноутбука!

Как обычно, ставьте ✍️ под постом, если вам нравятся практические советы!

Дополнительные ссылки:
Язык разметки Markdown. Зачем нужен ещё один язык разметки и как на нём писать.
Markdown Guide. An overview of Markdown, how it works, and what you can do with it.

Если я забыл сказать о каких-нибудь важных разделах или у вас есть чем дополнить пост, предлагаю поделиться этим в комментариях.
30🔥106👍3
LLM Alignment

Привет! С вами Серёжа Попов — DS-инженер в команде монетизации. Я слежу за тем, чтобы ранжирование на главной странице Авито учитывало монетизацию. Но сегодня хочу поделиться постом про LLM alignment от Анастасии Рысьмятовой, руководителя разработки LLM в Авито. Она рассказала, как мы приучаем большие модели быть не просто вежливыми, а безопасными и полезными в реальных продуктах.

Это не теория: A‑Vibe крутится на проде в рантайме, пишет тексты объявлений, помогает продавцам в чате, суммаризирует отзывы. И любой промах — не «ну бывает», а реальные риски — токсичность, нарушение правил площадки, репутационные и юридические проблемы для компании.

🛡️ Обычно безопасность модели на 80% упирается в качество данных, и здесь помогает жёсткая фильтрация: многоступенчатый отсев токсичности и осторожная доля синтетики. С точки зрения обучения, SFT и DPO дают базовую вежливость, но реальную устойчивость добавляют RLHF и подходы по типу Constitutional AI.

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

Рекомендую прочитать пост, чтобы разобраться в ключевых аспектах:
👉 Как и зачем готовить данные: дедупликация, фильтрация токсичности, синтетика и мультимодальность.
👉 Какие подходы к выравниванию ребята используют на практике: SFT, DPO, RLHF, конституционные правила и где между ними баланс.
👉 Как проверяют стойкость модели (red teaming, LLM‑атаки) и настраивают контекстную модерацию под разные сценарии.

Прочитать
🔥14👍62👾1
Всем привет! Я Настя Рысьмятова, и сегодня расскажу про ещё один успешный кейс внедрения большой языковой модели в Авито.

🧑‍🎓 Мы обучили LLM находить потенциально чувствительные данные в программном коде, которые могут угрожать безопасности — пароли к базам данных, API-ключи и токены доступа.

🔍 До этого в Авито использовались другие алгоритмы поиска уязвимости. Они находили все вероятные угрозы, включая самые незначительные, и отправляли их специалистам на ручную проверку. В результате за месяцы работы могла образоваться очередь из тысяч предупреждений. Мы хотели сократить объёмы ручной проверки с помощью ML, но важно было сделать модель с полнотой близкой к 1.0, так как в данной задаче false negative имеет большую стоимость.

Мы обучили LLM на 7 млрд параметров решать задачу с полнотой 0.99. Пытались применять модели меньшего размера, но пока безуспешно. После внедрения LLM, объём ручной проверки кода сократился в 5 раз.
❤‍🔥28🔥18👍10🤣2
Всем привет! С вами снова Настя Рысьмятова.

🎉 Вчера мы с командой выложили в open source две модели: A-vibe и A-vision. Это адаптированные под русский язык и домен Авито модели Qwen3-8B-Base и Qwen2.5-VL-7B-Instruct.

Для A-vibe обучение проходило в несколько шагов.

1️⃣ Сделали свой токенизатор, оптимальный для русского и английского языка.

2️⃣ Подменили оригинальный токенизатор Qwen3-8B-Base на собственный.

3️⃣ Обучили полученную модель на большом корпусе данных.

4️⃣ Провели SFT этап.

5️⃣ Сделали RL.

В результате получили модель, которая выигрывает у instruct версии Qwen3-8B по многим русскоязычным бенчмаркам. На SFT и RL этапе удалось научить модель Function Calling и улучшить её навыки в решении математических задач.

Подробный отчёт об обучении A-vibe уже можно найти в статье
🔥2720👍6😱4😁2
Привет! Я Илья Чумак, и сегодня расскажу, как мы с командой снизили время на обнаружение ошибок в работе моделей модерации Авито.

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

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

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

Сейчас обнаруживаем изменение в потоке данных уже через 5–10 минут от их появления, благодаря техникам из области Online Changepoint Detection.

Как это работает
✔️ Для каждой точки внутри временного окна (примерно 30 минут) мы проверяем гипотезу: «не произошло ли именно здесь изменение?». Для этого отдельно оцениваем параметры распределения данных до и после этой точки.

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

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

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

🙂 Благодаря снижению времени реакции наших моделей более 70 миллионов пользователей Авито размещают свои объявления без задержек!
🔥175👍3
Всем привет! Запускаем пробный формат: берём новость из мира DS и разгоняем дискуссию.

🎯 Наш кейс сегодня: Андрей Карпаты и его nanoGPT
Пока многие считают, что ничего не надо пробовать реализовать с нуля и хватает готовых библиотек, один из крашей всея индустрии, Андрей Карпаты, показал мастер-класс. Всего за 4 часа, 100 $ и ~8000 строк кода он собрал работающий клон ChatGPT — с нуля.

Github проекта nanoGPT
Это мощная поддержка «сборки на коленках», которая, кажется, постепенно уходит из Data Science.

🧑‍💻 Карпаты — «сын маминой подруги»
Андрей — редкий пример человека, который преуспел сразу во всех амплуа:
— IC (Individual Contributor): PhD, один из первых в OpenAI, энтузиаст open source с насыщенным github.
— Топ-менеджер: был директором по AI в Tesla.
— Просветитель: видео с миллионами просмотрами на Youtube, курсы в университетах.

Талантливый человек талантлив во всём? Бесспорно. Но важно и то, что такая универсальность сегодня ценится и в меньших масштабах — например, у нас в Авито.

🧭 А в Авито можно быть «Карпаты»?
Можно! И для этого есть все возможности:
— Как IC — задачи от фундаментальных R&D до внедрения в продакшен, где твоя работа напрямую влияет на бизнес-метрики.
— Как менеджер — курсы для будущих тимлидов, менторство в Академии Аналитиков Авито и на стажёрских программах.
— Как просветитель — ведение курсов в Академии, участие в магистратурах или, как вариант, посты в этом канале 🙂

💬 Вопросы к вам
Как вы считаете, что эффективнее в долгой карьере:
— Сфокусироваться на одной роли и становиться в ней лучшим?
— Или пробовать себя в разных амплуа, как Карпаты?

А хотели бы услышать реальные истории коллег, которые, как и он, переходили из менеджеров обратно в индивидуальные разработчики?
Ждём ваши мысли в комментариях! 👇
🔥10👍7