min(10, 0.6 ДЗ + 0.4 проект + 0.3 бонусы)
Занятия проходят в Zoom - https://us06web.zoom.us/j/84811522468?pwd=aWFQSHJUdzFOYm5ETSthMlhTcEVrZz09 по пятницам в 19:00
Бардуков Анатолий Андреевич - tg: @sindq
Свиридов Иван
Соозарь Мария
детали по каждому пункту лежат в соответствующих папках
- Введение в РС + Bash & Docker
- SQL, NoSQL, MPP - знакомство с видами БД + синтаксис запросов
-
- YARN + HDFS + MapReduce
- Spark RDD
- Spark DataFrame + Spark SQL
- Spark ML + handcrafted ML on Spark
- MLOps (model to docker to prod + balancer) + MLFlow
- Distributed Learning + Quantization + Distillation + Prunning
- Approx answer searching - LSH + HNSW
- Streaming (Spark + Kafka)
- Flink
- ETL (Airflow) + DWH
- Vertica
- Data Vault
После НГ - занятия про РС:
- highload + load balancing
- concurrency + consistency
- CPU-bound + IO-bound
- architecture interview example
Специфичные инструкции по сдаче есть в каждой теме, но базово подход такой:
-
У вас есть две нумерации недель (W<N>): нумерация по темам из плана и внутренняя техническая нумерация докеров с заданиями.
-
Для сопоставления этих двух нумераций используется таблица ниже:
Название блока Номер темы (URI грейдера) Докер-контейнер Bash w1/1 sindq/lsml-w2-ru:latest
Bash w1/2 sindq/lsml-w2-ru:latest
Bash w1/3 sindq/lsml-w2-ru:latest
Bash w1/4 sindq/lsml-w2-ru:latest
Bash w1/5 sindq/lsml-w2-ru:latest
Docker w1/6 sindq/lsml-w11-t1-ru:latest
Docker w1/7 sindq/lsml-w11-t2-ru:latest
Docker w1/8 sindq/lsml-w11-t3-ru:latest
Docker w1/9 sindq/lsml-w11-t4-ru:latest
Docker w1/10 sindq/lsml-w11-t5-ru:latest
Postgres w2/1 sindq/lsml-w1-t1-ru:latest
Mongodb w2/2 sindq/lsml-w1-t2-ru:latest
Web-Scraping* w2/3 sindq/lsml-w1-t3-ru:latest
----- ----- ----- Hadoop w4/1 sindq/lsml-w3-ru:latest
Spark w5/1 sindq/lsml-w4-ru:latest
Spark Advanced w6/1 sindq/lsml-w5-ru:latest
SparkML w7/1 sindq/lsml-w8-ru:latest
MLflow w8/1 sindq/lsml-w13-t1-ru:latest
MLOps w8/2 sindq/lsml-w13-t2-ru:latest
Compression w9/1 sindq/lsml-w14-t1-ru:latest
Distillation w9/2 sindq/lsml-w14-t2-ru:latest
Quantization w9/3 sindq/lsml-w14-t3-ru:latest
Application* w9/4 sindq/lsml-w14-t4-ru:latest
LSH w10/1 sindq/lsml-w15-t1-ru:latest
HNSW w10/2 sindq/lsml-w15-t2-ru:latest
-
запускаете Docker-контейнер по выбранной теме
docker run -d -p <local>:<container> sindq/lsml-W<N>[-<task>]-ru
Например:
docker run -d -p 8080:80 sindq/lsml-w4-ru:latest
Примечание_1: если не получается запустить неделю с одним заданием через
docker run -d -p 8080:80 sindq/lsml-w4-ru:latest
, попробуйте запуск черезdocker run -d -p 8080:80 sindq/lsml-w4-t1-ru:latest
Примечание_2: здесь W<N> берётся из правого столбца
-
решаете задание в контейнере, в результате получаете некоторый файл с решением (в контейнере)
-
делаете специфический запрос в грейдер (параметры - задание, ваш идентификатор (аккаунт в тг), номер задания, решение (тело post запроса))
curl -F @filename <IP>/<COURSE>/<USER>/W<N>/<task> curl -F [email protected] 51.250.54.133/MLHL-LSML/sind/w7/1
Примечание_1: здесь W<N> - номер темы (левый столбец), <task> - номер задания в неделе (его можно узнать из названия .ipynb-файла с заданием, либо уточнить у преподавателя)
-
получаете оценку, она автоматически сохраняется в документ с оценками (сохраняется не лучшая, а последняя попытка, комментарии к ячейке будут содержать доп информацию)
-
результат запроса также содержит оценку и комментарий
Виды проектов
- ML - проект
- DE - проект
- BigData - проект
-
Описание - до 2 баллов
описание проекта, readme
-
Подготовка данных - 4 балла
Платформа экспериментов (max 2)
Хранилище данных (max 2)
Процессы на данных (max 2)
Модель (max 2)
много данных с нуля - 2 балла мало данных с нуля - 1 балл дистилляция / трансфер - 1 балл
-
Runtime - 4 балла
Реализация рантайма (max 2)
async/sync, качество кода
Devops (max 2)
docker-compose оптимизация моделей под рантайм
Github репозиторий проекта прикрепляете комментарием в табличке с оценками к вашей ячейке с проектом
В репозитории должен быть код, подробное описание проекта и инструкция для запуска
Также желательно описать, на какие критерии претендуете из списка слева
Проверка ручная, будем смотреть код и запускать
Каждое защищённое задание даёт 1 балл от итоговой оценки.
По своей сути они похожи на архитектурные собеседования, у вас будет 25 минут на презентацию вашего решения (обычно даётся 1 час, но и решается задание на месте)
Устная защита решения, которое вы прорабатываете самостоятельно:
- выбираете тему
- придумываете решение, примерные критерии будут описаны в самом задании
- договариваетесь о дате созвона с кем-то из преподавателей
- звонок длится ~40 минут (15 минут закладываем на вопросы, постановку и общение на смежные темы)
- получаете оценку :)
-
Разработайте систему доставки обновлений для устройств типа Android TV. Обратите внимание на количество устройств, на неполадки со связью и возможные проблемы в процессе установки.
-
Спроектируйте процесс миграции backend-а для системы вида Google Docs. Обратите внимание, что процесс перехода должен быть незаметным для пользователей - так называемый zero-downtime.
-
Предположим, что в Яндекс сломались подсказки к запросам (suggest), а все исходники были утеряны. Спроектируйте Suggest
-
Спроектировать верхнеуровнево устройство Яндекс.Диска Обратить внимание на работу с каталогами, поведением пользователей, объёмы файлов, типовые запросы
-
Спроектировать Instagram-like сервис. Пользователь может подписываться на других, пользователей много, хочется иметь возможность построить ленту подписок