2023/2024



Анализ данных
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Маго-лего
Кто читает:
Департамент прикладной математики
Когда читается:
1, 2 модуль
Охват аудитории:
для своего кампуса
Преподаватели:
Кулаев Максим Александрович
Язык:
русский
Кредиты:
6
Контактные часы:
60
Программа дисциплины
Аннотация
Курс предназначен для разработчиков, желающих углубить знания в области машинного обучения (ML) и освоить ключевые инструменты для работы с ML-системами. Программа охватывает полный цикл разработки: от подготовки данных до развертывания и мониторинга моделей.
Студенты познакомятся с методологией CRISP-ML, инструментами управления данными (DVC, Git), базами данных (реляционными, объектными, векторными), а также освоят трекинг экспериментов с MLFlow. Научатся контейнеризировать приложения с помощью Docker и настраивать развертывание в Kubernetes. Особое внимание будет уделено CI/CD процессам и мониторингу ML-систем с использованием Prometheus и Grafana.
Практические задания включают настройку хранилищ данных, автоматизацию с Airflow, развертывание моделей, создание REST API и настройку мониторинга. Завершает курс защита проекта и тренировка технических собеседований.
При обучении предусмотрен контроль знаний студентов в виде проектной работы и промежуточных контролей, сумма баллов за которые составляет итоговую оценку за курс.
Цель освоения дисциплины
- Целью освоения дисциплины является формирование у студентов теоретических знаний и практических навыков, необходимых для полного цикла работы с ML-системами: от подготовки данных и создания моделей до их развертывания, мониторинга и автоматизации процессов.
Планируемые результаты обучения
- Способен получать, очищать, анализировать и визуализировать большие объёмы данных
- Способен реализовывать модели и алгоритмы прикладной математике в виде компьютерных программ
- Знает методологию CRISP-ML, устройство разработки ML проекта.
- Знает о наиболее распространенных хранилищах, базах данных
- Знает локальные и распределенные файловые системы, базы данных: реляционные, объектные
- Знает о подходах к версионированию данных (кода, датасетов, моделей)
- Знает, что такое разметка данных, зачем нужна и в каких ситуациях
- Умеет версионировать данные с помощью связки инструментов dvc + git
- Знает, что такое векторный движок, векторная база данных, key-value база данных
- Знает, что такое ML эксперимент, как его ставить, какие данные об эксперименте нужно сохранять, чтобы этот эксперимент можно было повторить
- Знает о типичных инструментах для трекинга, анализа эксперимента таких как MLFlow, KubeFlow + TensorBoard
- Знает, что такое Docker, Kubernetes, что это за инструменты, для чего используются, какие проблемы решают, базово про их устройство
- Знает, что такое http запрос, REST API, о том как можно обернуть модель в REST сервис
- Умеет выполнять базовые команды Docker, как собирать, загружать образы, Dockerfile, docker-compose
- Умеет делать базовое web приложение на Flask/FastAPI
- Знает о подходах к обертке модели в сервис посредством готовых инструментов
- Знает, в чем плюсы и минусы в сравнении с собственной реализацией, области применения
- Знает о различных форматах представления, экспорта моделей, способов их оптимизации, в том числе на ГПУ
- Умеет использовать и синхронизировать потоки
- Знает о том, что такое регулярные расчеты, ETL, потоковая и батчевая обработка данных
- Знает про инструменты запуска регулярных расчетов (Airflow), обработки потоковых данных (Kafka), их принципы работы
- Знает про типичные задачи, которые решаются этими инструментами
- Знает, в чем состоит концепция CI/CD, чем он может быть полезен, какие типичные сценария применения в рабочих процессах
- Умеет настраивать CI/CD пайплайны в рамках gitlab
- Знает, зачем нужно настраивать мониторинг своих сервисов, какие обычно метрики отслеживают, в том числе и ML специфичные
- Знает о базовых концепциях аб тестирования
- Умеет настраивать дашборды с метриками
Содержание учебной дисциплины
- Введение в Python
- Библиотека NumpyД/З: написание типовых конструкций с использованием выражений-генераторов и функций.
- Библиотека PandasД/З: написать программу для скачивания информации о самых популярных 5000 книг из раздела "Художественная литература" магазина "Relod" с использованием библиотек BeautifulSoup и/или lxml.
- Визуализация данных
- Углубленный Python. Часть 1
- Углубленный Python. Часть 2
- Парсинг данных с помощью Python
- Введение в статистику - 1Д/З: Мини-проект по анализу данных
- Введение в статистику - 2
- Временные рядыД/З: Kaggle Inclass
- Введение в SQL
Список литературы
Рекомендуемая основная литература
- Provost, Foster, Fawcett, Tom. Data Science for Business: What you need to know about data mining and data-analytic thinking. – " O'Reilly Media, Inc.", 2013.
- Python и анализ данных, Маккинни, У., 2015
- Маккинни, У. Python и анализ данных / У. Маккинни , перевод с английского А. А. Слинкина. — 2-ое изд., испр. и доп. — Москва : ДМК Пресс, 2020. — 540 с. — ISBN 978-5-97060-590-5. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/131721 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Изучаем Python. Программирование игр, визуализация данных, веб-приложения. 2-е изд. - 978-5-4461-0479-6 - Мэтиз Э. - 2017 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/355480 - 355480 - iBOOKS