Изучаем Ray

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Наука о данных — сложная и быстро развивающаяся область, которая нуждается в мощных инструментах и фреймворках для управления огромными объемами данных, генерируемых каждый день. Ray – это платформа кластерных вычислений для распространения и запуска Python-кода, даже со сложными библиотеками или пакетами, на кластерах бесконечного размера. Помимо Python, также Ray предоставляет API для Java и C++. Фреймворк использует задачи (функции) и субъекты (классы), чтобы распараллеливать пользовательский код. Ray помогает реализовать параллельные и распределенные вычисления в жизненном цикле науки о данных. За последние несколько лет фреймворк распределенных вычислений Ray получал все большее предпочтение в связи со своей способностью упрощать разработку таких приложений. Ray включает в себя гибкое ядро и набор мощных библиотек, которые позволяют разработчикам легко масштабировать различные рабочие нагрузки, включая тренировку, гиперпараметрическую настройку, обуче ние с подкреплением, подачу моделей в качестве служб и пакетную обработку неструктурированных данных. Фреймворк Ray является одним из самых популярных проектов с открытым исходным кодом и используется тысячами компаний для внедрения широкого спектра вычислительных решений, от платформ машинного обуче ния до рекомендательных систем, систем обнаружения мошенничества и тренировки крупнейших моделей, в том числе ChatGPT компании Open AI. Признавая, что масштабирование является одновременно необходимостью и вызовом времени, фреймворк Ray призван упростить разработчикам распределенные вычисления. Благодаря ему распределенные вычисления стали доступными для неспециалистов и стало довольно легко масштабировать скрипты Python по нескольким узлам. Фреймворк Ray хорошо зарекомендовал себя в масштабировании вычислительно интенсивных рабочих нагрузок и рабочих нагрузок интенсивных по использованию данных, таких как предобработка данных и тренировка моделей, и он непосредственно ориентирован на рабочие нагрузки машинного обуче ния, требующие масштабирования. Издание предназначено для программистов на Python, инженеров и исследователей данных. https://github.com/maxpumperla/learning_ray

Author(s): Макс Пумперла, Эдвард Оукс, Ричард Ляо
Publisher: Books.kz
Year: 2023

Language: Russian
Pages: 290
City: М.
Tags: python

