Читать книгу «Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData» онлайн полностью📖 — Евгения Сергеевича Штольца — MyBook.

Евгений Штольц
Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData

Книга построена как учебник – от простого к сложному. Читатель сможет:

* в первых трёх главах создать простейшую нейронную сеть распознавания и классификации изображений,

* в последующих – углубиться в устройство и архитектуру для оптимизации,

* далее расширить понимание экосистемы как компании в целом, в которой работают нейронные сети, как её составная часть, способы ее взаимодействия с окружающими технологиями и их использование,

* закончить изучение развёртыванием полномасштабной производственной системы в облаке полного цикла.

Фактически каждая глава в начале даёт общую информацию, необходимую для последующей практической части. В практической части:

* демонстрируется процесс подготовки окружения, но чаще используются бесплатные готовые облачные сервисы,

* демонстрируется процесс написания совместно с разбором написанного и обзором альтернативных решений,

* проводится анализ результата и формирование способов дальнейшего развития.

Книга состоит из разделов:

* Введение в Машинное обучение. Это единственная глава без практической части, созданная для того, чтобы дать начальное представление о границах применимости машинного обучения, преимуществах перед другими методами и об общем устройстве нейронных сетей для начинающих. Также производится классификация нейронных сетей по принципам, заложенных в них, и разделение на группы, о которых будет говориться в книге.

* Основы для написания сетей. Здесь даются базовые знания, необходимые для написания первой сети на PyTorch, знакомство со средой разработки Jupyter в облачном сервисе Google Colab, которая является упрощенным вариантом облачной платформы Google ML, запуск кода в нём и использование фреймворка на написания нейронных сетей PyTorch.

* Создаём первую сеть. Автор демонстрирует для практики читателя создание простой нейронной сети на PyTorch в Colab с детальным разбором написанного кода, обучение её на DataSet изображений MNIST и запуском.

* Улучшаем распознавание нейросети на сложных изображениях. Здесь автор для читателя демонстрирует на практике обучение нейронным сетям для цветных картинок, методы повышения качества предсказаний сети. Детально разбирается устройство, подводные камни при написании и обучении эффективных нейронных сетей.

* Современные архитектуры нейронных сетей. Приводятся архитектурные принципы, используемые в современных нейронных сетях для повышения качества предсказаний. Приводится разбор различных архитектур нейронных сетей, сделавших прорыв в качестве обучения и принёсших новые подходы. Рассматриваются различные архитектурные универсальные паттерны увеличения качества, такие как создание ансамблей нейронных сетей.

* Использование предобученных сетей. Демонстрируется использование в своих сетях уже обученных слоёв.

* Масштабирование ML. Приводятся примеры подготовки окружения для запуска их в облачной инфраструктуре.

* Получение данных от BigData. Рассказывается, как можно из Jupyter подключаться к различным источникам данных, в том числе BigData, для обучения моделей.

* Подготовка больших данных. В этом разделе описываются BigData технологии, такие как Hadoop и Spark, которые являются источниками данных для обучения моделей.

* ML в промышленной среде. В этом разделе рассказываются о таких системах, как Kubeflow и MLflow. Читатель может попробовать развернуть платформу, настроить процесс обучения и запустить в облачной среде модель, как это делается в компаниях.

Об авторе. Автор является корпоративным (главным) архитектором крупного подразделения (трайба) компании Сбер. Сбер лидер по объёмам накопленных данных в России и обладатель вычислительного центра для обучения моделей Кристофари, занимающей 39 место в ТОП500 мира и самый мощный в России и СНГ (первое место в ТОП50 СНГ), в нём разработано более 5000 моделей более тысячью DataSience учёных. Автор проходил обучение (Sber AI Architect, Sber Certified Architect) в Сбер в области искусственного интеллекта, создавал внутренние курсы по этой тематике для других архитекторов, разрабатывал предиктивную аналитику на машинном обучении в нейронных сетях для универсальных облачных систем, участвовал в качестве ментора (команда заняла 2 место среди всех команд Сбер) и оценщиком на соревнованиях Сбер.


О книге

Книга построена как учебник – от простого к сложному. Читатель сможет:

* в первых трёх главах создать простейшую нейронную сеть распознавания и классификации изображений,

* в последующих – углубиться в устройство и архитектуру для оптимизации,

* далее расширить понимание экосистемы как компании в целом, в которой работают нейронные сети, как её составная часть, способы ее взаимодействия с окружающими технологиями и их использование,

