NIPS 2024:代码模型自我进化超越GPT-4o蒸馏!UIUC伯克利等提出自对齐方法

简介: 在NIPS 2024上,UIUC、UC Berkeley等高校联合提出SelfCodeAlign方法,通过自我对齐使代码生成的大型语言模型(LLMs)在无需大量人工注释或蒸馏的情况下显著提升性能。该方法利用基础模型生成多样化编码任务并自我验证,最终选择通过测试的示例用于指令微调。实验表明,SelfCodeAlign微调的模型在多个编码任务上显著优于其他方法。论文地址:https://arxiv.org/pdf/2410.24198。

在近期的神经信息处理系统大会(NIPS 2024)上,一篇由伊利诺伊大学厄巴纳-香槟分校(UIUC)、加州大学伯克利分校(UC Berkeley)和东北大学等多所知名高校联合发表的论文引起了广泛关注。该论文提出了一种名为SelfCodeAlign的创新方法,旨在通过自我对齐(self-alignment)的方式,使代码生成的大型语言模型(LLMs)在无需大量人工注释或蒸馏的情况下,实现性能的显著提升。

近年来,大型语言模型在代码相关任务中展现出了卓越的性能,包括程序合成、程序修复、代码优化、代码补全、代码翻译、软件测试和软件代理等。这些模型通常在数万亿的代码标记上进行预训练,并采用各种训练目标(如下一个标记预测),使其能够自然地理解和生成代码片段。

为了充分发挥LLMs的潜力,通常需要在高质量的指令遵循数据上对基础模型进行进一步的微调,这一步骤被称为指令微调。然而,获取高质量的指令微调数据既关键又具有挑战性。一种常见的方法是使用人工注释,但这种方法成本高昂。另一种方法是使用知识蒸馏,通过让更强的LLMs生成输出来训练较弱的LLMs,但这种方法可能违反专有LLMs的服务条款,并且依赖于更强的LLMs限制了其通用性。

为了解决上述问题,研究团队提出了SelfCodeAlign,这是一种完全透明且无需大量人工注释或蒸馏的代码LLM自我对齐管道。SelfCodeAlign的核心思想是利用基础模型自身生成多样化的编码概念,并使用这些概念生成新的编码任务。然后,模型为每个任务生成多个响应,并使用测试用例对这些响应进行配对和验证。最后,只有通过测试的示例才会被选择用于指令微调。

SelfCodeAlign的具体实现包括以下几个步骤:

  1. 种子代码片段收集:从一个名为The Stack V1的大型、许可友好的代码语料库中收集高质量的种子代码片段。这些片段将作为生成指令和响应的起点。

  2. 多样化指令生成:使用一种名为Self-OSS-Instruct的自对齐改编方法,通过上下文学习让基础模型从给定的种子代码片段中生成多样化的指令。这包括概念提取和指令生成两个子步骤。

  3. 响应生成与自我验证:对于每个生成的指令,基础模型生成多个格式为(响应,测试)的输出。然后,在沙箱环境中执行测试,过滤掉失败的响应。最后,为每个指令随机选择一个通过测试的响应,将其添加到最终的指令微调数据集中。

为了评估SelfCodeAlign的有效性,研究团队在多个编码任务上进行了广泛的实验,包括函数生成、类生成、数据科学编程和文件级代码编辑。实验结果表明,使用SelfCodeAlign微调的CodeQwen1.5-7B模型在所有任务上都显著优于原始模型和使用OctoPack(一种先前的无人工注释或蒸馏的指令微调方法)微调的模型。

具体而言,在HumanEval+基准测试中,SelfCodeAlign微调的模型实现了67.1的pass@1分数,比CodeQwen1.5-7B提高了21.4分,比CodeQwen1.5-7B-OctoPack提高了16.5分。这一结果表明,SelfCodeAlign的合成数据生成方法在增强代码LLM的能力方面比自然数据更有效。

此外,研究团队还对SelfCodeAlign的各个组件进行了分析,证明了种子选择、概念生成和执行过滤等组件对管道的积极贡献。他们还展示了SelfCodeAlign在各种规模的LLMs(从3B到33B)上的有效性,并指出基础模型可能从与其自身数据分布相似的数据中学习得更有效。

SelfCodeAlign的提出为代码LLM的自我对齐提供了一种全新的思路,有望推动该领域的发展。通过避免对人工注释和蒸馏的依赖,SelfCodeAlign为构建更强大的代码助手铺平了道路。

然而,SelfCodeAlign也存在一些局限性,例如其数据生成限制在约3000个标记的窗口内,这可能导致其分布偏向于中等大小的样本。此外,生成的单元测试可能存在错误,需要进一步研究以改进测试用例的生成。

展望未来,研究团队计划将SelfCodeAlign应用于更复杂的领域,如复杂程序生成和代理软件工程。他们还希望探索使用长上下文指令响应对进行生成和训练的方法,以及将负样本纳入强化学习循环以引导模型远离错误响应的方法。

论文地址:https://arxiv.org/pdf/2410.24198