Содержание
От издательства
Об авторах
Колофон
Предисловие
Введение
Кому следует прочитать эту книгу
Цели этой книги
Навигация по этой книге
Как использовать примеры исходного кода
Используемые в книге условные обозначения
Использование примеров исходного кода
Благодарности
Глава 1. Общий обзор фреймворка Ray
Что такое Ray?
Что привело к разработке Ray?
Принципы внутреннего устройства фреймворка Ray
Простота и абстракция
Гибкость и неоднородность
Скорость и масштабируемость
Три слоя: ядро, библиотеки и экосистема
Фреймворк распределенных вычислений
Комплект библиотек науки о данных
Инструментарий Ray AIR и рабочий процесс науки о данных
Обработка данных с использованием библиотеки Ray Data
Тренировка моделей
Обучение с подкреплением с помощью библиотеки Ray RLlib
Распределенная тренировка с помощью библиотеки Ray Train
Гиперпараметрическая настройка
Подача моделей в качестве служб
Растущая экосистема
Резюме
Глава 2. Начало работы с инструментарием Ray Core
Введение в инструментарий Ray Core
Первый пример использования Ray API
Функции и дистанционные задания Ray
Использование хранилища объектов с помощью put и get
Применение функции wait фреймворка Ray для неблокирующих вызовов
Оперирование зависимостями заданий
Из классов в акторы
Краткий обзор API инструментария Ray Core
Понимание системных компонентов фреймворка Ray
Планирование и исполнение работы на узле
Головной узел
Распределенное планирование и исполнение
Простой пример использования парадигмы MapReduce с фреймворком Ray
Отображение и перетасовка данных в документах
Редукция количеств слов
Резюме
Глава 3. Разработка первого распределенного приложения
Введение в обучение с подкреплением
Постановка простой задачи о лабиринте
Разработка симуляции
Тренировка модели обучения с подкреплением
Разработка распределенного приложения Ray
Резюмирование терминологии обучения с подкреплением
Резюме
Глава 4. Обучение с подкреплением с использованием библиотеки Ray RLlib
Краткий обзор библиотеки RLlib
Начало работы с библиотекой RLlib
Разработка среды в рамках библиотеки Gym
Работа с интерфейсом командной строки библиотеки RLlib
Использование Python API библиотеки RLlib
Тренировка алгоритмов библиотеки RLlib
Сохранение, загрузка и оценивание моделей библиотеки RLlib
Вычисление действий
Доступ к политике и модельным состояниям
Конфигурирование экспериментов с помощью библиотеки RLlib
Конфигурирование ресурсов
Конфигурирование работников розыгрыша
Конфигурирование сред
Работа со средами библиотеки RLlib
Общий обзор сред библиотеки RLlib
Работа с несколькими агентами
Работа с серверами политик и клиентами
Определение сервера
Определение клиента
Продвинутые концепции
Разработка продвинутой среды
Применение процедуры усвоения учебной программы
Работа с офлайновыми данными
Другие продвинутые темы
Резюме
Глава 5. Гиперпараметрическая оптимизация с использованием библиотеки Ray Tune
Настройка гиперпараметров
Разработка примера случайного поиска с помощью фреймворка Ray
В чем трудность гиперпараметрической оптимизации?
Введение в библиотеку Tune
Принцип работы библиотеки Tune
Алгоритмы поиска
Планировщики
Конфигурирование и выполнение библиотеки Tune
Детализация ресурсов
Функции обратного вызова и метрики
Контрольные точки, остановка и возобновление
Конкретно-прикладные и условные пространства поиска
Машинное обучение с помощью библиотеки Tune
Использование библиотеки RLlib вместе с библиотекой Tune
Настройка моделей Keras
Резюме
Глава 6. Обработка данных с использованием фреймворка Ray
Библиотека Ray Data
Основы библиотеки Ray Data
Создание набора данных Dataset
Чтение из хранилища и запись в него
Встроенные преобразования
Блоки и реорганизация блоков
Схемы и форматы данных
Вычисления на наборах данных Dataset
Конвейеры наборов данных Dataset
Пример: параллельная тренировка копий классификатора
Интеграции с внешними библиотеками
Разработка конвейера машинного обучения
Резюме
Глава 7. Распределенная тренировка с использованием библиотеки Ray Train
Основы распределенной тренировки моделей
Введение в библиотеку Ray Train на примере
Предсказание больших чаевых в поездках на нью-йоркском такси
Загрузка/предобработка данных и выделение признаков
Определение модели глубокого обучения
Распределенная тренировка с помощью библиотеки Ray Train
Распределенное пакетное генерирование модельных предсказаний
Подробнее о тренерах в библиотеке Ray Train
Миграция в библиотеку Ray Train с минимальными изменениями исходного кода
Горизонтальное масштабирование тренеров
Предобработка с помощью библиотеки Ray Train
Интеграция тренеров с библиотекой Ray Tune
Использование обратных вызовов для мониторинга тренировки
Резюме
Глава 8. Онлайновое генерирование модельных предсказаний с использованием библиотеки Ray Serve
Ключевые характеристики онлайнового генерирования модельных предсказаний
Модели машинного обуче­ния характерны своей вычислительной интенсивностью
Модели машинного обучения бесполезны в изоляции
Введение в библиотеку Ray Serve
Архитектурный обзор
Определение базовой конечной точки HTTP
Масштабирование и ресурсное обеспечение
Пакетирование запросов
Графы генерирования многомодельных предсказаний
Ключевая функциональность: привязка нескольких развертываний
Шаблон 1: конвейеризация
Шаблон 2: широковещательная трансляция
Шаблон 3: условная логика
Сквозной пример: разработка API на базе обработки естественного языка
Доставка содержимого и предобработка
Модели обработки естественного языка
Обработка HTTP и логика драйвера
Собираем все воедино
Резюме
Глава 9. Кластеры Ray
Создание кластера Ray в ручном режиме
Развертывание на Kubernetes
Настройка своего первого кластера KubeRay
Взаимодействие с кластером KubeRay
Выполнение программ Ray с помощью команды kubectl
Использование сервера подачи заявок Ray на выполнение работы
Клиент Ray
Предоставление оператора KubeRay
Конфигурирование оператора KubeRay
Конфигурирование журналирования для KubeRay
Использование инструмента запуска кластеров Ray
Конфигурирование своего кластера Ray
Использование CLI-инструмента запуска кластеров
Взаимодействие с кластером Ray
Работа с облачными кластерами
AWS
Использование других облачных провайдеров
Автомасштабирование
Резюме
Глава 10. Начало работы с инструментарием Ray AI Runtime
Зачем использовать инструментарий AIR?
Ключевые концепции инструментария AIR на примере
Наборы данных Dataset и предобработчики
Тренеры
Настройщики и контрольные точки
Пакетные предсказатели
Развертывания
Рабочие нагрузки, подходящие для инструментария AIR
Исполнение рабочих нагрузок AIR
Исполнение без отслеживания внутреннего состояния
Исполнение с отслеживанием внутреннего состояния
Исполнение составной рабочей нагрузки
Исполнение заданий по онлайновому генерированию модельных предсказаний
Управление памятью в инструментарии AIR
Принятая в инструментарии AIR модель сбоя
Автомасштабирование рабочих нагрузок AIR
Резюме
Глава 11. Экосистема фреймворка Ray и за ее пределами
Растущая экосистема
Загрузка и предобработка данных
Тренировка моделей
Подача моделей в качестве служб
Разработка конкретно-прикладных интеграций
Обзор интеграций фреймворка Ray
Фреймворк Ray и другие системы
Фреймворки распределенных вычислений на Python
Инструментарий Ray AIR и более широкая экосистема машинного обучения
Как интегрировать инструментарий AIR в свою платформу машинного обучения
Куда отсюда двигаться дальше?
Резюме
Тематический указатель