Designing deep learning systems: a guide for software engineers
Design systems optimized for deep learning models. Written for software engineers, this book teaches you how to implement a maintainable platform for developing deep learning models. In Engineering Deep Learning Systems you will learn how to: Transfer your software development skills to deep learnin...
Gespeichert in:
Hauptverfasser: | , |
---|---|
Weitere Verfasser: | , , |
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Shelter Island
Manning
[2023]
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Zusammenfassung: | Design systems optimized for deep learning models. Written for software engineers, this book teaches you how to implement a maintainable platform for developing deep learning models. In Engineering Deep Learning Systems you will learn how to: Transfer your software development skills to deep learning systemsRecognize and solve common engineering challenges for deep learning systemsUnderstand the deep learning development cycleAutomate training for models in TensorFlow and PyTorchOptimize dataset management, training, model serving and hyperparameter tuningPick the right open-source project for your platformEngineering Deep Learning Systems is a practical guide for software engineers and data scientists who are designing and building platforms for deep learning. It s full of hands-on examples that will help you transfer your software development skills to implementing deep learning platforms. You ll learn how to build automated and scalable services for core tasks like dataset management, model training/serving, and hyperparameter tuning. This book is the perfect way to step into an exciting-and lucrative-career as a deep learning engineer. about the technology Behind every deep learning researcher is a team of engineers bringing their models to production. To build these systems, you need to understand how a deep learning system s platform differs from other distributed systems. By mastering the core ideas in this book, you ll be able to support deep learning systems in a way that s fast, repeatable, and reliable |
Beschreibung: | xx, 337 Seiten Illustrationen, Diagramme |
ISBN: | 9781633439863 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV049629199 | ||
003 | DE-604 | ||
005 | 20240513 | ||
007 | t | ||
008 | 240327s2023 a||| |||| 00||| eng d | ||
020 | |a 9781633439863 |9 978-1-63343-986-3 | ||
035 | |a (OCoLC)1437841246 | ||
035 | |a (DE-599)KXP1852844388 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
049 | |a DE-739 | ||
082 | 0 | |a a006.31 | |
084 | |a ST 301 |0 (DE-625)143651: |2 rvk | ||
100 | 1 | |a Wang, Chi |e Verfasser |4 aut | |
245 | 1 | 0 | |a Designing deep learning systems |b a guide for software engineers |c Chi Wang and Donald Szeto ; code lab by Yan Xue ; foreword by Silvio Savarese and Caiming Xiong |
264 | 1 | |a Shelter Island |b Manning |c [2023] | |
300 | |a xx, 337 Seiten |b Illustrationen, Diagramme | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
520 | |a Design systems optimized for deep learning models. Written for software engineers, this book teaches you how to implement a maintainable platform for developing deep learning models. In Engineering Deep Learning Systems you will learn how to: Transfer your software development skills to deep learning systemsRecognize and solve common engineering challenges for deep learning systemsUnderstand the deep learning development cycleAutomate training for models in TensorFlow and PyTorchOptimize dataset management, training, model serving and hyperparameter tuningPick the right open-source project for your platformEngineering Deep Learning Systems is a practical guide for software engineers and data scientists who are designing and building platforms for deep learning. It s full of hands-on examples that will help you transfer your software development skills to implementing deep learning platforms. You ll learn how to build automated and scalable services for core tasks like dataset management, model training/serving, and hyperparameter tuning. This book is the perfect way to step into an exciting-and lucrative-career as a deep learning engineer. about the technology Behind every deep learning researcher is a team of engineers bringing their models to production. To build these systems, you need to understand how a deep learning system s platform differs from other distributed systems. By mastering the core ideas in this book, you ll be able to support deep learning systems in a way that s fast, repeatable, and reliable | ||
650 | 0 | 7 | |a Software Engineering |0 (DE-588)4116521-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Maschinelles Lernen |0 (DE-588)4193754-5 |2 gnd |9 rswk-swf |
653 | 0 | |a COM060180 | |
653 | 0 | |a Maschinelles Lernen | |
653 | 0 | |a Software Engineering | |
653 | 0 | |a Web services | |
653 | 0 | |a Webservices | |
689 | 0 | 0 | |a Maschinelles Lernen |0 (DE-588)4193754-5 |D s |
689 | 0 | 1 | |a Software Engineering |0 (DE-588)4116521-4 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Szeto, Donald |e Verfasser |4 aut | |
700 | 1 | |a Xue, Yan |4 ctb | |
700 | 1 | |a Savarese, Silvio |0 (DE-588)1135198101 |4 ctb | |
700 | 1 | |a Xiong, Caiming |4 ctb | |
856 | 4 | 2 | |m Digitalisierung UB Passau - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034973062&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
Datensatz im Suchindex
_version_ | 1805082045893836800 |
---|---|
adam_text |
brief contents 1 ■ An introduction to deep learning systems 2 ■ Dataset management service 3 ■ Model training service 4 ■ Distributed training 28 72 103 5 ■ Hyperparameter optimization service 6 ■ Model serving design 7 ■ 159 Model serving in practice 179 8 ■ Metadata and artifact store 9 ■ Workflow orchestration 10 ■ Path to production iii 271 228 246 134 1
contents foreword ix preface xi acknowledgments xiii about this book xv about the authors xix about the cover illustration xx An introduction to deep learning systems 1.1 The deep learning development cycle 1 3 Phases in the deep learning product development cycle 5 Roles in the development cycle 10 · Deep learning development cycle walk-through 12 · Scaling project development 13 1.2 Deep learning system design overview 13 Reference system architecture 14 · Key components 16 Key user scenarios 20 · Derive your own design 22 Building components on top ofKubernetes 24 1.3 Building a deep learning system vs. developing a model 26 iv
CONTENTS Dataset management service 2.1 V 28 Understanding dataset management service 30 Why deep learning systems need dataset management 30 Dataset management design principles 34· The paradoxical character of datasets 35 2.2 Touring a sample dataset management service 37 Playing with the sample service 37· Users, user scenarios, and the big picture 42 ■ Data ingestion API 44 ■ Training datasetfetching API 48 ■ Internal dataset storage 54 ■ Data schemas 56 ■ Adding new dataset type (IMAGE_CLASS) 59 Service design recap 60 2.3 Open source approaches 61 Delta Lake and Petastorm with Apache Spark family Pachyderm with cloud object storage 67 Model training service 3.1 72 Model training service: Design overview Deep learning training code pattern Model training workflow as a black box 79 3.3 73 74· Training service design Why use a servicefor model training? principles 76 3.2 61 77 77 · Dockerize model training code A sample model training service 79 Play with the service 80 ■ Service design overview 81 Training service API 83 ■ Launching a new training job 84 Updating andfetchingjob status 88 · The intent classification model training code 89 ■ Trainingjob management 90 Troubleshooting metrics 92 ■ Supporting new algorithm or new version 92 3.4 Kubeflow training operators: An open source approach 93 Kubeflow training operators 94 · Kubernetes operator/controller pattern 94 ■ Kubeflow training operator design 96 ■ How to use Kubeflow training operators 97 ■ How to integrate these operators into an existing system 98 3.5 When to use the public cloud When to use a public cloud
solution training service 100 99 100 ■ When to build your own
CONTENTS vi ^ Distributed training 103 4.1 Types of distributed training methods 4.2 Data parallelism 104 105 Understanding data parallelism 105 ■ Multiworker training challenges 107· Writing distributed training (data parallelism) codefor different trainingframeworks 109 ■ Engineering effort in data parallel-distributed training 113 4.3 A sample service supporting data parallel-distributed training 115 Service overview 115 · Playing with the service 117 Launching trainingjobs 118· Updating and fetching the job status 122 · Converting the training code to run distributedly 123 ■ Improvements 124 4.4 Training large models that can’t load on one GPU 124 Traditional methods: Memory saving 124 · Pipeline model parallelism 126 · How software engineers can support pipeline parallelism 131 ^ Hyperparameter optimization service 5.1 Understanding hyperparameters What is a hyperparameter? important? 136 5.2 134 135 135 · Why are hyperparameters Understanding hyperparameter optimization WhatisHPO? 137 · Popular HPO algorithms Common automatic HPO approaches 145 5.3 Designing an HPO service HPO design principles 5.4 Hyperopt 151 · Optuna Next steps 158 6.1 140 147 147 · A general HPO service design Open source HPO libraries ^ Model serving design 137 148 150 153 ■ Ray Tune 155 159 Explaining model serving 160 What is a machine learning model? 161 · Model prediction and inference 162 ■ What is model serving? 163 ■ Model serving challenges 164 · Model serving terminology 165 6.2 Common model serving strategies Direct model embedding Model server 167 166 166 · Model service 166
vii CONTENTS 6.3 Designing a prediction service 168 Single model application 169 ■ Multitenant application 172 Supporting multiple applications in one system 174 ■ Common prediction service requirements 177 У Model serving in practice 7.1 179 A model service sample 180 Play with the service 180· Service design 181 ■ Thefrontend service 183 ■ Intent classification predictor 188 ■ Model eviction 194 ΊΆ TorchServe model server sample 194 Playing with the service 194· Service design 195 The frontend service 196· TorchServe backend 197 TorchServe API 197· TorchServe modelfiles 199 Scaling up in Kubernetes 203 7.3 Model server vs. model service 7.4 Touring open source model serving tools 204 205 TensorFlow Serving 206 ■ TorchServe 208 ■ Triton Inference Server 211 · KServe and other tools 215 · Integrating a serving tool into an existing serving system 217 ТЪ Releasing models 218 Registering a model 220 ■ Loading an arbitrary version ofa model in real time with a prediction service 221 ■ Releasing the model by updating the default model version 222 7.6 Postproduction model monitoring Metric collection and quality gate ^ Metadata and artifact store 225 ■ Metrics to collect 225 228 8.1 Introducing artifacts 8.2 Metadata in a deep learning context 229 Common metadata categories metadata? 232 8.3 224 229 230 ■ Why manage Designing a metadata and artifacts store 235 Design principles 235 ■ A general metadata and artifact store design proposal 236 8.4 Open source solutions ML Metadata 239 239 ■ MLflow 242 ■ MLflow vs. MLMD 245
viii CONTENTS ^ Workflow orchestration 9.1 246 Introducing workflow orchestration 247 What is workflow? 247· What is workflow orchestration? 248 The challenges for using workflow orchestration in deep learning 250 9.2 Designing a workflow orchestration system 252 User scenarios 252 ■ A general orchestration system design Workflow orchestration design principles 256 9.3 Touring open source workflow orchestration systems 257 Airflow 258 ■ Argo Workflows When to use 269 fl Path to production 10.1 260 · Metaflow 265 271 Preparing for productionization Research 10.2 254 276 · Prototyping Model productionization 274 277 ■ Key takeaways 278 278 Code componentization 280 · Code packaging 281 ■ Code registration 281 ■ Training workflow setup 281 ■ Model inferences 283 · Product integration 284 10.3 Model deployment strategies 285 Canary deployment 285 ■ Blue-green deployment Multi-armed bandit deployment 286 appendix A appendix В appendix C A “hello world” deep learning system 288 Survey of existing solutions 298 Creating an HPO service with Kubeflow Katib index 329 285 309 |
adam_txt | |
any_adam_object | 1 |
any_adam_object_boolean | |
author | Wang, Chi Szeto, Donald |
author2 | Xue, Yan Savarese, Silvio Xiong, Caiming |
author2_role | ctb ctb ctb |
author2_variant | y x yx s s ss c x cx |
author_GND | (DE-588)1135198101 |
author_facet | Wang, Chi Szeto, Donald Xue, Yan Savarese, Silvio Xiong, Caiming |
author_role | aut aut |
author_sort | Wang, Chi |
author_variant | c w cw d s ds |
building | Verbundindex |
bvnumber | BV049629199 |
classification_rvk | ST 301 |
ctrlnum | (OCoLC)1437841246 (DE-599)KXP1852844388 |
dewey-raw | a006.31 |
dewey-search | a006.31 |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV049629199</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20240513</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">240327s2023 a||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781633439863</subfield><subfield code="9">978-1-63343-986-3</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1437841246</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)KXP1852844388</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-739</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">a006.31</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 301</subfield><subfield code="0">(DE-625)143651:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Wang, Chi</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Designing deep learning systems</subfield><subfield code="b">a guide for software engineers</subfield><subfield code="c">Chi Wang and Donald Szeto ; code lab by Yan Xue ; foreword by Silvio Savarese and Caiming Xiong</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Shelter Island</subfield><subfield code="b">Manning</subfield><subfield code="c">[2023]</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">xx, 337 Seiten</subfield><subfield code="b">Illustrationen, Diagramme</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="a">Design systems optimized for deep learning models. Written for software engineers, this book teaches you how to implement a maintainable platform for developing deep learning models. In Engineering Deep Learning Systems you will learn how to: Transfer your software development skills to deep learning systemsRecognize and solve common engineering challenges for deep learning systemsUnderstand the deep learning development cycleAutomate training for models in TensorFlow and PyTorchOptimize dataset management, training, model serving and hyperparameter tuningPick the right open-source project for your platformEngineering Deep Learning Systems is a practical guide for software engineers and data scientists who are designing and building platforms for deep learning. It s full of hands-on examples that will help you transfer your software development skills to implementing deep learning platforms. You ll learn how to build automated and scalable services for core tasks like dataset management, model training/serving, and hyperparameter tuning. This book is the perfect way to step into an exciting-and lucrative-career as a deep learning engineer. about the technology Behind every deep learning researcher is a team of engineers bringing their models to production. To build these systems, you need to understand how a deep learning system s platform differs from other distributed systems. By mastering the core ideas in this book, you ll be able to support deep learning systems in a way that s fast, repeatable, and reliable</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Maschinelles Lernen</subfield><subfield code="0">(DE-588)4193754-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">COM060180</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Maschinelles Lernen</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Software Engineering</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Web services</subfield></datafield><datafield tag="653" ind1=" " ind2="0"><subfield code="a">Webservices</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Maschinelles Lernen</subfield><subfield code="0">(DE-588)4193754-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Szeto, Donald</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Xue, Yan</subfield><subfield code="4">ctb</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Savarese, Silvio</subfield><subfield code="0">(DE-588)1135198101</subfield><subfield code="4">ctb</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Xiong, Caiming</subfield><subfield code="4">ctb</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Passau - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034973062&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield></record></collection> |
id | DE-604.BV049629199 |
illustrated | Illustrated |
index_date | 2024-07-03T23:38:10Z |
indexdate | 2024-07-20T07:26:25Z |
institution | BVB |
isbn | 9781633439863 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-034973062 |
oclc_num | 1437841246 |
open_access_boolean | |
owner | DE-739 |
owner_facet | DE-739 |
physical | xx, 337 Seiten Illustrationen, Diagramme |
publishDate | 2023 |
publishDateSearch | 2023 |
publishDateSort | 2023 |
publisher | Manning |
record_format | marc |
spelling | Wang, Chi Verfasser aut 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 Shelter Island Manning [2023] xx, 337 Seiten Illustrationen, Diagramme txt rdacontent n rdamedia nc rdacarrier Design systems optimized for deep learning models. Written for software engineers, this book teaches you how to implement a maintainable platform for developing deep learning models. In Engineering Deep Learning Systems you will learn how to: Transfer your software development skills to deep learning systemsRecognize and solve common engineering challenges for deep learning systemsUnderstand the deep learning development cycleAutomate training for models in TensorFlow and PyTorchOptimize dataset management, training, model serving and hyperparameter tuningPick the right open-source project for your platformEngineering Deep Learning Systems is a practical guide for software engineers and data scientists who are designing and building platforms for deep learning. It s full of hands-on examples that will help you transfer your software development skills to implementing deep learning platforms. You ll learn how to build automated and scalable services for core tasks like dataset management, model training/serving, and hyperparameter tuning. This book is the perfect way to step into an exciting-and lucrative-career as a deep learning engineer. about the technology Behind every deep learning researcher is a team of engineers bringing their models to production. To build these systems, you need to understand how a deep learning system s platform differs from other distributed systems. By mastering the core ideas in this book, you ll be able to support deep learning systems in a way that s fast, repeatable, and reliable Software Engineering (DE-588)4116521-4 gnd rswk-swf Maschinelles Lernen (DE-588)4193754-5 gnd rswk-swf COM060180 Maschinelles Lernen Software Engineering Web services Webservices Maschinelles Lernen (DE-588)4193754-5 s Software Engineering (DE-588)4116521-4 s DE-604 Szeto, Donald Verfasser aut Xue, Yan ctb Savarese, Silvio (DE-588)1135198101 ctb Xiong, Caiming ctb Digitalisierung UB Passau - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034973062&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Wang, Chi Szeto, Donald Designing deep learning systems a guide for software engineers Software Engineering (DE-588)4116521-4 gnd Maschinelles Lernen (DE-588)4193754-5 gnd |
subject_GND | (DE-588)4116521-4 (DE-588)4193754-5 |
title | Designing deep learning systems a guide for software engineers |
title_auth | Designing deep learning systems a guide for software engineers |
title_exact_search | Designing deep learning systems a guide for software engineers |
title_exact_search_txtP | Designing deep learning systems a guide for software engineers |
title_full | 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 |
title_fullStr | 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 |
title_full_unstemmed | 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 |
title_short | Designing deep learning systems |
title_sort | designing deep learning systems a guide for software engineers |
title_sub | a guide for software engineers |
topic | Software Engineering (DE-588)4116521-4 gnd Maschinelles Lernen (DE-588)4193754-5 gnd |
topic_facet | Software Engineering Maschinelles Lernen |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=034973062&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT wangchi designingdeeplearningsystemsaguideforsoftwareengineers AT szetodonald designingdeeplearningsystemsaguideforsoftwareengineers AT xueyan designingdeeplearningsystemsaguideforsoftwareengineers AT savaresesilvio designingdeeplearningsystemsaguideforsoftwareengineers AT xiongcaiming designingdeeplearningsystemsaguideforsoftwareengineers |