大模型背景下软件工程的机遇与挑战

软件工程的发展可以分为三个阶段:软件工程1.0、软件工程2.0和软件工程3.0。在这三个阶段中,AIforSE(人工智能在软件工程中的应用)的发展历程如下:

软件工程1.0

软件工程2.0

软件工程逐渐从结构化编程转向面向对象编程。AIforSE的应用范围和技术水平得到了进一步发展。例如,基于遗传算法的优化技术被用于软件设计和测试;神经网络技术NLP被用于软件缺陷预测;自然语言处理技术被用于需求分析和知识表示等。此外,软件工程2.0更聚焦于流程统一,例如一些产品如CODINGDevOps、Gitlab等。

软件工程3.0

总之,从软件工程1.0到软件工程3.0,AIforSE的发展历程可以概括为从初步尝试到逐渐成熟,再到广泛应用。随着AI技术的不断进步,AIforSE将在未来的软件工程领域发挥更加重要的作用。

AIforSE和SEforAI

AISE,我先用中文「智能化软件工程」来定义,实际上他有两个方向:一个是AIforSE,另外一个方向是SEforAI。

这两个区别,我们先问下ChatGPT,看看AI是怎么解答的:

可见,软件工程3.0就是AIforSE,解决软件工程2.0流程中的AI化,促使效率提升,流程化简,让AI在关键节点赋能开发。

SEforAI是另一个维度,即思考软件工程流程体系怎么来实现智能化软件应用,例如ML-Ops流程化AI应用研发。

这里我们先围绕AIforSE进行展开,至于智能化应用系统,如最近很火的面向AI的Mojo语言、更面向AI化的应用框架等等,我们以后再进行阐述。

大型代码语言模型(CodeLLM)的兴起。其中一个用在软件工程任务里面的最基本的一个问题,就是代码生成。

从Codex讲起

代码微调Codex

利用GitHub上面的5400万个公开仓库,代码是在2020年5月从GitHub上搜集的,每个Python文件是1MB以下的。最终我们的数据集是159GB。

GitHubCopilot

2022年GithubCopilot正式上线对外公测,它是基于Codex的模型的训练,背靠Github仓库集,通过精调训练的一套面向开发者的代码补全产品。

代码补全的产品价值

2021年10月29日OpenAI发布Copilot后,大家去试用有一个很深切的感受,确实是很震撼,它的能力比起之前的技术提升了一大步。

根据DeveloperSuvey,受访者认为人工智能编码助理将如何改变他们明年的工作,其中编写代码占了82.55%,70%的受访者正在或计划在开发过程中使用人工智能工具,并且学习者比专业人士更有可能使用它们。

在高留存率目标驱动的同时,还必须控制优化好成本,防止高频访问导致速度下降与成本上升、从而劣化产品体验。需要重视badcase反馈与处理闭环、针对性专题性能调优、采取批量计算等策略;通过用户看板观察总结模型版本升级带来的能力增益。最终通过一系列平衡手段,实现AI代码助手在补全场景下的产品价值。

面向开发者的编程提效

实战中,在腾讯云AI代码助手的配合下,我举三个高频使用的场景:

按Entity对象完善getter/setter,甚至是关联对象。

通过结构体,自动生成SQL及DAO对象。

技术对话和代码补全在实战下是相辅相成的,为了做到更好体验,技术对话会采用更大规模的模型来获得更好的推理能力,而代码生成场景下则会采用更小的代码模型来获得更好的写代码的体验感。

高粘性的编程体验

FillinMiddle技术

FillinMiddle的原理简介:

假设我们有一个如下所示的训练示例:

我们希望模型学习jumpsover从前缀Thequickbrownfox和后缀预测中间文本overalazydog。首先,我们进行两次切割来分隔这些部分,引入新的标记

然后我们简单地转置中间和后缀:

现在,我们的训练与之前完全相同,jumpsover从之前的文本预测接下来的文本。Thequickbrownfoxalazydog。该模型自动学习特殊标记的含义,并了解到它应该生成在前缀之后但在后缀之前有意义的文本!在推理时,如果我们尝试填充如下所示的文档:

我们可以将其呈现为:

到模型并请求字符,直到模型发出令牌,此时它已成功将前缀与后缀连接起来。

