This book doesn’t just cover tools; it covers the whole job of building an entire machine learning system. From the Foreword by Sean Owen, Director of Data Science, Cloudera Machine Learning Systems: Designs that scale is an example-rich guide that teaches you how to implement reactive design solutions in your machine learning systems to make them as reliable as a well-built web app.

About the Technology If you're building machine learning models to be used on a small scale, you don't need this book. But if you're a developer building a production-grade ML application that needs quick response times, reliability, and good user experience, this is the book for you. It collects principles and practices of machine learning systems that are dramatically easier to run and maintain, and that are reliably better for users.

About the book Machine Learning Systems: Designs that scale teaches you to design and implement production-ready ML systems. You'll learn the principles of reactive design as you build pipelines with Spark, create highly scalable services with Akka, and use powerful machine learning libraries like MLib on massive datasets. The examples use the Scala language, but the same ideas and tools work in Java as well.

takes you straight to the book detailed table of contents Table of Contents Part 1: Fundamentals of Reactive Machine Learning Systems 1. Learning reactive machine learning 1.1. An example machine learning system 1.1.1. Building a prototype system 1.1.2. Building a better system 1.2. Reactive machine learning 1.2.1. Machine learning 1.2.2. Reactive systems 1.2.3. Making machine learning systems reactive 1.3. Summary 2. Using Reactive Tools 2.1. Scala, a Reactive Language 2.1.1. Reacting to Uncertainty in Scala 2.1.2. The Uncertainty of Time 2.2. Akka, a Reactive Toolkit 2.2.1. The Actor Model 2.2.2. Ensuring Resilience with Akka 2.3. Spark, a Reactive Big Data Framework 2.4. Summary Part 2: Building a Reactive Machine Learning System 3. Collecting Data 3.1. Sensing Uncertain Data 3.2. Collecting Data at Scale 3.2.1. Maintaining State in a Distributed System 3.2.2. Understanding Data Collection 3.3. Persisting Data 3.3.1. Elastic and Resilient Databases 3.3.2. Fact Databases 3.3.3. Querying Persisted Facts 3.3.4. Understanding Distributed Fact Databases 3.4. Applications 3.5. Reactivities 3.6. Summary 4. Generating Features 4.1. Spark ML 4.2. Extracting Features 4.3. Transforming Features 4.3.1. Common Feature Transforms 4.3.2. Transforming Concepts 4.4. Selecting Features 4.5. Structuring Feature Code 4.5.1. Feature Generators 4.5.2. Feature Set Composition 4.6. Applications 4.7. Summary 5. Learning Models 5.1. Implementing Learning Algorithms 5.1.1. Bayesian Modeling 5.1.2. Implementing Naive Bayes 5.2. Using MLlib 5.2.1. Building an ML Pipeline 5.2.2. Evolving Modeling Techniques 5.3. Building Facades 5.3.1. Learning Artistic Style 5.4. Summary 6. Evaluating Models 6.1. Detecting Fraud 6.2. Holding Out Data 6.3. Model Metrics 6.4. Testing Models 6.5. Data Leakage 6.6. Recording Provenance 6.7. Summary 7. Publishing models 7.1. The Uncertainty of Farming 7.2. Persisting Models 7.3. Serving Models 7.3.1. Microservices 7.3.2. Akka HTTP 7.4. Containerizing Applications 7.5. Summary 8. Acting 8.1. Moving at the Speed of Turtles 8.2. Building Services with Tasks 8.3. Predicting Traffic 8.4. Handling Failure 8.5. Architecting Action 8.6. Summary Part 3: Operating a Reactive Machine Learning System 9. Delivering 9.1. Shipping Fruit 9.2. Building and Packaging 9.3. Build Pipelines 9.4. Evaluating Models 9.5. Deploying 9.6. Summary 10. Evolving Intelligence 10.1. Chatting 10.2. Artificial Intelligence 10.3. Reflex Agents 10.4. Intelligent Agents 10.5. Learning Agents 10.6. Reactive Learning Agents 10.7. Summary Appendixes Appendix A: Getting Setup A.1. Scala A.2. Git Code Repository A.3. sbt A.4. Spark A.5. Couchbase

What's inside Working with Spark, MLlib, and Akka

Reactive design patterns

Monitoring and maintaining a large-scale system

Futures, actors, and supervision

About the reader Readers need intermediate skills in Java or Scala. No prior machine learning experience is assumed.