SmartChoices: Augmenting Software with Learned Implementations

Read original: arXiv:2304.13033 - Published 7/10/2024 by Daniel Golovin, Gabor Bartok, Eric Chen, Emily Donahue, Tzu-Kuo Huang, Efi Kokiopoulou, Ruoyan Qin, Nikhil Sarda, Justin Sybrandt, Vincent Tjeng
Total Score

2

💬

Sign in to get full access

or

If you already have an account, we'll log you in

Overview

  • Heuristics are commonly used in software systems to make important decisions, but can be costly to replace with machine learning (ML) solutions
  • SmartChoices is a novel approach that reduces the cost of deploying production-ready ML solutions for contextual bandits problems
  • SmartChoices provides a clean interface to separate problem formulation from implementation details, enabling non-experts to rapidly deploy ML-powered solutions

Plain English Explanation

Software systems often use simple rules, or heuristics, to make decisions that have a big impact on overall system performance. For example, heuristics might be used to decide which items to keep in a cache, how to schedule tasks, or what information to display to users. While machine learning (ML) could potentially outperform these heuristics, actually replacing them in a production system can be extremely difficult and costly.

SmartChoices is a new approach that makes it easier and more affordable to use ML to improve decision-making in software systems. It provides a straightforward way for engineers to define the key elements of their problem, like the information that's available (the "context"), the possible actions (the "arms"), and the feedback on how well those actions perform. SmartChoices then handles the complex tasks of encoding and logging the data, training ML models, and deploying the optimized decision policies.

This allows engineers who aren't ML experts to rapidly incorporate production-ready ML-powered solutions into their software, without having to worry about the technical details. SmartChoices has already been used to improve a wide range of applications, leading to better performance in areas like latency, throughput, and user engagement.

Technical Explanation

SmartChoices is designed to simplify the process of deploying contextual bandits - a type of ML model - to make optimized decisions in production software systems. Engineers define their problem by specifying the relevant data types for the context, available actions, and feedback, then SmartChoices handles the rest.

Under the hood, SmartChoices uses efficient data encoding and logging techniques to capture the necessary information. It then trains and evaluates various contextual bandit models, automatically selecting the best-performing one and deploying it. This allows SmartChoices to provide valuable features like online learning, exploration-exploitation balancing, and A/B testing out of the box.

By encapsulating best practices for contextual bandits in a shared library, SmartChoices enables non-ML experts to rapidly integrate production-ready ML solutions into their software. The authors demonstrate how SmartChoices has been used to improve a range of applications, including caching, batch processing, and user interface layouts.

Critical Analysis

The SmartChoices approach appears to be a promising way to lower the barrier to adopting ML-powered decision-making in production software. By providing a clean abstraction and handling the technical complexities, it enables a wider range of engineers to benefit from contextual bandits without extensive ML expertise.

However, the paper doesn't delve deeply into the specific ML models and techniques used under the hood. While the authors claim their implementation is efficient enough for low-level applications, more details on the performance characteristics and limitations would be helpful. Additionally, the paper doesn't address how SmartChoices would handle more complex or domain-specific problem formulations that don't fit neatly into the contextual bandits framework.

Further research could explore ways to expand the flexibility and generalizability of the SmartChoices approach, perhaps by allowing more customization of the ML components or supporting a broader range of decision-making problems. Evaluating the long-term maintainability and scalability of the system in production environments would also be valuable.

Conclusion

SmartChoices presents a novel approach to simplifying the deployment of ML-powered decision-making in production software systems. By providing a clean interface that separates problem formulation from implementation details, it enables non-ML experts to rapidly integrate optimized policies into their applications. The authors demonstrate how SmartChoices has been used to improve a variety of software, leading to better performance in areas like latency, throughput, and user engagement.

While the paper lacks some technical details, the overall concept of SmartChoices is promising and could have significant implications for making ML more accessible and practical for a wider range of software engineers. Further research to expand the flexibility and generalizability of the approach could unlock even broader applications and benefits.



This summary was produced with help from an AI and may contain inaccuracies - check out the links to read the original source documents!

Follow @aimodelsfyi on 𝕏 →

Related Papers

💬

Total Score

2

SmartChoices: Augmenting Software with Learned Implementations

Daniel Golovin, Gabor Bartok, Eric Chen, Emily Donahue, Tzu-Kuo Huang, Efi Kokiopoulou, Ruoyan Qin, Nikhil Sarda, Justin Sybrandt, Vincent Tjeng

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.

Read more

7/10/2024

Leveraging automatic strategy discovery to teach people how to select better projects
Total Score

0

Leveraging automatic strategy discovery to teach people how to select better projects

Lovis Heindrich, Falk Lieder

The decisions of individuals and organizations are often suboptimal because normative decision strategies are too demanding in the real world. Recent work suggests that some errors can be prevented by leveraging artificial intelligence to discover and teach prescriptive decision strategies that take people's constraints into account. So far, this line of research has been limited to simplified decision problems. This article is the first to extend this approach to a real-world decision problem, namely project selection. We develop a computational method (MGPS) that automatically discovers project selection strategies that are optimized for real people and develop an intelligent tutor that teaches the discovered strategies. We evaluated MGPS on a computational benchmark and tested the intelligent tutor in a training experiment with two control conditions. MGPS outperformed a state-of-the-art method and was more computationally efficient. Moreover, the intelligent tutor significantly improved people's decision strategies. Our results indicate that our method can improve human decision-making in naturalistic settings similar to real-world project selection, a first step towards applying strategy discovery to the real world.

Read more

6/7/2024

Frugal Algorithm Selection
Total Score

0

Frugal Algorithm Selection

Erdem Kuc{s}, Ozgur Akgun, Nguyen Dang, Ian Miguel

When solving decision and optimisation problems, many competing algorithms (model and solver choices) have complementary strengths. Typically, there is no single algorithm that works well for all instances of a problem. Automated algorithm selection has been shown to work very well for choosing a suitable algorithm for a given instance. However, the cost of training can be prohibitively large due to running candidate algorithms on a representative set of training instances. In this work, we explore reducing this cost by choosing a subset of the training instances on which to train. We approach this problem in three ways: using active learning to decide based on prediction uncertainty, augmenting the algorithm predictors with a timeout predictor, and collecting training data using a progressively increasing timeout. We evaluate combinations of these approaches on six datasets from ASLib and present the reduction in labelling cost achieved by each option.

Read more

5/21/2024

Capturing the Complexity of Human Strategic Decision-Making with Machine Learning
Total Score

0

Capturing the Complexity of Human Strategic Decision-Making with Machine Learning

Jian-Qiao Zhu, Joshua C. Peterson, Benjamin Enke, Thomas L. Griffiths

Understanding how people behave in strategic settings--where they make decisions based on their expectations about the behavior of others--is a long-standing problem in the behavioral sciences. We conduct the largest study to date of strategic decision-making in the context of initial play in two-player matrix games, analyzing over 90,000 human decisions across more than 2,400 procedurally generated games that span a much wider space than previous datasets. We show that a deep neural network trained on these data predicts people's choices better than leading theories of strategic behavior, indicating that there is systematic variation that is not explained by those theories. We then modify the network to produce a new, interpretable behavioral model, revealing what the original network learned about people: their ability to optimally respond and their capacity to reason about others are dependent on the complexity of individual games. This context-dependence is critical in explaining deviations from the rational Nash equilibrium, response times, and uncertainty in strategic decisions. More broadly, our results demonstrate how machine learning can be applied beyond prediction to further help generate novel explanations of complex human behavior.

Read more

8/16/2024