Изучаем Ray. Гибкие распределенные вычисления на Python в машинном обучении
Покупка
Новинка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Перевод:
Логунов А. В.
Год издания: 2023
Кол-во страниц: 292
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-6-01083-430-9
Артикул: 856515.01.99
В книге излагаются основы работы с фреймворком распределенных вычислений с открытым исходным кодом Ray, который упрощает процесс масштабирования вычислительно интенсивных рабочих нагрузок на Python. Читатель научится применять фреймворк Ray локально и разворачивать вычислительные кластеры Ray, создавать распределенные приложения с помощью ядра фреймворка — Ray Core, управлять распределенным обучением с помощью библиотеки Ray Train.
Издание предназначено для программистов на Python, инженеров и исследователей данных.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Программирование и алгоритмизация
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Макс Пумперла, Эдвард Оукс и Ричард Ляо Изучаем Ray
Max Pumperla, Edward Oakes, and Richard Liaw Learning Ray Flexible Distributed Python for Machine Learning Beijing · Boston · Farnham · Sebastopol · Tokyo
Макс Пумперла, Эдвард Оукс и Ричард Ляо Изучаем Ray Гибкие распределенные вычисления на Python в машинном обучении
УДК 004.043 П88 32.973.22 П88 Пумперла М., Оукс Э., Ляо Р. П88 Изучаем Ray / пер. с англ. А. В. Логунова. – М.: Books.kz, 2023. – 290 с.: ил. ISBN 978-6-01083-430-9 В книге излагаются основы работы с фреймворком распределенных вычислений с открытым исходным кодом Ray, который упрощает процесс масштабирования вычислительно интенсивных рабочих нагрузок на Python. Читатель научится применять фреймворк Ray локально и разворачивать вычислительные кластеры Ray, создавать распределенные приложения с помощью ядра фреймворка – Ray Core, управлять распределенным обучением с помощью библиотеки Ray Train. Издание предназначено для программистов на Python, инженеров и исследователей данных. УДК 004.043 ББК 32.973.22 Copyright © 2023 Max Pumperla and O’Reilly Media, Inc. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-098-12061-0 (англ.) © 2023 Max Pumperla and O’Reilly Media, Inc. ISBN 978-6-01083-430-9 (казах.) © Перевод, оформление, издание, Books.kz, 2023
Посвящается Альме
Содержание От издательства.....................................................................................................12 Об авторах...............................................................................................................13 Колофон....................................................................................................................14 Предисловие...........................................................................................................15 Введение...................................................................................................................16 Глава 1. Общий обзор фреймворка Ray....................................................23 Что такое Ray?..............................................................................................................24 Что привело к разработке Ray?.............................................................................25 Принципы внутреннего устройства фреймворка Ray......................................26 Простота и абстракция......................................................................................26 Гибкость и неоднородность..............................................................................27 Скорость и масштабируемость.........................................................................28 Три слоя: ядро, библиотеки и экосистема..........................................................28 Фреймворк распределенных вычислений..............................................................29 Комплект библиотек науки о данных......................................................................32 Инструментарий Ray AIR и рабочий процесс науки о данных........................32 Обработка данных с использованием библиотеки Ray Data............................34 Тренировка моделей..............................................................................................36 Обучение с подкреплением с помощью библиотеки Ray RLlib...................36 Распределенная тренировка с помощью библиотеки Ray Train.................40 Гиперпараметрическая настройка.......................................................................40 Подача моделей в качестве служб........................................................................42 Растущая экосистема..................................................................................................44 Резюме..........................................................................................................................45 Глава 2. Начало работы с инструментарием Ray Core.......................47 Введение в инструментарий Ray Core.....................................................................48 Первый пример использования Ray API.............................................................50 Функции и дистанционные задания Ray........................................................52 Использование хранилища объектов с помощью put и get.........................53
Содержание 7 Применение функции wait фреймворка Ray для неблокирующих вызовов................................................................................................................54 Оперирование зависимостями заданий.........................................................56 Из классов в акторы...........................................................................................57 Краткий обзор API инструментария Ray Core....................................................60 Понимание системных компонентов фреймворка Ray........................................61 Планирование и исполнение работы на узле.....................................................61 Головной узел..........................................................................................................63 Распределенное планирование и исполнение...................................................64 Простой пример использования парадигмы MapReduce с фреймворком Ray.................................................................................................................................66 Отображение и перетасовка данных в документах..........................................69 Редукция количеств слов.......................................................................................70 Резюме..........................................................................................................................72 Глава 3. Разработка первого распределенного приложения........73 Введение в обуче-ние с подкреплением...................................................................73 Постановка простой задачи о лабиринте................................................................75 Разработка симуляции...............................................................................................80 Тренировка модели обуче-ния с подкреплением...................................................83 Разработка распределенного приложения Ray......................................................87 Резюмирование терминологии обуче-ния с подкреплением...............................90 Резюме..........................................................................................................................92 Глава 4. Обучение с подкреплением с использованием библиотеки Ray RLlib.........................................................................................93 Краткий обзор библиотеки RLlib..............................................................................94 Начало работы с библиотекой RLlib.........................................................................95 Разработка среды в рамках библиотеки Gym.....................................................96 Работа с интерфейсом командной строки библиотеки RLlib...............................97 Использование Python API библиотеки RLlib.....................................................99 Тренировка алгоритмов библиотеки RLlib.....................................................99 Сохранение, загрузка и оценивание моделей библиотеки RLlib..............101 Вычисление действий......................................................................................102 Доступ к политике и модельным состояниям.............................................103 Конфигурирование экспериментов с помощью библиотеки RLlib...................106 Конфигурирование ресурсов..............................................................................108 Конфигурирование работников розыгрыша....................................................108 Конфигурирование сред......................................................................................109 Работа со средами библиотеки RLlib......................................................................109 Общий обзор сред библиотеки RLlib.................................................................109 Работа с несколькими агентами.........................................................................110 Работа с серверами политик и клиентами........................................................115
8 Содержание Определение сервера.......................................................................................115 Определение клиента......................................................................................117 Продвинутые концепции.........................................................................................118 Разработка продвинутой среды.........................................................................118 Применение процедуры усвоения учебной программы................................120 Работа с офлайновыми данными.......................................................................122 Другие продвинутые темы..................................................................................123 Резюме........................................................................................................................124 Глава 5. Гиперпараметрическая оптимизация с использованием библиотеки Ray Tune................................................125 Настройка гиперпараметров...................................................................................126 Разработка примера случайного поиска с помощью фреймворка Ray........126 В чем трудность гиперпараметрической оптимизации?...............................129 Введение в библиотеку Tune...................................................................................130 Принцип работы библиотеки Tune....................................................................131 Алгоритмы поиска...........................................................................................133 Планировщики..................................................................................................134 Конфигурирование и выполнение библиотеки Tune......................................136 Детализация ресурсов......................................................................................136 Функции обратного вызова и метрики.........................................................137 Контрольные точки, остановка и возобновление.......................................139 Конкретно-прикладные и условные пространства поиска.......................140 Машинное обуче-ние с помощью библиотеки Tune.............................................141 Использование библиотеки RLlib вместе с библиотекой Tune......................141 Настройка моделей Keras.....................................................................................142 Резюме........................................................................................................................145 Глава 6. Обработка данных с использованием фреймворка Ray.................................................................................................147 Библиотека Ray Data.................................................................................................148 Основы библиотеки Ray Data..............................................................................149 Создание набора данных Dataset...................................................................150 Чтение из хранилища и запись в него..........................................................150 Встроенные преобразования..........................................................................151 Блоки и реорганизация блоков......................................................................152 Схемы и форматы данных..............................................................................152 Вычисления на наборах данных Dataset...........................................................153 Конвейеры наборов данных Dataset..................................................................155 Пример: параллельная тренировка копий классификатора..........................157 Интеграции с внешними библиотеками...............................................................161 Разработка конвейера машинного обуче-ния.......................................................164 Резюме........................................................................................................................166
Содержание 9 Глава 7. Распределенная тренировка с использованием библиотеки Ray Train........................................................................................167 Основы распределенной тренировки моделей....................................................168 Введение в библиотеку Ray Train на примере......................................................169 Предсказание больших чаевых в поездках на нью-йоркском такси............170 Загрузка/предобработка данных и выделение признаков.............................171 Определение модели глубокого обуче-ния........................................................172 Распределенная тренировка с помощью библиотеки Ray Train...................173 Распределенное пакетное генерирование модельных предсказаний.........176 Подробнее о тренерах в библиотеке Ray Train.....................................................177 Миграция в библиотеку Ray Train с минимальными изменениями исходного кода......................................................................................................179 Горизонтальное масштабирование тренеров..................................................180 Предобработка с помощью библиотеки Ray Train...........................................181 Интеграция тренеров с библиотекой Ray Tune................................................183 Использование обратных вызовов для мониторинга тренировки...............185 Резюме........................................................................................................................185 Глава 8. Онлайновое генерирование модельных предсказаний с использованием библиотеки Ray Serve...............187 Ключевые характеристики онлайнового генерирования модельных предсказаний.............................................................................................................189 Модели машинного обуче-ния характерны своей вычислительной интенсивностью....................................................................................................189 Модели машинного обуче-ния бесполезны в изоляции..................................190 Введение в библиотеку Ray Serve...........................................................................191 Архитектурный обзор..........................................................................................191 Определение базовой конечной точки HTTP...................................................193 Масштабирование и ресурсное обеспечение...................................................195 Пакетирование запросов.....................................................................................197 Графы генерирования многомодельных предсказаний.................................198 Ключевая функциональность: привязка нескольких развертываний..................................................................................................199 Шаблон 1: конвейеризация.............................................................................200 Шаблон 2: широковещательная трансляция................................................201 Шаблон 3: условная логика.............................................................................201 Сквозной пример: разработка API на базе обработки естественного языка...........................................................................................................................202 Доставка содержимого и предобработка..........................................................204 Модели обработки естественного языка...........................................................204 Обработка HTTP и логика драйвера...................................................................206 Собираем все воедино..........................................................................................208 Резюме........................................................................................................................210
10 Содержание Глава 9. Кластеры Ray......................................................................................211 Создание кластера Ray в ручном режиме.............................................................212 Развертывание на Kubernetes.............................................................................214 Настройка своего первого кластера KubeRay...................................................215 Взаимодействие с кластером KubeRay..............................................................216 Выполнение программ Ray с помощью команды kubectl..........................217 Использование сервера подачи заявок Ray на выполнение работы........217 Клиент Ray.........................................................................................................218 Предоставление оператора KubeRay.................................................................219 Конфигурирование оператора KubeRay............................................................219 Конфигурирование журналирования для KubeRay.........................................222 Использование инструмента запуска кластеров Ray..........................................223 Конфигурирование своего кластера Ray...........................................................224 Использование CLI-инструмента запуска кластеров......................................224 Взаимодействие с кластером Ray.......................................................................225 Работа с облачными кластерами............................................................................225 AWS.........................................................................................................................225 Использование других облачных провайдеров...............................................226 Автомасштабирование.............................................................................................227 Резюме........................................................................................................................228 Глава 10. Начало работы с инструментарием Ray AI Runtime....229 Зачем использовать инструментарий AIR?..........................................................229 Ключевые концепции инструментария AIR на примере....................................231 Наборы данных Dataset и предобработчики....................................................232 Тренеры..................................................................................................................233 Настройщики и контрольные точки..................................................................235 Пакетные предсказатели.....................................................................................237 Развертывания......................................................................................................238 Рабочие нагрузки, подходящие для инструментария AIR..................................241 Исполнение рабочих нагрузок AIR....................................................................244 Исполнение без отслеживания внутреннего состояния.............................244 Исполнение с отслеживанием внутреннего состояния..............................245 Исполнение составной рабочей нагрузки....................................................245 Исполнение заданий по онлайновому генерированию модельных предсказаний....................................................................................................246 Управление памятью в инструментарии AIR...................................................246 Принятая в инструментарии AIR модель сбоя.................................................247 Автомасштабирование рабочих нагрузок AIR.................................................248 Резюме........................................................................................................................249 Глава 11. Экосистема фреймворка Ray и за ее пределами..........250 Растущая экосистема................................................................................................251 Загрузка и предобработка данных.....................................................................251