10倍效能不是梦:“软件工程3.0”之下软件研发

在写这篇文章前,看到一条消息,即阿里巴巴集团董事会主席兼首席执行官张勇(逍遥子)发布全员信《唯有自我变革,才能开创未来》,启动新一轮公司治理变革。而这是24年来最重要的一次组织变革阿里集团成立了云智能集团,而且是董事会主席兼CEO张勇兼任云智能集团CEO,说明云智能集团的重要性,也显示阿里要在大语言模型(LLM)上发力。

在之前,华为公司走在前面,本公众号也有几次报道(如 函数级代码生成模型PanGu-Coder、智能编程助手CodeArts Snap等),咱们国人的希望可能要寄托在华为的身上。我也了解到腾讯内部、几家大银行和头部券商等软件研发团队也都在抓紧调研chatGPT在软件研发中的应用场景等,以及 上周GitHub 宣布推出 Copilot X 计划。

这一切都切切实实预示着:软件工程3.0 的到来

在写完《GPT-4 开启 “软件工程3.0” 全新时代》这篇文章之后的一周内,我进一步加强调研和实验,也认真研究了微软研究院的、长达154页的论文 Sparks of Artificial General Intelligence: Early experiments with GPT-4更感受到GPT-4蕴藏的神奇力量,即具有一定的推理、规划、问题解决、抽象思考、理解复杂性、快速学习、通过经验学习等能力,而且这种能力具有良好的普遍性,跨越了广泛的领域(包括抽象、理解、视觉、编码、数学、医学、法律、对人类动机和情感的理解),而且在广泛的任务中,其表现达到或超过了人类水平。所以,今天连开发GPT-4的OpenAI团队都说,他们都无法估量GPT-4的能力,因为它具有涌现能力,即涌现出一些连设计人员当初都没有想象到的能力,所以给了我们足够的想象空间,更何况还有全球的人在帮它,帮它如何做得更好。

回到主题,一年前我写了一篇文章《直击灵魂:软件研发的第一性原理与10倍效能》,其实这里的10倍只是代名词,如文章所指出 “用好了第一性原理出发,就能达到 “10倍效能”,其实不一定能达到10倍效能,“10倍效能”只是一个代名词(思维方式),是指高效能,可能是2倍、3倍......” ,对能否达到10倍是不确定的,但进入“软件工程3.0”,如果我们用好了GPT-4一类的大语言模型(LLM),确实能达到10倍效能,甚至是几十倍的效能。

为什么此时信心十足呢?因为前面说的GPT-4的神奇力量,可以成为我们的得力助手,帮助我们大力提升软件研发效能。

1. 需求定义。通过使用ChatGPT的自然语言处理功能,产品经理可以轻松理解和解释客户的需求和要求,包括用户画像。

10倍效能不是梦:“软件工程3.0”之下软件研发

2. 软件设计。GPT-4可以帮助我们设计、细化产品的功能、UI设计等,我们还可以借助GPT-4 API和可视化工具集成(如MidJourney等),可以创建交互式和沉浸式虚拟现实环境,使我们在现实环境中测试和探索不同的设计想法,为软件产品设计产生新的和创新的设计想法,详见:Sparks of Artificial General Intelligence: Early experiments with GPT-4

3. 编程工作。我们可以从一个想法开始,循循善诱,引导GPT-4生成代码、优化代码、生成相应的测试代码,最终完成一个软件开发,能让软件跑起来,详见:编程实录:我只是提要求,ChatGPT写代码,这就完成了游戏开发。GPT-4 可以处理广泛的编码任务,从编码挑战到真实世界的应用程序,从低级汇编到高级框架,从简单的数据结构到复杂的程序(如游戏等)。在代码自动生成上,LLM的能力已经很强了。

GitHub Copilot可以解释自然语言提示,如注释和方法名称,并将其转化为众多编程语言的编码建议。但Copilot X 聊天超越了代码建议,深度嵌入IDE中,分析代码、错误信息,并提供代码块用途的详细解释,生成单元测试,并建议错误修复。开发人员还可以访问由OpenAI的GPT-4提供的GitHub拉动请求的AI生成描述的技术预览,GitHub Copilot会根据代码变化自动填充描述,可以提醒开发者在拉动请求中测试覆盖率不足

GPT-4 可以推理代码的执行、模拟指令的效果,并用自然语言解释结果;因为GPT-4可以理解代码,从而能执行伪代码,进行代码的验证。而且GPT-4 能够通过对人类反馈和编译器/终端错误的响应来改进其代码

10倍效能不是梦:“软件工程3.0”之下软件研发

4. 测试工作。基于细化的功能,chatGPT可以帮助逐步生成测试用例、用不同的设计方法完善测试用例,详见:又一次被震惊:从生成和细化需求到应用各种方法设计测试用例。测试上还有更多应用,可以开展TDD(以前程序员不乐意写测试),现在却能轻松完成,而且还有更多应用场景:chatGPT在软件测试中七大应用方式。

让我们更为惊奇的事,GPT-4 会使用工具、做渗透测试。在不给 few-shot 示例的情况下,GPT-4自行决定工具的使用,而且研究者测试了使用 GPT-4 黑掉本地网络上的一台计算机的任务,在没有任何信息的情况下,它能够制定并执行一个计划,在这个计划中,它扫描网络中的设备,识别目标主机,运行一个尝试普通密码的可执行文件,并获得对机器的根访问权。

5. 沟通和协调。Copilot X计划将“为文档查询提供人工智能生成的答案”功能扩展到任何组织的存储库和内部文档,允许开发人员通过类似ChatGPT的界面询问有关文档、成语代码或专有软件的问题,并立即得到答复、提供个性化的回应,这一切都将极大提升团队的沟通和协调效能。

6. 借助有技巧的对话,可以突破GPT-4的一些限制。GPT-4主要限制之一是该体系结构不允许「内部对话」或「临时记录」,这超出其内部表征,使它不能够执行多步计算或存储中间结果。但我们可以通过使用不同的提示来弥补这种限制。例如微软研究院举了一个例子,通过更改提示,来让他通过中间推理生成答案,这类似于利用 CoT 的思路来帮助模型进行内隐的思考。

10倍效能不是梦:“软件工程3.0”之下软件研发

Stop,我不能说得太多了,我要留一点想象空间给你,甚至要留几个问题给你思考:

如果你想了解更多细节、想得到上面问题的答案,就来K+talk

10倍效能不是梦:“软件工程3.0”之下软件研发

发表回复