《AIGC+软件开发新范式》--01.当「软件研发」遇上 AI 大模型(3)

简介: 在AI 热度持续上升的当下,阿里云推出AI智能编码助手—通义灵码。通义灵码是一款基于阿里云通义代码大模型打造的智能编码助手,基于海量优秀开源代数据集和编程教科书训练,为开发者带来高效、流畅的编码体验。

本文来源于阿里云社区电子书《AIGC+软件开发新范式》


《AIGC+软件开发新范式》--01.当「软件研发」遇上 AI 大模型(2):https://developer.aliyun.com/article/1537722


唯我专属


我觉得企业要想让代码大模型真的能实现一个非常好的效果,都逃不过这一关。比如如何实现企业数据的个性化场景,比如在项目管理阶段,如何能够让大模型按照需求 / 任务 /缺陷内容的一些固有的格式和规范去生成,帮我们实现一些需求的自动拆解、自动续写、自动总结等等。


开发阶段可能是大家最关注的,经常有企业会讲要有符合企业自己的代码规范,引用企业自己的二方库,调用 API 生成 SQL,包括使用企业自研的一些前端框架、组件库等等,这些都属于开发场景。测试场景也要生成符合企业规范的,甚至是理解业务的测试用例。在运维场景,要时刻查找企业的运维知识,然后去回答,去获取企业的一些运维的 API 快速生成代码。这些都是我们认为要做的企业数据化个性化场景。具体的做法是要通过检索增强或者微调训练的方式来实现。



在这里我列了一些简单的场景和需要注意的事项,包括代码应该怎么处理,文档应该怎么处理,代码过来要进行过滤、清洗、结构化,然后才能够可用。


在我们训练的过程中,要去考虑开放域数据和私域数据的混入。比如我们要去做一些不同的参数调整,在检索增强上,我们要考虑不同的检索增强策略,我们其实也是在不断的进行探索,包括如何在代码生成场景里面命中我们所需要的上下文信息,以及我们在问答场景里面如何去命中我们需要的回答的上下文信息,这属于检索增强。




我们要做的就是企业级的检索增强方案,企业级的检索增强方案目前的架构图大概是这样。中间是知识库的管理服务,包括数据解析的调度、问题的理解、整理回答、结构化的解析、数据分块等等,核心的能力在中间这块,向下是我们比较常用的 Embedding 的服务,包括大模型的服务、向量的存储和检索。


向上是我们管理的一些后台,在这个场景下支持了我们关于文档的检索增强以及代码生成的检索增强。代码生成也就是补全这个场景的检索增强它所需要的处理方式和技术跟文档其实还是略有不同。


过去我们跟复旦大学也做过几年的学术研究,非常感谢他们的付出,我们也有一些论文在发表,当时我们测试集的结果也是用一个一点几 B 的模型,再配合检索增强,它实际上的准确率和效果就可以达到一个大概 7B 以上模型的同等效果。


三 . 未来的软件研发 Agent 产品演进


我们认为未来软件研发一定会进入到 Agent 时代,也就是说它具备一些自主性,并且它可以

非常容易使用我们的工具,然后理解人类的意图,完成工作,最终会形成一个如图所示的多智能体的协同模式。



就在今年三月份,Devin 的诞生其实让我们感觉到这个事情真真实实的被加速了,我们从来没有设想到这个事情能够完成一个真实的业务项目,我们过去都没有想象到,甚至我们都觉得这个事情可能还要一年以后,但是它的出现让我们觉得,今天真的可以通过大模型拆解数百上千个步骤,并且一步一步执行,出现问题它还可以自我反思,自我迭代,有这么强的拆解能力和推理能力让我们非常意外。


随着 Devin 的诞生,各个专家学者就开始投入,包括我们通义实验室,马上发起的一个项目叫 OpenDevin。这个项目在短短的几周内 star 数就超过了 2 万,可以看到大家对这个领域非常的热情。然后马上开源了 SWE 的 Agent 项目,把 SWE- bench 的解决率又推升到了 10% 以上,过去的大模型都在百分之几,推升到 10% 已经接近了 Devin 的表现,所以我们判断在这个领域的学术研究会非常快,我们大胆猜测一下,很有可能在 2024 年年中左右的 6 到 9 月份,很有可能 SWE- bench 的解决率会超过 30%。


