Доска AI-объявлений
3.73K subscribers
270 photos
4 videos
140 links
Это не душный, а душевный канал про Data Science в Авито. Пишем о том, что у нас происходит, про ML, вакансии, мероприятия.
Download Telegram
Через час начинаем 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
Привет! С вами Антон Семенистый. В сентябре я выступал на конференции Practical ML.

👉 Рассказал про первые исследования Авито в области нейросетевых моделей для предсказания CTR объявлений в поисковой выдаче.

👉 Показал итоги исследований и экспериментов, в результате которых мы получили устойчивый прирост по ML-метрикам по сравнению с текущими решениями.

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

Краткие тезисы доклада читайте в карточках ↑
🔥135👍3👎1