В курсе рассматриваются вопросы разработки систем обработки данных и машинного обучения.
В результате освоения курса слушатели приобретают навыки промышленной разработки алгоритмов машинного обучения, проведения повторяемых экспериментов, использования больших данных, тестирования и процессов выполнения проектов в области машинного обучения.
Темы курса
Список тем для подготовки к зачету.
№ | Тема |
---|---|
1. | Введение. Проблемы разработки наукоемкого ПО. Качество программных систем. |
2. | Понятный код. Оформление и стандарты. Технический долг. Проведение код ревью. |
3. | Декомпозиция программ обработки данных. Метод постепенного уточнения. Повторное использование. |
4. | Совместная разработка. Непрерывная интеграция. Гибкие процессы разработки. |
5. | Процесс анализа данных. Исследовательский анализ (EDA). Представление результатов. |
6. | Повторное использование. Объектные методы. Структуры репозиториев. |
7. | Тестирование систем анализа данных. Методы модульного тестирования. Инструменты автоматизации поставки, контейнеризация. |
8. | Тестирование инвариантами. Adversarial testing. Тестирование наукоемкого ПО. |
9. | Проблема повторяемости экспериментов. Что входит в эксперимент. Конфигурация. Лаборатория данных |
10. | Продуктивизация ML в виде сервисов. Реализация микросервисов в Python для поставки моделей. Создание API. Принципы REST и HATEOAS. |
11. | Хранение данных. Релационная, колоночная, документная и др. модели. Транзакции ACID. Распределенные СУБД. CAP и BASE. |
12. | Технологии параллельной обработки данных. Master/Slave, MapReduce, RDD(Spark). Если успеем - Kubernetes (pods, svcs, jobs, etc ) для размещения ML сервисов. |
13. | Технологии GitOps, MLOps. Технологии сжатия и ускорение моделей. Средства представления API моделей. Стандартные протоколы. |
Курсовой проект посвящен созданию собственного микросервиса с моделью машинного обучения в соответствии с процессами CI/CD или разработки повторно-используемой библиотеки с реализацией алгоритмом решения прикладной ML задачи.
Задания выполняются в соответствии с процессом Scrum и CI/CD. Каждое задание - это отдельный спринт.
# | Тема задания |
---|---|
1. | Документирование и ревью кода |
2. | Реализация модели. Структурирование программы |
3. | Автоматизация поставки и модульное тестирование |
4. | Тестирование. Непрерывная интеграция |
5. | Реализация микросервиса или микроесервиса. Использования СУБД. Воспроизводимое обучение |
6. | Размещение сервиса в облаке, публикация библиотеки. |
Итоговая оценка по курсу формируется из успешности выполнения заданий по ходу семестра - по 10% за каждое задание, и подтверждение на устном опросе владения каждой из тем курса (CODE, TEST, DATA, PROC) - 40% оценки.
Контактный адрес: course [at] objectoriented.ru
Хританков Антон Сергеевич, к.ф.-м.н. - автор курса