Голосов: 0
#1
Machine Learning для начинающих [2022]
HARD ML [2022]
karpov.courses
Валерий Бабушкин, Ваге Брсоян, Станислав Гафаров, Игорь Котенков, Александр Сахнов, Владислав Ладенков
Не просто обучаем модельки, а решаем сложные и нужные для бизнеса ML-задачи. На курсе пройдём полный цикл разработки ML-приложений.
Для кого эта программ:
1. ML-разработчик
Вы уже имеете опыт работы в областях, связанных с машинным обучением, и хотите понять, как решать специфические и нестандартные задачи.2. Тимлид
Вы хотите научиться создавать сервисы, которые будут решать сложные бизнес-задачи с использованием приложений, основанных на ML-алгоритмах.
Вы освоите:
1. Ранжирование и матчинг
2. Динамическое ценообразование
3. Uplift-моделирование
4. Продвинутое A/B тестирование
5. Сценарии деплоя ML-сервисов
Модуль 1 - Ранжирование и матчинг
Матчинг позволяет решать некоторые важные проблемы, с которыми сталкиваются все компании. Научимся выявлять товары-дубли по их названиям. Попрактикуемся сопоставлять покупателей в онлайне, офлайне и в приложении. Узнаем, как мониторить цены в реальном времени. Расскажем про разные приложения этого подхода, например, про выявление товаров-дублей по их названиям. Рассмотрим технические тонкости архитектур и методов, лежащих в основе систем ранжирования.Модуль 2 - Динамическое ценообразование
1. Вводная лекция: ранжирование, матчинг, архитектурные особенности
2. Метрики в задаче ранжирования. Особенности матчинга как подзадачи ранжирования
- Обсудим постановку задачи ранжирования с точки зрения машинного обучения.
- Разберёмся в тонкостях матчинга и верхнеуровнево познакомимся с архитектурой решения.
3. Функции потерь и базовые подходы к обучению моделей ранжирования
- Рассмотрим различные метрики ранжирования: от самых базовых до актуальных и часто используемых.
- Обсудим их применение в разных ситуациях, углубимся в задачу матчинга и поговорим про особенности оценки результатов.
4. Особенности работы с деревянными моделями. YetiRank
- Продолжим углубляться в тему ранжирования и рассмотрим методы обучения моделей.
- Узнаем, какие существуют функции потерь и в каких случаях они используются.
5. Передовые подходы к ранжированию: обзор ушедшего десятилетия
- Перейдём к следующему этапу развития ранжирующих систем и познакомимся с популярными алгоритмами и их внутренним устройством.
6. Приближённый поиск ближайших соседей
- Разберёмся, какие за последнее время были придуманы способы и приемы, повышающие качество и стабильность моделей.
- Проследим развитие идей и концепций.
7. Модели для работы с текстом, введение в эмбеддинги. FastText, DSSM
- С увеличением объёма данных возрастает сложность ранжирования и поиска объектов.
- Рассмотрим алгоритмы, позволяющие быстро и эффективно искать схожие объекты в огромной базе.
8. Сложные языковые модели для высокоточной работы: BERT и трансформеры
- Познакомимся с языковыми моделями для извлечения информации из текстов в векторном виде для её последующей утилизации моделями.
- Разберём принципы работы и обучения моделей FastText, узнаем, чем они отличаются от Word2Vec, и перейдём к структурированным синтаксическим моделям — DSSM.
9. Парсинг данных из Интернета, сбор датасетов
- Продолжим знакомство с текстовыми моделями.
- Разберём передовые архитектуры и посмотрим, в какой задаче матчинга трансформер может «выстрелить».
10. Толока как инструмент для оценки моделей и обновления датасетов
- Научимся выживать в ситуациях, когда данных нет, но они очень нужны.
- Разберём основы парсинга web-страниц и сбора сырых данных.
Финальный проект модуля
- Познакомимся с инструментом ручной разметки данных от компании Яндекс и узнаем, какую пользу он может принести в работе.
- Используем полученные знания для разработки сервиса на основе моделей ранжирования.
- В качестве бонуса обсудим задачи, которые можно решить с минимальными изменениями текущего пайплайна.
Научимся делать динамическое ценообразование на основе машинного обучения, что позволит вам максимизировать прибыль компании, в которой вы работаете, и поможет найти баланс между трафиком, выручкой и маржой.Модуль 3 - Uplift-Modelling
1. Постановка задачи ценообразования
2. Построение модели предсказания цены в зависимости от факторов
- Начнём с основ экономической теории: узнаем, из чего складывается цена, каковы её основные компоненты и от каких факторов она зависит.
- Также познакомимся с понятием волатильности.
3. Постановка задачи динамического ценообразования
- Закрепим теорию практикой: научимся грамотно просматривать и анализировать данные рынка и с их помощью выявим реальные факторы, влияющие на цену продукта.
- Порешаем задачи предсказания цен на уже существующих данных.
4. Первое знакомство с динамическим ценообразованием
- Более детально рассмотрим, чем постановка задачи динамического ценообразования отличается от предыдущей задачи и какие факторы в данном случае могут влиять на цену.
- Обсудим зависимость динамического ценообразования от групп покупателей, времени, рыночных условий, спроса и задач проникновения.
5. Предсказание диапазонов цен
- Проанализируем практическую применимость концепции «цена как функция, зависящая от факторов», и построим первые простейшие модели динамического ценообразования.
6. Скрещивание динамического и классического ценообразования
- Поговорим о том, как работают алгоритмы предсказания диапазонов цен.
- Познакомимся с понятием квантильной регрессии и затронем проблему выбора лучшей цены.
7. Метрики и тесты для определения лучшей цены
- Поговорим о кластеризации временных рядов и прогнозировании диапазонов цен.
- Посмотрим, какие бывают инструменты для прогнозирования временных рядов и применим их на практике.
- Обсудим некоторые специфические функции потерь, такие как quantile loss и RMSLE, и рассмотрим метрики для прогнозирования диапазонов цен.
8. Многорукие бандиты и обучение с подкреплением
- Поговорим о том, на какие метрики следует смотреть для определения лучшей цены.
- Узнаем, как применить A/B-тестирование для решения этой задачи.
9. Практическое применение многоруких бандитов
- Узнаем, как использовать обратный сигнал для корректировки и задания диапазонов цен.
- Познакомимся с многорукими бандитами и теорией, которая лежит в их основе.
- Рассмотрим, как они позволяют ускорить A/B-тесты в проде.
Финальный проект модуля
- Рассмотрим реализацию многоруких бандитов и получение обратной связи для корректировки цены в коде.
- На основе пройденного материала создадим собственный сервис по предсказанию цен для 1000 товаров.
- Построим для него несколько моделей и постараемся решить задачу максимальных продаж без провисания маржи.
Научимся делать uplift-моделирование. Рассмотрим всё от постановки задачи до её реализации. Данный тип моделирования позволит учесть изменения в поведении клиентов, которые, например, могли быть вызваны рекламной акцией. На основании данной модели вы сможете понять, кому из клиентов стоит сделать предложение и оценить эффект от этого воздействия.Модуль 4 - Продвинутое A/B тестирование
1. Введение в uplift-моделирование
2. Разбор методов построения uplift-моделей
- Обоснуем необходимость использования uplift и научимся правильно ставить задачу для эффективного моделирования.
- Рассмотрим популярные решения и метрики качества uplift-моделей.
3. Uplift сложных метрик. Expected value framework
- Поговорим о том, как проводить разведочный анализ данных (EDA) при uplift-моделировании.
- Разберём такие подходы к построению uplift-деревьев, как meta-learners и uplift trees.
4. Как спроектировать свою библиотеку факторов
- Узнаем, что такое декомпозиция бизнес-эффекта (expected value decomposition) и как с её помощью продумывать изменение интересующей метрики и схемы прогноза.
- Рассмотрим сложный кейс из офлайн-ритейла.
5. Workshop: пишем приложение с применением модели
- Для построения любой модели необходимы данные: например, важно понимать, откуда к нам пришёл тот или иной клиент и какие у него предпочтения.
- Узнаем, как проводить эксперименты с разными наборами предикторов и как понять, какой набор является оптимальным для решения задачи.
- Убедимся, что оформление кода для расчёта предикторов в библиотеку — это самый быстрый путь вывода модели в продакшн.
Финальный проект модуля
- Собственными руками построим приложение с применением uplift.
- Сначала продумаем последовательность действий (pipeline) для подготовки данных и применения модели и организуем репозитории с исходным кодом, а затем настроим логирование и уведомления.
- Также обсудим механику сохранения промежуточных результатов и подъёма приложения при его падении.
- Напишем свой веб-сервис для запуска uplift-модели и организуем маркетинговую кампанию на основе транзакционных данных клиентов.
Научимся использовать A/B-тестирование для решения практических задач. В результате тесты станут намного более чувствительными, что позволит быстрее внедрять позитивные изменения и отказываться от негативных. Научимся использовать ML-алгоритмы для ускорения A/B-тестов. В результате тесты станут намного более чувствительными, а плохо показывающие себя тесты можно будет быстро выявить и отключить.Модуль 5 - Сценарии деплоя ML-сервисов
1. Введение: основы статистики
2. Основы статистики и статистические критерии
- Вспомним основы теории вероятностей и математической статистики, которые понадобятся в курсе.
- Научимся строить точечные оценки и доверительные интервалы.
3. Метрики в А/B-тестировании
- Поговорим о том, что такое A/B-тестирование и чем оно отличается от других способов принятия решений.
- Узнаем, какие статистические критерии применяются в A/B-тестировании и как построить доверительный интервал с помощью метода Bootstrap.
4. MDE, sample size
- Рассмотрим различные метрики А/B-тестирования и их классификацию.
- Выделим среди них те, которые используются чаще всего. Разберём наиболее удачные комбинации метрик.
5. Стратификация
- Научимся рассчитывать минимальный детектируемый эффект и подбирать необходимый размер групп для проведения эксперимента.
- Познакомимся с идеями повышения чувствительности тестов.
6. CUPED. Гильбертово пространство случайных величин
- Обсудим, в чём опасность проведения экспериментов на малом количестве данных.
- Узнаем, как дополнительные знания о наблюдаемых объектах помогают снижать дисперсию данных.
- Научимся сокращать дисперсию с помощью стратификации.
7. Линеаризация. Многопараметрический дельта-метод
- Проанализируем общие черты гильбертова пространства и CUPED.
- Научимся снижать дисперсию данных и повышать чувствительность теста за счёт использования исторических данных.
8. Множественное тестирование, 2 + 2= -2
- Познакомимся с особенностями тестирования ratio-метрик.
- Рассмотрим общие черты многопараметрического дельта-метода и линеаризации.
- Поговорим о том, как они связаны между собой.
9. Peeking problem, последовательное тестирование
- Рассмотрим ситуацию, когда два улучшения могут привести к ухудшению ситуации, и научимся справляться с этой проблемой: узнаем, как организовать параллельное проведение большого количества экспериментов и как проводить эксперименты с несколькими вариантами изменений.
10. Auto-ML, полный пайплайн
- Поговорим о том, что происходит с корректностью теста, если оценивать эксперименты до их окончания.
- Научимся динамически определять момент завершения пилота.
- Узнаем, как выглядит полный пайплайн A/B-тестирования, и рассмотрим применение ML-алгоритмов для повышения чувствительности тестов.
Как и обычный бэкенд, ML-бэкенд должен обладать отказоустойчивостью и минимальным временем простоя. Кроме того, жёсткие требования часто выдвигаются и к производительности самого приложения. В этом модуле научимся грамотно выпускать приложения в продакшн, учитывая все эти требования.
1. Инфраструктура и процессы в современных бэкендах
2. Application Service & Service Discovery
- Начнём со знакомства с инфраструктурой и микросервисной архитектурой.
- Поговорим о процессах в современных бэкендах.
3. Процессы. Демонизация. Веб-серверы
- Поговорим о проектировании приложения для сёрвинга и познакомимся с паттерном Service Discovery.
4. Docker Runtime + Docker Compose
- Рассмотрим, как работают процессы в системе, и разберёмся, в каком виде будут деплоиться наши приложения.
- Поговорим о функциях веб-серверов.
5. Docker Swarm + Container Lifecycle
- Познакомимся поближе с Docker и Docker Compose и поговорим о некоторых паттернах их применения.
6. GitLab CI/CD
- Организуем оркестрацию нашего приложения в Swarm-кластере, проследим жизненный цикл контейнера и сформируем представление о том, из чего складывается оркестрация.
7. Сценарии развёртывания. Часть 1
- Используем GitLab CI/CD для выстраивания полноценного процесса сборки и доставки.
8. Сценарии развёртывания. Часть 2
- Рассмотрим сценарии развёртывания приложения без использования докера и окрестраторов, в которых балансировка есть из коробки.
- Обсудим разные варианты доставки, хранения и деплоя кода, демонизируем наши приложения через systemd и настроим nginx балансировать трафик по нашим приложениям.
9. MLflow и MLflow Model Registry
- Продолжим обсуждение «бездокеровских» сценариев.
- Рассмотрим полезные функции bash для написания своих сценариев деплоя.
- Познакомимся с системами автоматической конфигурации ansible и salt, выполнив по одному типу развёртки с помощью каждой.
- Поднимем MLflow и MLflow Model Registry, интегрируем их в наш сёрвинг и рассмотрим удобные способы регистрации моделей, выходящие за рамки стандартных «коробок».
Для просмотра содержимого вам необходимо зарегистрироваться!Для просмотра содержимого вам необходимо зарегистрироваться!
Последнее редактирование модератором:
- Статус
- В этой теме нельзя размещать новые ответы.