* закончить изучение развёртыванием полномасштабной производственной системы в облаке полного цикла.

Фактически каждая глава в начале даёт общую информацию, необходимую для последующей практической части. В практической части:

* демонстрируется процесс подготовки окружения, но чаще используются бесплатные готовые облачные сервисы,

* демонстрируется процесс написания совместно с разбором написанного и обзором альтернативных решений,

* проводится анализ результата и формирование способов дальнейшего развития.

Книга состоит из разделов:

* Введение в Машинное обучение. Это единственная глава без практической части, созданная для того, чтобы дать начальное представление о границах применимости машинного обучения, преимуществах перед другими методами и об общем устройстве нейронных сетей для начинающих. Также производится классификация нейронных сетей по принципам, заложенных в них, и разделение на группы, о которых будет говориться в книге.

* Основы для написания сетей. Здесь даются базовые знания, необходимые для написания первой сети на PyTorch, знакомство со средой разработки Jupyter в облачном сервисе Google Colab, которая является упрощенным вариантом облачной платформы Google ML, запуск кода в нём и использование фреймворка на написания нейронных сетей PyTorch.

* Создаём первую сеть. Автор демонстрирует для практики читателя создание простой нейронной сети на PyTorch в Colab с детальным разбором написанного кода, обучение её на DataSet изображений MNIST и запуском.

* Улучшаем распознавание нейросети на сложных изображениях. Здесь автор для читателя демонстрирует на практике обучение нейронным сетям для цветных картинок, методы повышения качества предсказаний сети. Детально разбирается устройство, подводные камни при написании и обучении эффективных нейронных сетей.

* Современные архитектуры нейронных сетей. Приводятся архитектурные принципы, используемые в современных нейронных сетях для повышения качества предсказаний. Приводится разбор различных архитектур нейронных сетей, сделавших прорыв в качестве обучения и принёсших новые подходы. Рассматриваются различные архитектурные универсальные паттерны увеличения качества, такие как создание ансамблей нейронных сетей.

* Использование предобученных сетей. Демонстрируется использование в своих сетях уже обученных слоёв.

* Масштабирование ML. Приводятся примеры подготовки окружения для запуска их в облачной инфраструктуре.

* Получение данных от BigData. Рассказывается, как можно из Jupyter подключаться к различным источникам данных, в том числе BigData, для обучения моделей.

* Подготовка больших данных. В этом разделе описываются BigData технологии, такие как Hadoop и Spark, которые являются источниками данных для обучения моделей.

* ML в промышленной среде. В этом разделе рассказываются о таких системах, как Kubeflow и MLflow. Читатель может попробовать развернуть платформу, настроить процесс обучения и запустить в облачной среде модель, как это делается в компаниях.

Об авторе. Автор является корпоративным (главным) архитектором крупного подразделения (трайба) компании Сбер. Сбер лидер по объёмам накопленных данных в России и обладатель вычислительного центра для обучения моделей Кристофари, занимающей 39 место в ТОП500 мира и самый мощный в России и СНГ (первое место в ТОП50 СНГ), в нём разработано более 5000 моделей более тысячью DataSience учёных. Автор проходил обучение (Sber AI Architect, Sber Certified Architect) в Сбер в области искусственного интеллекта, создавал внутренние курсы по этой тематике для других архитекторов, разрабатывал предиктивную аналитику на машинном обучении в нейронных сетях для универсальных облачных систем, участвовал в качестве ментора (команда заняла 2 место среди всех команд Сбер) и оценщиком на соревнованиях Сбер.

Введение в машинное обучение

Искусственный интеллект (Artificial Intelligence, AI) – это область науки, созданная на стыке многих академических наук. Терми бы введён в 1956 году, в эпоху попыток эмитировать работу человеческого мозга. Один из способов его достижения – машинное обучение (Machine Learning). Дисциплина машинное обучение (ML) строится на трёх составляющих: данных (разнородные данные), алгоритмах и признаках. Другие, смежные дисциплины, строятся на двух сущностях. Так, классическое программирование строится на алгоритмах, применяемых к конкретным признакам, Data Scienes – на данных и получаемых из них фичах, Data Mining – на обработке алгоритмах и данных. ML с помощью алгоритмов и фич предоставляет новые данных. Так, как ML использует фичи, которые подаются как основа для обучения, то он использует результаты Data Scienes. Для разработки самих сетей используются языки программирования.

