От издательства....14
Об авторах....15
Колофон....16
Предисловие....17
Введение....18
Глава 1. Общий обзор фреймворка Ray....25
Что такое Ray?....26
Что привело к разработке Ray?....27
Принципы внутреннего устройства фреймворка Ray....28
Простота и абстракция....28
Гибкость и неоднородность....29
Скорость и масштабируемость....30
Три слоя: ядро, библиотеки и экосистема....30
Фреймворк распределенных вычислений....31
Комплект библиотек науки о данных....34
Инструментарий Ray AIR и рабочий процесс науки о данных....34
Обработка данных с использованием библиотеки Ray Data....36
Тренировка моделей....38
Обучение с подкреплением с помощью библиотеки Ray RLlib....38
Распределенная тренировка с помощью библиотеки Ray Train....42
Гиперпараметрическая настройка....42
Подача моделей в качестве служб....44
Растущая экосистема....46
Резюме....47
Глава 2. Начало работы с инструментарием Ray Core....49
Введение в инструментарий Ray Core....50
Первый пример использования Ray API....52
Функции и дистанционные задания Ray....54
Использование хранилища объектов с помощью put и get....55
Применение функции wait фреймворка Ray для неблокирующих вызовов....56
Оперирование зависимостями заданий....58
Из классов в акторы....59
Краткий обзор API инструментария Ray Core....62
Понимание системных компонентов фреймворка Ray....63
Планирование и исполнение работы на узле....63
Головной узел....65
Распределенное планирование и исполнение....66
Простой пример использования парадигмы MapReduce с фреймворком Ray....68
Отображение и перетасовка данных в документах....71
Редукция количеств слов....72
Резюме....74
Глава 3. Разработка первого распределенного приложения....75
Введение в обучение с подкреплением....75
Постановка простой задачи о лабиринте....77
Разработка симуляции....82
Тренировка модели обучения с подкреплением....85
Разработка распределенного приложения Ray....89
Резюмирование терминологии обучения с подкреплением....92
Резюме....94
Глава 4. Обучение с подкреплением с использованием библиотеки Ray RLlib....95
Краткий обзор библиотеки RLlib....96
Начало работы с библиотекой RLlib....97
Разработка среды в рамках библиотеки Gym....98
Работа с интерфейсом командной строки библиотеки RLlib....99
Использование Python API библиотеки RLlib....101
Тренировка алгоритмов библиотеки RLlib....101
Сохранение, загрузка и оценивание моделей библиотеки RLlib....103
Вычисление действий....104
Доступ к политике и модельным состояниям....105
Конфигурирование экспериментов с помощью библиотеки RLlib....108
Конфигурирование ресурсов....110
Конфигурирование работников розыгрыша....110
Конфигурирование сред....111
Работа со средами библиотеки RLlib....111
Общий обзор сред библиотеки RLlib....111
Работа с несколькими агентами....112
Работа с серверами политик и клиентами....117
Определение сервера....117
Определение клиента....119
Продвинутые концепции....120
Разработка продвинутой среды....120
Применение процедуры усвоения учебной программы....122
Работа с офлайновыми данными....124
Другие продвинутые темы....125
Резюме....126
Глава 5. Гиперпараметрическая оптимизация с использованием библиотеки Ray Tune....127
Настройка гиперпараметров....128
Разработка примера случайного поиска с помощью фреймворка Ray....128
В чем трудность гиперпараметрической оптимизации?....131
Введение в библиотеку Tune....132
Принцип работы библиотеки Tune....133
Алгоритмы поиска....135
Планировщики....136
Конфигурирование и выполнение библиотеки Tune....138
Детализация ресурсов....138
Функции обратного вызова и метрики....139
Контрольные точки, остановка и возобновление....141
Конкретно-прикладные и условные пространства поиска....142
Машинное обучение с помощью библиотеки Tune....143
Использование библиотеки RLlib вместе с библиотекой Tune....143
Настройка моделей Keras....144
Резюме....147
Глава 6. Обработка данных с использованием фреймворка Ray....149
Библиотека Ray Data....150
Основы библиотеки Ray Data....151
Создание набора данных Dataset....152
Чтение из хранилища и запись в него....152
Встроенные преобразования....153
Блоки и реорганизация блоков....154
Схемы и форматы данных....154
Вычисления на наборах данных Dataset....155
Конвейеры наборов данных Dataset....157
Пример: параллельная тренировка копий классификатора....159
Интеграции с внешними библиотеками....163
Разработка конвейера машинного обучения....166
Резюме....168
Глава 7. Распределенная тренировка с использованием библиотеки Ray Train....169
Основы распределенной тренировки моделей....170
Введение в библиотеку Ray Train на примере....171
Предсказание больших чаевых в поездках на нью-йоркском такси....172
Загрузкапредобработка данных и выделение признаков....173
Определение модели глубокого обучения....174
Распределенная тренировка с помощью библиотеки Ray Train....175
Распределенное пакетное генерирование модельных предсказаний....178
Подробнее о тренерах в библиотеке Ray Train....179
Миграция в библиотеку Ray Train с минимальными изменениями исходного кода....181
Горизонтальное масштабирование тренеров....182
Предобработка с помощью библиотеки Ray Train....183
Интеграция тренеров с библиотекой Ray Tune....185
Использование обратных вызовов для мониторинга тренировки....187
Резюме....187
Глава 8. Онлайновое генерирование модельных предсказаний с использованием библиотеки Ray Serve....189
Ключевые характеристики онлайнового генерирования модельных предсказаний....191
Модели машинного обучения характерны своей вычислительной интенсивностью....191
Модели машинного обучения бесполезны в изоляции....192
Введение в библиотеку Ray Serve....193
Архитектурный обзор....193
Определение базовой конечной точки HTTP....195
Масштабирование и ресурсное обеспечение....197
Пакетирование запросов....199
Графы генерирования многомодельных предсказаний....200
Ключевая функциональность: привязка нескольких развертываний....201
Шаблон 1: конвейеризация....202
Шаблон 2: широковещательная трансляция....203
Шаблон 3: условная логика....203
Сквозной пример: разработка API на базе обработки естественного языка....204
Доставка содержимого и предобработка....206
Модели обработки естественного языка....206
Обработка HTTP и логика драйвера....208
Собираем все воедино....210
Резюме....212
Глава 9. Кластеры Ray....213
Создание кластера Ray в ручном режиме....214
Развертывание на Kubernetes....216
Настройка своего первого кластера KubeRay....217
Взаимодействие с кластером KubeRay....218
Выполнение программ Ray с помощью команды kubectl....219
Использование сервера подачи заявок Ray на выполнение работы....219
Клиент Ray....220
Предоставление оператора KubeRay....221
Конфигурирование оператора KubeRay....221
Конфигурирование журналирования для KubeRay....224
Использование инструмента запуска кластеров Ray....225
Конфигурирование своего кластера Ray....226
Использование CLI-инструмента запуска кластеров....226
Взаимодействие с кластером Ray....227
Работа с облачными кластерами....227
AWS....227
Использование других облачных провайдеров....228
Автомасштабирование....229
Резюме....230
Глава 10. Начало работы с инструментарием Ray AI Runtime....231
Зачем использовать инструментарий AIR?....231
Ключевые концепции инструментария AIR на примере....233
Наборы данных Dataset и предобработчики....234
Тренеры....235
Настройщики и контрольные точки....237
Пакетные предсказатели....239
Развертывания....240
Рабочие нагрузки, подходящие для инструментария AIR....243
Исполнение рабочих нагрузок AIR....246
Исполнение без отслеживания внутреннего состояния....246
Исполнение с отслеживанием внутреннего состояния....247
Исполнение составной рабочей нагрузки....247
Исполнение заданий по онлайновому генерированию модельных предсказаний....248
Управление памятью в инструментарии AIR....248
Принятая в инструментарии AIR модель сбоя....249
Автомасштабирование рабочих нагрузок AIR....250
Резюме....251
Глава 11. Экосистема фреймворка Ray и за ее пределами....252
Растущая экосистема....253
Загрузка и предобработка данных....253
Тренировка моделей....255
Подача моделей в качестве служб....259
Разработка конкретно-прикладных интеграций....262
Обзор интеграций фреймворка Ray....264
Фреймворк Ray и другие системы....264
Фреймворки распределенных вычислений на Python....265
Инструментарий Ray AIR и более широкая экосистема машинного обучения....265
Как интегрировать инструментарий AIR в свою платформу машинного обучения....268
Куда отсюда двигаться дальше?....269
Резюме....271
Тематический указатель....272
Наука о данных — сложная и быстро развивающаяся область, которая нуждается в мощных инструментах и фреймворках для управления огромными объемами данных, генерируемых каждый день. Ray – это платформа кластерных вычислений для распространения и запуска Python-кода, даже со сложными библиотеками или пакетами, на кластерах бесконечного размера. Помимо Python, также Ray предоставляет API для Java и C++. Фреймворк использует задачи (функции) и субъекты (классы), чтобы распараллеливать пользовательский код. Ray помогает реализовать параллельные и распределенные вычисления в жизненном цикле науки о данных.За последние несколько лет фреймворк распределенных вычислений Ray получал все большее предпочтение в связи со своей способностью упрощать разработку таких приложений. Ray включает в себя гибкое ядро и набор мощных библиотек, которые позволяют разработчикам легко масштабировать различные рабочие нагрузки, включая тренировку, гиперпараметрическую настройку, обуче ние с подкреплением, подачу моделей в качестве служб и пакетную обработку неструктурированных данных. Фреймворк Ray является одним из самых популярных проектов с открытым исходным кодом и используется тысячами компаний для внедрения широкого спектра вычислительных решений, от платформ машинного обуче ния до рекомендательных систем, систем обнаружения мошенничества и тренировки крупнейших моделей, в том числе ChatGPT компании Open AI.Признавая, что масштабирование является одновременно необходимостью и вызовом времени, фреймворк Ray призван упростить разработчикам распределенные вычисления. Благодаря ему распределенные вычисления стали доступными для неспециалистов и стало довольно легко масштабировать скрипты Python по нескольким узлам. Фреймворк Ray хорошо зарекомендовал себя в масштабировании вычислительно интенсивных рабочих нагрузок и рабочих нагрузок интенсивных по использованию данных, таких как предобработка данных и тренировка моделей, и он непосредственно ориентирован на рабочие нагрузки машинного обуче ния, требующие масштабирования.Издание предназначено для программистов на Python, инженеров и исследователей данных.