Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation

Eric Zelikman, Eliana Lorch, Lester Mackey, Adam Tauman Kalai
10/3/2023
cs.CLcs.AIcs.LG

Official code: microsoft/stop (52 stars, MIT, last commit 2024-01-01).

Abstract

Several recent advances in AI systems solve problems by providing a "scaffolding" program that structures multiple calls to language models (LMs) to generate better outputs. A scaffolding program is written in a programming language such as Python. In this work, we use a language-model-infused scaffolding program to improve itself. We start with a seed "improver" that improves an input program according to a given utility function by querying an LM several times and returning the best solution. We then run this seed improver to improve itself. Across a small set of downstream tasks, the resulting improved improver generates programs with significantly better performance than its seed improver. A variety of self-improvement strategies are proposed by the language model, including beam search, genetic algorithms, and simulated annealing. Since the language models themselves are not altered, this is not full recursive self-improvement. Nonetheless, it demonstrates that a modern language model, GPT-4 in our experiments, is capable of writing code that can call itself to improve itself. We consider concerns around the development of self-improving technologies and evaluate the frequency with which the generated code bypasses a sandbox.

View on arXivView PDF

Code Implementations(1)

microsoft/stopOfficial100%
MIT

Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation

527PythonSep 29, 20232 years agoMIT

Similar Papers

Cite this paper

@article{zelikman2023selftaught,
  title  = {Self-Taught Optimizer (STOP): Recursively Self-Improving Code Generation},
  author = {Eric Zelikman and Eliana Lorch and Lester Mackey and Adam Tauman Kalai},
  year   = {2023},
  eprint = {2310.02304},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2310.02304v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2310.02304.svg)](https://codeofpaper.com/paper/2310.02304)

Discussion