Когда мы подаём нейронные сети данных, на их основе происходит обучение нахождению решений и выявление закономерностей и данных, ранее которых не было. Для обучения могут использоваться статистические алгоритмы, например, на языке R, поиск в глубину на языке Prolog или поиск в ширину на Refal, а также подстраивающиеся структуры – нейронные сети. Нейронные сети, в зависимости от задач, строятся по разным принципам, имеют структуру и по–разному обучаются. В последнее время наибольший прорыв получили нейронные сети представления данных (Representation learning), занимающиеся выявлением в информации закономерностей, так как саму информацию из–за её размеров они не могут запомнить. Большой эффект дают глубокие нейронные сети, имеющие множество уровней признаков, признаки на последующих уровнях строятся на основании признаков с предыдущих уровней, о них и пойдёт речь в этой главе.

Под Machine Learning (ML) понимается адаптация преобразования входных данных в выходные данные в зависимости от истории решений. Такой класс задач решается или алгоритмическим способом, или с помощью нейронных сетей. О том, где какое решение и в какой ситуации лучше применять далее и пойдёт речь. Для практического примера мы возьмём классификацию изображений с помощью обучения глубокой нейронной сети с учителем. Посмотрим её местоположение в классификации.

Типы построения:

* Классическое обучение (экспертное);

* Нейронные сети.

Типы обучений:

* С учителем (регрессия, классификация, порождающие, seq2seq);

* Без учителя (кластеризация, поиск правил, обобщение, ассоциация).

По способу улучшения результата:

* Ансамбли нейронных сетей;

* Глубокие нейронные сети.

В эволюции нейронных сетей, обычно, выделяют три эпохи:

* Экспертные системы (rule based модели) – системы, основанные на правилах. Недостатком является слабая актуализируемость, если эксперт закончил работать, то система начинает устаревать;

* Машинное обучение – с помощью статистических методов по указанным признакам (фичам) система находит правила. Сами фичи должен определить эксперт предметной области из всех имеющихся параметров данных, то есть выделить из сотни или тысячи параметров данных важные, например, столбцы в таблице базы данных. Это сложная задача, так как факторов для разных групп может быть переменное число и определить все группы и для них все факторы – крайне трудоёмкий процесс. При этом излишек факторов вносит шум в результат предсказания. Современные нейронные сети превосходят для большинства случаев статистические по вероятности;

* Нейронные сети позволяют самим выбрать признаки, но для этого требуется гораздо больше данных, обычно больше миллиона экземпляров. Эти данные требуются, чтобы пройти через все её слои и на последующих слоях усилить важность нужных признаков и уменьшить не важных.

Этапы эволюции нейронных сетей:

* 1950-е годы – исследование мозга и его имитирование;

* 1960-е годы – собеседник ELIZA (1956 год) на общие вопросы, генетические алгоритмы основанные на переборе всех возможных изменений и выбора лучшего;

* 1970-е годы – экспертные системы основанные на правилах и данных от экспертов, например MYCIN и DENDRAL;

* 1980-е годы – коммерческое внедрение экспертных систем;

* 2010-е годы – решение подготовленных задач нейронными сетями и статистическими алгоритмами;

* 2010-е годы – глубокое обучение в соревнованиях с человеком и реальном мире (автопилотах, переводчиках, ассистентах).

Последние годы:

* 1994 год – выигрыш Chinook в шашки у чемпиона мира,

* 1997 год – выигрыш Deep Blue в настольную игру шахматы у чемпиона мира,

* 2005 год – беспилотные автомобили на площадках (соревнование DARPA Grand Challenge),

* 2011 год – IBM Watson выиграла в телевизионной игре Jeopardy,

* 2012 год – Google X Lab распознаёт цветные изображения животных,

* 2016 год – Google Translate основан на нейронных сетях, выигрыш Google DeepMind AlphaGo у чемпиона мира по Go,

* 2017 год – выигрыш у чемпионов в коллективную 3D игру Dota2,

* 2018 год – беспилотные такси Alphabet Waymo на общих дорогах в Аризоне,

* 2019 год – победа Libratus чемпионов в покер,

* 2020 год – чат-бот на GPT-3 был не распознан собеседниками в социальной сети, видео-интерьвью с авотаром я не отличил от естественного,

* 2021 год – OpenAI Codex создаёт программы по детальному описанию задачи на естественном языке.