下面几张截图是AI代码助手通过FIM技术,实现通过光标上下文快速填补中间片段。在真实场景下,非常适合做成对出现的代码函数,比如:加解密函数、通过CR自动生成U(pdate)D(elete)函数等。

更小的代码补全模型

代码补全的触发时机是真正伴随在日常开发中的,无时无刻去根据上文生成下文代码,如下图所示。所以这里的模型更应该是小模型。在AI代码助手下,我们将其定义为补全小模型,带来的性能收益是巨大的。GitHubCopilot也尝试在端上内置更小的微模型,让成本、速度优先作为补全产品的前提。

基于混元大模型的AI代码助手的行业产品

未来基于混元会对外推出公测版本,结合小模型提供可商业化、可私有化、可共创合作,为行业客户的研发AI赋能。

目前支持Python、JavaScript/TypeScript、Java、C/C++、Go、Rust、swift、SQL等主流语言,并支持各大主流IDE平台。

AI代码助手的产品从开发者的频次最高的场景作为切入,以代码补全作为优先行业落地的能力,以技术对话模型共创成对话平台,并计划接入测试和诊断能力。

机遇与挑战

面向行业开发的SMAF机遇

代码模型落地企业会遇到很多挑战。像海外的企业,对于使用Copilot,ChatGPT没有太多的顾虑,但是在国内绝大部分的软件企业或研发软件机构,自己企业或机构内部的代码是不能够流传至外网的,需要私有化部署。私有部署往往需要性能强大的GPU集群,全面开发给大型软件研发团队使用成本很高;以及企业内网环境使用的的库或框架无法使用开源项目代码比如GitHub等,怎么能够支撑好这些场景都需要考虑如何解决。

腾讯自研的代码模型也充分考虑到企业内部数据资产监管所面临的各项挑战和实际诉求,让受管控企业也可以在一个受控的环境内将AI代码助手使用起来,并且希望能够支持全场景。让项目经理、市场人员、设计、开发及测试人员都可以有自己的实现场景,这是我们主要的目标。

什么是SMAF?

SMAF包含以下内容:

Security:AISE产品部署在私有云环境。业务代码内网托管,通过内部训练模型,构建集成IDE环境,通过自定义逻辑集成业务代码与模型输入/输出,杜绝引入外部安全漏洞;

MaaS:具备多模型统一管理能力。引入多个行业模型,基于不同业务特性和团队习惯进行二次训练,从而得到专属的企业模型;

Analysis:具备指标可观测看板。定义关键指标,对于企业管理者,可以有效观察团队使用代码助手对团队的提升效果。

我们在内部进行了长期持续的生产内测,正向反馈逐步增加,统计数数据也证明了产品具备相当的价值,这使我们对产品的进一步优化更有信心。

又如在某外部金融企业客户的实测中,我们基于多模平台导入私有化行业模型,基于内部安全合规的语料进行二次训练和微调,重点打磨代码补全、技术对话特性,逐步推广内部试用,完善产品体验,取得了令人初步满意的成效。

橄榄型产品设计和多模型接入

企业内部可能会存在多种代码模型,不同团队可能会使用不同的模型。而应用侧的产品交互体验,到数据效率报表,这两端则变化不大。于是我们提出了“橄榄型”的应用设想。什么是“橄榄型”呢,就是两端非常的统一,一端是应用交互、执行策略、Prompt设计等高度一致,另一端是数据统计的逻辑,监控和配置平台等高度一致,实现可管理可插拔。中间鼓出来的部分就是多模型接入。用户可以根据不同的业务属性,按需加载不同模型,也可以通过MaaS平台为企业按需训练模型,并发布到中间平台里,通过配置下发,自动更新端上配置,即可满足业务对于模型版本的升级。

大模型的“可信”挑战

我们认为一个值得信赖的代码生成模型,应该具备:

模型“评测”挑战

关于代码大模型的能力提升,这也是我们需要持续去应对的。程序语言和自然语言有很大不同,如何针对代码特性设计模型结构和训练方式是值得探索和推进的方向。只将静态代码输入给大模型会由于输入信息量不足而导致大模型对程序的理解不够,如何构造让模型更容易学习和理解的输入数据,比如增加动态执行信息,通过程序语义等价性生成额外的等价程序,会有助于大模型做到程序理解。