目录
相关文章
|
机器学习/深度学习 运维 数据可视化
chat GPT在常用的数据分析方法中的应用
ChatGPT在常用的数据分析方法中有多种应用,包括描述统计分析、探索性数据分析、假设检验、回归分析和聚类分析等。下面将详细介绍ChatGPT在这些数据分析方法中的应用。 1. 描述统计分析: 描述统计分析是对数据进行总结和描述的方法,包括计算中心趋势、离散程度和分布形状等指标。ChatGPT可以帮助你理解和计算这些描述统计指标。你可以向ChatGPT询问如何计算平均值、中位数、标准差和百分位数等指标,它可以给出相应的公式和计算方法。此外,ChatGPT还可以为你提供绘制直方图、箱线图和散点图等图表的方法,帮助你可视化数据的分布和特征。 2. 探索性数据分析: 探索性数据分析是对数据进行探
339 0
|
1月前
|
Web App开发 人工智能
UC伯克利:给大模型测MBTI,Llama更敢说但GPT-4像理工男
UC伯克利研究团队推出VibeCheck系统,自动比较大型语言模型(LLM)的输出特征,如语调、格式和写作风格。该系统通过迭代挖掘特征并利用LLM法官量化其实用性,验证结果显示其能有效捕捉模型的独特“vibes”。VibeCheck应用于对话、摘要、数学和字幕生成等任务,揭示了不同模型的行为差异,并在预测模型身份和用户偏好方面表现出色。尽管存在主观性和测试范围有限的局限性,VibeCheck为改进LLM评估提供了新视角。论文地址:https://arxiv.org/abs/2410.12851
151 98
|
16天前
清华UCSD提出全新微调方法,8B小模型媲美GPT-4o!科学问题正确率提高28%
清华大学与UCSD研究人员提出了一种创新微调方法,通过“世界知识蒸馏”和“工具使用适应”两组件,显著提升大型语言模型(LLM)解决科学问题的能力,同时保持其基本推理能力。实验结果显示,该方法在多个科学领域基准数据集上大幅提高了答案准确性和工具使用精度。论文地址:https://arxiv.org/abs/2411.00412
27 2
|
18天前
|
Web App开发 人工智能 自然语言处理
GPT-5涌现能力可预测?UC伯克利仅使用当前模型检查点预测未来模型
加州大学伯克利分校的一项新研究提出了一种基于微调大型语言模型(LLM)的方法,以预测未来模型的涌现能力。通过在特定任务上微调现有模型并拟合参数化函数,研究团队能够在四个NLP基准测试中准确预测未来模型的能力。该方法为模型开发者和政策制定者提供了重要工具,但也存在局限性,如仅能预测4倍计算资源内的涌现现象。论文地址:https://arxiv.org/pdf/2411.16035。
34 1
|
3月前
|
机器学习/深度学习 人工智能 PyTorch
使用PyTorch实现GPT-2直接偏好优化训练:DPO方法改进及其与监督微调的效果对比
本文将系统阐述DPO的工作原理、实现机制,以及其与传统RLHF和SFT方法的本质区别。
132 22
使用PyTorch实现GPT-2直接偏好优化训练:DPO方法改进及其与监督微调的效果对比
|
8月前
|
测试技术
8B尺寸达到GPT-4级性能!北大等提出医疗专家模型训练方法
【7月更文挑战第8天】北京大学等研究者提出的新方法缓解了大模型如Llama-3-8B在持续预训练时的“稳定性差距”,通过多轮次训练、高质量子语料库选择和数据混合策略,提升性能和效率。在医疗领域,他们将OpenLlama-3B性能提升至40.7%,并创建的Llama-3-Physician模型达到GPT-4级别。尽管取得突破,该方法在其他模型和领域的适用性仍需探索,且持续预训练仍资源密集。[链接: https://arxiv.org/abs/2406.14833]
124 25
|
XML Java 数据库连接
GPT-4耗尽全宇宙数据!OpenAI接连吃官司,竟因数据太缺了,UC伯克利教授发出警告(一)
GPT-4耗尽全宇宙数据!OpenAI接连吃官司,竟因数据太缺了,UC伯克利教授发出警告
133 1
|
Web App开发 SQL Java
GPT-4耗尽全宇宙数据!OpenAI接连吃官司,竟因数据太缺了,UC伯克利教授发出警告(二)
GPT-4耗尽全宇宙数据!OpenAI接连吃官司,竟因数据太缺了,UC伯克利教授发出警告(二)
62 0
|
Web App开发 机器学习/深度学习 人工智能
用GPT-4实现可控文本图像生成,UC伯克利&微软提出新框架Control-GPT
用GPT-4实现可控文本图像生成,UC伯克利&微软提出新框架Control-GPT
190 2
|
存储 人工智能 API
免费使用 GPT-4 和 GPT-3.5 新方法:无限使用,随时切换,牛逼!
免费使用 GPT-4 和 GPT-3.5 新方法:无限使用,随时切换,牛逼!

热门文章

最新文章