Обработка и анализ больших массивов данных (МОиВС, осень21, 2022) — различия между версиями
м (add lectures 13-15) |
м (final UPD) |
||
(не показано 6 промежуточных версии этого же участника) | |||
Строка 20: | Строка 20: | ||
! Занятие !! Тема !! Дата !! Преподаватель !! Материалы для самоподготовки к семинарам !! Дополнительные материалы | ! Занятие !! Тема !! Дата !! Преподаватель !! Материалы для самоподготовки к семинарам !! Дополнительные материалы | ||
|- | |- | ||
− | | style="background:#eaecf0;" | '''1''' || Введение в распределенные системы. Bash & Docker || 12.09.22 || Анатолий Бардуков || | + | | style="background:#eaecf0;" | '''1''' [[https://www.youtube.com/watch?v=GfIYKt0BgB0&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || Введение в распределенные системы. Bash & Docker || 12.09.22 || Анатолий Бардуков || |
|- | |- | ||
− | | style="background:#eaecf0;" | '''2''' || SQL, NoSQL, MPP-format. Знакомство с видами БД, синтаксис запросов || 16.09.22 || Иван Свиридов|| || | + | | style="background:#eaecf0;" | '''2''' [[https://www.youtube.com/watch?v=x4BMfe8-75k&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || SQL, NoSQL, MPP-format. Знакомство с видами БД, синтаксис запросов || 16.09.22 || Иван Свиридов|| || |
|- | |- | ||
− | | style="background:#eaecf0;" | '''3''' || Hadoop || 30.09.22 || Иван Свиридов || || | + | | style="background:#eaecf0;" | '''3''' [[https://www.youtube.com/watch?v=N7M1i7Wlvms&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || Hadoop || 30.09.22 || Иван Свиридов || || |
|- | |- | ||
− | | style="background:#eaecf0;" | '''4''' || YARN package manager, HDFS, MapReduce || 07.10.22 || Анатолий Бардуков || || | + | | style="background:#eaecf0;" | '''4''' [[https://www.youtube.com/watch?v=_8TeUlJSJEQ&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || YARN package manager, HDFS, MapReduce || 07.10.22 || Анатолий Бардуков || || |
|- | |- | ||
− | | style="background:#eaecf0;" | '''5''' || Spark RDD || 14.10.22 || Мария Соозарь || || | + | | style="background:#eaecf0;" | '''5''' [[https://www.youtube.com/watch?v=zMkAo7u9KQc&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || Spark RDD || 14.10.22 || Мария Соозарь || || [https://blog.acolyer.org/2016/05/03/gorilla-a-fast-scalable-in-memory-time-series-database/ Статья от Facebook] про сжатие колоночных данных |
|- | |- | ||
− | | style="background:#eaecf0;" | '''6''' || Spark DataFrame + Spark SQL || 21.10.22 || | + | | style="background:#eaecf0;" | '''6''' [[https://www.youtube.com/watch?v=Xn3cCUP5LTE&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || Spark DataFrame + Spark SQL || 21.10.22 || Анатолий Бардуков || || |
|- | |- | ||
| | | | ||
|- | |- | ||
− | | style="background:#eaecf0;" | '''7''' || Spark ML + handcrafted ML on Spark || || || || | + | | style="background:#eaecf0;" | '''7''' [[https://www.youtube.com/watch?v=uVI5F9lvDx4&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || Spark ML + handcrafted ML on Spark || 11.11.22 || Анатолий Бардуков || |
+ | [https://drive.google.com/file/d/1IPEyLVpcfMRsFGyyAv5YspuBfwcmsOUo/view?usp=sharing Презентация] про полный цикл разработки ML-сервиса, | ||
+ | |||
+ | [https://drive.google.com/file/d/11bW_cnisaEjuWUNFi29BwntT5Jo6Tstf/view?usp=sharing Презентация] про развертывание ML-моделей | ||
+ | || | ||
|- | |- | ||
− | | style="background:#eaecf0;" | '''8''' || MLOps (model -> Docker -> prod + balancer), MLFlow || || || || | + | | style="background:#eaecf0;" | '''8''' [[https://www.youtube.com/watch?v=Uzad_U5L4wg&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || MLOps (model -> Docker -> prod + balancer), MLFlow || 16.11.22 || Анатолий Бардуков || || |
|- | |- | ||
− | | style="background:#eaecf0;" | '''9''' || Distributed Learning. Quantization, Distillation and Prunning || || || || | + | | style="background:#eaecf0;" | '''9''' [[https://www.youtube.com/watch?v=N7CXWqY3uyc&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || Distributed Learning. Quantization, Distillation and Prunning || 18.11.22 || Анатолий Бардуков || || |
|- | |- | ||
− | | style="background:#eaecf0;" | '''10''' || Approximate answer searching: LSH + HNSW || || || || | + | | style="background:#eaecf0;" | '''10''' [[https://www.youtube.com/watch?v=J2ZilprCUYM&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || Approximate answer searching: LSH + HNSW || 24.11.22 || Иван Свиридов || || |
|- | |- | ||
− | | style="background:#eaecf0;" | '''11''' || Streaming (Spark + Kafka) || || || || | + | | style="background:#eaecf0;" | '''11''' [[https://www.youtube.com/watch?v=rNLOMxAS-bk&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || Streaming (Spark + Kafka) || 02.12.22 || Анатолий Бардуков || || |
|- | |- | ||
− | | style="background:#eaecf0;" | '''12''' || | + | | style="background:#eaecf0;" | '''12''' [[https://www.youtube.com/watch?v=BL9MH5d1Qco&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || [[https://drive.google.com/file/d/1J-EMv4vnNKoFGg4jWf49Lzqt-s--606l/view?usp=sharing Презентация]] Оргвопросы || 07.12.22 || Анатолий Бардуков || || |
|- | |- | ||
− | | style="background:#eaecf0;" | '''13''' || | + | | style="background:#eaecf0;" | '''13''' [[https://www.youtube.com/watch?v=ptm0r7DOuYk&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || Scala || 09.12.22 || Мария Соозарь || || |
|- | |- | ||
− | | style="background:#eaecf0;" | '''14''' | + | | style="background:#eaecf0;" | '''14''' [[https://www.youtube.com/watch?v=Ios0c66i-bQ&list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD Запись]] || [[https://habr.com/ru/company/yandex/blog/520134/ Слайды (Хабр)], [https://web.stanford.edu/class/ee380/Abstracts/101110-slides.pdf Слайды (Стэнфорд)]] Оптимизация инференса || 14.12.22 || Анатолий Бардуков || || |
− | + | ||
− | + | ||
|- | |- | ||
|} | |} | ||
Строка 61: | Строка 63: | ||
== Домашние задания == | == Домашние задания == | ||
+ | ''' Наиболее подробно оцениваемые задания описаны в репозитории. И в презентации с 12-го занятия''' | ||
+ | |||
+ | В папках занятий на Гитхабе есть Docker'ы с заданиями для запуска | ||
+ | |||
+ | Базовый подход к сдаче заданий нижеследующий: | ||
+ | |||
+ | 1. запустить Docker-контейнер по выбранной теме | ||
+ | |||
+ | <code>docker run -d -p <local>:<container> sindq/lsml-w<N>[-<task>]-ru</code> | ||
+ | |||
+ | 2. решить задания в контейнере, в результате чего вы получите некоторый файл с решением (в контейнере) | ||
+ | |||
+ | 3. сделать специфический запрос в грейдер (параметры - задание, ваш идентификатор (аккаунт в тг), номер задания, решение (тело post запроса)) | ||
+ | |||
+ | <code>curl -F @filename <IP>/<COURSE>/<USER>/w<N>/<task></code> | ||
+ | |||
+ | 4. оценку автоматически сохранится в документ с оценками (''сохраняется не лучшая, а последняя попытка, комментарии к ячейке будут содержать доп информацию'') | ||
+ | |||
+ | === Бонусные задания === | ||
+ | Каждое защищённое задание даёт '''1 балл от итоговой оценки'''. | ||
+ | |||
+ | По своей сути они похожи на '''архитектурные собеседования''', у вас будет 25 минут на презентацию вашего решения (обычно даётся 1 час, но и решается задание на месте) | ||
+ | |||
+ | ==== Процесс сдачи ==== | ||
+ | Устная защита решения, прорабатываемого вами самостоятельно, выглядит так: | ||
+ | |||
+ | * выбираете тему | ||
+ | * придумываете решение, примерные критерии будут описаны в самом задании | ||
+ | * договариваетесь о дате созвона с кем-то из преподавателей | ||
+ | * звонок длится ~40 минут (15 минут закладываем на вопросы, постановку и общение на смежные темы) | ||
+ | * получаете оценку :) | ||
== Литература == | == Литература == | ||
+ | * «Hadoop: The Definitive Guide», Tom White | ||
+ | * «Spark для профессионалов», Сэнди Риза, Ури Лезерсон, Шон Оуэн и Джош Уиллс | ||
+ | * Та самая "книжка с кабанчиком" «Designing Data-Intensive Applications» by Martin Kleppman | ||
+ | * «Big Data: Principles and Best Practices Of Scalable Real-Time Data Systems» by Nathan Marz and James Warren |
Текущая версия на 17:46, 8 января 2023
Содержание
О курсе
Занятия проводятся в Zoom по пятницам в 19:00
Контакты
Канал курса в TG: channel link
Чат курса в TG: chat link
Преподаватели: Бардуков Анатолий (TG: @sindq), Свиридов Иван, Соозарь Мария
Материалы курса
Ссылка на плейлист курса на YouTube: https://www.youtube.com/playlist?list=PLmA-1xX7IuzAcOe1hOaDW8Jj4mVaLOoDD
Ссылка на GitHub с материалами курса: [GitHub]
Занятие | Тема | Дата | Преподаватель | Материалы для самоподготовки к семинарам | Дополнительные материалы |
---|---|---|---|---|---|
1 [Запись] | Введение в распределенные системы. Bash & Docker | 12.09.22 | Анатолий Бардуков | ||
2 [Запись] | SQL, NoSQL, MPP-format. Знакомство с видами БД, синтаксис запросов | 16.09.22 | Иван Свиридов | ||
3 [Запись] | Hadoop | 30.09.22 | Иван Свиридов | ||
4 [Запись] | YARN package manager, HDFS, MapReduce | 07.10.22 | Анатолий Бардуков | ||
5 [Запись] | Spark RDD | 14.10.22 | Мария Соозарь | Статья от Facebook про сжатие колоночных данных | |
6 [Запись] | Spark DataFrame + Spark SQL | 21.10.22 | Анатолий Бардуков | ||
7 [Запись] | Spark ML + handcrafted ML on Spark | 11.11.22 | Анатолий Бардуков |
Презентация про полный цикл разработки ML-сервиса, Презентация про развертывание ML-моделей |
|
8 [Запись] | MLOps (model -> Docker -> prod + balancer), MLFlow | 16.11.22 | Анатолий Бардуков | ||
9 [Запись] | Distributed Learning. Quantization, Distillation and Prunning | 18.11.22 | Анатолий Бардуков | ||
10 [Запись] | Approximate answer searching: LSH + HNSW | 24.11.22 | Иван Свиридов | ||
11 [Запись] | Streaming (Spark + Kafka) | 02.12.22 | Анатолий Бардуков | ||
12 [Запись] | [Презентация] Оргвопросы | 07.12.22 | Анатолий Бардуков | ||
13 [Запись] | Scala | 09.12.22 | Мария Соозарь | ||
14 [Запись] | [Слайды (Хабр), Слайды (Стэнфорд)] Оптимизация инференса | 14.12.22 | Анатолий Бардуков |
Формула оценивания
min(10, 0.6 ДЗ + 0.4 проект + 0.3 бонусы)
Лист с оценками: https://docs.google.com/spreadsheets/d/158tztQ-jFFErWMk7k3INnSs8tjDTWP9j1SBE-uxFfMw/edit?usp=sharing
Домашние задания
Наиболее подробно оцениваемые задания описаны в репозитории. И в презентации с 12-го занятия
В папках занятий на Гитхабе есть Docker'ы с заданиями для запуска
Базовый подход к сдаче заданий нижеследующий:
1. запустить Docker-контейнер по выбранной теме
docker run -d -p <local>:<container> sindq/lsml-w<N>[-<task>]-ru
2. решить задания в контейнере, в результате чего вы получите некоторый файл с решением (в контейнере)
3. сделать специфический запрос в грейдер (параметры - задание, ваш идентификатор (аккаунт в тг), номер задания, решение (тело post запроса))
curl -F @filename <IP>/<COURSE>/<USER>/w<N>/<task>
4. оценку автоматически сохранится в документ с оценками (сохраняется не лучшая, а последняя попытка, комментарии к ячейке будут содержать доп информацию)
Бонусные задания
Каждое защищённое задание даёт 1 балл от итоговой оценки.
По своей сути они похожи на архитектурные собеседования, у вас будет 25 минут на презентацию вашего решения (обычно даётся 1 час, но и решается задание на месте)
Процесс сдачи
Устная защита решения, прорабатываемого вами самостоятельно, выглядит так:
- выбираете тему
- придумываете решение, примерные критерии будут описаны в самом задании
- договариваетесь о дате созвона с кем-то из преподавателей
- звонок длится ~40 минут (15 минут закладываем на вопросы, постановку и общение на смежные темы)
- получаете оценку :)
Литература
- «Hadoop: The Definitive Guide», Tom White
- «Spark для профессионалов», Сэнди Риза, Ури Лезерсон, Шон Оуэн и Джош Уиллс
- Та самая "книжка с кабанчиком" «Designing Data-Intensive Applications» by Martin Kleppman
- «Big Data: Principles and Best Practices Of Scalable Real-Time Data Systems» by Nathan Marz and James Warren