What Makes Large Language Models Reason in (Multi-Turn) Code Generation?

📄 arXiv: 2410.08105v3 📥 PDF

作者: Kunhao Zheng, Juliette Decugis, Jonas Gehring, Taco Cohen, Benjamin Negrevergne, Gabriel Synnaeve

分类: cs.CL

发布日期: 2024-10-10 (更新: 2025-04-07)

备注: Published as a conference paper at ICLR 2025


💡 一句话要点

研究提示工程对大语言模型多轮代码生成推理能力的影响

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大语言模型 代码生成 提示工程 多轮推理 微调

📋 核心要点

  1. 现有代码生成方法缺乏对提示工程,特别是多轮提示策略的深入理解和有效利用。
  2. 论文通过分解提示的各个组成部分,并进行网格搜索,寻找最优的提示策略组合。
  3. 实验表明,优化的提示策略能显著提升多种LLM在代码生成任务上的性能,且微调后效果更佳。

📝 摘要(中文)

本文深入研究了提示工程对大语言模型(LLMs)在代码生成任务中的影响,尤其关注多轮自动重提示和计算资源需求。通过系统地分解推理、指令和执行反馈提示,作者在CodeContests和TACO等竞争性编程基准上,对多种LLM系列和规模(Llama 3.0和3.1,8B、70B、405B以及GPT-4o)进行了广泛的网格搜索。研究揭示了在大小采样预算下都能持续提升所有模型性能的策略。进一步表明,使用这种最优配置进行微调,可以使模型内化诱导的推理过程,从而提高多轮代码生成的性能和可扩展性。

🔬 方法详解

问题定义:论文旨在解决如何有效利用提示工程,特别是多轮提示,来提升大语言模型在复杂代码生成任务中的推理能力。现有方法对提示工程的理解不足,缺乏系统性的探索,导致LLM在代码生成任务中表现受限。

核心思路:核心思路是将提示分解为推理、指令和执行反馈三个关键组成部分,然后通过系统性的实验,寻找这些组成部分的最优组合方式。通过多轮交互和反馈,引导LLM逐步完善代码,提升生成质量。

技术框架:研究采用网格搜索的方法,在CodeContests和TACO等基准数据集上,对不同规模和类型的LLM(包括Llama系列和GPT-4o)进行评估。框架主要包括以下步骤:1) 定义提示的组成部分;2) 构建提示组合的网格;3) 使用不同的LLM进行代码生成;4) 评估生成代码的质量;5) 分析结果,寻找最优的提示策略。

关键创新:关键创新在于系统性地分解和评估了提示工程的各个组成部分,并发现了在不同模型和数据集上都能有效提升性能的提示策略。此外,论文还证明了通过微调,LLM可以内化这些提示策略,进一步提升性能和可扩展性。

关键设计:论文的关键设计包括:1) 提示分解策略,将提示分解为推理、指令和执行反馈三个部分;2) 网格搜索策略,系统性地探索不同提示组合的效果;3) 多轮交互机制,允许LLM在多轮交互中逐步完善代码;4) 微调策略,使用最优提示策略对LLM进行微调,使其内化推理过程。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,优化的提示策略能够显著提升多种LLM在CodeContests和TACO基准上的性能。例如,在Llama 3.0 70B模型上,使用最优提示策略后,代码生成成功率提升了XX%(具体数据未知)。此外,通过微调,模型能够内化提示策略,进一步提升性能和可扩展性。

🎯 应用场景

该研究成果可应用于自动化软件开发、代码辅助生成、智能编程教育等领域。通过优化提示工程,可以显著提升LLM在代码生成任务中的性能,降低开发成本,提高开发效率,并为编程初学者提供更智能的辅助工具。未来,该方法有望扩展到更复杂的软件工程任务中。

📄 摘要(原文)

Prompting techniques such as chain-of-thought have established themselves as a popular vehicle for improving the outputs of large language models (LLMs). For code generation, however, their exact mechanics and efficacy are under-explored. We thus investigate the effects of a wide range of prompting strategies with a focus on automatic re-prompting over multiple turns and computational requirements. After systematically decomposing reasoning, instruction, and execution feedback prompts, we conduct an extensive grid search on the competitive programming benchmarks CodeContests and TACO for multiple LLM families and sizes (Llama 3.0 and 3.1, 8B, 70B, 405B, and GPT-4o). Our study reveals strategies that consistently improve performance across all models with small and large sampling budgets. We then show how finetuning with such an optimal configuration allows models to internalize the induced reasoning process and obtain improvements in performance and scalability for multi-turn code generation.