如今大家都采用HumanEval进行准确度评测,百分比不断提升,可能百分之七八十在特定的数据集上。但竞赛题是比较自包含的,没有太大的耦合度和环境,怎么在真实的代码场景里能做到更好也是一个开放性的课题,需要大家一起往前推进。

今年年初,还没有HumanEval的时候,我们非常头疼,怎么来验证模型的正确性和可靠性。我们采用了国外的一个开源框架,思路很简单:用GPT4做老师出题,题目从网上搜刮得来,通过GPT4搜索和清洗。然后进行模型的两两对比。对比打分的也是GPT4,打分标准依据代码的五大维度,即:代码语法、可读性、运行结果、复杂度、完整性。示例prompt如下:

软件工程AISE全流程覆盖的挑战

另一个挑战是代码大模型下游任务的生态建设,包括测试、调试等更多下游任务及应用细分领域的拓展,辅助解决更多的工程任务;以及更多支撑上下游任务的工具链,包括需求分解、测试用例生成、调试/修复等工具,以更好地支撑智能化软件工程任务。

我们目前只定位在开发工程师角度,其他流程下的不同角色还没有探索,也不能仅凭我们来定义。这类人群有着自己的领域知识、实践流程等等。

LLM的规模也许会越来越大,也会有各色的专业垂直LLM问世,扎深特定的方向,做透一个点,找到产品和商业价值,并与流程中的其他垂直人群正交。

AISE不仅覆盖开发者。即便是开发域,国内外的研发差异也不同,定义面向国内开发者的研发流程的AIforSE,需要通过我们对于行业的理解,不断深入思考并不断试错。

整体来讲,AIforSE以及软件工程3.0,是我们需要拥抱的能够让我们振奋人心的方向,但是我们也要冷静的思考,AI和LLM是手段,提高效率降本增效是诉求。如何利用好大模型的落地,控制好LLM的计算成本,找到行业内研发流程的核心问题,通过AI和LLM手段去解决,把最高最紧急的痛点去落地解决。由于大模型的挑战和特殊性,企业也必须冷静思考,推行安全可信的模型验证工作,把AISE的流程的每个核心场景做透做扎实。