Достижения последнего времени:

* распознавание речи по движению губ;

* выигрыши в в 2D игры и 3D игры;

* выигрыши в настольные игры: шахматы, Go;

* синхронный перевод в Skype: разговор между людьми без знания языков друг друга;

* автопилот в автомобилях;

* FindFace распознаёт лица;

* описание изображение текстом и наоборот.

Достижения на 2019 год:

* чтение по губам лучше профессионала (DeepMind Lip Reading);

* изображения: фотореалистичная генерация изображений (Google bigGAN), трансформация видео (NVIDEA vid-to-vid), создание изображений по макетам (NVIDEA gauGAN), обучение беспилотников по виртуальным маршрутам (NVIDEA Drive);

* текст: GPT, BERT, BART, T5, ELMo и другие архитектуры развиваются, расширяют свою сферу применения, эволюционируют;

* звук: умные колонки, с умением автоответчика вести разговор;

* соревнования: AlphaZero обыграла чемпионов в Go и шахматы, другие сети обыграли в StartCraft, Dota-2, покер;

* медицина: визуализация снимков;

* автоматизация: AliBaba автоматизировала Ханджоу (светофоры, инфраструктура), Google автоматизировал охлаждение своих Data центров, автопилоты и другие Edge AI;

* доступность: дообучение готовых моделей в Cloud.

Достижения на 2020 год:

* Intel создал нейроморфную машину Loihi с 1024 нейронами и IBM TrueNorth с миллионом нейронов;

* модель MuZero сама учится играть в неизвестные ей игры (Atari + Go + шахматы + японские шахматы) без начальных знаний, обучающих партий людей и программ и выигрывает у узкоспециализированной AlphaZero, традиционных программ Stockfish и людей в шахматы;

* модель mT5 обучена на более 100 языках для переводов;

* GPT-3 и ruGPT умеют писать программы;

* Модель GPT-3 написала передовицу для газеты Гардиан;

* Модель NVidia StyleGAN2 генерирует правдоподобные лица людей.

Достижения на 2021 год:

* создание ML с несколькими навыками, таких как GPT-3;

* генерация изображения по текстовому описанию: нейронная сеть OpenAI DALL-E (GPT-3 13 + автоинкодер) от OpenAI;

* генераторы музыки: Pod Music Transformet (нотная модель), OpenAI Jukebox (звуковая модель: голос и музыка);

* нейронная сеть создаёт Atari игры по образцу;

* OpenAI Codex создаёт программы по детальному описанию задачи на естественном языке.

Но, в 2021 году более интересны проекты, которые имеют применение нейронных сетей в бизнесе:

* генерация генотипа человека для обхода закона о запрете экспериментов над необезличенным генотипом;

* Яндекс выпустил беспилотных доставляющих роботов;

* одна из нейронных сетей одержала победу над реальным пилотом истребителя и бедет внедряться в боевые беспилотники;

* Яндекс продемонстрировал работу беспилотного такси Yandex Self-Driving Car на дрогах общего пользования города после снегопада;

* чат-бот от Microsoft имитирующий старшеклассница Tay долгое время оставался нераспознанным к бот;

* генерация изображения по текстовому описанию: нейронная сеть Николай Иронов от студии дизайна Студии Артемия Лебедева генерит коммерческие логотипы.

* внедрены системы управления бизнес процессами на основе обучения с подкреплением (игрового принципа обучения);

* многие страны создали стратегии развития AI на государственном уровне, так в России принята стратегия указом №490 "О развитии искусственного интеллекта в Российской Федерации";

* на законодательном уровне формируется экосистема для AI: в России принят закон посвящённых AI (Закон об искусственном интеллекте 123-ФЗ).

* обучение на малых датасетах: копирование голоса по записи длительностью в 4 часа как SaaS продукт.

* виртуальная ведущая Елена от Сбербанка эмулирует мимику во время разговора, но не очень естественно, на мой взгляд.

Но не стоит забывать про стандартные задачи:

* Intelligent document processing – извлечение структурированных данных из неструктурированных бумажных документов;

На этой странице вы можете прочитать онлайн книгу «Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData», автора Евгения Сергеевича Штольца. Данная книга имеет возрастное ограничение 12+, относится к жанрам: «Программы», «Программирование». Произведение затрагивает такие темы, как «big data», «обучение программированию». Книга «Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData» была написана в 2020 и издана в 2022 году. Приятного чтения!