Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| seml:seml [2020/05/17 16:12] – user | seml:seml [2026/08/29 07:59] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ===== Программная инженерия для анализа данных ===== | ||
| + | В курсе рассматриваются вопросы разработки систем обработки данных и машинного обучения. | ||
| + | |||
| + | * Как вывести разработанную модель в продакшен? | ||
| + | * Что делать для совместной работы над наукоемким ПО? | ||
| + | * Как не потерять ранее достигнутые исследовательские результаты? | ||
| + | |||
| + | В результате освоения курса слушатели приобретают навыки промышленной разработки алгоритмов машинного обучения, | ||
| + | |||
| + | Темы курса | ||
| + | |||
| + | * Структурирование программ обработки данных (CODE) | ||
| + | * Написание надежного кода (CODE) | ||
| + | * Проектирование систем и хранение данных в системах машинного обучения (DATA) | ||
| + | * Процессы и виды работ в проекте анализа данных (PROC) | ||
| + | * Обеспечение повторяемости результатов (PROC) | ||
| + | * Тестирование наукоемкого ПО (TEST) | ||
| + | |||
| + | {{seml: | ||
| + | |||
| + | ==== План курса (2020) ==== | ||
| + | |||
| + | ^ № ^ Тема ^ | ||
| + | | 1. | Введение. Проблемы разработки наукоемкого ПО. Качество программных систем. | | ||
| + | | 2. | Понятный код. Оформление и стандарты. Технический долг. Проведение код ревью. | | ||
| + | | 3. | Декомпозиция программ обработки данных. Метод постепенного уточнения. Повторное использование. | | ||
| + | | 4. | Совместная разработка. Непрерывная интеграция. Гибкие процессы разработки. | | ||
| + | | 5. | Процесс анализа данных. Исследовательский анализ (EDA). Представление результатов. | | ||
| + | | 6. | Повторное использование. Объектные методы. Структуры репозиториев. | | ||
| + | | 7. | Тестирование систем анализа данных. Методы модульного тестирования. Инструменты автоматизации поставки, | ||
| + | | 8. | Тестирование инвариантами. Adversarial testing. Тестирование наукоемкого ПО. | | ||
| + | | 9. | Проблема повторяемости экспериментов. Что входит в эксперимент. Конфигурация. Лаборатория данных | | ||
| + | | 10. | Продуктивизация ML в виде сервисов. Реализация микросервисов в Python для поставки моделей. Создание API. Принципы REST и HATEOAS. | | ||
| + | | 11. | Хранение данных. Релационная, | ||
| + | | 12. | Технологии параллельной обработки данных. Master/ | ||
| + | | 13. | Технологии GitOps, MLOps. Технологии сжатия и ускорение моделей. Средства представления API моделей. Стандартные протоколы. | | ||
| + | |||
| + | ==== Курсовой проект ==== | ||
| + | |||
| + | Курсовой проект посвящен созданию собственного микросервиса с моделью машинного обучения в соответствии с процессами CI/CD или разработки повторно-используемой библиотеки с реализацией алгоритмом решения прикладной ML задачи. | ||
| + | |||
| + | Задания выполняются в соответствии с процессом Scrum и CI/CD. Каждое задание - это отдельный спринт. | ||
| + | |||
| + | ^ # ^ Тема задания ^ | ||
| + | | 1. | Документирование и ревью кода | | ||
| + | | 2. | Реализация модели. Структурирование программы | | ||
| + | | 3. | Автоматизация поставки и модульное тестирование | | ||
| + | | 4. | Тестирование. Непрерывная интеграция | | ||
| + | | 5. | Реализация микросервиса или микроесервиса. Использования СУБД. Воспроизводимое обучение | | ||
| + | | 6. | Размещение сервиса в облаке, | ||
| + | |||
| + | ==== Критерии оценивания ==== | ||
| + | |||
| + | Итоговая оценка по курсу формируется из успешности выполнения заданий по ходу семестра - по 10% за каждое задание, | ||
| + | |||
| + | ==== Литература ==== | ||
| + | |||
| + | - Материалы лекций | ||
| + | - Davy Cielen, Arno D.B. Meysman, Mohamed Ali. Introducing Data Science (book) | ||
| + | - NoSQL Distilled (book) | ||
| + | - A Survey on NoSQL Stores (2018) ACM CSUR (paper) | ||
| + | - Kanewala U., Bieman J.M. Testing scientific software: A systematic literature review (paper) | ||
| + | - Gerardo Cerda Neumann, Héctor Antillanca Espina, Víctor Parada Daza. Development of Scientific Software and Practices for Software Development A Systematic Literature Review (paper) | ||
| + | - The Art of Software Testing - Second Edition (book) | ||
| + | - Tarek Ziade. Python Microservices Development (book) | ||
| + | - ГОСТ Р ИСО/ | ||
| + | - Test your Machine Learning Algorithm with Metamorphic Testing [[https:// | ||
| + | - Recent developments in Adversarial Example [[https:// | ||
| + | - MapReduce Design Patterns. Book. Donald Miner, Adam Shook (book) | ||
| + | - (2018) On Reproducible AI: Towards Reproducible Research, Open Science, and Digital Scholarship in AI Publications (paper) | ||
| + | |||
| + | ==== Контакты ==== | ||
| + | |||
| + | Контактный адрес: course [at] objectoriented.ru | ||
| + | |||
| + | Хританков Антон Сергеевич, | ||