当大模型开始规划合作,一个模型打造软件开发团队,代码生成性能狂升(2)

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
简介: 当大模型开始规划合作,一个模型打造软件开发团队,代码生成性能狂升

实验结果


作者将 self-collaboration 代码生成与各种最先进(SOTA)方法进行比较,实验结果表明,self-collaboration 框架显著提高了基础大模型的性能。值得注意的是,即使是一个简单的三人团队(包括分析师、程序员和测试员),基于 ChatGPT (GPT-3.5) 的 self-collaboration 代码生成在四个代码生成基准测试中也取得了最佳性能,甚至超过了 GPT-4。与 ChatGPT (GPT-3.5) 相比,self-collaboration 框架提供的改进是巨大的,相对增幅从 29.9% 到 34.6% 不等。

值得注意的是,self-collaboration 代码生成对与扩展测试用例相关的数据集(即 HumanEval-ET 和 MBPP-ET)产生了更显著的改进。这表明 self-collaboration 可以有效地帮助基础大模型生成更高质量的代码。这种增强可能归因于合作团队可以考虑更广泛的边界条件和解决常见错误的能力。考虑到基础大模型本身的差距,将 self-collaboration 框架应用于更强大的模型,例如 GPT-4,将产生更好的结果。


作者进一步研究了仅使用自然语言描述的代码生成,这种设置更贴近实际的软件开发。在此设置下,作者比较了由 self-collaboration 框架实例化的初等团队中每个 ChatGPT 角色的表现,如表 2 所示。

实验结果表明,与仅使用程序员角色相比,无论是二位角色还是三位角色组建的团队,性能都有显著提高。程序员 - 分析师 - 测试员团队在 HumanEval 和 HumanEval-ET 基准测试中取得了最好的成绩,相对改进分别为 40.8% 和 47.1%。相比之下,编码器 - 测试员团队在 MBPP 和 MBPP-ET 基准测试中获得了最高性能,相对改进分别为 36.7% 和 39.4%。分析师在 MBPP 和 MBPP-ET 基准上的表现不佳可能是由于 MBPP 的要求相对简单,所以对规划较少(但是随着问题的复杂化,规划是不可或缺的一部分)。此外,MBPP 中各种任务的大量测试用例偏离了人类典型的书写习惯和推理过程,例如程序返回不常用的数据格式而而没有任何自然语言提示。因此,作者认为应该定制特定任务的团队以实现最佳结果。


此外,作者展示了一个 self-collaboration 代码生成示例,如图 3 所示。

1. 分析师进行全面分析并制定 plan 以解决整体需求。对于这个需求,分析师首先将其拆分为几个易于解决的子任务,然后根据子任务给出一些高层次的 plan。2. 程序员根据给定的要求以及设计的拆分和高层次 plan 实现代码。显而易见,已实现代码中的每个子模块都与拆分和高层次 plan 几乎一一对应。3. 测试员为实现的代码编写详细的测试报告,找出其中的错误。在这份测试报告中,测试人员指出所实现的代码可能会导致从列表中删除重复元素,从而可能导致某些边缘测试用例失败。因此,建议从实现的代码中删除行 “lst = list (set (lst))”。4. 程序员随后根据测试报告中提供的反馈完善了代码。在编码器提供的修改后的代码中,整合了测试报告中的建议,并同时删除了 “lst = list (set (lst))” 行。5. 测试员评估修改后的代码,确认没有任何问题,至此代码生成过程结束。在最后一次交互中,测试员确认修改后的代码已经通过所有测试,满足要求。

总之,self-collaboration 框架在代码生成任务中表现出显著的性能提升,与单一角色相比,多角色团队能够更有效地处理各种问题和挑战。这种方法为自然语言处理和代码生成领域提供了新的研究方向,值得进一步探讨和优化。未来的工作可能包括对更多角色和更强大模型的探索,以及将 self-collaboration 框架应用于其他自然语言处理任务。

结论
在本文中,作者提出了一种 self-collaboration 框架,其目的是通过合作和交互方法来增强大模型的问题解决能力。具体而言,作者探索了 ChatGPT 在促进基于团队的代码生成和合作方面的软件开发过程中的潜力。为此,作者组建了一个由三个不同的 ChatGPT 角色组成的初等团队,目的是全面解决代码生成任务。为了评估 self-collaboration 框架的有效性和泛化性能,作者针对各种代码生成基准进行了广泛实验。实验结果提供了大量证据支持 self-collaboration 框架的有效性和普适性。作者认为,使模型能够组建自己的团队并合作完成复杂任务是实现人工通用智能(AGI)的关键一步。

相关文章
|
1月前
|
监控 供应链 数据可视化
团队高效流程管理必备:方法与实用软件推荐
在当前激烈的商业竞争环境中,高效的业务流程管理对企业成功至关重要。本文介绍了业务流程管理的方法,包括流程梳理、优化、监控与评估及员工培训与参与,并推荐了几款实用的业务流程管理系统(BPMS)。BPMS能自动化、可视化业务流程,提升效率。具体推荐包括板栗看板、Trello和Wrike,它们分别在任务管理、团队协作及项目管理方面有各自的优势。选择合适的BPMS有助于提高工作效率、增强流程透明度、提升团队协作能力,规范管理并降低风险,从而增强企业竞争力。
67 0
|
2月前
|
安全 Linux 调度
Linux内核开发流程指南 - 3. 早期规划【ChatGPT】
Linux内核开发流程指南 - 3. 早期规划【ChatGPT】
|
4月前
|
运维 监控 IDE
通用研发提效问题之在软件研发的各个阶段,提升效率的工具和方法,如何解决
通用研发提效问题之在软件研发的各个阶段,提升效率的工具和方法,如何解决
|
4月前
|
人工智能 领域建模
应用工程化架构问题之AI计算机中的大模型评估体系发生变化如何解决
应用工程化架构问题之AI计算机中的大模型评估体系发生变化如何解决
|
5月前
|
人工智能 自然语言处理 监控
安全使用GenAI模型进行软件开发的步骤
安全使用GenAI模型进行软件开发的步骤
|
6月前
|
敏捷开发 开发框架 持续交付
深入探讨敏捷开发项目管理流程与Scrum工具:构建高效团队与卓越产品的秘诀
深入探讨敏捷开发项目管理流程与Scrum工具:构建高效团队与卓越产品的秘诀
|
6月前
|
存储 数据安全/隐私保护 C++
向他人分享你的模型设计成果
在模型设计或交付工作过程中,经常需要为你的团队成员或甲方客户分享你的模型设计成果。在分享过程中,文件大小和复杂性、版本控制问题、权限和访问控制、网络和存储限制、数据安全和隐私等因素,都会影响最终的效果。
97 0
向他人分享你的模型设计成果
|
机器学习/深度学习 人工智能 算法
当大模型开始规划合作,一个模型打造软件开发团队,代码生成性能狂升
当大模型开始规划合作,一个模型打造软件开发团队,代码生成性能狂升
119 0
当大模型开始规划合作,一个模型打造软件开发团队,代码生成性能狂升
|
机器学习/深度学习 存储 监控
ML:机器学习工程化之团队十大角色背景、职责、产出物划分之详细攻略
ML:机器学习工程化之团队十大角色背景、职责、产出物划分之详细攻略
ML:机器学习工程化之团队十大角色背景、职责、产出物划分之详细攻略