THE END
1.数据挖掘概念(AnalysisServices有关如何将 SQL Server 工具应用于业务方案的示例,请参阅数据挖掘基础教程。 定义问题 与以下关系图的突出显示相同,数据挖掘过程的第一步就是明确定义业务问题,并考虑解答该问题的方法。 该步骤包括分析业务需求,定义问题的范围,定义计算模型所使用的度量,以及定义数据挖掘项目的特定目标。这些任务转换为下列问题: https://technet.microsoft.com/zh-cn/library/ms174949(en-us,sql.105).aspx
2.数据挖掘的困境与挑战数据挖掘的困境与挑战 1.背景介绍 数据挖掘是一种利用统计学、机器学习、操作研究、知识发现和数据库等方法从大量数据中发现新的、有价值的信息和知识的过程。数据挖掘可以帮助企业更好地理解市场、提高销售、降低成本、改进产品和服务,以及发现新的商业机会。https://blog.csdn.net/universsky2015/article/details/135810121
3.大数据挖掘和分析会遇到哪些问题4、数据分析结果解读难度大:大数据挖掘和分析的结果往往非常复杂,需要专业的知识和技能进行解读和理解。同时,如何将分析结果转化为实际业务决策和应用也是一个挑战。5、技术和资源限制:大数据挖掘和分析需要强大的技术和资源支持,包括高性能计算机、大规模存储设备、云计算平台等。这些技术和资源的成本较高,可能限制https://baijiahao.baidu.com/s?id=1788959582883701963&wfr=spider&for=pc
4.数据挖掘过程中可能遇到的挑战和难题有哪些?数据挖掘过程中可能遇到的挑战和难题非常多,主要包括以下几个方面: 数据质量:数据挖掘的第一步是数据的收集和整理,而数据质量直接影响着挖掘结果的准确性和可靠性。常见的数据质量问题包括缺失值、异常值、不一致的数据等,这些问题会影响到模型的建立和分析的结果。 数据量大:随着大数据时代的到来,数据量的增加也带来https://www.mbalib.com/ask/question-4287fe162960fd7c73a171c2f700c56f.html
5.数据挖掘分类怎么做的快帆软数字化转型知识库数据挖掘分类中的常见挑战及其解决方案是什么? 在数据挖掘分类过程中,常常会面临多种挑战。首先,数据不平衡是一个普遍问题,某些类别的数据量远大于其他类别,导致模型偏向于大类。为了解决这个问题,可以采用过采样或欠采样技术,以平衡不同类别的数据。此外,特征选择和降维也是重要的挑战,过多的特征可能会导致“维度灾难https://www.fanruan.com/blog/article/591509/
6.代理IP如何助力社交媒体数据挖掘面对社交媒体数据挖掘的诸多挑战,代理IP技术提供了一种有效的解决方案。代理IP,或称代理服务器,充当了用户与目标服务器之间的中介。它允许用户通过不同的IP地址发送请求,从而在多个层面上解决了数据挖掘过程中遇到的问题。 1、绕过IP封锁 当社交媒体平台检测到来自同一IP地址的大量请求时,可能会限制或封锁该IP。使用代https://maimai.cn/article/detail?fid=1842599412&efid=66_C_X4VT7K7UqztO24TKQ
7.软件工程数据挖掘进展分析论文③软件工程数据挖掘的结果分析,结果分析像是对一项工程进行检测验收一样,对挖掘之后的数据信息进行检测,将有用的信息展示出来,也就完成了整个软件工程数据挖掘过程,这些挖掘之后的数据很有价值,对计算机软件和客户的使用效果而言有着重要的意义。 3软件工程数据挖掘面临的挑战https://www.unjs.com/lunwen/f/20190601152421_2086467.html
8.数据挖掘技术方法(精选十篇)数据挖掘技术方法 篇4 关键词:大数据,审计,数据分析 0引 言 审计是保障国家经济社会健康运行的“免疫系统”,在数据信息爆炸的今天,大数据的浪潮促使着审计思维模式的变革。面对已经到来的大数据时代和由此带来的数据量、数据类型、数据处理方式的转变,意味着在大数据环境下进行审计数据分析将面临更大的技术挑战。2012年https://www.360wenmi.com/f/cnkeyg31vygx.html
9.BdRace数睿思“数睿思”数据挖掘竞赛平台(BdRace),专注高校数据挖掘竞技,致力于打造完整大数据生态系统。依托大型的全国性的数据挖掘赛事,汇聚政府、企业、机构、高校、风投等多方资源,为企业提供最优的大数据解决方案,解决企业实际项目需求,选拔高校优秀人才;为高校提供最优的https://www.tipdm.org/
10.列举数据挖掘领域的十大挑战问题列举数据挖掘领域的十大挑战问题 数据挖掘(Data Mining,DM)又称数据库中的知识发现(Knowledge Discover in Database,KDD),是目前人工智能和数据库领域研究的热点问题,所谓数据挖掘是指从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程。数据挖掘是一种决策支持过程,它主要基于人工智能、机https://www.cda.cn/view/18935.html
11.大数据在高等教育领域中的应用及面临的挑战国家政策法规摘要:对大数据概念与内涵的界定主要有3种方式,即生产导向的方式、过程导向的方式和认知导向的方式。大数据在高等教育领域应用对完善学校规划、促进学校发展,感知教学现实、提升教学效能,优化学习经历、提高学习质量以及促进科学研究、推动跨学科发展具有重要意义。教育大数据分析主要采用两种技术,即教育数据挖掘与学习分析。在https://manager.hkxy.edu.cn/s.php/pgztw/item-view-id-54267.html
12.第1章社会媒体社交数据和Python接下来将介绍从社会媒体平台挖掘数据的机遇和挑战。 1.2.1 机遇 开发数据挖掘系统的主要机遇是从数据中获取有用的洞见。其目的是用数据挖掘技术回答有意义的(有时是很难的)问题,从而帮助我们增长有关特定领域的知识。例如,在线零售商店可以应用数据挖掘来了解顾客的购物行为。通过分析数据,店主就可以基于顾客的购买习惯https://www.ituring.com.cn/book/tupubarticle/23905
13.大数据时代会计信息化12篇(全文)结构化会计数据一般应用现代技术可以通过数据挖掘进行分析, 找出其本质及内在联系;半结构化会计数据和非结构化会计数据一般不能直接应用现代数据进行挖掘、分析, 需要预先转化为结构化会计数据再进行分析, 而转化过程通常容易削弱信息的时效性, 甚至导致非结构化会计数据隐含的关系丢失, 削弱了数据分析的效果, 降低了数据https://www.99xueshu.com/w/ikeyz8lssupo.html
14.职业生涯规划感悟:职业生涯规划是一个充满挑战和机遇的过程!想要了解职业规划相关课程报考信息可以立即点击【在线咨询】或者添加专业导师微信进行沟通,也可以先填写【客户需求表单】,等待专业老师与您取得联系! 以上就是本篇文章【职业生涯规划感悟:职业生涯规划是一个充满挑战和机遇的过程!】的全部内容,想要了解更多职业规划相关内容,欢迎前往!!https://www.xycareer.com/knowledge/12031.html
15.企业的管理理念中国企业必然是在适应和挑战这种变化中成长。首先,中国企业在其成长过程中必须面对一个相对不完善的环境,学会在这种环境中生存;其次,中国企业必须清醒地认识到,它现在赖以生存的条件中哪些是落后的,是必然随着社会的发展而改变的,必须认识到任何力图维系这些条件的寻租行为在长期都无法拯救企业,企业应该积极地适应市场https://www.jy135.com/guanli/2322078.html
16.[转载]论大数据视角下的地球空间信息学的机遇与挑战作为地球科学与信息科学交叉融合催生出的地球空间信息学,大数据时代的来临在为其提供更丰富的数据保障的同时,也带来数据存储、管理、分析和挖掘方面的新挑战,甚至造成了某种程度上的“数据爆炸”。从大数据视角,梳理了当前地球空间信息学涉及的地理信息系统、智慧城市、遥感大数据和空间数据挖掘4个核心领域的瓶颈和挑战;https://blog.sciencenet.cn/blog-3472670-1333421.html
17.一文解析:生成技术在时空数据挖掘中的应用澎湃号·湃客我们提出了一种利用生成技术解决时空数据挖掘挑战的方法。首先讨论数据预处理,然后介绍生成技术的适应性。我们还专门设置了一个小节来解决特定的时空数据挖掘问题。为提供结构化概述,我们展示了一个概述流程的框架。 框架示意图 图中展示了利用生成技术进行时空数据挖掘的一般流程。该流程涉及处理从各种位置传感器收集的原始https://www.thepaper.cn/newsDetail_forward_27622047
18.艾媒报告丨20162017中国移动医疗降市场研究报告(附下载)艾媒网讯2017年3月1日,全球领先的移动互联网第三方数据挖掘和分析机构权威iiMedia Research(艾媒咨询)权威发布《2016-2017中国移动医疗健康市场研究报告》。报告显示,中国移动医疗健康市场用户规模稳步增长,2016年第四季度接近3.0亿,与2015年相比,增长16.0%。艾媒咨询分析师认为,一方面是由于当前在线问诊咨询业务的创新突破https://www.iimedia.cn/c400/49397.html
19.新媒体实习报告(通用15篇)我主要担任美妆类目上的重点营销活动的广告运营支持,包括指标达成、客群关系维护,针对各个商家进行分类分层管理,深入挖掘和了解广告主需求,整体把控广告预算并针对日常美妆类目重点营销工作的投放数据,与各个部门协调资源,积极主动沟通提高广告收入。 (二)工作过程https://mip.oh100.com/a/202301/6016030.html
20.大学生个人成长报告(精选15篇)我喜欢打篮球,因为它让我知道了团队合作的重要性;我喜欢赛跑,把别人远远的.落在后面而拼命的追赶我是我的目标;我喜欢听歌,因为它能陶冶我的性情,能让我静静的思考人生;我喜欢挑战一些难事,即使失败了,至少它能让我明白,只要努力了,结果并不重要,重要的是参与的过程,乐在其中就好。 https://www.ruiwen.com/baogao/7363124.html