大家好,我是袁庭新。分享一篇我在陕西理工大学给计算机专业、人工智能专业和网络工程专业的演讲内容。
各位计算机学院的小伙伴们,大家好啊!欢迎各位来到今天的分享会,非常荣幸能在这里和大家相聚。今天在这里,我要与大家共同探讨一个正在深刻改变我们行业、乃至整个社会的热门话题——《AIGC时代面临的机遇与挑战》。
首先,自我介绍一下,我叫袁庭新。不过大家也可以叫我老袁,因为同学们都这么叫我,这样感觉更亲切些。我呢,算是计算机行业里的一个“老炮儿”了,当然,这里的“老”不是指年龄,是指在这个领域里摸爬滚打的时间,一晃眼就是好多年。今天呢,我来到这里,就是希望能跟大家一起分享一些我在计算机行业里的所见所闻,包括最新的技术趋势、行业动态,还有一些我个人的心得和体会。AIGC技术的兴起,究竟意味着哪些前所未有的机遇?又伴随着哪些不容忽视的挑战?我们如何在浪潮中把握方向,不仅成为技术的驾驭者,更能成为推动社会进步的力量?
先给大家介绍一位顶级大佬——里德·霍夫曼。他是著名互联网企业家,领英联合创始人;知名风险投资者,Open AI早期投资人;《纽约时报》畅销书作者、播客主持人。他著有《GPT时代人类再腾飞》一书,这本书探讨了AI,尤其是像GPT-4这样的大语言模型,如何在教育、商业、创造力、社交媒体、新闻、劳动方式等方面提升人类的能力与强化人类的特质。今天我把这本书带过来了,就是这本书。这是人类历史上第一部由GPT-4与人类合著的开创之作!
你们知道吗?这一年来,人工智能,特别是AIGC,简直火的一塌糊涂。从AI生成图片、一键搞定PPT、智能写作助手,到辅助写论文、智能客服,还有AI和法律、教育的结合,这些应用简直遍地开花。对于咱们这些学计算机的小伙伴来说,最感兴趣的莫过于AI如何辅助我编程,还有怎么让软件研发工作也变得智能化起来。是不是听起来就让人跃跃欲试啊?这个板块来给大家介绍两款工具:AI编程助手、AI程序员。
过去这一年里,AI辅助编程工具呈爆发式增长,简直就是百花齐放,百家争鸣的热闹场面!Gartner是美国的一家信息技术研究分析公司,提供了大量专业的行业分析及趋势预测。AI辅助编程在Gartner报告中处于期望顶峰,备受关注。根据最新数据显示,自2023年以来,AI编程工具这个赛道,已经吸金无数,数十亿美元数十亿美元的投资嗖嗖地往里砸。足以显示出这一领域的巨大潜力。
现在啊,你看国内外那些大厂,一个个都摩拳擦掌,争先恐后地推出他们自家研发的智能神器。咱们国内,百度有文心快码,阿里拿出了通义灵码,字节跳动也不甘示弱,推出了豆包MarsCode。放眼国外,微软和OpenAI联手搞了个AI编程神器GitHub Copilot,瑞士有家公司弄了个Bito,还有亚马逊,他们整了个生成式人工智能小帮手Amazon Q。你们发现没?这些科技大佬都不约而同地盯上了开发环节的智能化,这不就是互联网行业最新的风向标吗。
说实话,我在这里没法把市面上所有的AI编码助手一一给大家介绍一遍。但阿里的通义灵码绝对是个亮点,深受开发者们的追捧和喜爱。你们猜猜看,它的插件下载量有多少?超过500万!没错,500万开发者选择了它!更牛的是,它竟然为这些开发者们生成了超过10亿行的代码!是不是听起来就让人热血沸腾?
下面我通过一个小视频介绍下通义灵码AI智能编码工具它的一些核心功能。能帮你续写代码,根据上下文和当前语法自动预测和生成建议代码。帮你写代码,根据自然语言描述,生成你要的功能,编码心流不间断。帮你写代码注释,一键生成方法及行间注释。帮你解释代码,一键生成代码解释。帮你写单元测试,自动生成多种框架单元测试。帮你优化代码,识别潜在的编码问题,提供具体的优化建议代码。帮你答疑解惑,你来问问题,灵码来解答。帮你生成终端命令,终端命令助手,轻松获取命令。帮你一键生成提交说明,自动概括变更内容,简化代码提交流程。这就是通义灵码最核心的一些功能演示。
有那么多AI编码助手可共选择,为何你唯独只介绍通义灵码,有同学可能会问到。为什么通义灵码能获得国内外研究机构和开发者的广泛认可呢?第一个是,通义灵码获得国内外研究机构众多荣誉。通义灵码是唯一进入到Gartner AI代码助手挑战者象限的中国代码助手产品。通义灵码首批通过信通院“可信AI智能编码工具”权威评测,获得4+评级。2024年7月,通义灵码入选2024世界人工智能大会展览镇馆之宝,是首个入围的AI编码助手。第二个是,通义灵码对多编程语言、多编辑器全方位支持。支持Java、Python、Go、JavaScript、TypeScript、C/C++、C#等主流语言,同时兼容Visual Studio Code、Visual Studio、JetBrains IDEs等主流编程工具,为你提供高效、流畅、舒心的智能编码体验。第三个是,通义灵码能代码智能生成,完成工作更高效。通义灵码经过海量优秀开源代码数据训练,可根据当前代码文件及跨文件的上下文,为你生成行级/函数级代码、单元测试、代码注释等;沉浸式编码心流,秒级生成速度,让你更专注在技术设计,高质高效地完成编码工作。
你别看AI编码助手那么强悍,其实它们可不是万能的,也有自己的小短板。比如说,你的代码仓库要是私有的,它可就摸不着门路了,因为它没在你的数据上训练过,对你的私有仓库一无所知。再一个,这家伙没法实时跟你的编程环境互动,就像它没法拿起你电脑上的那些软件工具来帮你干活一样。还有啊,它的自主能力比较差。因为它是靠静态数据训练出来的,遇到那种需要从头到尾、一步一步灵活解决的复杂软件任务,它就有点儿力不从心了。所以啊,虽然AI编程助手很强大,但咱们还是得清楚它的局限性,别一股脑儿地指望它能搞定所有事儿。
随着大模型的持续进化,在语义理解、代码生成、开发工作流等方面的能力也获得了持续、全面的提升。你说,要是有个编程小助手,就像智能汽车能自动驾驶一样,咱们只需要动动嘴皮子,它就能嗖嗖地给咱们写出代码来,这画面是不是挺带劲的。没错,AI程序员,这个听起来就像科幻电影里的角色,现在正一步步走进现实。你知道吗?就在2024年3月12日,Cognition公司放了个大招,推出了全球头一个AI程序员——Devin,这可是AI和软件开发牵手共舞的新纪元啊。还有GitHub,他们也搞了个新花样,叫做GitHub Copilot Workspace,是基于GPT-4这个超级大脑打造的一款AI智能编程工具。不过呢,这些海外产品均基于闭源模型,包括GPT4o、Claude3.5等,在国内产品中无法使用。
再来看一下国内的AI程序员产品,主要以通义灵码AI程序员为代表。通义灵码 AI 程序员是阿里云和通义实验室联合开发的一款 AI 智能体,旨在辅助并部分替代人类程序员完成复杂的编程任务。
无论是哪家公司的AI程序员产品,他们的使用场景是类似的。开发者负责输入需求,然后AI程序员来理解需求和任务拆解,再交由开发者来确认计划,确认完成后AI程序员开始编码实现、自主测试和提交代码,最终开发者进行结果确认。在这个过程中我们比较关注AI程序员的三种使用场景,分别是缺陷修复、测试生成和需求实现。
第一个场景是,AI程序员具备强大的Bugfix Agents全自动缺陷修复能力。它具有项目感知能力,根据缺陷上下文,进行缺陷定位和信息收集,然后生成可用的经过验证的缺陷修复代码。开发者只需确认计划,AI程序员即可自动完成代码修复。整个过程是依靠多个Agents来协作完成的,成为每个开发者的Bugfix小助手。
第二场景是,UnitTest Agents全自动单测生成。单元测试是AI比较擅长的,并且可以大幅度提升代码质量,也是AI编码头部公司比较关注的领域。首先需要对UnitTest模型能力提升,这就需要对模型进行专项训练。第一个控制单元测试生成的数量,包括分支的覆盖;第二个规范性,比如Java单元测试范式的标准;第三个单元测试框架的支持,如JUnit4和JUnit5不能混淆,需要教会模型在不同框架下如何生成正确的测试用例;还有要保证生成的单元测试风格要统一等。通过这一系列的模型训练和优化,现在已经能做到单元测试一次性编译通过率达到40%左右。单元测试能不能实现达到近100%的通过率,这就需要用到Agent技术。通过Agent来建立一个复杂的工作流,包括生成单元测试、编译构建和运行、搜索工程信息、自主修复、报告生成、用例采纳等。
下面通过一个小视频来快速了解下通义灵码AI程序员的使用。通义灵码AI程序员是基于通义大模型的AI编程智能体。我输入需求,AI程序员理解需求,进行任务拆解,我确定计划,AI程序员来编码实现,以及进行自主测试和提交代码,最后由我来确认。我可以提出待解决的问题,AI程序员就会阅读问题详情,然后完成代码库拉取并进行分析,AI程序员基于分析结果生成解决计划。这个时候,我可以查看AI程序员定位的代码文件及方法,同时我可以修改解决计划,给AI程序员增加额外的一个优化点。AI程序员根据计划拟定解决方案,我来查看AI程序员即将修复的代码片段,确认无误后就可以进行下一步了。AI程序员按照解决方案变更代码文件,这时我就可以查看变更后的代码Diff详情了。AI程序员生成合并请求标题及描述,我来完成提交合并请求,还可以查看合并请求。这就是通义灵码AI程序员的核心功能。
作为未来的软件开发工程师,我们不光要学习这些先进的AIGC生产力工具,还得深入了解企业里智能编程的那些实际做法和应用情况。只有这样,咱们才能在技术的大潮里勇往直前,成为带动社会发展和产业升级的主力军。
科技公司最关注的就是研发效能,那AIGC对企业的研发效能有什么样的影响?可以从三个维度来探讨,研发效率、协作效率和个人效率。先说人员技能吧,这可是效率的基础,也是提高效率的突破口,AIGC能帮忙提升开发人员的本事,让他们补上技能上的短板。然后是协同消耗,我们都知道,软件架构越复杂,组织也就越复杂,合作起来消耗就越大,但是AIGC能让流程变得更规范,打造出超级个体,也就是让每个人都能发挥最大作用。最后一个就是持续提高效率了,AIGC可以将非结构化的数据结构化,将结构化的数据模型化,随着工具的不断升级,构建企业的数字资产。
软件工程是什么?软件工程是是人类历史上第一次大规模集体智力协作活动。这里隐含两个关键词,第一个是大规模协同活动,第二个是智力活动。大家知道智力活动有个显著的特点是不可见性,所有的知识都装在各位的脑子里,这也就是为什么软件开发行业要进行专业的分工,因为每个人的智力是有限的。
如果要提升研发效能,这是一个集体协作、知识共享的工作,我们能不能把隐性的工作通过AIGC显性化。比如说,我同事写的代码我知道它是什么,企业里的规范我也知道它的标准是什么。这样,对我来说在软件开发的协同过程中就不会有信息的壁垒。这就极大的提升了我的工作效率。
在大语言模型日益成熟和广泛应用的背景下,人工智能带来了新的人机协同模式。可以分成三个阶段,第一个是大语言模型是一个Copilot阶段,这个阶段大语言模型不会改变软件工程的专业分工,但可以增强领域专业技术,AI研发工具辅助人来完成任务。第二个阶段是大语言模型是一个Agent阶段,它变成了单一职能专家,能够自主使用工具完成预定任务。第三个阶段是大语言模型是一个Multi-Agents阶段,软件开发是一个大工程,我们可以把它拆分成多个模块,再把每个具体的模块交给某个Agent专家来完成开发,这个大工程就变成了由多个Agent互相协作来完成这项复杂的工作,人就负责创意、纠偏及确认。这就是AI程序员要干的事情。
随着我们面临的问题越来越多,技术也越来越厉害,智能化研发工具能干的事儿就越来越广了。一开始呢,它就像个帮手,能帮我们写点代码,这个阶段咱们就叫它Copilot阶段。然后啊,它就能自己搞定一些任务了,像个能干的小助手,这个阶段就是Agent阶段。再往后,它就更牛了,能自己研发新功能,好像有好多小助手一起合作一样,这个阶段就是Multi-Agent阶段。这三个阶段,每个都有它们专门的智能化研发工具来帮忙。
在企业内部完成智能化工具建设,如何从企业级到工程级,全面覆盖各类研发场景呢?智能化工具的建设路径就包括:需求协作、代码生成、异常排查、测试辅助,再到代码审核、文档辅助。比如说,在代码生成阶段就包含代码框架生成、API调用生成、配置文件生成、函数变量命令等。在代码审核阶段就包含,自有规范审核、潜在风险提醒、代码改进建议、提交前代码评审等。企业研发智能化全面的覆盖到了软件开发的各个阶段。
AI辅助编码对于程序员的工作效率提升很大。 来看一份程序员的时间分配数据,在日常工作中,程序员花费三分之一的时间编写新代码或改进现有代码(32%);花费35%的时间来管理代码,包括代码维护(19%)、测试(12%)和响应安全问题(4%);另外23%的时间花在会议以及管理和运营任务上。引入AI编程辅助工具后,开发者的个人工作效率至少提升11.2%,这个数据是怎样得出来的呢?我们可以使用“开发者的编码时间占比 x AI代码生成占比”公式来计算出“个人工作效率提升”的数值。并且随着人工智能的不断发展,开发效能将持续被提升。
现在的科技公司都在使用智能编码助手,像通义灵码这样的智能化工具已成功入职多家金融、汽车、新零售、互联网等企业,来帮助企业实现研发智能化升级。还是以通义灵码为例,我们来看下企业是如何评价通义灵码的价值的,哈啰集团已全面接入通义灵码专属版,与自研产品融合,开发进入智能化创作时代,AI代码生成占比超25%,研发效率提升12%。中华财险是一家积极拥抱“云+AI”的金融保险企业,通义灵码已应用到他们的内部代码研发场景了,用于提升开发效能,使用的研发人员使用占比60%,问答准确率90%。
AI程序员实际落地比学术探索更困难。面临的问题非常的多,如何进行软件过程数据构建、项目感知(项目代码量很大,如何在输入长度有限的情况下拿到足够的上下文)、解决方案生成(如何规划整个解决方案的生成,并保障代码能够自动化合并到项目)、缺陷修复。还有像模型效果、响应时间、可干预性、推理成本等。都是摆在我们面前需要攻克的难关。
尽管AI程序员在落地过程中面临诸多挑战,但我依然持乐观态度。从需求分析阶段、系统设计阶段、软件开发阶段、软件演化阶段、软件维护阶段,AI程序员将成为领航者。我大胆预测下未来:软件开发将从依赖团队配合(人),逐步过渡到,依赖超大算力(机器),逐步形成“机器开发,人审核”的智能化软件工程范式!
最后一个板块给大家介绍些前沿的技术趋势,包括Serverless+AI、AI+可观测性、以及AI原生应用架构。如果想在未来成为一名合格且具备前瞻视野的软件开发工程师,这些新兴且热门的技术领域都是需要去了解的,并且在参加工作前尽可能去系统学习掌握它。这些技术对于许多人来说可能会感到很陌生,甚至觉得有一定的学习难度。但请放心,今天我们并不是来系统学习这些内容的每一个细节,而是希望通过一个宏观的视角,为大家勾勒出这些技术的基本概念、它们如何相互融合、以及它们对未来软件开发和运维可能带来的影响。
Serverless与AI的结合是云计算和人工智能领域的一个重要发展趋势。Serverless架构是一种云计算的部署模型,Serverless架构为AI系统提供了有效的解决方案。随着云计算和人工智能技术的不断发展,Serverless+AI的应用将会越来越广泛。Serverless无服务架构是如何演进来的呢?主要经历三个阶段,应用程序的运行环境是从早先的物理机,到虚拟机,最后演进到Serverless这种架构的。那Serverless有什么价值?这里我给大家举一个例子,为了出行方便最早会买私家车作为代步工具,但是这种方式带来资源占有和维护成本高,以及平时大量闲置,这就好比是物理机。为了解决这些问题,我们可以汽车租凭,好处是灵活租凭使用时长,闲置相对较少,但是也带来一个新问题,扩容相对麻烦,虚拟机就像是汽车租凭。最优的方案就是打网约车,它完全按需使用,没有闲置成本,根据负载自动弹性伸缩。通过以上的介绍Serverless架构的价值也就显而易见了:按需付费,成本节省;弹性伸缩,省事省心;聚焦业务,降低Ops。
Serverless架构与AI的融合,能让应用开发变得超级简单。有了这种按需提供的模型托管服务,企业花很少的钱就能让应用跑起来,特别是Serverless GPU算力模型服务,其成本平均降低了60%。而且啊,开发者只要点点鼠标,就能快速创建和部署AI应用,再也不用为一开始怎么上手发愁了。还有流程化的开发工具和专门给AI用的Studio,开发效率直接飙升了90%!这种架构还特别灵活,组件可以像拼图一样随便组合,方便大家进行二次开发。它还接入了好多云服务,还能通过自定义插件快速扩展功能,这样一来,企业就能更好地积累和重复使用他们的业务资源了。
当咱们把应用程序搬到云上后,运维的工作就不只是盯着看那么简单了,它变得更全面,得叫做“可观测性”。那么,什么是系统的可观测性呢?我们可以借助一些类比来理解:就像开车时候得靠仪表盘知道车况,或者建筑师得拿设计图纸来了解建筑一样,这些都是让人一眼就能看明白情况的东西,它们都是可观测性的直观体现。在软件开发这行,可观测性就是说,咱们能实时地、从头到尾地看到应用程序是怎么运行的,哪儿不对劲儿还能马上报警、找出问题。有了这套观测系统,管理和维护那些IT资源和服务就变得轻松多了。
大家可能对系统的可观测性这个概念还不是特别明白,那我举个实际的例子来说明一下。2024年巴黎奥运会,阿里云为奥运会的14个场馆都装上了一个叫mucar的AI加强版多镜头回放系统。这个系统怎么做的呢?就是把好多摄像头拍到的画面都传到云上,然后用那种特别牛的“ACK Pro集群加上GPU节点”的AI计算能力,在云端实时地重建场景、做3D渲染。就这么几下子,几秒钟内,云端就能做出回放,而且还能直接插到比赛直播里,让全世界观众都能看到。阿里云还得保证奥运会的那些业务系统都稳定运行,就算有很多人同时看,也得保障超大流量访问顺滑。它是怎么做到的呢?靠的就是一个能全面监控整个系统稳定性的大盘,这个大盘就是可观测性的一个实际例子。
软件运行过程中为了保证稳定性,需要观测的维度是非常多的。比如说,得看看基础设置咋样、容器运行得好不好、云产品是不是靠谱、应用是不是顺畅,还有用户体验怎么样。从专业技术角度来说,就是要实现基础设施可观测、容器可观测、云产品可观测、应用可观测和用户体验可观测等。随着AI技术的发展,可观测也在加速迈向智能化,将会形成全栈智能可观测的一种新趋势。企业用户可以像“搭积木”一样轻松、灵活地构建可观测体系。总之,未来可观测与智能化紧密结合是大势所趋。
下面我们来看看软件架构的演进历程。一开始是单体架构,然后变成了垂直架构,接着有了SOA架构、微服务架构,之后又蹦出了云原生架构,现在最火的是AI原生架构。从云原生跳到AI原生,网关这个角色也经历了翻天覆地的变化。在这一连串的变化里,网关技术也是突飞猛进。最开始就是简单的流量网关,还有企业服务总线(ESB),后来有了微服务网关、云原生网关,现在最新的潮流就是智能网关,也就是AI网关!
在AI原生应用架构中,我们会面临一些问题。比如说有,咱们得面对好多API、需要长时间保持的连接、高延迟问题,还有大带宽等诸多技术难题。先说说高延时,大语言模型的推理响应延时要比普通应用高出很多,此时如果AI应用遭到恶意攻击,攻击者的成本会很低,但服务端的开销很高。还有就是大宽带,AI场景对带宽的消耗远超过普通应用,网关如果没有实现较好的流式处理和内存回收机制,容易导致内存快速上涨。这个时候,在AI原生应用架构中,设计一个能够随时随地有效控制和管理应用流量的AI网关变得至关重要。这样一来,企业用AI的时候就既安全又高效了。
问题来了,我们到底需要多少个网关?接入网关、流量网关、安全网关、业务网关、云原生网关......等等。同时,还需要考虑网关的稳定性、安全性、是否方便集成、性能是否出众、是否智能化等问题。
Higress是一款云原生API网关,可以帮助开发者零代码构建AI原生应用。说到Higress的生态,它是AI先行者,在国内率先推出了一整套AI插件,让用户通过很少的代码就能打造AI应用,阿里云的PAI、百炼、通义这些强大工具都已经和Higress无缝对接上了。生态丰富,AI领域Al Proxy对接了20+大模型厂商,不光如此,它还把微服务、容器和安全这些领域都整合进来了。社区活跃,自2022.11开源以来累计发布版本35+。易于扩展,支持C++、Rust、Go、AssemblyScript等多语言开发插件。最后一点,关键它还是开源的,同时还提供了商业版。
云原生API 网关Higress,是基于真实的业务需求而孵化出来的。比如通义APP、模型服务灵积、人工智能平台PAI用的都是Higress网关。它在AI应用、AI模型服务平台、AI模型等业务领域,都有很好的实践案例。
在分布式微服务开发领域,Spring Cloud Alibaba提供了一整套的微服务解决方案,成为技术选型的主流。在AI的浪潮下,Spring Cloud Alibaba积极拥抱AI技术,研发了Spring AI Alibaba项目。
Spring AI Alibaba重磅发布,项目也正式开源。Spring AI Alibaba开源项目基于Spring AI构建,是阿里云通义系列模型及服务在Java AI应用开发领域的最佳实践,提供高层次的AI API抽象与云原生基础设施的无缝集成方案,帮助开发者快速构建AI应用。可以说是,让Java开发者一步迈入AI原生时代。
作为未来的软件工程师,大家可能比较关注的是微服务的发展趋势是什么?第一个是标准化,微服务已经进入成熟发展阶段,常用的组件已历经多年版本迭代,如RocketMQ 5.0、Dubbo 3.3、Spring Cloud 2023、Nacos 2.4。第二个是多语言化,随着业务的多样性,微服务支持Java、Golang、Python、Rust等多语言SDK。第三个是高可用化,研发态、运行态、变更态,领域默认就高可用。
在微服务全景图里,绝大多数的组件都是由阿里提供的,像Dubbo、SCA、RocketMQ、Nacos、Sentienl、Seata、Higress等都是阿里的产品。阿里引领国内微服务架构,相关开源产品有60%市场份额。同时Spring Al Alibaba开源项目,可用于快速构建Spring AI标准应用,在AI场景中有着最佳的实践。更为重要的是,以上提到的有关阿里的组件或产品,都是开源免费的。
聊了这么多有关云原生和AI原生的技术,它们之间并不是孤立的,而是有着相互依存的关系,通过云原生让应用场景更多注入AI,通过AI原生让更多云原生应用赋予智能。
科技如此迅猛的发展,想象一下,未来30年、50年或100年后由AI驱动的世界,会是怎样的?我不知道。身处在这个行业,我已经深刻感受到,一项真正具有革命性的技术,正汹涌的渗入这个时代。面对这些未知,大家难免会感到惶恐、不安。新技术层出不穷,扑面而来,我们甚至不知道从何学起。想给大家分享的东西还有很多,由于时间的原因最后我借用《GPT时代人类再腾飞》书中的一段话来结束今天的讲演:“我们正在亲历前所未有的变革——互联网改变了信息传递的方式,指数级技术快速发展并颠覆商业世界,人工智能正在侵占越来越多的人类领地。面对这些变化,我们需要问自己:未来需要什么样的人才?答案是,成为终身学习者”。
谢谢大家!如果后续还有同学希望进行深入的交流与探讨( 我的地球号:yuantingxin2 )。