Share your thoughts, 1 month free Claude Pro on usSee more
WorkDL logo mark

Planning In Natural Language Improves LLM Search For Code Generation

About

While scaling training compute has led to remarkable improvements in large language models (LLMs), scaling inference compute has not yet yielded analogous gains. We hypothesize that a core missing component is a lack of diverse LLM outputs, leading to inefficient search due to models repeatedly sampling highly similar, yet incorrect generations. We empirically demonstrate that this lack of diversity can be mitigated by searching over candidate plans for solving a problem in natural language. Based on this insight, we propose PlanSearch, a novel search algorithm which shows strong results across HumanEval+, MBPP+, and LiveCodeBench (a contamination-free benchmark for competitive coding). PlanSearch generates a diverse set of observations about the problem and then uses these observations to construct plans for solving the problem. By searching over plans in natural language rather than directly over code solutions, PlanSearch explores a significantly more diverse range of potential solutions compared to baseline search methods. Using PlanSearch on top of Claude 3.5 Sonnet achieves a state-of-the-art pass@200 of 77.0% on LiveCodeBench, outperforming both the best score achieved without search (pass@1 = 41.4%) and using standard repeated sampling (pass@200 = 60.6%). Finally, we show that, across all models, search algorithms, and benchmarks analyzed, we can accurately predict performance gains due to search as a direct function of the diversity over generated ideas. Code can be found at https://github.com/scaleapi/plansearch.

Evan Wang, Federico Cassano, Catherine Wu, Yunfeng Bai, Will Song, Vaskar Nath, Ziwen Han, Sean Hendryx, Summer Yue, Hugh Zhang• 2024

Related benchmarks

TaskDatasetResultRank
Code GenerationCodeContests (test)--
68
Code GenerationAPPS (test)--
36
Code GenerationAPPS Introductory--
25
Code GenerationLiveCodeBench LCBv6 (held-out)
Pass@456.4
24
Code GenerationCodeContests official (val)
Pass@416.8
24
Code GenerationLiveCodeBench v6 (test)
Pass@456.4
16
Code GenerationAPPS
Pass@479
12
Code GenerationLiveCodeBench v6
Pass@456
12
Code GenerationLCB v6 (fixed 500-problem slice)
Pass@423.6
6
Code GenerationAPPS (fixed 500-problem slice)
Pass@455.4
4
Showing 10 of 10 rows

Other info

Follow for update