ML System Design Course 2022 - лекции

Список и краткое содержание опубликованных лекций открытого курса ODS 2022



🥳Хопа! Пока мы с вами обсуждали АБ-тесты, в ML System Design Course 2022 подъехали новые крутые лекции.



Вот список всех лекций курса на текущий момент:



1. Практическое применение машинного обучения. Делать ML-модели легко, трудно делать полезные ML-модели. В первой лекции дается определение “дизайна систем машинного обучения”, разбираются предположения ML-систем, их традиционные области применения и отличия академического и промышленного машинного обучения.



2. Основы проектирования ML-систем. Дизайн - это работа с ограничениями, и во второй лекции мы разбираем источники этих ограничений, постановку задачи, метрики и бейзлайны.



3. Обучающие данные. Машинное обучение основано на данных, и в этой лекции мы обсудим проблемы разметки и подготовки данных, проблему дисбаланса классов и сэмплирование.



4. Подготовка и отбор признаков. Задача подготовки данных - упростить обучение модели. Обсуждаем аугментацию для разных типов данных, использование синтетических данных, работу с выбросами и пропущенными значениями, масштабирование, конструирование и отбор признаков. Отдельно мы разговариваем о даталиках - данных, доступных при обучении, но недоступных при использовании модели.



5. Выбор модели, разработка и обучение модели. Сердце ML-системы - модель (или несколько моделей) машинного обучения. Нужно начинать с простого, проверять предположения модели и аккуратно сравнивать разные подходы. Обсуждаем ансамбли, распределенное обучение, гадаем по графикам лосс-функции и калибруем вероятности.



6. Оценка качества модели. Важно не только качество ML-модели, но и качество системы целиком. Обсуждаем качество интерфейса, данных и самой модели. Строим простые бейзлайны. Проверяем качество модели на пьяницах-спортсменах, тестируем модель на устойчивость и вспоминаем парадокс Симпсона. Единственная лекция, в которой есть хоть какие-то примеры кода.



7. Развертывание систем. Архитектура развертывания модели определяет, где будет работать модель, когда будет производится инференс, как модель получит запрос пользователя и как пользователь получит ответ модели. Предсказания можно делать на лету, по запросу, а можно сделать заранее и отдавать готовые по мере необходимости. Что-то лучше считать все в облаке, а что-то прямо на устройстве клиента. Можно ускорить инференс нейронной сети с помощью ONNX или ENOT.AI, раскидать нейронку на несколько GPU с помощью Accelerate и использовать оптимизированные CUDA-ядра DeepSpeed. Главное - не запутаться.



8. Диагностика ошибок и отказов ML-систем. Диагностика проблем с данными. Мониторинг. Обсуждаем естественную и отложенную разметку, прокси-метрики и петлю обратной связи. Разбираем примеры, где деньги - плохая метрика, википедию жарят, а метки зависят от временного горизонта. Рассматриваем специфичные для ML-систем отказы и ошибки, выбросы, крайние случаи, сравнение распределений, мониторинг, усталость от алертов и устройство SLA.



9. Мониторинг и обучение на потоковых данных. Шаблоны обмена данными, асинхронные взаимодействия, издатели, подписчики, Kafra, RabbitMQ, Pub/Sub - вот краткий список того, о чем невозможно рассказать в одной лекции. Но мы попробовали.



10. Жизненный цикл модели. Есть разные модели жизненного цикла ML-систем, но все они сходятся в одном - модель, скорее всего, придется неоднократно переделывать. Новые версии модели нужно будет сравнить со старыми, и решить - какие лучше. Разберем тестирование моделей на живых пользователях, data-centric подход и непрерывное переобучение моделей.



На странице курса также доступны презентации и списки рекомендованных к прочтению материалов для каждой лекции.

Всего планируется 14 лекций + 2 лекции в качестве новогоднего подарка от @Reliable ML🎄.



Не переключайтесь!



#tech #ml_system_design