论文

来自预训练或微调 LLM 的无奖励代码对齐:解开代码生成的权衡

Reward-Free Code Alignment from Pretrained or Fine-Tuned LLM: Unpacking the Trade-offs for Code Generation

模型训练偏好优化

摘要

大语言模型 (LLM) 对齐使用偏好数据训练 LLM,以产生更好地满足既定质量标准的输出。虽然 LLM 对齐技术是针对非编码任务进行研究的,但我们对其对于编码任务的有用性知之甚少。目前尚不清楚 LLM 代码对齐是否可以同时支持功能性需求(生成可执行的、正确的代码)和非功能性需求(代码可读性、风格、可维护性)。还未知代码 LLM 的对齐是否应该从 LLM 的基本预训练版本或微调(即指令调整)版本开始。在本文中,我们通过实证研究对上述两个研究问题提出了见解。我们使用两种广泛使用的 LLM 对齐技术研究了五种最先进的 (SOTA) LLM:直接偏好优化 (DPO) 和 BoNBoN。对于每个训练记录,我们使用 SelfCodeAlign 管道创建了一个偏好对作为接受和拒绝的实例。 DPO 和 BoNBoN 是无奖励模型,即它们消除了对输出偏好的多个奖励分数的需要。我们在两种设置中使用两种对齐技术来调整每个 LLM:LLM 的预训练版本和微调版本。我们使用四个 SOTA 基准(HumanEval+、MBPP+、EvalPerf、EvoEval)评估功能需求,并使用 CODAL 基准评估非功能需求,该基准跨来自软件工程实践的五个维度评估代码质量。我们发现,预训练比对路径比其预训练变体在比对变体中实现了更大的改进。但预训练的变体通常不如其微调的变体准确。然而,与微调变体相比,微调对齐变体提供的性能改进较小,或者在某些情况下,对齐变体的性能下降较小。