LGAIJul 29, 2022

Language Models Can Teach Themselves to Program Better

arXiv:2207.14502v4101 citationsh-index: 50
Originality Highly original
AI Analysis

This addresses the challenge of limited human-authored training data for code generation, offering a self-improvement method for language models in programming tasks.

The paper tackles the problem of improving language models' code generation performance by enabling them to synthesize their own programming problems and solutions, verified by a Python interpreter, resulting in test accuracy more than doubling.

Recent Language Models (LMs) achieve breakthrough performance in code generation when trained on human-authored problems, even solving some competitive-programming problems. Self-play has proven useful in games such as Go, and thus it is natural to ask whether LMs can generate their own instructive programming problems to improve their performance. We show that it is possible for an LM to synthesize programming problems and solutions, which are filtered for correctness by a Python interpreter. The LM's performance is then seen to improve when it is fine-tuned on its own synthetic problems and verified solutions; thus the model 'improves itself' using the Python interpreter. Problems are specified formally as programming puzzles [Schuster et al., 2021], a code-based problem format where solutions can easily be verified for correctness by execution. In experiments on publicly-available LMs, test accuracy more than doubles. This work demonstrates the potential for code LMs, with an interpreter, to generate instructive problems and improve their own performance.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes