about
SmartChoices: Augmenting Software with Learned Implementations (arxiv.org)
4 points by jsybrandt on Apr 27, 2023 | hide | past | pdf | discuss on HN

In plain words: SmartChoices lets engineers swap rules—like cache eviction or scheduling—for learned decision-making: they describe the situation, choices, and feedback, and it handles data, training, and rollout. Engineers used it on caches, batch jobs, and layouts, with better latency, throughput, and click rates.

Abstract

In many software systems, heuristics are used to make decisions - such as cache eviction, task scheduling, and information presentation - that have a significant impact on overall system behavior. While machine learning may outperform these heuristics, replacing existing heuristics in a production system safely and reliably can be prohibitively costly. We present SmartChoices, a novel approach that reduces the cost to deploy production-ready ML solutions for contextual bandits problems. SmartChoices' interface cleanly separates problem formulation from implementation details: engineers describe their use case by defining datatypes for the context, arms, and feedback that are passed to SmartChoices APIs, while SmartChoices manages encoding & logging data and training, evaluating & deploying policies. Our implementation codifies best practices, is efficient enough for use in low-level applications, and provides valuable production features off the shelf via a shared library. Overall, SmartChoices enables non-experts to rapidly deploy production-ready ML solutions by eliminating many sources of technical debt common to ML systems. Engineers have independently used SmartChoices to improve a wide range of software including caches, batch processing workloads, and UI layouts, resulting in better latency, throughput, and click-through rates.

Daniel Golovin, Gabor Bartok, Eric Chen, Emily Donahue, Tzu-Kuo Huang, Efi Kokiopoulou, Ruoyan Qin, Nikhil Sarda, Justin Sybrandt, Vincent Tjeng
arXiv:2304.13033 · cs.SE, cs.LG · submitted Apr 12, 2023 · updated Jul 8, 2024
abstract · pdf · Accepted as a workshop paper at the Machine Learning for Systems Workshop at NeurIPS 2023

add comment on HN