(as of Oct 26,2019 20:19:21 UTC – Details)
BuildingIntelligent Systems is a book about leveraging machine learning in practice.
It covers everything you need to produce a fully functioning Intelligent System,one that leverages machine learning and data from user interactions to improve over time and achieve success.
After reading this book you'll be able to design an Intelligent System end-to-end.You'll know:
- When to use an Intelligent System and how to make it achieve your goals.
- How to design effective interactions between users and Intelligent Systems.
- How to implement an Intelligent System across client, service, and back end.
- How to build the intelligence that powers an Intelligent System and grow it overtime.
- How to orchestrate an Intelligent System over its life-cycle.
You'll also understand how to apply your existing skills, whether in software engineering, data science, machine learning, management or program management to the effort.
There are many great books that teach data and machine-learning skills. Those books are similar to books on programming languages; they teach valuable skills in great detail. This book is more like a book on software engineering; it teaches how to take those base skills and produce working systems.
This book is based on more than a decade of experience building Internet-scale Intelligent Systems that have hundreds of millions of user interactions per day in some of the largest and most important software systems in the world. I hope this book helps accelerate the proliferation of systems that turn data into impact and helps readers develop practical skills in this important area.
Who This Book Is For
This book is for anyone with a computer science degree who wants to understand what it takes to build effective Intelligent Systems.
Imagine a typical software engineer who is assigned to a machine learning project. They want to learn more about it so they pick up a book, and it is technical, full of statistics and math and modeling methods. These are important skills, but they are the wrong information to help the software engineer contribute to the effort. Building Intelligent Systems is the right book for them.
Imagine a machine learning practitioner who needs to understand how the end-to-end system will interact with the models they produce, what they can count on, and what they need to look out for in practice. Building Intelligent Systems is the right book for them.
Imagine a technical manager who wants to begin benefiting from machine learning. Maybe they hire a machine learning PhD and let them work for a while. The machine learning practitioner comes back with charts, precision/recall curves, and training data requests, but no framework for how they should be applied. Building Intelligent Systems is the right book for that manager.
Data and Machine Learning Practitioners
Data and machine learning are at the core of many Intelligent Systems, but there is an incredible amount of work to be done between the development of a working model (created with machine learning) and the eventual sustainable customer impact. Understanding this supporting work will help you be better at modeling in a number of ways.
First, it's important to understand the constraints these systems put on your modeling. For example, where will the model run? What data will it have access to? How fast does it need to be? What is the business impact of a false positive? A false negative? How should the model be tuned to maximize business results?
Second, it's important to be able to influence the other participants.Understanding the pressures on the engineers and business owners will help you come to good solutions and maximize your chance for success. For example, you may not be getting all the training data you'd like because of telemetry sampling. Should you double down on modeling around the problem, or would an engineering solution make more sense? Or maybe you are being pushed to optimize for a difficult extremely-high precision, when your models are already performing at a very good (but slightly lower) precision. Should you keep chasing that super-high precision or should you work to influence the user experience in ways that reduce the customer impact of mistakes?
Third, it's important to understand how the supporting systems can benefit you.The escalation paths, the manual over-rides, the telemetry, the guardrails that prevent against major mistakes–these are all tools you can leverage. You need to understand when to use them and how to integrate them with your modeling process. Should you discard a model that works acceptably for 99% of users but really, really badly for 1% of users? Or maybe you can count on other parts of the system to address the problem.
Building software that delights customers is a lot of work. No way around it, behind every successful software product and service there is some serious engineering. Intelligent Systems have some unique properties which present interesting challenges. This book describes the associated concepts so you can design and build Intelligent Systems that are efficient, reliable, and that best-unlock the power of machine learning and data science.
First, this book will identify the entities and abstractions that need to exist within a successful Intelligent System. You will learn the concepts behind the intelligence run time, context and features, models, telemetry,training data, intelligence management, orchestration, and more.
Second, the book will give you a conceptual understanding of machine learning and data sciences. These will prepare you to have good discussions about tradeoffs between engineering investments and modeling investments. Where can a little bit of your work really enable a solution? And where are you being asked to boil the ocean to save a little bit of modeling time?
Third, the book will explore patterns for Intelligent Systems that my colleagues and I have developed over a decade and through implementing many working systems. What are the pros and cons or running intelligence in a client or in a service? How do you bound and verify components that are probabilistic? What do you need to include in telemetry so the system can evolve?
Machine learning and Data Sciences are hot topics. They are fantastic tools, but they are tools; they are not solutions. This book will give you enough conceptual understanding so you know what these tools are good at and how to deploy them to solve your business problems.
The first thing you'll learn is to develop an intuition for when machine learning and data science are appropriate. There is nothing worse than trying to hammer a square peg into a round hole. You need to understand what types of problems can be solved by machine learning. But just as importantly,you need to understand what types of problems can't be–or at least not easily.There are so many participants in a successful endeavor, and they speak such different, highly-technical, languages, that this is particularly difficult.This book will help you understand enough so you can ask the right questions and understand what you need from the answers.
The second is to get an intuition on return on investment so you can determine how much Intelligent System to use. By understanding the real costs of building and maintaining a system that turns data into impact you can make better choices about when to do it. You can also go into it with open eyes, and have the investment level scoped for success. Sometimes you need all the elements described in this book, but sometimes the right choice for your business is something simpler. This book will help you make good decisions and communicate them with confidence and credibility.