我们大胆猜测一下,如果能够达到百分之五六十解决率的话,它的测试集实际上是一些真实的 Github issue,让 AI 完成 Github 上面的 issue,可以去修复 bug,去解决需求的这样一个测试集。如果这个测试集能够让 AI 的自主完成率达到百分之五六十,我们认为真的是可以在生产级中落地了。至少一些简单的缺陷可以交给它来修复,这是我们看到的目前业界的一些最新的进展。



但是这张图也不是马上就能实现的,现在从技术路线上来讲,我们会沿着这四步逐步实现。第一步我们现在还在做单库的问答 Agent,这个领域是非常前沿的,我们现在在做单库的问答 Agent,近期会上线。


下一步我们希望推出能独立完成编码任务的 Agent,它的作用主要是具备一定的自主规划能力,可以使用一些工具去了解背景知识,能够自主的完成单库范围内的编码任务,还不是跨库,可以想象一个需求有多个代码库,然后前端也改、后端也改,最终形成一个需求,我们觉得还很远。


所以我们先实现单库的编码 Agent,下一步我们会去做测试 Agent,测试 Agent 可以基于代码 Agent 的生成结果,自动完成一些测试任务,包括理解任务的需求、阅读代码、生成测试用例,并且自主运行。


如果这两步的成功率做的比较高的话,我们就会进入到第三步。让多 Agent 基于 AI 调度共同完成任务,从而实现从需求到代码到测试的全流程自主化。


从工程的角度来讲,我们会一步一步这么来走,确保每一步都达到一个比较好的生产级落地,最终去做产品。但是从学术来讲,他们研究的速度会比我们更快,现在我们是从学术、工程讨论的,我们还有第三个分支就是模型演进。这三条路就是我们现在阿里云和通义实验室一起联合在做的一些研究。


最终,我们会形成一个 Multi-Agent 概念架构,用户可以跟大模型进行对话,大模型可以进行任务的拆解,然后有一个多 Agent 协同系统。这个 Agent 可以外挂一些工具,它有自己的运行环境,然后多 Agent 之间可以互相协同,它们还会共享一些上下文机制。



这个产品图会分为三层。最下面是基础层,对于企业来讲,可以先把基础层做好。比如现在可以引入一个代码大模型,我们虽然没有马上实现 AI Bot,但是现在已经具备了 IDE 代码生成插件的这些能力,已经可以做一些工作了,就是 Copilot 的模式。


Copilot 模式在基建层上面,进化了 Agent 这一层,实际上基建是可以复用的。该做的检索增强、微调训练和知识库,现在就可以做起来了。这些知识的梳理,资产的积累,是来自于原来 DevOps 平台的积累。现在就可以通过一些提示词工程的方式,将现在基础的能力层跟整个 DevOps 工具链进行结合。



我们做了一些实验,在需求阶段要想让这个大模型来实现一个需求的自动拆解,我们可能只需要将过去的一些拆解数据,还有现在的需求拼成一个 prompt 给大模型,大模型就可以比较好的去完成拆解并且完成人员的分配。在实验中发现,结果的准确率还是蛮高的。


其实现在整个 DevOps 工具链,并不需要所有东西都要用 Agent 或者都要用 Copilot。我们现在用一些提示词工程,就有很多场景可以马上去赋能,包括我们在 CICD 过程中的自动排错,在知识库领域的智能问答等都可以实现。


在实现多 Agent 以后,这个 Agent 可以在 IDE 里面透出,也可以在开发者的门户,即 DevOps 平台透出,甚至在我们的 IM 工具里面透出。它实际上是一个拟人的智能体。本身这个智能体它会有自己的工作区,在这个工作区里我们的开发者或者说管理者可以去监控它到底是如何帮我们完成代码编写的,如何帮我们完成测试的,它到底在互联网上获取了什么样的知识去完成工作,会有一个它自己的工作空间,最终实现整个任务的完整流程。

