Skip to content

Sindbag/mlhl-bigdata

Repository files navigation

MLHL: Big Data курс

Формула оценки

min(10, 0.6 ДЗ + 0.4 проект + 0.3 бонусы)

Страница с оценками

Канал в телеграмме

Wiki

Плейлист

Занятия проходят в Zoom - https://us06web.zoom.us/j/84811522468?pwd=aWFQSHJUdzFOYm5ETSthMlhTcEVrZz09 по пятницам в 19:00

Лекторы

Бардуков Анатолий Андреевич - tg: @sindq

Свиридов Иван

Соозарь Мария

План курса

детали по каждому пункту лежат в соответствующих папках

  1. Введение в РС + Bash & Docker
  2. SQL, NoSQL, MPP - знакомство с видами БД + синтаксис запросов

  3. YARN + HDFS + MapReduce
  4. Spark RDD
  5. Spark DataFrame + Spark SQL
  6. Spark ML + handcrafted ML on Spark
  7. MLOps (model to docker to prod + balancer) + MLFlow
  8. Distributed Learning + Quantization + Distillation + Prunning
  9. Approx answer searching - LSH + HNSW
  10. Streaming (Spark + Kafka)
  11. Flink
  12. ETL (Airflow) + DWH
  13. Vertica
  14. Data Vault

После НГ - занятия про РС:

  1. highload + load balancing
  2. concurrency + consistency
  3. CPU-bound + IO-bound
  4. architecture interview example

Сдача заданий

Специфичные инструкции по сдаче есть в каждой теме, но базово подход такой:

  1. У вас есть две нумерации недель (W<N>): нумерация по темам из плана и внутренняя техническая нумерация докеров с заданиями.

  2. Для сопоставления этих двух нумераций используется таблица ниже:

    Название блока Номер темы (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
  3. запускаете 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> берётся из правого столбца

  4. решаете задание в контейнере, в результате получаете некоторый файл с решением (в контейнере)

  5. делаете специфический запрос в грейдер (параметры - задание, ваш идентификатор (аккаунт в тг), номер задания, решение (тело 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-файла с заданием, либо уточнить у преподавателя)

  6. получаете оценку, она автоматически сохраняется в документ с оценками (сохраняется не лучшая, а последняя попытка, комментарии к ячейке будут содержать доп информацию)

  7. результат запроса также содержит оценку и комментарий

Проект

Виды проектов

  1. ML - проект
  2. DE - проект
  3. BigData - проект

Критерии оценки

  1. Описание - до 2 баллов

    описание проекта, readme

  2. Подготовка данных - 4 балла

    Платформа экспериментов (max 2)

    Хранилище данных (max 2)

    Процессы на данных (max 2)

    Модель (max 2)

     много данных с нуля - 2 балла
     мало данных с нуля - 1 балл
     дистилляция / трансфер - 1 балл
    
  3. Runtime - 4 балла

    Реализация рантайма (max 2)

     async/sync, качество кода
    

    Devops (max 2)

     docker-compose
     оптимизация моделей под рантайм
    

Формат сдачи

Github репозиторий проекта прикрепляете комментарием в табличке с оценками к вашей ячейке с проектом

В репозитории должен быть код, подробное описание проекта и инструкция для запуска

Также желательно описать, на какие критерии претендуете из списка слева

Проверка ручная, будем смотреть код и запускать

Бонусные задания

Каждое защищённое задание даёт 1 балл от итоговой оценки.

По своей сути они похожи на архитектурные собеседования, у вас будет 25 минут на презентацию вашего решения (обычно даётся 1 час, но и решается задание на месте)

Процесс сдачи

Устная защита решения, которое вы прорабатываете самостоятельно:

  • выбираете тему
  • придумываете решение, примерные критерии будут описаны в самом задании
  • договариваетесь о дате созвона с кем-то из преподавателей
  • звонок длится ~40 минут (15 минут закладываем на вопросы, постановку и общение на смежные темы)
  • получаете оценку :)

Темы

  1. Разработайте систему доставки обновлений для устройств типа Android TV. Обратите внимание на количество устройств, на неполадки со связью и возможные проблемы в процессе установки.

  2. Спроектируйте процесс миграции backend-а для системы вида Google Docs. Обратите внимание, что процесс перехода должен быть незаметным для пользователей - так называемый zero-downtime.

  3. Предположим, что в Яндекс сломались подсказки к запросам (suggest), а все исходники были утеряны. Спроектируйте Suggest

  4. Спроектировать верхнеуровнево устройство Яндекс.Диска Обратить внимание на работу с каталогами, поведением пользователей, объёмы файлов, типовые запросы

  5. Спроектировать Instagram-like сервис. Пользователь может подписываться на других, пользователей много, хочется иметь возможность построить ленту подписок

About

Materials for MLHL's Big Data course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published