软件研发的银弹正在飞来的路上?
本月底,距离 ChatGPT 诞生整整一年。无论主动或是被动,AI 已经在改变生活的方方面面,程序员也不例外,如何借助 AI 提升研发效能?AI 编程方面的进展始终引人注目。人们已经不再去纠结 AI 是否会取代程序员,因为它已经成为各行业创新与发展的关键驱动力,如何用好 AI 工具才是当下更为切实的议题。
第四届“长沙·中国 1024 程序员节”盛大举行,特别策划“AI 编程与研发效能论坛”,邀请了来自全球领先科技公司的专家,聚焦 AI 编程、研发效能提升、智能工具与平台等议题,深入探讨企业级 AI 应用开发等关键问题,分享产业界的最佳实践。
精彩抢先看:
微软高级云技术布道师卢建晖:生成式 AI 下,传统开发者转型的几个关键点,包括对大语言模型的理解、如何利用 Prompt 生成高质量代码、以及开发者如何适应人机对话和应用形态的改变。
腾讯云 Cloud Studio 产品技术总监汪晟杰:尽管 AI 在软件开发中有着广泛的应用,但大多数开发者对 AI 能做什么仍然困惑。AI 应用可以提高开发效率,但如何度量这种提高则是一个挑战。
中软国际解放号平台部副总经理钱卫春:大模型给软件开发带来了新的形态,具有以大模型驱动为核心,人机交互、数据价值重新挖掘和特定任务应用生成等特点,将带来新的机遇和挑战。
华为云代码大模型技术专家、AI 算法科学家马宇驰:只有将软件工程各环节的工具完整联动,形成一套整体的解决方案,才能够真正把开发者从原来的单点效率提升变成端到端的效率提升,去实现 10 倍开发效率开发者的远景规划。
同济大学特聘教授、“软件工程 3.0 ”定义者朱少民:大模型会给软件开发带来新的形态和开发范式。从产品到服务,再到模型,软件作为一种模型存在,即 SAAM(模型即服务)。新开发范式是模型驱动开发、测试和运维。
要重视大模型的企业级应用探索
“很多人关注怎么做好大模型,但我更希望做更多面向企业、面向应用层面的探索”。大模型是有魔法的,它基本改变了人们过往对 AI 的所有认知。在生成式 AI 下,传统开发者转型是个不小的问题。”微软高级云技术布道师卢建晖谈道。
他分享了生成式 AI 下传统开发者转型的几个关键点,包括:对大语言模型的理解、如何利用 Prompt 生成高质量代码、以及开发者如何适应人机对话和应用形态的改变。同时也强调了开发者需要掌握的技能不仅仅是 API,更重要的是如何更好地与大模型交流。
大模型的重要性以及在企业应用层面的潜力已是业界共识。对于很多企业来说,并不只采用单一的模型,而是用大量不同的混合模型去应对不同的业务问题。比如内部的数据,可能会基于保密性质考虑使用离线大模型;对于临时数据则用到开放 AI,而外部的数据也可以混合不同的模型。企业场景中多模型的应用,以及未来几年企业所需要的多模型形态也是卢建晖关注的重点。
对于微软新提出的 Copilot Stack 概念,Semantic Kernel 可看作 Copilot Stack 的最佳实践。第一是开源,第二是高效,第三是它为人工智能而生,在人工智能这个场景上能有更多发挥,可以与不同的数据库和软件生态区整合,不限于微软体系里的技术。卢建晖以 Semantic Kernel 为例分享了实践过程中的宝贵经验。
在具体的 AI 编程实践方面,开发者可能会遇到一些问题,如私人数据的访问、Prompt 的稳定性、安全性以及版本控制等。后续他也期待更多和开发者交流学习。
+AI,而不是 AI+,让软件工程变得更好
腾讯云 Cloud Studio 产品技术总监汪晟杰以“腾讯 AI 代码助手的建设之路”为主题,从 AI 在软件开发中的应用、大模型与软件工程的结合、私有化部署与行业定制、产品层面的思考等角度,与大家分享了实践过程中踩的坑与收获。
构建腾讯云 AI 代码助手的过程中,汪晟杰很清楚,尽管 AI 在软件开发中有着广泛的应用,但大多数开发者对 AI 能做什么仍然存在困惑。AI 应用可以提高开发效率,但如何度量这种提高则是一个挑战。他认为将大模型与软件工程结合,有助于提高开发速度和质量,这也是腾讯云正在探索的方向,主要是代码补全和技术对话。
Github Copilot 是国外一个比较成功的尝试,很多开发者都愿意自己采购。但是它也遇到了很多问题。国内很多金融行业会限制开发者使用 Github Copilot,除了网络带宽原因,还有数据保护方面的考虑。因为运用大模型做代码补全的时候需要反复训练,将数据流到外部进行增强,让回答更精准,更符合所要的开发习惯,而这是不被允许的。
基于金融等行业的特殊性质,对数据安全性和模型定制化的需求较高,腾讯云提出了 SMAF 概念,即安全、可管理、可访问和可发现的 AI 框架。通过联创的方式,让银行等企业有自己的大模型和语料,并能够部署到本地和私有化环境。这种框架可以满足更多本地化需求,并让他们在私有化环境中部署和管理自己的大模型。
拥有 15 年写代码经验的汪晟杰认为,“这是软件工程的变化,我喜欢称之为 +AI,也就是软件工程 +AI,而不是 AI+。”
如何更好地整合 AI 与软件工程、如何度量 AI 对开发效率的提升以及如何在私有化环境中管理和使用 AI 模型是接下来要探索的问题。
探索开发者作为导航员,与 AI 结对编程之路
接下来,中软国际解放号平台部副总经理钱卫春以“与 AI 结对编程——软件工程领域大模型的探索与实践”为主题,从用的角度,讲述 AI 编程应用中的得与失。
大模型给软件开发带来了新的软件形态:以大模型驱动为核心,人机交互、数据价值重新挖掘和特定任务应用生成等特点。这些变化将改变软件行业的形态,带来新的机遇和挑战。
毋庸置疑,大模型可以改变软件开发过程,提高开发效率,减少加班,让生活更加美好。钱卫春粗略估计:“大模型在提高效率方面的比例初步估计至少 30 %以上”。
目前大模型在代码翻译、生成注释、生成 SQL 语句、生成单元测试代码、生成测试文档、生成配置文件和部署脚本等方面都有很好的应用,但是在解读业务代码和生成高复杂性 SQL 语句方面效果不佳。如何利用大模型进行编程?他提出将大模型作为一个人,与其结队编程。具体方式是开发者作为导航员,让 AI 担任驾驶员去写代码,开发者只需告诉大模型写什么代码。这个过程需要程序员学习提示词工程,面向提示词的方式完成开发任务。
钱卫春认为面向提示词开发是未来程序员需要掌握的技能之一,而大模型则是未来软件开发的重要工具之一。大模型精调需要高质量的训练数据,目前 LoRA 训练方法效果较好。最终模型落地可能需要压缩优化,以降低客户大模型落地成本。
大模型描绘 10 倍开发效率开发者远景
华为云代码大模型技术专家、AI 算法科学家马宇驰向我们呈现了“ AI 邂逅一站式软件开发,大模型描绘 10 倍开发效率开发者远景”精彩主题分享。
结合对 AIGC for SE 的业界洞察,他提到围绕大模型的工具、后处理、规划、自学习、模型与模型之间的通信、复杂的调度等能力,都是完整构成用户使用场景中的体验的关键部分。同时,记忆模块的使用和 Prompt 提示工程对于下游生成是很关键性的场景。
关于 AI 邂逅一站式软件开发,从 2021 年 Copilot 正式发布至今,模型能力在这一年得到了快速发展。但马宇驰指出了研发大模型的关键问题与技术挑战:需要考虑包括数据质量、模型容量、训练时间和计算资源,以及大模型的扩展性和可解释性等问题。
大模型会不会是一个终结者?当前这一代程序员会不会已经看到了流星坠落地球,他认为不必如此悲观。AICG 工具在软件开发中应用广泛,虽然该工具可以提高开发效率和质量,但程序员在软件开发中仍然具有不可替代的作用。AICG 工具也需要人类的专业知识和技能来指导和应用。以 CSDN 的开发者比赛为例,CodeArts Snap 已经作为官方插件提供给开发者,帮助他们在比赛中获得更好的评分,事实证明,无论是哪种水平的程序员,在有 AICG 工具支持的情况下,在一定时间内的开发能力,都能得到非常显著的提升。
大模型时代的新开发范式:SAAM(模型即服务)
朱少民教授深入探讨了大模型时代下软件开发的新思路和新方法。他回顾了过去的软件开发方式,强调程序员需要注重代码质量和软件工程的规范。
朱少民教授从“当今如何开发软件?”入手,提到了开源软件对软件开发的影响,强调尽早发布软件让用户使用,得到用户反馈的重要性。此外,他还介绍了敏捷开发方法,强调人的因素在软件开发中的重要性。
朱少民教授还探讨了软件作为一种服务存在的新形态对软件开发的影响。他指出,软件作为一种服务存在,需要更强调软件的稳定性、可靠性和可用性,因此需要研发和运维更好地结合起来,提倡 DevOps。
总的来说,在大模型时代,软件开发需要更加注重代码质量、软件工程的规范,以及软件的稳定性、可靠性和可用性。同时,软件开发也需要更加注重人的因素,强调程序员的价值和团队的协作。
大模型会给软件开发带来新的形态和开发范式。新的形态是软件从产品到服务,再到模型,软件作为一种模型存在,即 SAAM(模型即服务)。新的开发范式是模型驱动开发、模型驱动测试和模型驱动运维。在 SAAM 下,每个研发人员都会有基于大模型的助手,如编程助手和测试助手,未来程序员的能力将更强。
与此同时,数据将变得越来越重要,而代码可能不再那么值钱。提出好的问题比解决问题更重要,因为一旦问题被提出,总是有办法解决的。
未来,基于搜索增强的大模型、知识增强的大模型和智能代理等技术的发展,将进一步提高大模型在软件开发中的作用。同时,软件工程能力也将与大模型相结合,构建基于大模型的工程平台,提高大模型的易用性和实用性。
圆桌对话:大模型会是软件开发的银弹吗?
在 《AI 编程与研发效能论坛会议》圆桌环节,华为云智能化软件研发首席专家王千祥主持,微软高级云技术布道师卢建晖、腾讯云 Cloud Studio 产品技术总监汪晟杰、华为云代码大模型技术专家、AI 算法科学家马宇驰、同济大学特聘教授、“软件工程3.0 ”定义者朱少民几位专家热情地围绕“大模型会是软件开发的银弹吗?”这一主题,分享了他们积累的丰富经验。
卢建晖认为:AI 编程并不是为了取代人类的能力,而是要求我们拥有更高的知识和技能来驾驭这项技术。
汪晟杰则以自己的实践经验为基础,认为 AI 编程应该根据不同的应用场景,进行合适的投入和优化,同时在成本控制的基础上,不断完善AI编程的技术体系。
马宇驰在讨论中也对 AI 编程的发展方向提出了自己的见解。他认为,在现实的软件研发过程中,程序员的主要精力并不在编写代码本身,而是分散在单元测试、代码调试以及各种研发问答等方面。因此,AI 编程需要关注这些下游场景,以便为程序员和学生提供更加便捷高效的研发体验。
朱少民指出,大模型的出现对程序员和学生的学习方式产生了深远的影响,这种变化使得他们需要更高的技术水平和更快的进步速度。
卢建晖补充道,大模型需要形成生态,让更多的人了解软件的本质和用途,这样才能在技术创新的道路上产生更多的“银弹”。
王千祥邀请几位专家们大胆预测:软件工程如果真的有银弹,距离我们还有多长时间?
朱少民表示需要三到四年,马宇认为两年内垂域研发场景会消失,五年后整个软件研发模式会发生变化。汪晟杰则认为一年是思维模式的变化,三年是整个行业的变化,五年是国内生态的变化,十年后才会出现软件工程 3.0。卢建晖表示可能需要八到十年。但是大家有个共识,那就是银弹的出现需要整个行业和从业者的共同努力,而创造未来是最好的预测未来的方式。
推荐阅读:
▶被罚11万元!跳槽员工忘关屏幕共享,向Nvidia展示窃取源码,遭前东家当场抓获
▶108878美元打水漂?App遭山寨后,开发者找库克控诉:你们审核犯了错,把我的开发者账户封了!