Кейс Авито: как ML модернирует видео, чтобы не пропустить мошенников и 18+

Маркетинг и SMM 23.08.2026 · 👁 988 просмотров
Кейс Авито: как ML модернирует видео, чтобы не пропустить мошенников и 18+ Нашему выпускнику на собеседовании с командой предложили интересный кейс. Что общего у объявления о диване и схемы злоумышленников? Ответ: видео. Каждый день на Авито загружают тысячи роликов. Раньше их проверяли руками, но с ростом платформы - это стало нереально: 100 000 видео в сутки, 2 минуты на каждое = 3 000+ человеко-часов ежедневно. Задача: автоматизировать модерацию, не потеряв в качестве и не разорив бизнес. Бизнес-метрики В приоритете OPEX (расходы), CAC (привлечение клиентов) и качество сервиса. Но этого мало, нужны конкретные показатели работы модели: • Автобан = отменённые апелляции после автобана / все апелляции после автобана. Показывает, насколько модель права, когда банит сама. • Ручная модерация = подтверждённые нарушения / весь контент на ручной проверке. Показывает эффективность работы модераторов. • Пропуск = хорошие видео в случайном сэмпле / размер сэмпла. Показывает сколько нарушений модель пропустила (главная метрика безопасности). • Модерация = контент, не отправленный на ручную проверку / весь контент. Балансирует, чтобы не перегружать людей и не пропускать опасное. Постановка ML-задачи Нам нужно бинарно классифицировать видео: 0 - ок, 1 - нарушение. Но на деле задача распадается на две независимые: 1. Распознавание текст а (личные данные, ссылки, нецензурная лексика) 2. Распознавание объектов (оружие, наркотики, 18+ и т.д.) Распознавание текста: OCR + NLP Видео разбивается на кадры. Каждый кадр проходит через OCR - детектируем и распознаём текст. Затем: - удаляем дубликаты (чтобы не учитывать одно и то же на разных кадрах), - парсим признаки: has_phone , has_passport , has_url , has_mats и др., - отправляем текст в NLP-классификатор - получаем вероятности prob_spam , prob_fraud и т.п. На выходе вектор признаков для каждого видео. Дальше либо решаем по порогу, либо подаём в обученную модель. Схема: Видео → кадры → OCR → NLP → вектор → результат Распознавание объектов: CLIP + промпты Здесь сложнее, но красивее. - Создаём список текстовых промптов: "пистолет", "нож", "наркотики" и т.д. - Прогоняем кадры через кодер CLIP → получаем визуальные эмбеддинги. - Прогоняем каждый промпт через текстовый кодер CLIP → текстовые эмбеддинги. - Считаем косинусное расстояние между визуальным и текстовыми векторами. Важно: классы не взаимоисключающие, в видео может быть и пистолет, и нож одновременно. Поэтому вместо Softmax применяем пороговое сравнение (или сигмоиду) для каждого промпта отдельно. Схема: Видео → кадры → CLIP (эмбеддинги) → вычисление схожести → пороги / модель → результат (Аудио пока оставим за скобками — отдельная большая тема.) Офлайн-метрики • Precision: качество автобана (меньше ложных срабатываний) • Recall: сколько нарушений нашли (меньше пропусков) • F1: гармоническое среднее • PR-AUC: особенно полезна при сильном дисбалансе классов (нарушений мало) Данные • X - признаки из кадров (текстовые и визуальные). • Y - бинарная метка (1 - нарушение). Обучаемся на исторических данных ручной модерации. Чтобы снизить нагрузку, кадры сэмплируем (не все подряд). При дисбалансе классов используем Focal Loss, он фокусируется на сложных примерах. Эксплуатация модели Мониторинг трёх уровней: - Системный: CPU / RAM / GPU, задержки. - Качество модели: Data Drift, падение метрик. - Бизнес-метрики: если резко упали, ищем проблему в данных или инфраструктуре. Стратегия при Data Drift: - небольшой → корректируем пороги - средний → дообучаем модель на новых данных - сильный → пересобираем пайплайн с нуля Деплой и версионирование Используем Canary Deployment: - новая модель получает 5% трафика, - старая 95%, - если метрики стабильны, постепенно увеличиваем долю до 100%, - при ухудшении откатываемся. Перед релизом обязательные Unit-, Integration- и Validation-тесты. Обсудить задачу/спросить совета можно в нашем чате . Подписаться: @zadachi_ds
Откликнуться в Telegram →

⚠️ Никогда не платите «за оформление» или «гарантию трудоустройства» — это признак мошенников. Работа ТРУ не несёт ответственности за содержание вакансии.

🇮🇱 Не нашли подходящую зарплату? В Израиле платят от $3000 Без языка и опыта · жильё и легализация под ключ · официально Смотреть вакансии →