Конструирование систем глубокого обучения
Руководство для инженеров программного обеспечения
Покупка
Новинка
Тематика:
Проектирование. Конструирование
Издательство:
ДМК Пресс
Перевод:
Логунов А. В.
Год издания: 2023
Кол-во страниц: 464
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное профессиональное образование
ISBN: 978-5-93700-181-8
Артикул: 855975.01.99
Это всеобъемлющая книга о разработке систем, которые поддерживают наведение мостов в области глубокого обучения, от научных изысканий и прототипирования до производства. Почему наша система глубокого обучения сконструирована именно так, а не иначе? Подойдет ли ее конструкция и для других конкретных случаев использования? Каждый компонент системы обсуждается очень подробно, приводится мотивация и дается представление о плюсах и минусах различных конструкционных вариантов. Для того чтобы помочь инженерам воплотить все идеи на практике, создан образец системы глубокого обучения с полностью работоспособным исходным кодом.
Издание предназначено для инженеров практически всех уровней знаний, заинтересованных в разработке эффективных систем глубокого обучения.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Кай Ванг и Дональд Сзето Конструирование систем глубокого обучения
Designing Deep Learning Systems A GUIDE FOR SOFTWARE ENGINEERS CHI WANG AND DONALD SZETO CODE LAB BY YAN XUE FOREWORD BY SILVIO SAVARESE AND CAIMING XIONG
Конструирование систем глубокого обучения РУКОВОДСТВО ДЛЯ ИНЖЕНЕРОВ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ КАЙ ВАНГ И ДОНАЛЬД СЗЕТО Лаборатория кода Яня Сюэ Вводное слово Сильвио Саварезе и Каймин Сюн Москва, 2024
УДК 004.048 ББК 32.813 В17 Ванг К., Сзето Д. В17 Конструирование систем глубокого обучения / пер. с англ. А. В. Логунова. – М.: ДМК Пресс, 2023. – 462 с.: ил. ISBN 978-5-93700-181-8 Это всеобъемлющая книга о разработке систем, которые поддерживают наведение мостов в области глубокого обучения, от научных изысканий и прототипирования до производства. Почему наша система глубокого обучения сконструирована именно так, а не иначе? Подойдет ли ее конструкция и для других конкретных случаев использования? Каждый компонент системы обсуждается очень подробно, приводится мотивация и дается представление о плюсах и минусах различных конструкционных вариантов. Для того чтобы помочь инженерам воплотить все идеи на практике, создан образец системы глубокого обучения с полностью работоспособным исходным кодом. Издание предназначено для инженеров практически всех уровней знаний, заинтересованных в разработке эффективных систем глубокого обучения. УДК 004.048 ББК 32.813 Copyright © DMK Press 2023. Authorized translation of the English edition. © 2023 Manning Publications. This translation is published and sold by permission of Manning Publications, the owner of all rights to publish and sell the same. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 978-1-6334-3986-3 (англ.) © Manning Publications, 2023 ISBN 978-5-93700-181-8 (рус.) © Перевод, оформление, издание, ДМК Пресс, 2023
Оглавление 1 Введение в системы глубокого обучения......................................................... 27 2 Служба управления наборами данных............................................................. 63 3 Служба тренировки моделей..............................................................................120 4 Распределенная тренировка..............................................................................160 5 Служба гиперпараметрической оптимизации..............................................199 6 Конструирование службы раздачи моделей...................................................233 7 Раздача моделей на практике............................................................................260 8 Склад метаданных и артифактов......................................................................320 9 Оркестровка рабочего процесса........................................................................343 10 Путь к производству.............................................................................................375
Содержание Оглавление............................................................................................................ 5 Вводное слово...................................................................................................... 12 Предисловие........................................................................................................ 14 Благодарности................................................................................................... 17 О книге................................................................................................................. 20 Об авторах......................................................................................................... 25 Об иллюстрации на обложке............................................................................ 26 1 Введение в системы глубокого обучения.................................. 27 1.1 Цикл освоения глубокого обучения.................................................... 30 1.1.1 Фазы цикла освоения продукта на базе глубокого обучения..... 32 1.1.2 Технические роли в цикле освоения........................................... 38 1.1.3 Пошаговый обход цикла освоения глубокого обучения............ 41 1.1.4 Масштабируемость при разработке проекта....................... 43 1.2 Обзор конструкции системы глубокого обучения............................ 44 1.2.1 Эталонная системная архитектура....................................... 45 1.2.2 Ключевые компоненты.............................................................. 46 1.2.3 Ключевые пользовательские сценарии..................................... 52 1.2.4 Выведение своей собственной конструкции............................ 55 1.2.5 Разработка компонентов поверх Kubernetes.......................... 57 1.3 Разработка системы глубокого обучения в сравнении с разработкой модели........................................................................... 60 Резюме................................................................................................................ 61 2 Служба управления наборами данных...................................... 63 2.1 Понимание службы управления наборами данных......................... 65 2.1.1 Почему системы глубокого обучения нуждаются в управлении наборами данных................................................. 65 2.1.2 Принципы конструирования службы управления наборами данных........................................................................ 70
Содержание 2.1.3 Парадоксальный характер наборов данных............................ 73 2.2 Экскурсия по образцу службы управления наборами данных....... 75 2.2.1 Ознакомление с образцом службы............................................ 75 2.2.2 Пользователи, пользовательские сценарии и общая картина....................................................................................... 82 2.2.3 API приема данных..................................................................... 84 2.2.4 API доставки тренировочного набора данных....................... 90 2.2.5 Внутреннее хранилище наборов данных.................................. 96 2.2.6 Схемы данных.............................................................................. 99 2.2.7 Добавление нового типа набора данных (IMAGE_CLASS)..... 103 2.2.8 Резюме конструкции службы...................................................104 2.3 Подходы с открытым исходным кодом.............................................105 2.3.1 Delta Lake и Petastorm с семейством Apache Spark................105 2.3.2 Pachyderm с облачным хранилищем объектов........................113 Резюме...............................................................................................................118 3 Служба тренировки моделей.........................................................120 3.1 Служба тренировки моделей: обзор конструкции..........................122 3.1.1 Зачем использовать службу тренировки моделей?...............123 3.1.2 Принципы конструирования службы тренировки.................125 3.2 Шаблон исходного кода тренировки для глубокого обучения......127 3.2.1 Рабочий процесс тренировки моделей....................................127 3.2.2 Докеризация исходного кода тренировки моделей в качестве черного ящика.........................................................129 3.3 Образец службы тренировки моделей..............................................130 3.3.1 Ознакомление со службой.........................................................131 3.3.2 Обзор конструкции службы......................................................132 3.3.3 API службы тренировки............................................................135 3.3.4 Запуск нового задания на тренировку....................................136 3.3.5 Обновление и доставка информации о статусе задания.....140 3.3.6 Исходный код тренировки модели классифицирования намерений..................................................................................142 3.3.7 Управление заданиями на тренировку...................................144 3.3.8 Метрики для устранения неполадок.......................................145 3.3.9 Поддержка нового алгоритма или новой версии....................146 3.4 Тренировочные операторы Kubeflow с открытым исходным кодом......................................................................................................147 3.4.1 Тренировочные операторы Kubeflow.......................................148 3.4.2 Шаблон оператора/контроллера Kubernetes.........................149 3.4.3 Конструкция тренировочного оператора Kubeflow..............150 3.4.4 Как использовать тренировочные операторы Kubeflow.......152 3.4.5 Как интегрировать эти операторы в существующую систему......................................................................................154 3.5 Когда использовать публичное облако..............................................155 3.5.1 Когда использовать технологическое решение на базе публичного облака.....................................................................156 3.5.2 Когда создавать свою собственную службу тренировки......156 Резюме...............................................................................................................158
Содержание 4 Распределенная тренировка...........................................................160 4.1 Типы методов распределенной тренировки....................................161 4.2 Параллелизм данных...........................................................................162 4.2.1 Концепция параллелизма данных............................................162 4.2.2 Трудности тренировки с несколькими работниками...........166 4.2.3 Написание исходного кода распределенной тренировки (с параллелизмом данных) для разных фреймворков тренировки................................................................................168 4.2.4 Инженерные усилия по распределенной тренировке с параллелизмом данных..........................................................173 4.3 Образец службы с поддержкой распределенной тренировки с параллелизмом данных....................................................................176 4.3.1 Обзор службы.............................................................................176 4.3.2 Ознакомление со службой.........................................................178 4.3.3 Запуск заданий на тренировку................................................180 4.3.4 Обновление и доставка информации о статусе задания.....184 4.3.5 Конвертация исходного кода тренировки в распределенный режим исполнения......................................185 4.3.6 Улучшения..................................................................................186 4.4 Тренировка больших моделей, не помещающихся на один графический процессор.......................................................................187 4.4.1 Традиционные методы: экономия памяти............................187 4.4.2 Конвейерный параллелизм модели..........................................189 4.4.3 Как разработчикам программного обеспечения поддерживать параллелизм конвейера..................................196 Резюме...............................................................................................................197 5 Служба гиперпараметрической оптимизации..................199 5.1 Понятие гиперпараметров..................................................................201 5.1.1 Что такое гиперпараметр?....................................................201 5.1.2 Причины важности гиперпараметров...................................202 5.2 Понятие гиперпараметрической оптимизации..............................203 5.2.1 Что такое гиперпараметрическая оптимизация?...............203 5.2.2 Популярные алгоритмы гиперпараметрической оптимизации.............................................................................207 5.2.3 Распространенные подходы к автоматической ГПО............214 5.3 Конструирование службы ГПО...........................................................217 5.3.1 Принципы конструирования службы ГПО..............................217 5.3.2 Общая конструкция службы ГПО............................................219 5.4 Библиотеки ГПО с открытым исходным кодом...............................221 5.4.1 Hyperopt......................................................................................222 5.4.2 Optuna.........................................................................................225 5.4.3 Ray Tune......................................................................................227 5.4.4 Следующие шаги........................................................................231 Резюме...............................................................................................................231 6 Конструирование службы раздачи моделей.........................233 6.1 Объяснение процесса раздачи моделей............................................235 6.1.1 Что такое модель машинного обучения?...............................235
Содержание 6.1.2 Модельное предсказание и модельный вывод..........................237 6.1.3 Что представляет собой раздача модели?............................238 6.1.4 Трудности раздачи моделей.....................................................239 6.1.5 Терминология раздачи моделей................................................241 6.2 Распространенные стратегии раздачи моделей..............................242 6.2.1 Прямое встраивание модели....................................................242 6.2.2 Служба моделей.........................................................................243 6.2.3 Сервер моделей..........................................................................244 6.3 Конструирование службы предсказания..........................................245 6.3.1 Одномодельное приложение.....................................................246 6.3.2 Многоарендаторное приложение............................................250 6.3.3 Поддержка нескольких приложений в одной системе............253 6.3.4 Общие требования к службе предсказания............................257 Резюме...............................................................................................................258 7 Раздача моделей на практике.......................................................260 7.1 Образец службы моделей....................................................................261 7.1.1 Ознакомление со службой.........................................................262 7.1.2 Конструкция службы.................................................................263 7.1.3 Фронтендовая служба..............................................................264 7.1.4 Предсказатель классификации намерений.............................271 7.1.5 Вытеснение моделей.................................................................278 7.2 Образец сервера моделей TorchServe................................................278 7.2.1 Ознакомление со службой.........................................................279 7.2.2 Конструкция службы.................................................................280 7.2.3 Фронтендовая служба..............................................................280 7.2.4 Бэкенд TorchServe.......................................................................281 7.2.5 API TorchServe............................................................................282 7.2.6 Модельные файлы TorchServe...................................................284 7.2.7 Вертикальное масштабирование в Kubernetes......................289 7.3 Сервер моделей в сопоставлении со службой моделей..................291 7.4 Экскурсия по инструментам с открытым исходным кодом для раздачи моделей...........................................................................292 7.4.1 TensorFlow Serving......................................................................293 7.4.2 TorchServe...................................................................................296 7.4.3 Triton Inference Server................................................................300 7.4.4 KServe и другие инструменты..................................................306 7.4.5 Интеграция инструмента раздачи с существующей системой раздачи......................................................................307 7.5 Выпуск моделей....................................................................................309 7.5.1 Регистрация моделей................................................................311 7.5.2 Загрузка произвольной версии модели в реальном времени с помощью службы предсказания..............................312 7.5.3 Выпуск модели путем обновления дефолтной версии модели.........................................................................................314 7.6 Постпроизводственный мониторинг моделей................................316 7.6.1 Сбор метрических данных и границы качества.....................317 7.6.2 Собираемые метрики...............................................................317 Резюме...............................................................................................................318
Содержание 8 Склад метаданных и артифактов............................................320 8.1 Введение в артифакты.........................................................................321 8.2 Метаданные в контексте глубокого обучения.................................322 8.2.1 Распространенные категории метаданных..........................323 8.2.2 Зачем нужно управлять метаданными?................................326 8.3 Конструирование склада метаданных и артифактов.....................329 8.3.1 Принципы конструирования....................................................329 8.3.2 Общее конструкционное предложение по складу метаданных и артифактов.....................................................331 8.4 Технологические решения с открытым исходным кодом.............334 8.4.1 ML Metadata...............................................................................334 8.4.2 MLflow.........................................................................................338 8.4.3 MLflow в сопоставлении с MLMD.............................................341 Резюме...............................................................................................................342 9 Оркестровка рабочего процесса...................................................343 9.1 Введение в оркестровку рабочего процесса.....................................344 9.1.1 Что такое рабочий процесс?...................................................345 9.1.2 Что такое оркестровка рабочего процесса?.........................346 9.1.3 Трудности использования оркестровки рабочих процессов в глубоком обучении.................................................348 9.2 Конструирование системы оркестровки рабочих процессов........351 9.2.1 Пользовательские сценарии.....................................................351 9.2.2 Общая конструкция системы оркестровки...........................354 9.2.3 Принципы конструирования системы оркестровки рабочих процессов......................................................................356 9.3 Экскурсия по системам оркестровки рабочих процессов с открытым исходным кодом.............................................................358 9.3.1 Airflow.........................................................................................359 9.3.2 Argo Workflows...........................................................................363 9.3.3 Metaflow......................................................................................368 9.3.4 Когда использовать...................................................................373 Резюме...............................................................................................................374 10 Путь к производству...........................................................................375 10.1 Подготовка к продукционализации..................................................379 10.1.1 Научные изыскания...................................................................379 10.1.2 Прототипирование..................................................................381 10.1.3 Ключевые выводы.......................................................................382 10.2 Продукционализация модели.............................................................383 10.2.1 Компонентизация исходного кода...........................................383 10.2.2 Пакетирование исходного кода................................................385 10.2.3 Регистрация исходного кода.....................................................386 10.2.4 Настройка рабочего процесса тренировки............................387 10.2.5 Генерирование модельных выводов..........................................388 10.2.6 Интеграция с продуктом........................................................389 10.3 Стратегии развертывания моделей...................................................390