Declarative Machine Learning Systems
  In the last years machine learning (ML) has moved from a academic endeavor to
a pervasive technology adopted in almost every aspect of computing. ML-powered
products are now embedded in our digital lives: from recommendations of what to
watch, to divining our search intent, to powering virtual assistants in
consumer and enterprise settings. Recent successes in applying ML in natural
sciences revealed that ML can be used to tackle some of the hardest real-world
problems humanity faces today. For these reasons ML has become central in the
strategy of tech companies and has gathered even more attention from academia
than ever before. Despite these successes, what we have witnessed so far is
just the beginning. Right now the people training and using ML models are
expert developers working within large organizations, but we believe the next
wave of ML systems will allow a larger amount of people, potentially without
coding skills, to perform the same tasks. These new ML systems will not require
users to fully understand all the details of how models are trained and
utilized for obtaining predictions. Declarative interfaces are well suited for
this goal, by hiding complexity and favouring separation of interests, and can
lead to increased productivity. We worked on such abstract interfaces by
developing two declarative ML systems, Overton and Ludwig, that require users
to declare only their data schema (names and types of inputs) and tasks rather
then writing low level ML code. In this article we will describe how ML systems
are currently structured, highlight important factors for their success and
adoption, what are the issues current ML systems are facing and how the systems
we developed addressed them. Finally we will talk about learnings from the
development of ML systems throughout the years and how we believe the next
generation of ML systems will look like.
