Курс викладається російською мовою: відео та матеріали російськомовні. Українська версія курсу з’явиться пізніше.
Що ви зможете після курсу
- Шукати джерела паралелізму в ML-задачах — у даних, моделі та незалежних задачах — і розуміти межі: що паралелізується повністю, що лише частково і коли кластер узагалі не потрібен
- Працювати з Apache Spark від архітектури до прод-запуску: RDD, DataFrame і Dataset, мінімізація перемішування, збірка fat-jar, Spark Submit і вибір менеджера ресурсів
- Застосовувати SparkML у хмарі: рекомендації методом ALS на MovieLens, кластеризація k-means, деплой моделі в SageMaker; писати власні блоки SparkML з тестами на Breeze
- Вести потокову обробку: Kafka з реєстром схем і Avro, Spark Streaming і Structured Streaming з гарантією exactly-once, підключення навченої моделі до потоку, вибір рушія між Spark, Flink, Storm, Kafka Streams і NiFi
- Ставити цілі ML-проєкту за SMART, вести аналіз відтоку, застосовувати uplift-моделювання та інтерпретацію моделей, проєктувати й аналізувати A/B-тести — включно з бандитськими алгоритмами
- Вводити моделі в експлуатацію: патерни інференсу, конвеєри на Airflow, відтворюваність через MLflow і DVC, онлайн-сервінг із фічер-стором, моніторингом і канарковим релізом
Кому підійде курс
Дата-сайентистам
Коли ML-задача перестає вміщатися на одному комп’ютері, потрібен перехід на розподілені обчислення — курс показує його покроково: Spark від архітектури до прод-запуску, SparkML у хмарі, потокова обробка. Доля моделі за межами ноутбука теж розібрана: від версіонування експериментів до онлайн-сервінгу.
Інженерам, які доводять моделі до продакшену
Карточки курсу називають інженерів, які доводять моделі до продакшену, дефіцитом ринку. Тут ця робота розібрана повністю: патерни інференсу, Airflow, MLflow і DVC, фічер-стор, Docker і REST API, хмари AWS. Поруч — JVM-інфраструктура: Spark на Scala, Kafka, Kubernetes.
Спеціалістам повного циклу
Чистих позицій дата-сайентиста чи ML-інженера на ринку майже немає — попитом користується профіль, який веде модель від сирих даних до працюючого сервісу. Саме цей шлях курс розбирає повністю: від цілей проєкту та АБ-тестів до випускного пайплайна. Підійде і тим, хто переводить проєкти зі small data на big data.
Не підійде тим, хто хоче вивчити машинне навчання чи Python з нуля: база ML передбачається, Python розбирається як стек під продакшн-задачі, а нейромережевий блок оглядовий.
Як проходить навчання
- Практика в хмарі AWS — Кластер EMR із Zeppelin, дані в S3, навчання рекомендацій і деплой моделі в SageMaker, публікація образів в ECR — руки в реальній інфраструктурі, а не лише на схемах
- Локальні Docker-стенди — HDFS із docker-compose, локальні Kafka і Spark, Jupyter зі Scala однією командою — практику можна повторювати без хмари
- Домашня робота після кожного модуля — Кожен блок закріплюється завданням — від власної реалізації лінійної регресії на Scala до збірки власного блоку SparkML
- Випускний проєкт — Повний пайплайн від автоматичної підготовки даних до навчання моделі та інференсу в проді — на знеособленому датасеті рекомендаційної тематики або на власній задачі
- Демо в ноутбуках і розбори коду — Кожна тема показується на працюючих прикладах — від траєкторій градієнтного спуску до конфігурації кластера та стрімінг-застосунку
Що знадобиться
- Docker — локальні стенди HDFS, Kafka і Spark піднімаються з docker-compose
- Jupyter Notebook або Google Colab для Python-практики; для Scala — середовище Almond під Docker
- Хмара AWS для розділів про кластер: EMR, S3, SageMaker, ECR
Чому самотужки зазвичай не виходить
Межа «small data — big data» неочевидна: перехід на кластер виправданий не завжди, частина алгоритмів паралелізується лише частково, а деякі задачі варто виносити з кластера в окремі сервіси. Поки це не проговорено, легко витратити тижні на кластер там, де вистачало одного комп’ютера, — або навпаки тримати навантаження, яке давно переросло ноутбук.
Окремі інструменти задокументовані, але їх забагато, щоб зібрати самому: Spark із трьома API, Kafka з реєстром схем, менеджери ресурсів, Airflow, MLflow, DVC, Docker, хмари. Зв’язки між ними — гарантія exactly-once у стрімінгу, консистентні фічі на навчанні та інференсі, відтворюваність експерименту — у документації поодинці майже не описані.
Навіть готові відповіді викликають суперечки: індустріального стандарту фічер-сторів не існує, true streaming сперечається з мікробатчем, а вибір між SageMaker і Azure ML залежить від задачі. У курсі ці розвилки розбираються на практиці та з недоліками кожної технології.
Що зміниться
До курсу
- Модель живе в ноутбуці — що з нею за межами експерименту, невідомо
- Задача зростає, а навчання впирається в один комп’ютер
- Експеримент не відтворюється: версії даних, параметри й код роз’їжджаються
- Пайплайни тримаються на cron і ручних перезапусках
- Код — дослідницький ноутбук, а не сервіс
Після курсу
- Ви обираєте патерн інференсу й розгортаєте модель як сервіс: Docker, REST API, фічер-стор, моніторинг, канарковий реліз
- Ви переносите навчання на кластер Spark і знаєте, де кластер виправданий, а де ні
- Навчання відтворюється: експерименти версіонуються в MLflow і DVC
- Конвеєри переведені на Airflow, потокова обробка — на Kafka і Spark Streaming
- Production-код — модульний Python-проєкт з тестами, конфігом і REST API
Як влаштований шлях
- База та Scala Ввідне заняття повторює базу машинного навчання: типи задач, лінійні моделі, механіку градієнтного спуску, підготовку ознак і метрики. Паралельно з нуля вивчається Scala — середовище Almond під Docker, матричні обчислення на Breeze, перша домашня робота.
- Розподілене середовище HDFS та еволюція сховищ, менеджери ресурсів, Apache Spark від архітектури до прод-запуску. Далі SparkML у хмарі, власні блоки бібліотеки і сторонні інструменти: XGBoost4J, Elephas, Правда ML.
- Потоки та продукт Kafka, Spark Streaming і Structured Streaming, критерії вибору між Spark, Flink, Storm, Kafka Streams і NiFi. Продуктова лінія: цілі ML-проєкту за SMART, аналіз відтоку, АБ-тести та бандитські алгоритми.
- Продакшн і проєкт Патерни інференсу, Airflow, MLflow і DVC, онлайн-сервінг із фічер-стором, Python-стек з Docker і хмарами, розподілене навчання нейромереж із Horovod. Фінал — випускний проєкт: повний пайплайн від підготовки даних до інференсу в проді.
Програма курсу
34 уроки · 34 модулі · 61 година 14 хвилин відео · Розділи йдуть шляхом випускного проєкту — від бази машинного навчання та Scala до потокової обробки й онлайн-сервінгу моделей; після кожного модуля домашня робота
-
-
Ввідне заняття: огляд програми та повторення бази — типи задач, лінійна і логістична регресія, механіка градієнтного спуску, підготовка ознак, метрики якості та перенавчання. Тут же наводиться робоче визначення великих даних: задача потребує розподілених обчислень.
- Вступ: лінійні моделі та градієнтний спуск1:39:20
Вступне заняття: огляд програми курсу — від розподіленої обробки та зберігання даних до потокової обробки, оркестрації пайплайнів і виведення моделей у продакшн — і повторення основ машинного навчання. Розбираємо типи задач навчання з учителем і без, лінійну та логістичну регресію, механіку градієнтного спуску й його модифікації (стохастичний, міні-батч, батч), роль кроку навчання, підготовку ознак, L1- та L2-регуляризацію, вибір метрик під задачу і витік даних. На практиці — демо-ноутбук із траєкторіями різних варіантів спуску та впливом кроку навчання на збіжність; домашнє завдання — власна реалізація лінійної регресії на Scala.
- Вступ: лінійні моделі та градієнтний спуск1:39:20
-
Базові конструкції мови: типи, val і var, функції, колекції, кейс-класи та Option, середовище Almond під Docker. Матричні обчислення та лінійна регресія виконуються на Breeze.
- Основи Scala та бібліотека Breeze1:51:38
Урок знайомить із базовими конструкціями Scala — статичною типізацією, val і var, функціями, колекціями, кейс-класами, патерн-матчингом і типом Option; мову розглядаємо як основну для Spark. Окруження розгортаємо через Almond — Scala-ядро для Jupyter під Docker. У бібліотеці Breeze, аналогу NumPy, розбираємо вектори, матриці та матричні операції, а лінійну регресію будуємо готовими методами найменших квадратів і Lasso.
- Основи Scala та бібліотека Breeze1:51:38
-
Навіщо потрібні об’єктні сховища і як влаштований HDFS: неймнода, блоки, реплікація, high availability, Federation. Практика — робота з файловою системою з командного рядка.
- Розподілені сховища: устрій HDFS1:46:42
Заняття про розподілене зберігання даних: навіщо потрібне об’єктне сховище і як улаштований HDFS — неймнода, блоки, реплікація, high availability, Federation. Розбираємо сервіс координації ZooKeeper, принцип data locality, роботу з файловою системою з командного рядка та локальний Docker-стенд.
- Розподілені сховища: устрій HDFS1:46:42
-
Огляд від інженера даних: різниця data-intensive і compute-intensive задач, еволюція сховищ від DWH до Data Lake і Data Mesh, моделі даних. Принципи MPP — сегментація, партиціювання, колоночне зберігання — і демо на Dataproc та Redshift.
- Еволюція паралельних алгоритмів і сховищ1:57:03
Огляд еволюції сховищ від корпоративних DWH до Data Lake і Data Mesh: різниця між data-intensive і compute-intensive задачами, моделі даних, CAP-теорема. Пояснюємо принципи MPP — shared nothing, хеш-сегментацію, партиціонування, колоночне зберігання — із демо на Dataproc і Redshift та розбором explain-планів Presto і Redshift.
- Еволюція паралельних алгоритмів і сховищ1:57:03
-
Менеджери ресурсів для Spark — Standalone, Mesos, YARN і Kubernetes: їх устрій, режими запуску завдань і планувальники. Підбір конфігурації кластера під навантаження ETL і машинного навчання.
- Менеджери ресурсів і деплой Spark2:04:49
Урок розбирає менеджери ресурсів для Spark — Standalone, Mesos, YARN і Kubernetes: їхній устрій, режими запуску завдань і планувальники, зокрема Capacity Scheduler та Fair Scheduler у YARN. Показуємо вертикальне й горизонтальне масштабування, локальність даних, високу доступність майстра та підбір конфігурації кластера — співвідношення пам’яті й ядер — під навантаження ETL і навчання моделей. Окремо розбираємо клієнтський і кластерний режими запуску завдань та роботу з ноутбуків через зв’язку Jupyter, SparkMagic і Livy.
- Менеджери ресурсів і деплой Spark2:04:49
-
Чим Spark замінив MapReduce, як влаштований застосунок із драйвера та виконавців і чим розрізняються RDD, DataFrame і Dataset. Демонстрація ведеться в ноутбуці на Scala.
- Архітектура й API Apache Spark2:49:57
Урок вводить у Apache Spark: місце фреймворку між розподіленим сховищем і менеджерами ресурсів, устрій застосунку з драйвера та виконавців, опис обчислень направленим графом із етапами й перемішуваннями. Розбираємо ліниві трансформації та дії, три API — RDD, DataFrame і Dataset — і правила оптимізації: мінімізувати перемішування й не гоняти дані через драйвер. Демонстрація ведеться в ноутбуці на Scala; додатково показані broadcast-з’єднання, розбір планів у Spark UI і збірка проєкту з fat-jar через IntelliJ IDEA та SBT.
- Архітектура й API Apache Spark2:49:57
-
Обмеження AdaBoost і градієнтного бустингу, можливості XGBoost і LightGBM, повна паралелізація k-середніх та її реалізація на MapReduce. Це задає критерій: де кластер окупається, а де ні.
- Паралелізація ML: бустинг і кластеризація1:53:02
Урок розбирає, які алгоритми машинного навчання піддаються розпаралелюванню: обмеження AdaBoost, часткове розпаралелювання градієнтного бустингу з вибором сплітів і міні-батчів, відмінності XGBoost і LightGBM. На прикладі кластеризації k-середніх показано повну паралелізацію алгоритму та її реалізацію в парадигмі MapReduce — центроїди в distributed cache, локальна агрегація комбайнерами й перерахунок центрів редюсерами. Торкнемося і практичних меж: Python-обгортки над нативними бібліотеками захоплюють усі процесори вузла, а на кластері бустинг виграє не завжди.
- Паралелізація ML: бустинг і кластеризація1:53:02
-
Коли машинне навчання варто переносити на розподілений кластер і де шукати паралелізм: дані, модель і незалежні задачі. Як на кластері працюють градієнтний спуск, факторизація матриць, дерева та ансамблі.
- Джерела паралелізму в ML-алгоритмах1:40:41
Урок пояснює, коли перехід на розподілене навчання виправданий, і показує пошук джерел паралелізму на трьох рівнях: дані, модель і незалежні задачі. Розбираємо, як на кластері працюють градієнтний спуск із міні-батчами та TreeReduce, параметр-сервер із планувальником Gang Scheduler, факторизація матриць методом ALS, тематична модель LDA, дерева рішень і ансамблі. Є і межі: для навчання нейромереж потрібні GPU-суперкомп’ютери зі швидкими каналами між вузлами, зате інференс без комунікацій масштабується лінійно.
- Джерела паралелізму в ML-алгоритмах1:40:41
-
Бібліотека SparkML: історія, два API і набір алгоритмів. Практика на AWS — рекомендації методом ALS на MovieLens з підбором гіперпараметрів та кластеризація k-means; модель деплоїться через SageMaker.
- SparkML2:06:45
Заняття знайомить із бібліотекою SparkML (MLlib): її історією, двома API — застарілим spark.mllib поверх RDD і сучасним spark.ml для датафреймів — та набором алгоритмів від регресій і дерев до кластеризації k-means і рекомендаційної ALS. Розбираємо шляхи побудови рекомендацій — колаборативну фільтрацію, факторизацію матриць і зведення задачі до регресії, — навчання ALS із крос-валідацією та підбором гіперпараметрів на датасеті MovieLens, а також кластеризацію k-means із підбором кількості кластерів за силуетною оцінкою. Практика на AWS: кластер EMR із Zeppelin і даними з S3, навчання ALS із формуванням персональних рекомендацій і деплой KMeans-моделі на MNIST через SageMaker Spark у вигляді endpoint.
- SparkML2:06:45
-
Архітектура SparkML — трансформери, естіматори, пайплайни, метадані — і наскрізний приклад розробки власного блоку рекомендацій. Тест створюється раніше за код: еталоном слугує чиста математика Breeze, розподілена реалізація звіряється з нею; модель зберігається, бібліотека збирається.
- Розробка власних блоків SparkML2:03:45
Урок розбирає архітектуру SparkML — трансформери, естиматори, пайплайни, метадані полей датафрейму, трейт Params і transformSchema — та математичну бібліотеку Breeze для Scala з її векторами, матрицями й оптимізаторами. На наскрізному прикладі колаборативної фільтрації item-item за косинусною схожістю показано розробку власного блоку: спочатку пишуться тести з еталонною реалізацією на Breeze, далі будується розподілена реалізація естиматора й моделі з копіюванням, збереженням і читанням через MLWritable та MLReadable. Наприкінці — збірка проєкту SBT в IntelliJ IDEA і підключення джарника до Spark через spark-submit.
- Розробка власних блоків SparkML2:03:45
-
-
-
Градієнтний бустинг у SparkML і сторонні бібліотеки: XGBoost4J з GPU-прискоренням через Rapids AI та розподілений Keras на Spark під назвою Elephas. Плюс огляд SageMaker Spark.
- XGBoost, Elephas і SageMaker Spark1:42:05
Урок розбирає ансамблі на деревах рішень — випадковий ліс із бегінгом на бутстреп-підвибірках і градієнтний бустинг, де дерева навчаються послідовно, — а також відмінність XGBoost, який враховує другі похідні функції втрат. Практика включає пайплайни PySpark з VectorAssembler і VectorIndexer та підбором гіперпараметрів крос-валідацією, мультикласову класифікацію на XGBoost 4J, GPU-ускорення бустингу через Rapids AI і розподілене навчання Keras-мережі на MNIST через Elephas з майстер-вузлом і worker-вузлами. Окремо розглядається SageMaker Spark, який з’єднує кластер EMR з ноутбуками через Livy, де алгоритм оформлюється Docker-образом із REST-ендпоінтом передбачень.
- XGBoost, Elephas і SageMaker Spark1:42:05
-
Огляд опенсорсної бібліотеки Правда ML, яка розширює SparkML: ninja-етапи для навчання, Model Transformer, швидка паралельна крос-валідація. Підбір гіперпараметрів — випадковим і баєсовим пошуком.
- Правда ML і підбір гіперпараметрів1:38:42
Розбір відкритої бібліотеки Правда ML, яка розширює SparkML: ExtractorColumn і AutoAssembler для збирання ознак, Model Summary з вагами та іменами атрибутів, ninja-етапи для кешування під час навчання і Model Transformer для об’єднання моделей. Показано паралельну крос-валідацію з метриками та кривими по фолдах, а також підбір гіперпараметрів випадковим пошуком на послідовностях Соболя і баєсовою оптимізацією на гаусовому процесі. Окремо — пошук по групах гіперпараметрів і відновлення запусків після збою з проміжних результатів.
- Правда ML і підбір гіперпараметрів1:38:42
-
Відмінності батчів і стрімів та устрій Kafka: продюсери, партиції, офсети, consumer-групи. Лямбда- та капа-архітектури, мікробатч проти true streaming і проблема event time.
- Вступ до потокової обробки та Kafka1:28:56
Вступне заняття про потокову обробку: порівняння батч- і стрим-обробки за швидкістю отримання результату, профілем навантаження та репроцесингом, а також сценарії стриму в ML — рекомендації за холодного старту, маркетингові тригери і контроль датчиків обладнання. Розбирається устрій Kafka — журнал, брокери, топіки та партиції, офсети і consumer-групи, роль ZooKeeper і формат повідомлень на Avro. У фіналі — лямбда- та капа-архітектури, різниця між мікробатчем і справжнім стримінгом, а також processing time і event time з водяними знаками.
- Вступ до потокової обробки та Kafka1:28:56
-
База Spark Streaming: гарантії доставки, джерела і сінки, чекпоінтинг і водяні знаки. Інтеграція навчених ML-пайплайнів з Kafka та діагностика стрімінг-застосунків.
- Основи Spark Streaming та Kafka1:52:45
База Spark Streaming: гарантії доставки at-most-once, at-least-once і exactly-once, режими Structured Streaming і DStream, джерела та синки, чекпоінтинг через write-ahead log і водяні знаки для запізнілих подій. Показано, як моделі, навчені в Spark ML пайплайні, серіалізуються та підключаються до потоку Kafka через Direct-підхід для скорингу. Також — тригери, режим Continuous Processing, метрики стримінгу в UI і діагностика застосунку за GC-логами та flame-графами.
- Основи Spark Streaming та Kafka1:52:45
-
Зіставлення мікробатча та безперервного стрімінгу: обмеження D-Stream, устрій Structured Streaming і continuous processing. Демо — виявлення аномалій в IoT-потоці на мережі HTM, що навчається онлайн.
- Мікробатч і безперервний стримінг2:05:02
Урок зіставляє мікробатч і безперервний стримінг: обмеження D-Stream з RDD та вікнами, устрій Structured Streaming як необмеженої таблиці з Dataset і DataFrame та режим continuous processing з довгоживучими задачами і фіксацією епох у write-ahead log. У практичній частині — детекція аномалій в IoT-потоці з датчиків озону на мережі Hierarchical Temporal Memory, що навчається онлайн: SDR-кодування, Spatial і Temporal Pooler, закріплення партицій Kafka за мережами. Демо розгортається на ZooKeeper, Kafka і Zeppelin, де в міру онлайн-навчання візуалізація ловить піки озону; каркас прикладів пропонується розібрати локально за readme.
- Мікробатч і безперервний стримінг2:05:02
-
Принципова різниця true streaming і мікробатчевих фреймворків. Розбір Spark, Storm, Flink, Kafka Streams і NiFi та критерії вибору рушія під тип задачі.
- True streaming проти мікробатчу1:43:16
Урок пояснює принципову різницю між true streaming і мікробатчевими фреймворками та розбирає Spark, Storm, Flink, Kafka Streams і NiFi: поведінку backpressure, покоління фреймворків від ручного опису нод графа до декларативності та критерії вибору рушія під задачу — агрегати на великому потоці, реакція на аномалії, стримінговий мікросервіс або переміщення даних між сховищами. Окрему увагу приділено Flink: шари API, оператори keyBy, union і connect, типи вікон уключно із сесійними, агрегатні функції, window і interval join, асинхронні запити. У практичній частині потік переглядів сторінок збирається в сесії з розрахунком тривалості та середнього часу на сторінці, а патерн збагачення через RichCoFlatMapFunction мержить сесії з потоком оновлень профілів; розібраний код Flink викладено в репозиторії.
- True streaming проти мікробатчу1:43:16
-
Управлінське заняття: постановка цілей за SMART, перевірка, чи потрібен ML, вартість і обв’язка ML у проді, склад команди. Далі — метрики, ризики й огляд середовищ для аналітики в Big Data стеці.
- Цілі ML-проєкту за SMART1:59:23
Управлінське заняття про постановку мети ML-проєкту за SMART: розрізнення задачі та мети, перевірка, чи розв’язується задача ML узагалі, вартість обв’язки навколо моделі — збір даних, тестування, сервінг і моніторинг — і прив’язка проєкту до грошей через ланцюжок метрик від KPI і бізнес-показників до продуктових та офлайн-ML-метрик із перевіркою АБ-тестом. Розбираються склад ML-команди за ролями, складнощі вписування ML-проєктів у Scrum і Waterfall, тяжкість підтримки моделей в онлайні з дрейфом фічей, типові провали і закон Гудгарта, а також порада Google починати з евристик і першої моделі не більш ніж із трьох ознак. У демо порівнюються середовища для аналітики в big data стеку: Zeppelin, плагін Big Data Tools в IntelliJ IDEA і Polynote.
- Цілі ML-проєкту за SMART1:59:23
-
Довгострокові ML-цілі на задачі утримання користувачів: пастки кореляцій та когнітивних викривлень, етапи аналізу відтоку, uplift-категорії відгуку. Інтерпретація моделей — для бізнес-рішень.
- Довгострокові ML-цілі та аналіз відтоку1:49:03
Урок поєднує довгострокові ML-цілі із задачею утримання користувачів: кореляція проти причинності та зворотна причинність на прикладі ознаки «кількість друзів», парадокс Сімпсона на двох рекомендаційних алгоритмах і шкода масових розсилок, які піднімають квартальні показники, але в довгостроку ведуть до відписок. Розбираються uplift-моделювання з чотирма категоріями відгуку на сповіщення, етапи аналізу відтоку — розбиття на когорти, пошук причин відходу, прогноз імовірності відходу та вибір дії за сегментами, — метрики retention rate і відтік, сегментація за LTV та ознаки з динаміки сесій, пристроїв і скарг. Наприкінці — кейс із завищеним ROC AUC через «мертвих» клієнтів і способи інтерпретації моделей: коефіцієнти лінійних моделей, важливість ознак у лісах і бустингах, LIME, SHAP і Grad-CAM для складних моделей.
- Довгострокові ML-цілі та аналіз відтоку1:49:03
-
АБ-тестування з продуктового боку: мотивація та дизайн експерименту, чек-лист запуску, аналіз із довірчими інтервалами. Поправки на множинні порівняння та гетерогенний ефект.
- АБ-тестування: дизайн, запуск і аналіз1:38:19
Урок розбирає АБ-тестування з продуктового боку: цінність дешевого експериментування на кейсах Microsoft і Google, поділ метрик на бізнес-показники та технічні, класичний дизайн з контрольною і тестовими групами, перевірка інструментів вимірювання АА-експериментом і розбиття користувачів хешуванням із сіллю. Наводиться чек-лист запуску: фіксація гіпотези з очікуваним приростом метрик до старту, попередження суміжних команд, поетапне ввімкнення з моніторингами і заборона правити параметри експерименту на ходу. Аналіз результату охоплює p-value та статистичну потужність, t-тест Уелча з оцінкою величини ефекту в довірчих інтервалах, поправки на множинні порівняння — Бонферроні, Холма і Бенджаміні—Хохберга — і гетерогенний ефект підгруп.
- АБ-тестування: дизайн, запуск і аналіз1:38:19
-
Розрахунок вибірки та t-тест на модельному датасеті, бандитські алгоритми — епсилон-жадний і семплінг Томпсона. Прийоми АБ-тестування в продакшені та етапи побудови власної платформи.
- Практика A/B-тестування та багаторукі бандити2:11:31
Практичне заняття: на датасеті з лендингами розраховується розмір вибірки та запускається t-тест, розбираються бандитські алгоритми — епсилон-жадібний і семпліювання за Томпсоном. Окремо розглядаються прийоми A/B-тестування в продакшені — бакетизація, shadowing, захисні метрики — та етапи побудови власної платформи тестування.
- Практика A/B-тестування та багаторукі бандити2:11:31
-
-
-
Пакетний, синхронний та асинхронний патерни інференсу і межі їх застосовності. Детально розбирається пакетний сценарій — від обмежень cron до оркестраторів Oozie та Airflow.
- Патерни інференсу ML-моделей у продакшн1:46:20
Розбираються пакетний, синхронний та асинхронний патерни інференсу й межі їх застосовності; докладно вивчається пакетний сценарій. Показано шлях від cron з його обмеженнями до оркестраторів Oozie та Airflow: DAG, оператори, сенсори, екзек’ютори і доставка дагів через CI/CD.
- Патерни інференсу ML-моделей у продакшн1:46:20
-
Патерни train then serve і train to serve, чек-лист відтворюваності без спеціальних інструментів. Огляд MLflow і DVC із демонстрацією.
- Відтворюваність навчання моделей: MLflow та DVC2:01:41
Розбираються патерни train then serve та train to serve, чекліст відтворюваності та мінімальне рішення без спеціальних інструментів. Далі — огляд MLflow з його Tracking і Model Registry та DVC, який версіює дані й пайплайни, — з демонстрацією роботи інструментів.
- Відтворюваність навчання моделей: MLflow та DVC2:01:41
-
Два способи пакування моделі — образ із вбудованою моделлю або завантаження зі сховища, універсальні формати серіалізації. Фічер-стор для консистентних фіч і поступовий розкат із моніторингом.
- Онлайн-інференс: доставка моделей, фічер-стор, моніторинг2:00:36
Онлайн-обчислення моделей: два способи пакування — образ із зашитою моделлю або завантаження зі сховища — та універсальні формати серіалізації на кшталт PMML, ONNX і MLeap. Розбираються фічер-стор як єдина реалізація фічів для навчання та інференсу, моніторинг ML-сервісу й поступовий розкат через канарейкові релізи та Blue-Green.
- Онлайн-інференс: доставка моделей, фічер-стор, моніторинг2:00:36
-
Повторення устрою Kafka: топіки, партиції, серіалізація, реєстр схем. Розбір потокового ETL і промислового фічер-стора під високим навантаженням, потім практика з топіками, консюмерами та Kafka Streams.
- Потоковий ETL, Kafka та фічер-стори під навантаженням2:02:32
Розбирається будова Kafka: топіки, партиції, реплікація, серіалізація та схема-реєстр із форматом Avro. Порівнюються класичний нічний ETL і перенесення частини вивантажень у потік, а також робота фічер-сторів під високим навантаженням на прикладі стрімінгової системи доставки фічів. На практиці Kafka розгортається локально, створюються топіки, а читання й запис повідомлень перевіряються з консолі, з Python і зі Scala-застосунку на Kafka Streams.
- Потоковий ETL, Kafka та фічер-стори під навантаженням2:02:32
-
Коли Python потрібний поруч із JVM-інфраструктурою: варіанти прискорення інтерпретатора, сценарії виносу задач із кластера. Практика — збірка PySpark-пайплайна на Dagster.
- Python поряд із JVM-кластером2:05:45
Розбирається, коли Python виправданий поряд із JVM-інфраструктурою: альтернативні інтерпретатори та діалекти мови (PyPy, Jython, Cython, GraalVM) і сценарії виносу задач зі Spark-кластера — навчання нейромереж на GPU-машинах, інференс важких моделей, пошук схожих векторів і задачі з жорстким дедлайном. Окремо розглядаються пов’язування кластерних і зовнішніх джоб за даними, організація логів, моніторингу та конфігурування. На практиці міні-кластер Spark розгортається в Docker, а PySpark-задача оформлюється функціями-солідами Dagster.
- Python поряд із JVM-кластером2:05:45
-
Dask для розподілених обчислень зі звичним інтерфейсом NumPy і Pandas, устрій Kubernetes. Демонстрації деплою моделей через Seldon Core і Kubeflow.
- Dask, Kubernetes та деплой моделей1:49:07
Огляд Dask, який повторює інтерфейси NumPy, Pandas і scikit-learn для даних, що не вміщаються в пам’ять однієї машини, та будови Kubernetes: поди, ReplicaSet, Deployment, проби готовності й живості, декларативні YAML-маніфести. У демо кластер розгортається в хмарі, модель ірисів деплоїться через Seldon Core, а Kubeflow та MLflow показано як інструменти пайплайнів, трекінгу і сервінгу моделей.
- Dask, Kubernetes та деплой моделей1:49:07
-
Принципи production-коду на Python: читабельність, модульність, тести, документація. Розбір модульної структури регресійного проєкту з конфігом, sklearn-пайплайном і packaging.
- Модульний Python-проєкт для продакшену1:33:34
Заняття відкриває тему виведення моделей у продакшен: властивості production-коду — читабельність, модульність, тести, обробка винятків, документація та повторне використання — і шлях від дослідницького ноутбука до модульного проєкту. На прикладі регресійного проєкту показано структуру з модулів і конфіга, збірку пакета та публікацію на PyPI або в закритому репозиторії для внутрішніх бібліотек, навчання через sklearn Pipeline з кастомними трансформерами.
- Модульний Python-проєкт для продакшену1:33:34
-
Як ML-модель стає доступною клієнтам: Flask-обв’язка над model.predict, зв’язка веб-сервера і WSGI-шлюзу, місце CI/CD у випуску версій. Перший Docker-контейнер із сервісом.
- Модель за REST API на Flask1:17:04
Урок розбирає, як навчена ML-модель стає доступною клієнтам через REST API: Flask-обгортка над методом predict, запити GET і POST з вектором ознак та відповіді в JSON. Показано схему сервісу — вебсервер Nginx, WSGI-шлюз Gunicorn і Flask-застосунок із моделлю, упаковані в Docker-контейнер, — а також місце CI/CD у випуску версій. На прикладі логістичної регресії модель зберігається в pickle, підвантажується під час старту, а передбачення тестуються через Postman.
- Модель за REST API на Flask1:17:04
-
Шлях Docker-образу з ML-моделлю від локальної збірки до деплою: структура контейнера, публікація в ECR через AWS CLI, деплой на віртуальний сервер і в SageMaker. Тренування моделі запускається з ноутбука.
- Деплой моделі в Docker-образі1:30:10
Урок показує шлях Docker-образу з ML-моделлю від локальної збірки до деплою: проєкт зі скрипта тренування, Flask-застосунку, Dockerfile і requirements.txt переноситься на віртуальний сервер на кшталт EC2-інстансу, де docker run піднімає сервіс. Розбирається контейнер під SageMaker з ендпоінтами ping та invocations, публікація образу в репозиторій ECR через AWS CLI і тренування моделі з ноутбука з даними в S3.
- Деплой моделі в Docker-образі1:30:10
-
Архітектура Docker і шари образу, ізоляція через namespaces, аналіз трафіку tcpdump. Керування кількома контейнерами в Compose і деплой готового образу на EC2.
- Docker зсередини: tcpdump і Compose1:28:34
Урок поглиблює роботу з Docker: архітектура платформи з демоном і реєстром образів, пошарова збірка образу через Union File System та ізоляція процесів через namespaces. Розглядаються утиліта tcpdump для перехоплення й аналізу мережевого трафіку всередині контейнера та Docker Compose для керування кількома пов’язаними сервісами, наприклад ML-моделлю і базою даних. У практичній частині готовий образ публікується і запускається на EC2-інстансі.
- Docker зсередини: tcpdump і Compose1:28:34
-
-
-
Два шляхи виведення моделі в продакшн: на AWS модель відкривається назовні через зв’язку API Gateway і Lambda. На Heroku той самий сервіс деплоїться з Git без налаштування інфраструктури.
- Розгортання моделі: AWS і Heroku1:20:03
Урок показує два шляхи виведення моделі в продакшн. На AWS модель SageMaker відкривається назовні через поєднання Amazon API Gateway і AWS Lambda: лямбда приймає подію, за потреби препроцесить дані та викликом invoke_endpoint звертається до ендпоінта. На Heroku той самий сервіс на Flask з Gunicorn деплоїться з Git через buildpack, requirements.txt і Procfile — без ручного налаштування інфраструктури.
- Розгортання моделі: AWS і Heroku1:20:03
-
Оглядова лекція про Apache MXNet: екосистема Gluon, нативна підтримка розподіленого навчання через Horovod, туторіал Dive into Deep Learning. Варіанти розгортання — EC2, SageMaker і Lambda.
- Фреймворк Apache MXNet1:13:30
Огляд фреймворку Apache MXNet і його екосистеми Gluon: Gluon CV закриває комп’ютерний зір, Gluon NLP — роботу з текстами, GluonTS — імовірнісне прогнозування часових рядів. Розглядаються нативна підтримка розподіленого навчання через Horovod, туторіал Dive into Deep Learning і варіанти розгортання моделі на EC2, у SageMaker і Lambda.
- Фреймворк Apache MXNet1:13:30
-
Парадигма MapReduce, операції AllReduce і AllGather, приклади запуску з Keras, MXNet і Spark. Плюс огляд Ray і Modin як інструментів паралелізації.
- Розподілене навчання мереж із Horovod1:27:59
Лекція про розподілене навчання нейромереж із Horovod: парадигма MapReduce, операції AllReduce і AllGather, поняття rank і local rank. Розбираються приклади запуску навчання з Keras, MXNet і Spark, а також Ray і Modin як інструменти паралелізації Python-коду.
- Розподілене навчання мереж із Horovod1:27:59
-
Порівняння Azure ML і SageMaker, бібліотека MMLSpark з LightGBM і Vowpal Wabbit, розподілений XGBoost4J. Окремо — відмінність бустингу від бегінгу.
- Градієнтний бустинг у хмарі та Spark1:33:56
Огляд реалізацій градієнтного бустингу в хмарі та на Spark: порівняння платформ Azure Machine Learning і Amazon SageMaker — інтерфейс, деплой моделей, підбір гіперпараметрів і логування. Розбираються бібліотека MMLSpark з LightGBM і Vowpal Wabbit, розподілений XGBoost4J і різниця між бустингом і бегінгом.
- Градієнтний бустинг у хмарі та Spark1:33:56
-
Часті запитання
Тут зібрані відповіді майже на всі запитання, які ставлять перед купівлею. Натисніть на запитання, щоб розкрити відповідь.
Про цей курс
-
База ML передбачається: ввідне заняття її повторює — типи задач, лінійні моделі, градієнтний спуск, метрики та перенавчання, — а не викладає з нуля. Python теж розбирається як стек із готовими сценаріями застосування під продакшн-задачі, а не як мова.
-
Ні, Scala вивчається з нуля: базові конструкції мови, середовище Almond під Docker, матричні обчислення на Breeze. Перша домашня робота — власна реалізація лінійної регресії на Scala.
-
Основна хмарна практика йде на AWS: кластер EMR із Zeppelin, дані в S3, навчання рекомендацій і деплой моделі в SageMaker, публікація Docker-образів в ECR. Локальні Docker-стенди дають змогу повторювати практику без хмари: HDFS із docker-compose, локальні Kafka і Spark, Jupyter зі Scala однією командою.
-
Повний пайплайн від автоматичної підготовки даних до навчання моделі та інференсу в проді. Його можна зробити на знеособленому датасеті рекомендаційної тематики або на власній задачі. Домашня робота передбачена після кожного модуля.
-
Робоче визначення великих даних із ввідного заняття: задача потребує розподілених обчислень. Перехід на кластер виправданий, коли обсяги даних і бюджет переросли централізований підхід — курс розбирає і ці межі: де бустинг не виграє і які задачі варто виносити з кластера в окремі сервіси.
-
Apache Spark (PySpark, Streaming, Structured Streaming), Kafka, HDFS, Kubernetes, Airflow, MLflow, DVC, Docker, Horovod, XGBoost, Dask, Seldon Core і Kubeflow. З хмар — AWS (EC2, EMR, S3, SageMaker, Lambda, API Gateway), Azure Machine Learning, Google Cloud Dataproc і Heroku.
Доступ і матеріали
-
Одразу після оплати, тієї ж секунди й автоматично. Чекати на підтвердження не потрібно. Доступ надходить двома шляхами водночас. Перший: на пошту, вказану при оформленні замовлення, приходить лист із посиланням на матеріали. Другий: те саме посилання з’являється у вашому акаунті на сайті, у розділі «Завантаження», і залишається там назавжди.
-
Усі відео та додаткові файли лежать у хмарному сховищі. Посилання на нього — у вашому акаунті на сайті, розділ «Завантаження», і в листі, який надійшов після оплати. Акаунт тут не формальність, а спосіб доставки: курс залишається в ньому назавжди. Навіть якщо лист загубився або ви згадали про купівлю через рік, посилання буде на місці.
-
Завантажувати можна і варто. Радимо зберегти відео на комп’ютер і дивитися звідти. Причина проста: хмарне сховище не розраховане на перегляд відео. Іноді воно дозволяє увімкнути ролик просто у браузері, але якість при цьому помітно гірша за вихідну. На своєму комп’ютері ви побачите курс таким, яким його записували.
-
Безстроково. Курс залишається вашим назавжди, повертатися до нього можна скільки завгодно разів. Якщо через рік чи два посилання раптом перестане відкриватися з технічних причин — напишіть на info@siluette.com.ua, ми його відновимо.
-
Насамперед: доступ у вас є в будь-якому разі. Увійдіть на сайт і відкрийте розділ «Завантаження» — посилання на курс уже там, незалежно від того, дійшов лист чи ні. Найчастіше лист губиться через одруківку в адресі під час оформлення замовлення. Ще варто заглянути до теки «Спам». Не виходить розібратися — не витрачайте час: напишіть на info@siluette.com.ua або в чат у правому нижньому куті сайту, ми допоможемо.
-
Найкраще на комп’ютері або ноутбуці: завантажте відео й відкрийте будь-яким звичним плеєром. Знадобляться встановлені відеокодеки — на більшості комп’ютерів вони вже є. Завантажити курс можна на скільки завгодно пристроїв. А от телефон ми не радимо, і з двох причин. На маленькому екрані погано видно деталі, особливо якщо в уроці показують інтерфейс програми. І на телефонах часто немає кодеків для форматів, у яких записані відео.
Оплата та повернення
-
Банківською карткою Visa, MasterCard або «Простір», через Google Pay, Apple Pay, Masterpass, Visa Checkout, платіжний QR-код, Botpay у Telegram чи Privat24. Є й оплата частинами: Монобанк (3 або 4 платежі), А-Банк (2, 3 або 4 платежі та розстрочка), Банк Глобус (8 платежів), «Скибочка» від OTP Bank (3 платежі), миттєва розстрочка та оплата частинами від ПриватБанку.
-
Так. Платіжна система приймає картки з Євросоюзу та будь-яких інших країн. Одна деталь, про яку часто забувають: банк може попросити підтвердити платіж — у мобільному застосунку або кодом із СМС. Якщо оплата не проходить, перевірте застосунок банку та повідомлення.
-
Додайте до кошика два курси або більше — знижка застосується автоматично до всіх товарів у кошику. Два курси: мінус 20% на обидва. П’ять курсів: мінус 20% на всі п’ять. Знижка поєднується з будь-якими акційними цінами й діє на весь каталог без винятків.
-
Цифрові товари поверненню та обміну не підлягають. Це загальне правило для всіх електронних товарів в Україні — постанова Кабінету Міністрів № 172 від 19 березня 1994 року. При цьому ми завжди на зв’язку. Якщо доступ не відкривається, посилання перестало працювати або файли пошкоджені — напишіть на info@siluette.com.ua, вкажіть дату та номер замовлення. Відновимо. Якщо щось незрозуміло в самому курсі, теж пишіть — підкажемо.
-
Поки що ні. Ми працюємо лише з приватними покупцями — безготівкової оплати за рахунком від юридичних осіб зараз немає.
Як проходить навчання
-
Ні. Усі курси — це записи уроків для самостійного вивчення: викладач не відповідає на запитання і не перевіряє домашні завдання. Саме тому курси коштують значно дешевше за навчання з куратором. Ви отримуєте той самий матеріал, але займаєтеся самі та у своєму темпі.
-
Так, цифровий сертифікат — на запит і безкоштовно. Напишіть на info@siluette.com.ua, вкажіть ім’я та прізвище саме в тому вигляді, в якому хочете бачити їх у сертифікаті, і ми надішлемо його протягом доби.
-
Для більшості курсів — ні. Вони розраховані на початковий рівень і пояснюють з азів. Якщо курс потребує підготовки, це сказано в його описі.
-
Ні. Ані дедлайнів, ані розкладу, ані доступу, що згорає. Завантажили — дивіться коли зручно, з будь-якими перервами.
-
Курс купується для особистого використання, і ми просимо ставитися до цього по-людськи: за кожним уроком стоїть робота, а ціна й так суттєво знижена.
Підтримка
-
Найкраще на info@siluette.com.ua. Є й чат у правому нижньому куті сайту, але пошта надійніша: там можна все описати докладно та додати знімки екрана. Прохання: опишіть, що саме ви робили і що пішло не так, та додайте знімок екрана з помилкою. Так ми вирішимо питання одразу, а не з’ясовуватимемо півдня, що сталося.
-
У робочий час, з 9:00 до 19:00, на пошту зазвичай відповідаємо протягом години, у чаті — за кілька хвилин. Після 19:00 теж буває, але час відповіді не обіцяємо.


Відгуки покупців
28.11.2024 Підтверджений клієнт
Виведення в продакшн - це найцінніша частина. Моніторинг, версіонування, онлайн-сервінг - все розклали по поличках.
26.06.2024 Підтверджений клієнт
Дуже серйозний і глибокий курс. Я Data Engineer, і мені було важливо зрозуміти, як застосовувати ML на великих даних. Курс дав повну картину.
18.04.2024 Підтверджений клієнт
SparkML - це потужна штука. Курс допоміг розібратися, як переносити алгоритми в розподілене середовище. Дуже багато технічних деталей.