PLUM: 偏好学习加测试用例产生更好的代码语言模型
内容提要
该研究提出了一种数据增强框架,通过预训练和微调生成伪数据,提升了PLMC在代码摘要和生成方面的性能。采用偏好学习方法整合医生诊断逻辑,提高医疗对话的准确性。研究分析了人类与语言模型的偏好差异,发现偏好评估可被操控,并提出了组合偏好模型和多语言PLMs的优化策略,以提升模型的泛化能力和性能。
延伸解读
偏好学习在代码模型中的核心作用
文章指出,基于Plackett-Luce模型的偏好学习方法能突破传统模仿式监督微调的性能平台期,在多种大语言模型和测试环境中取得优势。这表明,对于代码生成与摘要任务,直接优化人类或模型的偏好信号,可能比单纯模仿参考代码更有效,为提升代码语言模型性能提供了新思路。
偏好评估的可操纵性风险
研究发现,基于偏好的评估可被有意操纵:将模型输出与评委偏好对齐会提高评分,注入评委不喜欢的属性则会降低评分,在MT-Bench上评分变化可达0.59分(1-10分制),在AlpacaEval 2.0上可达31.94分(0-100分制)。这提醒研究者和开发者,在依赖自动偏好评估时需警惕策略性调整带来的评分偏差。
多语言代码模型的性能权衡
针对超过一百个预训练和微调模型的分析表明,多语言PLMs在微调期间具有更低的性能-时间比(以BLEU、METEOR或MRR衡量)。文章提出的目标编程语言选择策略,能在减少微调时间的同时,在代码摘要和代码搜索任务中实现更高性能,且在不同代码长度上表现良好,为实际部署中的语言选择提供了参考。
持续学习应对动态代码环境
软件代码环境动态变化,预训练语言模型面临灾难性遗忘问题。文章提出五种持续学习方法,并在两个下游任务中取得可比较或优越的表现。这对于需要长期维护和更新代码库的团队具有实用价值,意味着模型可以在不遗忘旧知识的前提下适应新代码模式。
Q&A
PLMC的性能如何提升?
通过预训练和微调生成伪数据,提升了PLMC在代码摘要和生成方面的性能。
偏好学习方法在医疗对话中有什么效果?
采用偏好学习方法整合医生诊断逻辑,提高医疗对话的准确性,PLPF方法提高了17.6%的诊断准确率。
组合偏好模型(CPMs)有什么优势?
CPMs能够将全局偏好评估分解为多个可解释的特征,提高了模型的泛化性能和稳健性。
多语言PLMs在微调期间的表现如何?
研究表明多语言PLMs在微调期间的性能较低,提出的目标编程语言选择策略能够提高性能。
如何解决预训练语言模型的遗忘问题?
提出五种持续学习方法来解决预训练语言模型在动态环境下的遗忘问题,并在下游任务中取得优越表现。
人类反馈如何影响语言模型的生成?
通过引入人类反馈实现对语言模型生成文本的可控性,减少偏离人类喜好的内容生成。