软件工程3.0的新范式:图灵测试人工智能(AI)
发表时间:2023-09-28 06:01:33
文章来源:炫佑科技
浏览次数:176
菏泽炫佑科技
软件工程3.0的新范式:图灵测试人工智能(AI)
(图片来自《星球大战**集:幽灵的威胁》)
今年是软件工程3.0元年,也已经发布。 它的新软件范式是ML-(机器学习驱动研发和运维),或者更准确地说是LLM-:大模型驱动开发,大模型驱动运维,但是ML模型包括大模型,以及解决问题通常需要不同的途径和方法,因此“模型”更合适。
(软件工程3.0新范式)
虽然我们将GPT-4的发布视为软件工程3.0的里程碑事件,具有决定性的力量,但它并不是一下子就能实现的。 在此之前,人们已经做了很多工作,只有GPT经历了GPT-1、GPT-2、GPT-3、GPT-3.5……见下图。
(GPT的演变史,来自陆奇的演讲PPT)
GPT3.5中的GPT3.5采用了深度神经网络学习和强化学习,这只是基于序列建模的强化学习,而GPT-4则引入了RLHF(g from Human,人类反馈强化学习)技术。 因此,这篇《软件工程3.0前传》主要讨论人工智能引入软件工程的历史故事。
说起人工智能与软件工程的关系软件工程3.0的新范式:图灵测试人工智能(AI),我们可以追溯到1950年图灵发表的一篇文章:《人工智能》。 在这篇文章中,图灵**次提出了图灵测试,人工智能(AI)诞生了(虽然人们普遍认为1956年是人工智能元年,因为有一个里程碑式的事件:约翰正式提出了概念1956年美国达特茅斯学院会议上提出“人工智能”。同年,国际人工智能联合会成立,以促进人工智能技术的研究和应用)。 AI应用于软件工程是20多年后的事了。 例如,在软件测试数据的生成方面,从1976年开始就有这方面的研究,但真正的研究历史应该从1990/1992年算起。
(使用AI算法生成测试数据发表的论文数量)
1. AI驱动的软件需求挖掘和建模
LLM本身就是一个大的语言模型,在以后的需求理解方面可以起到非常好的作用。 过去,人工智能并没有广泛应用于软件需求工程实践,而是更多地应用于学术研究。 华为已经征集了这方面的研究课题。 ,如“研究计划研究基于SysML标准的自然语言处理算法、专业领域词典等方法的综合应用,实现自然语言语料库半自动/自动转换为系统模型,为云端提供基础基于MBSE的建模服务。 能力支撑”。
该领域的研究及其应用实践主要包括:
2. AI驱动的软件设计
在设计方面,AI应用还比较少见。 毕竟,算法缺乏抽象能力、跨领域知识等,但它仍然可以辅助设计,甚至可以利用机器学习洞察力,通过人工智能驱动的工作流程探索复杂设计问题的新解决方案。 解决方案并通过协作和设计集成实现更多产品创新:
3.AI辅助编程
智能代码补全(代码)基于源代码构建语言模型,从语料库中学习现有代码特征(基于编程语言表示和统计语言表示),并根据上下文代码特征检索语料库中*相似的匹配待完成的位置。 用于推荐和预测的项目。 与传统代码补全相比,智能代码补全准确率高、补全形式多样、可学习、可迭代。 在:
这方面的案例很多,比如国内就有。
4.AI赋能测试
AI测试的案例很多,利用智能手段增强测试路径生产能力、测试数据特征诊断能力、测试断言准确性。 大多数案例都是基于图像识别技术和OCR技术来完成图形界面(GUI)的自动化测试app开发,并利用AI生成测试代码(知名工具包括)、界面测试参数等,在GUI上进行功能记录基于计算机视觉识别能力构建的UI的回放、设计还原、性能诊断、在线检测等也逐渐积累起来。 代表平台有Test.AI、Mabl、、、、、RXT、、等,这个公众号之前介绍过很多这方面的内容,比如:
5.AI赋能运维
AI在运维方面的能力也很突出。 因为大数据的存在,AIOps已经形成了一个大方向。 AIOps具有三大能力:
全面感知系统运维状态的能力,如三维实时监控、系统运行日志、报警、历史案例库等;
利用AI算法能力从大量运维数据中提取知识,并根据知识下达命令;
系统具有自动化运维能力。
这里的总结并不完整,但足以说明人工智能在软件工程1.0和2.0时代发挥了一定的作用,而且在某些点和方面表现良好。 但是大模型GPT-4发布之后,它就很全面了,我们甚至不需要做任何设计或者写一行代码,程序就可以运行(参见,)。
更重要的是要向前看,未来在等待着我们。