相关文章
|
20天前
|
人工智能 搜索推荐
写歌词的技巧和方法:塑造完美歌词结构的艺术,妙笔生词AI智能写歌词软件
歌词是音乐的灵魂,其结构艺术至关重要。开头需引人入胜,主体部分无论是叙事还是抒情,都应层次分明、情感丰富,结尾则需升华或留白,给人以深刻印象。《妙笔生词智能写歌词软件》提供多种AI辅助功能,助你轻松创作完美歌词,成为音乐创作的得力助手。
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
当前AI大模型在软件开发中的创新应用与挑战
2024年,AI大模型在软件开发领域的应用正重塑传统流程,从自动化编码、智能协作到代码审查和测试,显著提升了开发效率和代码质量。然而,技术挑战、伦理安全及模型可解释性等问题仍需解决。未来,AI将继续推动软件开发向更高效、智能化方向发展。
|
20天前
|
人工智能
巧妙构建歌词结构:写歌词的技巧和方法之关键,妙笔生词AI智能写歌词软件
在音乐世界里,歌词是灵魂的载体,构建其结构至关重要。优秀的歌词需有引人入胜的开头、条理清晰且富变化的主体,以及深刻难忘的结尾。《妙笔生词智能写歌词软件》提供多种功能,帮助创作者克服结构难题,激发灵感,助你写出打动人心的歌词,开启音乐创作的新篇章。
|
20天前
|
人工智能
歌词结构的巧妙安排:写歌词的方法与技巧解析,妙笔生词AI智能写歌词软件
歌词创作是一门艺术,关键在于巧妙的结构安排。开头需迅速吸引听众,主体部分要坚实且富有逻辑,结尾则应留下深刻印象。《妙笔生词智能写歌词软件》提供多种 AI 功能,帮助创作者找到灵感,优化歌词结构,写出打动人心的作品。
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
当前AI大模型在软件开发中的创新应用与挑战
【10月更文挑战第31天】2024年,AI大模型在软件开发领域的应用取得了显著进展,从自动化代码生成、智能代码审查到智能化测试,极大地提升了开发效率和代码质量。然而,技术挑战、伦理与安全问题以及模型可解释性仍是亟待解决的关键问题。开发者需不断学习和适应,以充分利用AI的优势。
|
8天前
|
人工智能 安全 测试技术
探索AI在软件开发中的应用:提升开发效率与质量
【10月更文挑战第31天】在快速发展的科技时代,人工智能(AI)已成为软件开发领域的重要组成部分。本文探讨了AI在代码生成、缺陷预测、自动化测试、性能优化和CI/CD中的应用,以及这些应用如何提升开发效率和产品质量。同时,文章也讨论了数据隐私、模型可解释性和技术更新等挑战。
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
31 3
|
8天前
|
机器学习/深度学习 人工智能 测试技术
革命来临:AI如何彻底颠覆传统软件开发的每一个环节
【10月更文挑战第32天】本文探讨了AI技术如何重塑软件开发行业,从需求分析、设计、编码、测试到项目管理,AI的应用不仅提高了开发效率,还提升了软件质量和用户体验。通过对比传统方法与AI驱动的新方法,展示了AI在各个阶段的具体应用和优势。
23 3
AI销售管理软件开发,AI 销售助手:复制销冠能力的神奇利器
在商业竞争激烈的今天,如何将销冠的能力复制给普通销售人员是许多公司的梦想。如今,“AI 销售助手” 通过多维度分析客户痛点,精准生成客户画像,帮助销售人员量身定制销售方案,显著提升成交率,使普通销售人员也能成为销售冠军,为企业创造巨大价值。
|
17天前
|
机器学习/深度学习 人工智能 监控
探索 AI 在软件开发中的新角色:代码审查与质量保证
【10月更文挑战第22天】本文探讨了AI在软件开发中的新角色,特别是在代码审查和质量保证方面。AI通过静态代码分析、代码风格一致性检查和历史数据学习,提高代码审查的效率和准确性。在质量保证中,AI还能够自动生成测试用例、监控应用性能并持续优化。文章还讨论了AI在软件开发中的实践应用、挑战与机遇,以及实施的最佳实践。