Цель курса - научиться интегрировать решения, на основе нейронных сетей и машинного обучения, в production системы любой сложности
Цель курса - дать участникам навыки в области Full Stack ML development. По завершении курса участники будут уметь создавать сложные Pipeline обработки данных, самостоятельно разворачивать Data engendering компоненты, ставить задачи команде разработки (по переносу модели в продакшн), самостоятельно производить подготовку модели для вывода в продакшн (разворачивать все необходимые компоненты и упаковывать модель в формат, пригодный к переносу).
Спойлер: Возможности после обучения:
1. Освоить современные методы и фреймворки для работы с уже обученными нейронными сетями.
Если вы уже используете фреймворки и современные компоненты для работы с нейронными сетями, курс поможет расширить кругозор в этой области.
2. Освоить навыки в области Full Stack ML development.
Если вы до этого не работали со специализированными фреймворками для нейронных сетей, вы сможете быстро и глубоко изучить эту область и начать их использование уже в середине курса.
3. Изучить основные компоненты процесса обработки и подготовки данных (Data Engendering).
Методы обработки данных и Data Engendering пригодятся не только для нейронных сетей, но и помогут эффективно и надежно передать данные между различными системами, настраивать и управлять загрузкой и обработкой данных.
4. Научиться быстро интегрировать обученную нейронную сеть в большой спектр промышленных систем.
Полученные знания могут быть использованы не только для интеграции нейронных сетей и различных промышленных систем, но и для интеграции двух систем между собой или интеграции промышленной системы и Python-программы.
5. Научиться ставить задачи команде разработчиков (в том числе и мало знакомых с нейтронными сетями) по переносу обученных моделей в продакшн.
Вы научитесь говорить с разработчиками на "одном языке".
6. Научиться самостоятельно "упаковывать" обученную нейронную сеть в удобный для применения конечным пользователем формат (Web-сервисы, мобильные приложения, IoT устройства и др.).
В современном мире стартапы, состоящие из 2-3 программистов, способны представить коммерчески готовый продукт, по завершении курса вы будете способны выполнять задачи небольшой команды разработчиков.
Спойлер: Изучаемые технологии
Описание занятия: первое занятие начинается с важнейшей темы - данные; любая незамкнутая программа (и особенно нейронные сети) требуют для своей работы поставки данных. На занятии мы познакомимся с основными типами источников данных.
Задание: Логическая задача по теме урока.
1.2 Варианты хранения данных (структурированные, неструктурированные, бинарные)
Описание занятия: на втором занятии мы более детально рассмотрим особенности и варианты хранения данных в системах-источниках, разберем базовые термины.
Задание: Логическая задача по теме урока.
1.3 Типы хранения данных
Описание занятия: на уроке мы узнаем, какие бывают типы хранения данных, разберем преимущества и недостатки наиболее популярных типов хранения данных.
Задание: Задание на подбор оптимального типа хранения данных
1.4 Методы получения данных из систем источников
Описание занятия: четвёртое занятие раскрывает детали относительно способов и методов получения данных из систем-источников. Мы разберем наиболее популярные методы и инструменты "забора" данных, а также узнаем, как это можно делать с использованием python
Задание: Практическое задание на выгрузку данных из систем-источников
1.5 Web-scrapping
Описание занятия: Современный интернет является крупнейшим источником информации, на занятии мы разберем, как выгружать данные с интернет-сайтов, как исследовать сайты на наличие удобного API для доступа к данным, как эмулировать работу браузера и как автоматизировать этот процесс с помощью Рython.
Задание: Web-crawling реальных сайтов
2. Модуль - Модель данных
2.1 Вторая и третья нормальные формы
Описание занятия: на занятии мы подробно разберем "золотой стандарт" представления данных в современных структурированных хранилищах данных: 2-ю и 3-ю нормальные формы.
Задание: Практическое задание на приведение данных во 2-ю и 3-ю нормальные формы
2.2 Key-value структура данных
Описание занятия: подход хранения данных типа "Ключа-Значение" используется в большинстве современных систем, где важна скорость выдачи информации по ключу. На уроке мы детально ознакомимся с этой архитектурой и преимуществами, которые она дает.
Задание: Практическое задание на приведение неструктурированных данных к типу Key-Value
2.3 Схема данных
Описание занятия: когда в хранилище очень много разнообразных данных, становится сложно ориентироваться в том, как и в каком виде хранятся данные. На занятии мы разберем понятие схема данных, изучим, как она помогает в навигации по хранилищу, и научимся создавать схемы данных
Задание: Практическое задание на создание схем данных
2.4 Витрины данных
Описание занятия: в любой большой организации имеются сотни и тысячи таблиц с данными в хранилищах, не все эти данные полезны и нужны для аналитиков и моделей машинного обучения. Витрины позволяют организовать данные таким образом, чтобы получить доступ только к той информации и только в том виде, в котором она необходима, исключая лишнее. На занятии мы разберем, как организовать данные в витрины и работать с ними.
Задание: практическое задание на работы с витринами данных
2.5 Инструменты построения моделей данных
Описание занятия: большое структурированное хранилище состоит из сотен таблиц, связанных друг с другом, визуализация и управление этими связями осуществляются инструментами моделирования данных. На уроке мы познакомимся с наиболее популярными коммерческими и некоммерческими решениями по построению моделей данных.
Задание: Практическое задание на создание модели данных
3. Модуль - ETL/ELT
3.1 Как загрузить данные в источник
Описание занятия: на этом уроке мы познакомимся с наиболее распространенными способами загрузки данных (полученных от пользователя или модели машинного обучения) в различные источники данных.
Задание: практическое задание по загрузке данных в систему источника данных
3.2 Extract Transform Load парадигма
Описание занятия: наиболее популярная парадигма передачи данных между различными системами - это ETL (Extract Transform Load). Часто данные перед загрузкой в хранилище требуется трансформировать тем или иным образом, парадигма ETL подразумевает, что данные извлекаются "как есть", затем трансформируются и только потом поступают в хранилище. На занятии мы подробно познакомимся с этим процессом.
Задание: практическое задание по теме урока
3.3 Контроль целостности и качества данных
Описание занятия: занятие посвящено очень важной теме - целостности и качеству данных. Неправильные или поврежденные данные могут привести к серьезным последствиям, особенно если выявить эту проблему не сразу. Мы изучим основные методы и инструменты для контроля целостности и качества данных.
Задание: практическое задание по теме урока
3.4 Системы мониторинга ETL/ELT процессов
Описание занятия: если в процессе загрузки данных возникнет ошибка, это может привести к остановке бизнес-процессов или потере данных. На уроке мы изучим основные методы и системы мониторинга ETL/ELT процессов
Задание: практическое задание по теме урока
3.5 Инструменты ETL/ELT
Описание занятия: из-за своей простоты и наглядности парадигму ETL можно реализовать простейшими средствами (например, набором скриптов), но когда процессов ETL становится очень много, и они подвержены изменениям, не обойтись без мощной системы по управлению этими процессами. На уроке мы изучим несколько современных фреймворков для управления ETL/ELT
Задание: практическое задание по теме урока
4. Модуль - Перенос модели между языками
4.1 Что такое PMML?
Описание занятия: если модель написана на одном языке (например, python), а исполняться должна в промышленной системе совсем другим языком и интерфейсом, возникает проблема переноса и совместимости модели. На занятии мы познакомимся с универсальным описательным языком модели PMML и разберем, как с его помощью можно перенести модель из одного языка в другой (с поддержкой PMML-стандарта)
Задание: практическое задание по переносу обученной модели в PMML-стандарт
4.2 Порт модели между языками
Описание занятия: универсальный стандарт PMML является не единственным инструментом переноса модели между языками программирования и разными системами. На уроке мы познакомимся с различными вариантами кроссплатформенного переноса моделей из Python в Си
Задание: практическое задание по переносу обученной модели из Python в Си
4.3 Проблемы портирования
Описание занятия: на занятии мы коснемся наиболее часто встречающихся проблем при портировании моделей на примере порта модели Keras в Си и разберем варианты решения
Задание: практическое задание по теме урока
4.4 Контейнеризация Docker, Kubernetis
Описание занятия: технологии контейнеризации представляют собой своего рода компактную виртуальную машину, внутри которой содержатся только необходимые компоненты для запуска вашего приложения. На уроке мы подробно познакомимся с технологиями контейнеризации и преимуществами, которые они дают.
Задание: практическое задание на создание простого контейнера
2. Часть - Источники данных
2.1 Реляционные хранилища данных Postgres/Redshift/Orcale
Описание занятия: на занятии мы подробно разберем архитектуру и особенности трех наиболее популярных реляционных баз данных Postgres/Redshift/Orcale и научимся разворачивать собственную базу данных
Задание: практическое задание на создание базы данных и ее начальную настройку
2.2 MPP хранилища (Teradata, SAP HANA)
Описание занятия: этот урок посвящен аналитическим хранилищам (оптимизированным на выполнение запросов к данным), мы рассмотрим общую архитектуру таких хранилищ MPP (Massive Parallel Processing) и узнаем, какие есть особенности при работе с этими хранилищами
Задание: практическое задание по работе с тестовыми хранилищами архитектуры MPP
2.3 Хранилища неструктурированных данных: Hadoop, AWS S3
Описание занятия: в эпоху больших данных стали возможными сбор, хранение и аналитики петабайтных объемов данных. Большая часть информации в таких хранилищах имеет неструктурированный характер (логи оборудования, тексты, видео/фото поток, детальные логи приложений). Работать с такими данными традиционными способами невозможно. На занятии мы разберем революционные технологии: Apache Hadoop и AWS S3, благодаря которым эффективная работа с петабайтами данных стала возможной.
Задание: практическое задание по запуску виртуальной машины с Hadoop-кластером и работе с ним, задание на AWS S3.
2.4 Key-Value хранилища (Hbase,MongoDB)
Описание занятия: специализированные хранилища вида "ключ-значение", совместимые с технологиями больших данных, - тема этого занятия.
Задание: практическое задание по работе с Key-Value хранилищами
2.5 In-Memory системы высоконагруженных вычислений Apache Solr, базы данных на основе GPU
Описание занятия: скорость выполнения расчетов и трансформации данных является ключевым фактором для многих современных приложений и систем. На занятии мы рассмотрим передовые архитектуры, позволяющие вычислять, хранить данные в памяти и производить вычисления "на лету", а также обратим внимание на инновационные базы данных на основе GPU (графический процессор) систем.
Задание: практическое задание по работе с in-memory системами
2.6 Методы доступа и чтения из различных источников данных с помощью Рython
Описание занятия: на занятии мы систематизируем знания о том, как эффективно получить доступ к данным, хранящимся в различных источниках, с помощью языка программирования Рython
Задание: практическое задание на получение данных из различных источников при использовании Рython
2.7 Системы Real-Time доставки данных Apache Kafka, Spark Streaming
Описание занятия: урок будет посвящен подробному обзору методов и способов доставки данных и их обработке в хранилища в режиме реального времени. Такой инструмент, как Apache Kafka, позволяет эффективно настроить передачу потоковых данных (данных, поступающих непосредственно с систем-источников) различным потребителям: хранилища и программы
Задание: практическое задание по настройке Apache Kafka
3. Часть - Практика
Интеграция в продакшн - занятия этой части на 100% посвящены практике, мы будем поднимать, настраивать и объединять между собой различные компоненты для вывода моделей и решений машинного обучения в продакшн. На занятиях будет минимум теории, будем решать реальные кейсы из практики, будет много работы руками, будем писать код. По ходу процесса преподаватель будет делиться с вами ценнейшим практическим опытом и советами.
3.1 Поднимаем и настраиваем Hadoop-кластер, пишем первую программу (2 часа)
Описание занятия: с первого же занятия мы с вами, вооружившись теоретическими знаниями, полученными в предыдущих разделах, развернем работоспособное хранилище на базе кластера Hadoop и решим небольшую практическую задачу.
Задание: практический кейс (разработка, разворачивание и настройка хранилища на основе тех. задания)
3.2 Настраиваем первый ETL с помощью Flume + Zookeeper (1.5 часов)
Описание занятия: продолжим работать с кластером, созданным на первом занятии, будем настраивать загрузку потоков данных в кластер с использованием совместимых ETL-инструментов
Задание: практический кейс (подача потоков данных в ваше хранилище из ДЗ №1)
3.3 Настраиваем ETL с AWS S3 и AWS Redshift (1 час)
Описание занятия: облачные системы хранения данных - мощнейший инструмент Data Science инженера, существенно экономящий трудозатраты по работе с хранилищами данных. На этом уроке мы научимся работать с AWS облачной платформой, будем разворачивать базу данных AWS Redshift и создадим AWS S3 объектное хранилище. Используя полученную инфраструктуру, попробуем настроить ETL для интеграции этих систем с кластером из предыдущих уроков.
Задание: практический кейс (подача потоков данных в ваше хранилище из ДЗ №1)
3.4 Spark для трансформации данных (2 часа)
Описание занятия: на занятии мы на практике подробно познакомимся с возможностями фреймворка Apache Spark по работе с большими данными, хранящимися в hadoop. Мы научимся трансформировать данные и проводить исследование данных, используя Spark. Будет много кодинга и практических советов.
Задание: практический кейс (трансформация данных, анализ данных)
3.5 Spark для ML (модели + pipelines) (2 часа)
Описание занятия: продолжим изучать возможности мощнейшего фреймворка Apache Spark, на этот раз мы рассмотрим методы и функции для решения задач машинного обучения при работе с большими данными и научимся строить сложные цепочки обработки данных с последующим автоматизированным применением моделей машинного обучения.
Задание: практический кейс (настройка цепочки обработки данных с включенной в нее моделью машинного обучения)
3.6 Нейронные сети на Spark (1 час)
Описание занятия: кроме классических методов машинного обучения, Apache Spark позволяет работать и с нейронными сетями. Мы разберем нюансы работы и научимся запускать обученные нейронные сети, используя Spark.
Задание: практический кейс (применение предобученных сетей на базе Apache Spark)
3.7 Tensor Flow Extended (TF Serving) (1ч)
Описание занятия: данное занятие откроет новую тему - использование фреймворка Tensor Flow Extended для автоматизации запуска и применения обученных нейронных сетей в практических задачах.
Задание: практический кейс (автоматизация запуска обученной модели при использовании tf serving)
3.8 Tensor Flow Extended (Data Pipelines) (2ч)
Описание занятия: расширяя знания о фреймворке Tensor Flow Extended, мы рассмотрим его возможности по автоматической обработке и подготовке данных для обученных нейронных сетей.
Задание: практический кейс (подготовка и предобработка данных)
3.9 Docker (запаковываем модель и библиотеки в контейнер) (1ч)
Описание занятия: урок открывает новый блок занятий, посвященных контейнеризации приложений. Используя теоретические знания из части 1, мы научимся упаковывать в контейнеры обученные модели машинного обучения со всеми зависимостями.
Задание: практический кейс (подготовка и упаковка в контейнер модели машинного обучения со всеми компонентами)
3.10 Kubernetis (управление контейнерами) (30 мин)
Описание занятия: продолжим углубляться в контейнеризацию, данное занятие посвящено изучению фреймворка Kubernetis. Фреймворк позволяет гибко управлять Docker-контейнерами, управлять ресурсами в контейнерах и многое другое.
Задание: практический кейс (организуем управление и распределение ресурсов между группой Docker-контейнеров)
3.11 Kuberflow (управление контейнерами) (1 час)
Описание занятия: на занятии будет разобрана еще одна тема, связанная с контейнеризацией фреймворка от Google, который направлен на то, чтобы автоматизировать все процессы создания моделей машинного обучения от А до Я.
Задание: практический кейс (по работе с фреймворком)
3.12 AWS API Gateway (настраиваем API для доступа к модели) (30 минут)
Описание занятия: на уроке мы продолжим углубляться в возможности облачных вычислений. На данном занятии мы разберем функционал AWS API Gateway и сделаем с его помощью MOCK UP ("имитация") функционала Real-Time получения данных из хранилища данных через REST-интерфейс
Задание: практический кейс (по работе с API Gateway)
3.13 AWS Lambda function (настраиваем предобработку) (1 час)
Описание занятия: тема урока раскроет невероятный потенциал AWS Lambda (минифункции, написанные на различных языках программирования) как инструмента вычислений в связке с API Gateway. На занятии, используя Lambda (на языке Python), мы напишем работающее промышленное решение, делающее возможным отдачу данных из нашего кластера в real-time режиме по REST-запросу.
Задание: практический кейс (по интеграции AWS Lambda с API Gateway и источниками данных)
3.14 AWS Fargate (помещаем модель в контейнер) (1ч)
Описание занятия: еще одно занятие, затрагивающее тему облачных вычислений и контейнеризации приложений. На занятии мы познакомимся с возможностями AWS Fargate для запуска и управления контейнерами в облаке. Мы напишем простое web-интерактивное приложение, исполняющее обученную модель, упакуем это в контейнер и сделаем контейнер доступным online.
Задание: практический кейс (запуск собственных контейнеров на базе AWS Fargate).
Цель курса - дать участникам навыки в области Full Stack ML development. По завершении курса участники будут уметь создавать сложные Pipeline обработки данных, самостоятельно разворачивать Data engendering компоненты, ставить задачи команде разработки (по переносу модели в продакшн), самостоятельно производить подготовку модели для вывода в продакшн (разворачивать все необходимые компоненты и упаковывать модель в формат, пригодный к переносу).
Спойлер: Возможности после обучения:
1. Освоить современные методы и фреймворки для работы с уже обученными нейронными сетями.
Если вы уже используете фреймворки и современные компоненты для работы с нейронными сетями, курс поможет расширить кругозор в этой области.
2. Освоить навыки в области Full Stack ML development.
Если вы до этого не работали со специализированными фреймворками для нейронных сетей, вы сможете быстро и глубоко изучить эту область и начать их использование уже в середине курса.
3. Изучить основные компоненты процесса обработки и подготовки данных (Data Engendering).
Методы обработки данных и Data Engendering пригодятся не только для нейронных сетей, но и помогут эффективно и надежно передать данные между различными системами, настраивать и управлять загрузкой и обработкой данных.
4. Научиться быстро интегрировать обученную нейронную сеть в большой спектр промышленных систем.
Полученные знания могут быть использованы не только для интеграции нейронных сетей и различных промышленных систем, но и для интеграции двух систем между собой или интеграции промышленной системы и Python-программы.
5. Научиться ставить задачи команде разработчиков (в том числе и мало знакомых с нейтронными сетями) по переносу обученных моделей в продакшн.
Вы научитесь говорить с разработчиками на "одном языке".
6. Научиться самостоятельно "упаковывать" обученную нейронную сеть в удобный для применения конечным пользователем формат (Web-сервисы, мобильные приложения, IoT устройства и др.).
В современном мире стартапы, состоящие из 2-3 программистов, способны представить коммерчески готовый продукт, по завершении курса вы будете способны выполнять задачи небольшой команды разработчиков.
Спойлер: Изучаемые технологии
- Web-crawling - (парсинг и выгрузка данных с сайтов, разбор API сайтов)
- Методы хранения и представления данных в реляционных и нереляционных БД (Базах данных)
- Реляционные хранилища данных - Postgres/Redshift/Orcale
- MPP хранилища - (Teradata, SAP HANA)
- Хранилища неструктурированных данных - (Hadoop, AWS S3)
- Key-Value хранилища - (Hbase, MongoDB)
- In-Memory системы - Apache Solr, базы данных на основе GPU
- Системы Real-Time доставки данных - Apache Kafka, Spark Streaming
- Мощнейший инструмент работы с большими данными - Apache Spark
- Один из самый продвинутых фреймворков для работы с обученными моделями - TensorFLow - Tensor Flow Extended
- Контейнеризацию приложений в Docker/Kubernetis
- Мощнейший стек инструментов разработки на базе AWS (Amazon Web Services) - API Gateway/AWS Lambda/AWS Fargate
- Часть - Теория
- Модуль - Данные, их виды и системы-источники
Описание занятия: первое занятие начинается с важнейшей темы - данные; любая незамкнутая программа (и особенно нейронные сети) требуют для своей работы поставки данных. На занятии мы познакомимся с основными типами источников данных.
Задание: Логическая задача по теме урока.
1.2 Варианты хранения данных (структурированные, неструктурированные, бинарные)
Описание занятия: на втором занятии мы более детально рассмотрим особенности и варианты хранения данных в системах-источниках, разберем базовые термины.
Задание: Логическая задача по теме урока.
1.3 Типы хранения данных
Описание занятия: на уроке мы узнаем, какие бывают типы хранения данных, разберем преимущества и недостатки наиболее популярных типов хранения данных.
Задание: Задание на подбор оптимального типа хранения данных
1.4 Методы получения данных из систем источников
Описание занятия: четвёртое занятие раскрывает детали относительно способов и методов получения данных из систем-источников. Мы разберем наиболее популярные методы и инструменты "забора" данных, а также узнаем, как это можно делать с использованием python
Задание: Практическое задание на выгрузку данных из систем-источников
1.5 Web-scrapping
Описание занятия: Современный интернет является крупнейшим источником информации, на занятии мы разберем, как выгружать данные с интернет-сайтов, как исследовать сайты на наличие удобного API для доступа к данным, как эмулировать работу браузера и как автоматизировать этот процесс с помощью Рython.
Задание: Web-crawling реальных сайтов
2. Модуль - Модель данных
2.1 Вторая и третья нормальные формы
Описание занятия: на занятии мы подробно разберем "золотой стандарт" представления данных в современных структурированных хранилищах данных: 2-ю и 3-ю нормальные формы.
Задание: Практическое задание на приведение данных во 2-ю и 3-ю нормальные формы
2.2 Key-value структура данных
Описание занятия: подход хранения данных типа "Ключа-Значение" используется в большинстве современных систем, где важна скорость выдачи информации по ключу. На уроке мы детально ознакомимся с этой архитектурой и преимуществами, которые она дает.
Задание: Практическое задание на приведение неструктурированных данных к типу Key-Value
2.3 Схема данных
Описание занятия: когда в хранилище очень много разнообразных данных, становится сложно ориентироваться в том, как и в каком виде хранятся данные. На занятии мы разберем понятие схема данных, изучим, как она помогает в навигации по хранилищу, и научимся создавать схемы данных
Задание: Практическое задание на создание схем данных
2.4 Витрины данных
Описание занятия: в любой большой организации имеются сотни и тысячи таблиц с данными в хранилищах, не все эти данные полезны и нужны для аналитиков и моделей машинного обучения. Витрины позволяют организовать данные таким образом, чтобы получить доступ только к той информации и только в том виде, в котором она необходима, исключая лишнее. На занятии мы разберем, как организовать данные в витрины и работать с ними.
Задание: практическое задание на работы с витринами данных
2.5 Инструменты построения моделей данных
Описание занятия: большое структурированное хранилище состоит из сотен таблиц, связанных друг с другом, визуализация и управление этими связями осуществляются инструментами моделирования данных. На уроке мы познакомимся с наиболее популярными коммерческими и некоммерческими решениями по построению моделей данных.
Задание: Практическое задание на создание модели данных
3. Модуль - ETL/ELT
3.1 Как загрузить данные в источник
Описание занятия: на этом уроке мы познакомимся с наиболее распространенными способами загрузки данных (полученных от пользователя или модели машинного обучения) в различные источники данных.
Задание: практическое задание по загрузке данных в систему источника данных
3.2 Extract Transform Load парадигма
Описание занятия: наиболее популярная парадигма передачи данных между различными системами - это ETL (Extract Transform Load). Часто данные перед загрузкой в хранилище требуется трансформировать тем или иным образом, парадигма ETL подразумевает, что данные извлекаются "как есть", затем трансформируются и только потом поступают в хранилище. На занятии мы подробно познакомимся с этим процессом.
Задание: практическое задание по теме урока
3.3 Контроль целостности и качества данных
Описание занятия: занятие посвящено очень важной теме - целостности и качеству данных. Неправильные или поврежденные данные могут привести к серьезным последствиям, особенно если выявить эту проблему не сразу. Мы изучим основные методы и инструменты для контроля целостности и качества данных.
Задание: практическое задание по теме урока
3.4 Системы мониторинга ETL/ELT процессов
Описание занятия: если в процессе загрузки данных возникнет ошибка, это может привести к остановке бизнес-процессов или потере данных. На уроке мы изучим основные методы и системы мониторинга ETL/ELT процессов
Задание: практическое задание по теме урока
3.5 Инструменты ETL/ELT
Описание занятия: из-за своей простоты и наглядности парадигму ETL можно реализовать простейшими средствами (например, набором скриптов), но когда процессов ETL становится очень много, и они подвержены изменениям, не обойтись без мощной системы по управлению этими процессами. На уроке мы изучим несколько современных фреймворков для управления ETL/ELT
Задание: практическое задание по теме урока
4. Модуль - Перенос модели между языками
4.1 Что такое PMML?
Описание занятия: если модель написана на одном языке (например, python), а исполняться должна в промышленной системе совсем другим языком и интерфейсом, возникает проблема переноса и совместимости модели. На занятии мы познакомимся с универсальным описательным языком модели PMML и разберем, как с его помощью можно перенести модель из одного языка в другой (с поддержкой PMML-стандарта)
Задание: практическое задание по переносу обученной модели в PMML-стандарт
4.2 Порт модели между языками
Описание занятия: универсальный стандарт PMML является не единственным инструментом переноса модели между языками программирования и разными системами. На уроке мы познакомимся с различными вариантами кроссплатформенного переноса моделей из Python в Си
Задание: практическое задание по переносу обученной модели из Python в Си
4.3 Проблемы портирования
Описание занятия: на занятии мы коснемся наиболее часто встречающихся проблем при портировании моделей на примере порта модели Keras в Си и разберем варианты решения
Задание: практическое задание по теме урока
4.4 Контейнеризация Docker, Kubernetis
Описание занятия: технологии контейнеризации представляют собой своего рода компактную виртуальную машину, внутри которой содержатся только необходимые компоненты для запуска вашего приложения. На уроке мы подробно познакомимся с технологиями контейнеризации и преимуществами, которые они дают.
Задание: практическое задание на создание простого контейнера
2. Часть - Источники данных
2.1 Реляционные хранилища данных Postgres/Redshift/Orcale
Описание занятия: на занятии мы подробно разберем архитектуру и особенности трех наиболее популярных реляционных баз данных Postgres/Redshift/Orcale и научимся разворачивать собственную базу данных
Задание: практическое задание на создание базы данных и ее начальную настройку
2.2 MPP хранилища (Teradata, SAP HANA)
Описание занятия: этот урок посвящен аналитическим хранилищам (оптимизированным на выполнение запросов к данным), мы рассмотрим общую архитектуру таких хранилищ MPP (Massive Parallel Processing) и узнаем, какие есть особенности при работе с этими хранилищами
Задание: практическое задание по работе с тестовыми хранилищами архитектуры MPP
2.3 Хранилища неструктурированных данных: Hadoop, AWS S3
Описание занятия: в эпоху больших данных стали возможными сбор, хранение и аналитики петабайтных объемов данных. Большая часть информации в таких хранилищах имеет неструктурированный характер (логи оборудования, тексты, видео/фото поток, детальные логи приложений). Работать с такими данными традиционными способами невозможно. На занятии мы разберем революционные технологии: Apache Hadoop и AWS S3, благодаря которым эффективная работа с петабайтами данных стала возможной.
Задание: практическое задание по запуску виртуальной машины с Hadoop-кластером и работе с ним, задание на AWS S3.
2.4 Key-Value хранилища (Hbase,MongoDB)
Описание занятия: специализированные хранилища вида "ключ-значение", совместимые с технологиями больших данных, - тема этого занятия.
Задание: практическое задание по работе с Key-Value хранилищами
2.5 In-Memory системы высоконагруженных вычислений Apache Solr, базы данных на основе GPU
Описание занятия: скорость выполнения расчетов и трансформации данных является ключевым фактором для многих современных приложений и систем. На занятии мы рассмотрим передовые архитектуры, позволяющие вычислять, хранить данные в памяти и производить вычисления "на лету", а также обратим внимание на инновационные базы данных на основе GPU (графический процессор) систем.
Задание: практическое задание по работе с in-memory системами
2.6 Методы доступа и чтения из различных источников данных с помощью Рython
Описание занятия: на занятии мы систематизируем знания о том, как эффективно получить доступ к данным, хранящимся в различных источниках, с помощью языка программирования Рython
Задание: практическое задание на получение данных из различных источников при использовании Рython
2.7 Системы Real-Time доставки данных Apache Kafka, Spark Streaming
Описание занятия: урок будет посвящен подробному обзору методов и способов доставки данных и их обработке в хранилища в режиме реального времени. Такой инструмент, как Apache Kafka, позволяет эффективно настроить передачу потоковых данных (данных, поступающих непосредственно с систем-источников) различным потребителям: хранилища и программы
Задание: практическое задание по настройке Apache Kafka
3. Часть - Практика
Интеграция в продакшн - занятия этой части на 100% посвящены практике, мы будем поднимать, настраивать и объединять между собой различные компоненты для вывода моделей и решений машинного обучения в продакшн. На занятиях будет минимум теории, будем решать реальные кейсы из практики, будет много работы руками, будем писать код. По ходу процесса преподаватель будет делиться с вами ценнейшим практическим опытом и советами.
3.1 Поднимаем и настраиваем Hadoop-кластер, пишем первую программу (2 часа)
Описание занятия: с первого же занятия мы с вами, вооружившись теоретическими знаниями, полученными в предыдущих разделах, развернем работоспособное хранилище на базе кластера Hadoop и решим небольшую практическую задачу.
Задание: практический кейс (разработка, разворачивание и настройка хранилища на основе тех. задания)
3.2 Настраиваем первый ETL с помощью Flume + Zookeeper (1.5 часов)
Описание занятия: продолжим работать с кластером, созданным на первом занятии, будем настраивать загрузку потоков данных в кластер с использованием совместимых ETL-инструментов
Задание: практический кейс (подача потоков данных в ваше хранилище из ДЗ №1)
3.3 Настраиваем ETL с AWS S3 и AWS Redshift (1 час)
Описание занятия: облачные системы хранения данных - мощнейший инструмент Data Science инженера, существенно экономящий трудозатраты по работе с хранилищами данных. На этом уроке мы научимся работать с AWS облачной платформой, будем разворачивать базу данных AWS Redshift и создадим AWS S3 объектное хранилище. Используя полученную инфраструктуру, попробуем настроить ETL для интеграции этих систем с кластером из предыдущих уроков.
Задание: практический кейс (подача потоков данных в ваше хранилище из ДЗ №1)
3.4 Spark для трансформации данных (2 часа)
Описание занятия: на занятии мы на практике подробно познакомимся с возможностями фреймворка Apache Spark по работе с большими данными, хранящимися в hadoop. Мы научимся трансформировать данные и проводить исследование данных, используя Spark. Будет много кодинга и практических советов.
Задание: практический кейс (трансформация данных, анализ данных)
3.5 Spark для ML (модели + pipelines) (2 часа)
Описание занятия: продолжим изучать возможности мощнейшего фреймворка Apache Spark, на этот раз мы рассмотрим методы и функции для решения задач машинного обучения при работе с большими данными и научимся строить сложные цепочки обработки данных с последующим автоматизированным применением моделей машинного обучения.
Задание: практический кейс (настройка цепочки обработки данных с включенной в нее моделью машинного обучения)
3.6 Нейронные сети на Spark (1 час)
Описание занятия: кроме классических методов машинного обучения, Apache Spark позволяет работать и с нейронными сетями. Мы разберем нюансы работы и научимся запускать обученные нейронные сети, используя Spark.
Задание: практический кейс (применение предобученных сетей на базе Apache Spark)
3.7 Tensor Flow Extended (TF Serving) (1ч)
Описание занятия: данное занятие откроет новую тему - использование фреймворка Tensor Flow Extended для автоматизации запуска и применения обученных нейронных сетей в практических задачах.
Задание: практический кейс (автоматизация запуска обученной модели при использовании tf serving)
3.8 Tensor Flow Extended (Data Pipelines) (2ч)
Описание занятия: расширяя знания о фреймворке Tensor Flow Extended, мы рассмотрим его возможности по автоматической обработке и подготовке данных для обученных нейронных сетей.
Задание: практический кейс (подготовка и предобработка данных)
3.9 Docker (запаковываем модель и библиотеки в контейнер) (1ч)
Описание занятия: урок открывает новый блок занятий, посвященных контейнеризации приложений. Используя теоретические знания из части 1, мы научимся упаковывать в контейнеры обученные модели машинного обучения со всеми зависимостями.
Задание: практический кейс (подготовка и упаковка в контейнер модели машинного обучения со всеми компонентами)
3.10 Kubernetis (управление контейнерами) (30 мин)
Описание занятия: продолжим углубляться в контейнеризацию, данное занятие посвящено изучению фреймворка Kubernetis. Фреймворк позволяет гибко управлять Docker-контейнерами, управлять ресурсами в контейнерах и многое другое.
Задание: практический кейс (организуем управление и распределение ресурсов между группой Docker-контейнеров)
3.11 Kuberflow (управление контейнерами) (1 час)
Описание занятия: на занятии будет разобрана еще одна тема, связанная с контейнеризацией фреймворка от Google, который направлен на то, чтобы автоматизировать все процессы создания моделей машинного обучения от А до Я.
Задание: практический кейс (по работе с фреймворком)
3.12 AWS API Gateway (настраиваем API для доступа к модели) (30 минут)
Описание занятия: на уроке мы продолжим углубляться в возможности облачных вычислений. На данном занятии мы разберем функционал AWS API Gateway и сделаем с его помощью MOCK UP ("имитация") функционала Real-Time получения данных из хранилища данных через REST-интерфейс
Задание: практический кейс (по работе с API Gateway)
3.13 AWS Lambda function (настраиваем предобработку) (1 час)
Описание занятия: тема урока раскроет невероятный потенциал AWS Lambda (минифункции, написанные на различных языках программирования) как инструмента вычислений в связке с API Gateway. На занятии, используя Lambda (на языке Python), мы напишем работающее промышленное решение, делающее возможным отдачу данных из нашего кластера в real-time режиме по REST-запросу.
Задание: практический кейс (по интеграции AWS Lambda с API Gateway и источниками данных)
3.14 AWS Fargate (помещаем модель в контейнер) (1ч)
Описание занятия: еще одно занятие, затрагивающее тему облачных вычислений и контейнеризации приложений. На занятии мы познакомимся с возможностями AWS Fargate для запуска и управления контейнерами в облаке. Мы напишем простое web-интерактивное приложение, исполняющее обученную модель, упакуем это в контейнер и сделаем контейнер доступным online.
Задание: практический кейс (запуск собственных контейнеров на базе AWS Fargate).
https://privatelink.de/?https://neural-university.ru/kurs_integration