Machine Learning Systems
Designs that scale
Jeff Smith
Foreword by Sean Owen
  • May 2018
  • ISBN 9781617293337
  • 224 pages
  • printed in black & white

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.

Table of Contents detailed 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


Appendix A: Getting Setup

A.1. Scala

A.2. Git Code Repository

A.3. sbt

A.4. Spark

A.5. Couchbase

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.

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.

About the author

Jeff Smith builds powerful machine learning systems. For the past decade, he has been working on building data science applications, teams, and companies as part of various teams in New York, San Francisco, and Hong Kong. He blogs (, tweets (@jeffksmithjr), and speaks ( about various aspects of building real-world machine learning systems.

combo $44.99 pBook + eBook + liveBook
Machine Learning Systems (eBook) added to cart
continue shopping
go to cart

eBook $35.99 pdf + ePub + kindle + liveBook

FREE domestic shipping on three or more pBooks

A helpful guide for data engineers building resilient machine learning systems.

Jonathan Woodard, AT&T

A fantastic entry to the world of robust machine learning systems that will scale with your business.

Tommy O'Dell, Virtual Gaming Worlds

You cannot afford to ignore this book!

Jose San Leandro, OSOCO