Хардкорный Machine Learning [2022] [karpov.courses] [В. Бабушкин, В. Брсоян, С. Гафаров, И. Котенков, А. Сахнов, В. Ладенков]
Machine Learning для начинающих [2022]
HARD ML [2022]
karpov.courses
Валерий Бабушкин, Ваге Брсоян, Станислав Гафаров, Игорь Котенков, Александр Сахнов, Владислав Ладенков
Не просто обучаем модельки, а решаем сложные и нужные для бизнеса ML-задачи. На курсе пройдём полный цикл разработки ML-приложений.
Для кого эта программ:
1. ML-разработчик
Вы освоите:
Machine Learning для начинающих [2022]
HARD ML [2022]
karpov.courses
Валерий Бабушкин, Ваге Брсоян, Станислав Гафаров, Игорь Котенков, Александр Сахнов, Владислав Ладенков
Не просто обучаем модельки, а решаем сложные и нужные для бизнеса ML-задачи. На курсе пройдём полный цикл разработки ML-приложений.
Для кого эта программ:
1. ML-разработчик
Вы уже имеете опыт работы в областях, связанных с машинным обучением, и хотите понять, как решать специфические и нестандартные задачи.
2. ТимлидВы хотите научиться создавать сервисы, которые будут решать сложные бизнес-задачи с использованием приложений, основанных на ML-алгоритмах.
Вы освоите:
- Ранжирование и матчинг
- Динамическое ценообразование
- Uplift-моделирование
- Продвинутое A/B тестирование
- Сценарии деплоя ML-сервисов
Модуль 1 - Ранжирование и матчинг
Матчинг позволяет решать некоторые важные проблемы, с которыми сталкиваются все компании. Научимся выявлять товары-дубли по их названиям. Попрактикуемся сопоставлять покупателей в онлайне, офлайне и в приложении. Узнаем, как мониторить цены в реальном времени. Расскажем про разные приложения этого подхода, например, про выявление товаров-дублей по их названиям. Рассмотрим технические тонкости архитектур и методов, лежащих в основе систем ранжирования.
1. Вводная лекция: ранжирование, матчинг, архитектурные особенности
1. Вводная лекция: ранжирование, матчинг, архитектурные особенности
- Обсудим постановку задачи ранжирования с точки зрения машинного обучения.
- Разберёмся в тонкостях матчинга и верхнеуровнево познакомимся с архитектурой решения.
- Рассмотрим различные метрики ранжирования: от самых базовых до актуальных и часто используемых.
- Обсудим их применение в разных ситуациях, углубимся в задачу матчинга и поговорим про особенности оценки результатов.
- Продолжим углубляться в тему ранжирования и рассмотрим методы обучения моделей.
- Узнаем, какие существуют функции потерь и в каких случаях они используются.
- Перейдём к следующему этапу развития ранжирующих систем и познакомимся с популярными алгоритмами и их внутренним устройством.
- Разберёмся, какие за последнее время были придуманы способы и приемы, повышающие качество и стабильность моделей.
- Проследим развитие идей и концепций.
- С увеличением объёма данных возрастает сложность ранжирования и поиска объектов.
- Рассмотрим алгоритмы, позволяющие быстро и эффективно искать схожие объекты в огромной базе.
- Познакомимся с языковыми моделями для извлечения информации из текстов в векторном виде для её последующей утилизации моделями.
- Разберём принципы работы и обучения моделей FastText, узнаем, чем они отличаются от Word2Vec, и перейдём к структурированным синтаксическим моделям — DSSM.
- Продолжим знакомство с текстовыми моделями.
- Разберём передовые архитектуры и посмотрим, в какой задаче матчинга трансформер может «выстрелить».
- Научимся выживать в ситуациях, когда данных нет, но они очень нужны.
- Разберём основы парсинга web-страниц и сбора сырых данных.
- Познакомимся с инструментом ручной разметки данных от компании Яндекс и узнаем, какую пользу он может принести в работе.
- Используем полученные знания для разработки сервиса на основе моделей ранжирования.
- В качестве бонуса обсудим задачи, которые можно решить с минимальными изменениями текущего пайплайна.
Модуль 2 - Динамическое ценообразование
Научимся делать динамическое ценообразование на основе машинного обучения, что позволит вам максимизировать прибыль компании, в которой вы работаете, и поможет найти баланс между трафиком, выручкой и маржой.
1. Постановка задачи ценообразования
Модуль 3 - Uplift-Modelling1. Постановка задачи ценообразования
- Начнём с основ экономической теории: узнаем, из чего складывается цена, каковы её основные компоненты и от каких факторов она зависит.
- Также познакомимся с понятием волатильности.
- Закрепим теорию практикой: научимся грамотно просматривать и анализировать данные рынка и с их помощью выявим реальные факторы, влияющие на цену продукта.
- Порешаем задачи предсказания цен на уже существующих данных.
- Более детально рассмотрим, чем постановка задачи динамического ценообразования отличается от предыдущей задачи и какие факторы в данном случае могут влиять на цену.
- Обсудим зависимость динамического ценообразования от групп покупателей, времени, рыночных условий, спроса и задач проникновения.
- Проанализируем практическую применимость концепции «цена как функция, зависящая от факторов», и построим первые простейшие модели динамического ценообразования.
- Поговорим о том, как работают алгоритмы предсказания диапазонов цен.
- Познакомимся с понятием квантильной регрессии и затронем проблему выбора лучшей цены.
- Поговорим о кластеризации временных рядов и прогнозировании диапазонов цен.
- Посмотрим, какие бывают инструменты для прогнозирования временных рядов и применим их на практике.
- Обсудим некоторые специфические функции потерь, такие как quantile loss и RMSLE, и рассмотрим метрики для прогнозирования диапазонов цен.
- Поговорим о том, на какие метрики следует смотреть для определения лучшей цены.
- Узнаем, как применить A/B-тестирование для решения этой задачи.
- Узнаем, как использовать обратный сигнал для корректировки и задания диапазонов цен.
- Познакомимся с многорукими бандитами и теорией, которая лежит в их основе.
- Рассмотрим, как они позволяют ускорить A/B-тесты в проде.
- Рассмотрим реализацию многоруких бандитов и получение обратной связи для корректировки цены в коде.
- На основе пройденного материала создадим собственный сервис по предсказанию цен для 1000 товаров.
- Построим для него несколько моделей и постараемся решить задачу максимальных продаж без провисания маржи.
Научимся делать uplift-моделирование. Рассмотрим всё от постановки задачи до её реализации. Данный тип моделирования позволит учесть изменения в поведении клиентов, которые, например, могли быть вызваны рекламной акцией. На основании данной модели вы сможете понять, кому из клиентов стоит сделать предложение и оценить эффект от этого воздействия.
1. Введение в uplift-моделирование
Модуль 4 - Продвинутое A/B тестирование1. Введение в uplift-моделирование
- Обоснуем необходимость использования uplift и научимся правильно ставить задачу для эффективного моделирования.
- Рассмотрим популярные решения и метрики качества uplift-моделей.
- Поговорим о том, как проводить разведочный анализ данных (EDA) при uplift-моделировании.
- Разберём такие подходы к построению uplift-деревьев, как meta-learners и uplift trees.
- Узнаем, что такое декомпозиция бизнес-эффекта (expected value decomposition) и как с её помощью продумывать изменение интересующей метрики и схемы прогноза.
- Рассмотрим сложный кейс из офлайн-ритейла.
- Для построения любой модели необходимы данные: например, важно понимать, откуда к нам пришёл тот или иной клиент и какие у него предпочтения.
- Узнаем, как проводить эксперименты с разными наборами предикторов и как понять, какой набор является оптимальным для решения задачи.
- Убедимся, что оформление кода для расчёта предикторов в библиотеку — это самый быстрый путь вывода модели в продакшн.
- Собственными руками построим приложение с применением uplift.
- Сначала продумаем последовательность действий (pipeline) для подготовки данных и применения модели и организуем репозитории с исходным кодом, а затем настроим логирование и уведомления.
- Также обсудим механику сохранения промежуточных результатов и подъёма приложения при его падении.
- Напишем свой веб-сервис для запуска uplift-модели и организуем маркетинговую кампанию на основе транзакционных данных клиентов.
Научимся использовать A/B-тестирование для решения практических задач. В результате тесты станут намного более чувствительными, что позволит быстрее внедрять позитивные изменения и отказываться от негативных. Научимся использовать ML-алгоритмы для ускорения A/B-тестов. В результате тесты станут намного более чувствительными, а плохо показывающие себя тесты можно будет быстро выявить и отключить.
1. Введение: основы статистики
Модуль 5 - Сценарии деплоя ML-сервисов1. Введение: основы статистики
- Вспомним основы теории вероятностей и математической статистики, которые понадобятся в курсе.
- Научимся строить точечные оценки и доверительные интервалы.
- Поговорим о том, что такое A/B-тестирование и чем оно отличается от других способов принятия решений.
- Узнаем, какие статистические критерии применяются в A/B-тестировании и как построить доверительный интервал с помощью метода Bootstrap.
- Рассмотрим различные метрики А/B-тестирования и их классификацию.
- Выделим среди них те, которые используются чаще всего. Разберём наиболее удачные комбинации метрик.
- Научимся рассчитывать минимальный детектируемый эффект и подбирать необходимый размер групп для проведения эксперимента.
- Познакомимся с идеями повышения чувствительности тестов.
- Обсудим, в чём опасность проведения экспериментов на малом количестве данных.
- Узнаем, как дополнительные знания о наблюдаемых объектах помогают снижать дисперсию данных.
- Научимся сокращать дисперсию с помощью стратификации.
- Проанализируем общие черты гильбертова пространства и CUPED.
- Научимся снижать дисперсию данных и повышать чувствительность теста за счёт использования исторических данных.
- Познакомимся с особенностями тестирования ratio-метрик.
- Рассмотрим общие черты многопараметрического дельта-метода и линеаризации.
- Поговорим о том, как они связаны между собой.
- Рассмотрим ситуацию, когда два улучшения могут привести к ухудшению ситуации, и научимся справляться с этой проблемой: узнаем, как организовать параллельное проведение большого количества экспериментов и как проводить эксперименты с несколькими вариантами изменений.
- Поговорим о том, что происходит с корректностью теста, если оценивать эксперименты до их окончания.
- Научимся динамически определять момент завершения пилота.
- Узнаем, как выглядит полный пайплайн A/B-тестирования, и рассмотрим применение ML-алгоритмов для повышения чувствительности тестов.
Как и обычный бэкенд, ML-бэкенд должен обладать отказоустойчивостью и минимальным временем простоя. Кроме того, жёсткие требования часто выдвигаются и к производительности самого приложения. В этом модуле научимся грамотно выпускать приложения в продакшн, учитывая все эти требования.
1. Инфраструктура и процессы в современных бэкендах
1. Инфраструктура и процессы в современных бэкендах
- Начнём со знакомства с инфраструктурой и микросервисной архитектурой.
- Поговорим о процессах в современных бэкендах.
- Поговорим о проектировании приложения для сёрвинга и познакомимся с паттерном Service Discovery.
- Рассмотрим, как работают процессы в системе, и разберёмся, в каком виде будут деплоиться наши приложения.
- Поговорим о функциях веб-серверов.
- Познакомимся поближе с Docker и Docker Compose и поговорим о некоторых паттернах их применения.
- Организуем оркестрацию нашего приложения в Swarm-кластере, проследим жизненный цикл контейнера и сформируем представление о том, из чего складывается оркестрация.
- Используем GitLab CI/CD для выстраивания полноценного процесса сборки и доставки.
- Рассмотрим сценарии развёртывания приложения без использования докера и окрестраторов, в которых балансировка есть из коробки.
- Обсудим разные варианты доставки, хранения и деплоя кода, демонизируем наши приложения через systemd и настроим nginx балансировать трафик по нашим приложениям.
- Продолжим обсуждение «бездокеровских» сценариев.
- Рассмотрим полезные функции bash для написания своих сценариев деплоя.
- Познакомимся с системами автоматической конфигурации ansible и salt, выполнив по одному типу развёртки с помощью каждой.
- Поднимем MLflow и MLflow Model Registry, интегрируем их в наш сёрвинг и рассмотрим удобные способы регистрации моделей, выходящие за рамки стандартных «коробок».
Продажник
https://tg030.skladchik.org/members/334467/