tgoop.com/Nikotineaddiction/204
Last Update:
#Коллабы #road1k
ML system design - это та вещь, с которой я столкнулся только когда уже был на стажировке, причем сразу с книжки Валерия Бабушкина(кстати, он подписался на меня в Linkedin
В своем посте я разберу типовой кейс из классического мл "Обнаружение вредоносного контента
1. Формулировка проблемы
Уточняющие вопросы точно помогут сделать задачу понятнее и проще, поэтому стоит их задавать по максимуму, даже если они кажутся глупыми
Цель: отслеживать публикации, выявлять вредоносный контент и понижать его в должности / удалять
Примеры категорий вредоносного контента: насилие, обнаженная натура, разжигание ненависти
Цель ML: определить, является ли публикация вредоносной
Входные данные: Публикация (текст, изображение, видео)
Выходные данные: P(вредная) или P(насильственная), P (обнаженная натура), P (ненависть) и т.д
Категория ML: Мультимодальная (с несколькими ярлыками) классификация
2. Метрики
Оффлайн-метрики: F1, PR-AUC, ROC-AUC
Онлайн-метрики: распространенность (процент вредоносных сообщений, которые не были предотвращены, по сравнению со всеми публикациями), количество показов вредоносных сообщений, процент обоснованных (отмененных) обращений, показатель активности (соотношение обнаруженных систем к обнаруженным пользователями)
3. Архитектурные компоненты
Мультимодальный ввод (текст, изображения, видео и т.д.):
Раннее слияние: сначала объединяются модальности, а затем делается единый прогноз
Позднее слияние: модальности обрабатываются независимо друг от друга, прогнозируется слияние
минусы: отдельные обучающие данные для модальностей, подборка индивидуально безопасного контента может быть вредной
Классификация с несколькими метками/многозадачностью
несколько моделей, которые обучаются и обслуживаются отдельно, правда стоят дорого
Один классификатор с несколькими метками - сложная задача для изучения
Многозадачный классификатор: изучайте несколько задач одновременно
на отдельных общих слоях (изучайте сходство между задачами) -> преобразованные объекты
уровни, относящиеся к конкретной задаче: главы классификации
плюсы: единая модель, общие уровни предотвращают избыточность, обучающие данные для каждой задачи можно использовать и для других задач (ограниченные данные)
4. Сбор и подготовка данных
Идентификатор пользователя, возраст, пол, местоположение, контакты
Элементы(сообщения): идентификатор публикации, идентификатор автора, контекст текста, изображения, видео, ссылки, временная метка
Взаимодействие пользователя с публикацией: user_id, post_id, тип взаимодействия, значение, временная метка
5. Разработка функций
Особенности: Содержание публикации (текст, изображение, видео) + Взаимодействие с публикацией (текст + структурированный) + Информация об авторе + Контекст сообщений
Предварительная обработка (нормализация + токенизация)
Кодирование (векторизация):
Статистические (BoW, TF-IDF)
Кодеры на основе ML (BERT)
Изображения / видео:
Предварительная обработка и извлечение объектов
Изображения:
Clip, SImCLR
Видео:
VideoMoCo
Взаимодействие с публикациями:
Количество лайков, комментариев, репостов, сообщений (масштаб)
Комментарии (текст):
Аналогично тексту публикации (совокупные вложения в комментарии)
Пользователи:
Используйте только демографические данные автора публикации, характеристики учетной записи (количество подписчиков, возраст учетной записи).
6. Разработка модели и автономная оценка
7. Онлайн-тестирование и внедрение
8. Масштабирование, мониторинг и обновления
Ресурсы для лучшего понимая
1. Куча примеров кейсов
2. Разница МЛСД в проде и ресерче
Если понравился пост, то обязательно ставь лайк, а я пока буду дальше трудится над каналом