摘要
大型语言模型 (LLM) 在软件工程任务中展现出令人印象深刻的性能。然而,提高它们在生成正确可靠代码方面的准确性仍然是一个挑战。许多提示工程技术 (PET) 已经被开发出来以解决这个问题,但没有一种方法是普遍最佳的。选择适合每个查询的 PET 很困难,主要有两个原因:(1) 交互式提示技术可能无法始终如一地带来预期的好处,特别是对于更简单的查询,以及 (2) 目前的自动化提示工程方法缺乏适应性,无法充分利用多阶段响应。为了克服这些挑战,我们提出了 PET-Select,这是一种与 PET 无关的选择模型,它使用代码复杂度作为代理来对查询进行分类并选择最合适的 PET。通过结合对比学习,PET-Select 有效地区分了简单问题和复杂问题,使其能够选择最适合每个查询复杂度级别的 PET。我们在 MBPP 和 HumanEval 基准上使用 GPT-3.5 Turbo 和 GPT-4o 进行的评估表明,pass@1 准确率提高了 1.9%,令牌使用量减少了 74.8%。此外,我们提供了定量和定性结果,以证明 PET-Select 如何有效地为每个代码生成查询选择最合适的技术,进一步展示了它在优化 PET 选择方面的效率。