CSDN 创始人蒋涛对话北大谢涛:AI 正在变革软件工程

d28ba4805f209770a33caf9217d151ce.gif

【CSDN 编者按】生成式 AI 的爆发已经开始改变很多行业的工作方式,但对于软件工程来说,转型早就开始。一位顶级华人学者在一篇16年前的经典论文中就已尝试用智能化的方式解决特定的软件工程领域的问题,在之后的十几年,这篇智能化软件开发领域的早期经典代表作引领着无数技术人在软件工程领域开疆拓土。

对话嘉宾:

谢涛 北京大学讲席教授

2f2572f53a957073aa4b93a2e1a402ae.png

北京大学讲席教授、计算机学院软件科学与工程系主任,欧洲科学院外籍院士、国际计算机学会(ACM)会士、电气电子工程师学会(IEEE)会士、美国科学促进会(AAAS)会士、中国计算机学会(CCF)会士。主要研究领域包括软件工程,系统软件,软件安全,可信人工智能。

蒋涛 CSDN 创始人&董事长

37609e4d57c5fb14a01829811909e701.png

25 年软件开发经验,曾领导开发了巨人手写电脑、金山词霸和超级解霸。

1999 年创办 CSDN(China Software Developer Network)。CSDN 是专业的中文 IT 技术社区,目前注册会员超过 4300 万,涵盖 90% 国内 IT 开发从业人员。

2011 年创办极客帮创投,作为懂技术的投资人,先后投资了聚合数据、巨杉数据库、传智播客、乐动卓越(我叫 MT)、IT 桔子等 100 余家高科技创业公司。被投项目中 SequoiaDB 巨杉数据库作为业界领先的金融级分布式关系型数据库产品,连续两年入选 Gartner 数据库报告,传智播客、柠檬微趣已于 2019 年、2017 年分别申报中小板和创业板上市,淘手游也被贵州省列为第一批科创板备案名单。

责编 | 何苗      

出品 | CSDN(ID:CSDNnews)

2021 年,一篇发表于 ASE 2007 的经典论文,让 ASE 将「最有影响力论文」奖项颁给了北京大学讲席教授谢涛和当时的博士生 Suresh Thummalapenta。ASE 与 ICSE、ESEC/FSE 并列为软件工程三大国际顶会,在 ASE 历年最有影响力论文奖获奖作者中,谢涛是首批华人作者。

这篇论文中,谢涛与学生提出用机器学习提高软件研发效能的方法,将大规模的代码搜索、机器学习和数据挖掘结合。这也让他成为最早开展智能化软件工程研究的学者之一。

海外求学与执教的 14 年后,谢涛寻得契机回到北大任讲席教授,继续高水平科研工作。作为最早开展智能化软件工程研究的学者之一,他对 AI 及其应用的认知深入底层,对于 AI 新秀 ChatGPT,他表示:“ChatGPT 是模式上的大进步。它可以不停地对话,让用户把真正想要的东西表达清楚,仅仅是把需求搞清楚这一个点,就能让 AI 的效果和可用性往前迈一大步。”他相信未来中国也能够做出自己的 ChatGPT。

近两三年在智能化软件工程领域,大模型得到了极大关注。Copilot 的惊艳首发,让大家看到大模型在代码生成、代码审查、代码缺陷检测等方面的巨大潜力。再加上 ChatGPT 的拿手交互式对话,AI 技术为基础软件的发展提供了哪些新的方向和机会?对国产基础软件行业的发展有着怎样的展望?我们将从 CSDN 创始人&董事长蒋涛与北京大学讲席教授谢涛的深度对话中为大家悉数呈现。

视频内容收录于今日头条科学频道联合中国计算机学会(CCF)推出的“这很科学”之《科学真言》系列视频。

视频地址:https://live.csdn.net/v/262912

对话实录:

蒋涛:当前人工智能自动生成代码方面的发展状况如何?

谢涛:代码自动生成就是把实现用户所需功能的代码自动生成出来。假设用户需要一个快速排序算法的实现(给定的输入是一个整型数组)。把这个需求以自然语言的方式给到代码自动生成系统后,系统就可自动生成实现快速排序算法的代码。这是一种比较常见形式。

除此之外还有其他的生成形式。还是以排序功能为例,此时给到代码自动生成系统的是一个形式化需求规约,其表达给定输入为任意整型数组,输出为一个对其经过排序后得到的数组。系统就自动生成实现排序功能的代码,并不限定使用哪种排序算法。

如今代码补全(也叫代码续写)是产业界软件开发常用的一种工具辅助。类似于大家使用输入法工具感受到的,打出前几个字,后面工具就会自动提示下文。代码补全是代码自动生成当前在产业界已经落地的主要应用场景之一。但从使用上,两者有一些本质区别。代码自动生成可以在使用者读不懂被生成的代码或者不知道自己要写什么样代码的情况下使用,而代码补全通常要求使用者知道自己要敲什么代码,AI 只是让敲代码更快些。

蒋涛:代码自动生成已经在基于人工智能的代码补全的基础上更进一步。随着微软的 GitHub 发布 Copilot,各大公司也都推出代码自动生成引擎,DeepMind 曾发布 AI 编程系统 Alpha Code,但没有引起太大反响,是因为该技术有一定局限性吗?

谢涛:这里有好几个局限性,也是科研攻关的重点。

要让代码自动生成在某个软件企业内部落地,可能需要针对该企业软件开发的本地特点再学习、再训练,以便更好地提供定制化服务,要做好并不容易,不过我相信将来都可以解决。当前用于代码生成任务评估的常用数据集 HumanEval 是一个自包含的数据集,其中代码通常没有去调用第三方库等。但在真实开发场景里,所写的代码很可能会去调用一些第三方库或是自己写的库。 如果要生成的代码调用了企业内部的库,就可以通过上述的再学习、再训练去应对,但要想效果好并不容易。

另外,所生成代码的简单性、可理解性目前也没有很好地解决。如果能有机制去确认所生成的代码完全正确,而不用使用者去看它、改它,就能在使用过程中省下很多时间。除了人肉眼看代码外,如何保障生成代码完全正确?或许可以提供一些测试用例,但它不一定能完备,代码仅仅是通过了测试用例也不能让人放心。当然,也可以提供形式化需求规约并使用定理证明来证明所生成代码符合给定的规约,不过这么做需要较大的人力投入,并且对其支撑的工具也尚未成熟到能应对较大规模、产业实践中的代码。

蒋涛:写完代码或生成出来的代码能用 AI 判定其质量吗?

谢涛:产业界已经开始做这样的尝试,例如基于大数据或 AI研发出一个自动代码审查的工具。一些企业已经部署了这类工具,以数据驱动的方式来去辅助人工代码审查。除了代码审查外,AI 也可以助力测试任务。不过这些仍然是开放性的问题,需要长期攻关才能让落地效果足够好。

蒋涛:人工智能越来越强,会不会把普通人的饭碗抢了?甚至把程序员自己的饭碗也抢了?哪一类的程序员可能受到威胁?

谢涛:写代码时思考、设计较少的程序员岗位会受到威胁,比如传统意义上的“码农”。代码自动生成在特定领域效果很好,比如面向终端用户编程的一些领域。具体来说,BI 部门要紧张了,原先依赖于数据分析师根据数据分析需求去写 SQL 语句、可视化脚本等,现在自然语言翻译到 SQL 语句效果已经做得很好。在各种软件工程任务比如软件测试上,将来测试数据生成、测试预言生成等都可以被 AI 去自动化,前提条件是有足够多足够高质量的数据去喂给 AI。不过,研发基础软件等复杂软件的软件工程师应该不用发愁,因为这些研发工作太复杂了,应该不会受到 AI 的威胁。

蒋涛:人工智能不仅是程序员的帮手,还会干掉一部分人重复性的工作。一些数据分析的工作,可能会逐渐被机器人取代,研发基础软件的工程师则不必过于担忧。什么是基础软件?国内发展现状如何?

谢涛:业界对基础软件的定义范围不尽相同,但基本共识是包括操作系统、编程语言、编译器、数据库管理系统、办公软件以及浏览器在内。广义的基础软件还包括一些开发工具、测试运维工具等。办公软件因为太常用了,且在工作中处于关键位置,因此也成为了底座之一,现在被认为是基础软件重要部分。此外,一些工业软件支撑着工业应用的底座,也被包含在特定行业的基础软件里。

国产基础软件有很多子领域存在卡脖子的情况,比如操作系统,广义的工业软件 MATLAB 等等。也许大家要问 Linux、Android 等很多操作系统都是开源,怎么就被卡脖子了?很大一部分原因在于生态上的限制,导致其话语权不在我方。

国产操作系统近几十年发展良好,国家也一直在支持。但现在主流国产操作系统的“心”(内核)还是 Linux,尽管我国程序员与企业在 Linux 内核的贡献比例很大,甚至国内大厂华为对 Linux 内核的贡献如今位列第一,但是回到上述关键词——话语权,还是呈现贡献者多但核心决策人员话语权少的状况。但我国在大数据、 AI、云原生等相关的开源新兴领域有一定话语权。中国新一代技术力量正迎头赶上,企业的发展常常等不及其他人来引领,就自得投入并孕育出不错的研发核心人才,也因此在新兴领域有些建树。

蒋涛:如何定义基础软件的核心人才?

谢涛:有这样一个例子。回北大之前,我曾在 UIUC(University of Illinois at Urbana-Champaign,缩写为 UIUC)计算机系任教。该系有个 2005 年毕业的博士名叫 Chris Lattner,他的博士生导师 Vikram Adve 也是我的前同事,他们推出的 LLVM 构架编译器与 GCC 并列为三大编译器之一。Chris Lattner 后来被称为 LLVM 之父。他的导师告诉我, Chris 在读博期间就研制了 LLVM 编译器的基础设施,毕业后他就打定主意要去产业界,并且展现了很强的能力,拿下很多 offer,最终进入了苹果。Chris 当时的想法是:“谁允许和支持我继续把 LLVM 发扬光大,我就去哪儿!”Apple 全力支持了此事,所以 LLVM 后面发展势头很好。这里我们可以看到基础软件核心人才身上的特点。

蒋涛:人工智能的应用如今也非常广泛,水能载舟亦能覆舟,AI 成为了一部分人的帮手,也成为了一些不法分子手里的利器。央视曾曝光诈骗集团利用人工智能技术让机器人打诈骗电话,拨出 1700 万通电话,最后有 80 多万人上当,总计骗取 1.8 亿,而被骗的人从电话里根本分辨不出是机器人的声音。有没有 AI 技术可以辅助识别机器人骚扰电话,保护普通群众?

谢涛:大数据、AI技术越来越多被诈骗团伙等犯罪分子利用,使广大用户受害的事件层出不穷,要对其进行绝对防治是很难的。就像安全领域的攻和防的关系,我们只能通过提高诈骗门槛来一定程度去防治。目前 AI 技术已经使得发动攻击、诈骗的行动变得门槛很低,也能做出很逼真的机器人合成声,以及非常逼真的交谈内容。对于普通大众用户来说确实挺难防这些 AI 诈骗的手段。

以我的亲身经历为例分享一下防骗心得。有骗子曾以短信询问我某个业内同行的电话号码。这种询问途径其实不太常见,一般人不会直接就发短信来询问另一个人的电话号码。我们可以认真分析,如果一件事情所发生的途径并不自然且不常见,那么很可能就会有问题,要多加小心。

蒋涛:现在高仿技术越来越强,Deep Fake 可以在视频里换脸,高仿技术现在能做到什么样的程度?怎么样甄别高仿网站或者 App?

谢涛:仿冒的网站、App、邮箱、微信,诈骗短信、电话等,从照片内容来看是防不胜防,诈骗分子会做得很逼真。普通用户要学会看来源,看一些外围的信息。比如说看网站的 URL 链接。有些电子邮件里面包含网站链接时,它字面显示出来的链接和你复制粘贴到浏览器里的链接有可能是不一样的。有一次我收。有一次一个邮件要求我重设某账户的密码,由于我对软件安全比较敏感,因此没有直接点击邮件内的网址链接,而是复制粘贴这个链接至浏览器出来,这时就很快发现了网址有问题。因此,养成慎重打开链接的习惯很重要。

对于不懂 IT 的老年人,有一个针对移动应用或网站老年人用户的方向——适老化改造,探索怎么样才能让移动应用或网站等对老年人用户更友好。例如,首先技术上要有防诈骗手段支撑,包括 UI 设计、报警提醒等措施。在使用 AI模型到这些场景的时候,参数要设置成更大程度去保护老年人用户,因为他们被骗的成功概率更高。从老年人用户自身的角度来看,接到一个电话要先看看来源是哪里,现在智能手机可自动标注来源,老年人要注重去看这些细节,不要太轻信一些来源不明的信息或者是电话。

点击阅读原文,观看精彩对话视频!

推荐阅读:

▶马斯克回应多年前嘲笑比亚迪;360 周鸿祎训练数字人代替演讲;微软发布自己的 Linux | 极客头条

▶智能并非万能,ChatGPT 虽火,但别忽视 AIGC 的黑与白!

▶阿里研究员吴翰清离职,下一步或将开启 AI 短视频创业

980ca01a7bf26a2ca412348efaf4a7f4.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/17149.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT 点燃向量数据库赛道,刚刚,Zilliz Cloud 云服务重磅发布!

自 OpenAI 在去年 11 月发布 ChatGPT 以来,AI 市场被彻底引爆,国内外科技企业纷纷发布自家的 AI 大模型。国内大模型的发展也迎来前所未有之机遇,“百模”激战正酣。在刚闭幕的世界人工智能大会上,国内外科技公司全线加入&#xf…

会签是什么,何时使用会签,如何设计使用会签

一.会签 1.1会签定义 会签用于与本次审核内容相关的各有关部门进行协商并核签,简单地讲就是多方共同签署,对签字内容进行确认并签字,签字就意味着要负责、要为确认内容承担责任。 1.2会签与加签 会签是多人同时处理,加签是当前处…

SpringBoot实现电子文件签字+合同系统

大家好,我是宝哥! 一、前言 今天公司领导提出一个功能,说实现一个文件的签字盖章功能,然后自己进行了简单的学习,对文档进行数字签名与签署纸质文档的原因大致相同,数字签名通过使用计算机加密来验证 &…

SpringBoot实现电子文件签字+合同系统!

一、前言 今天公司领导提出一个功能,说实现一个文件的签字盖章功能,然后自己进行了简单的学习,对文档进行数字签名与签署纸质文档的原因大致相同,数字签名通过使用计算机加密来验证 (身份验证:验证人员和产…

【开源了】撸了一个电子文件签字+合同系统,爽!

大家好,我是编程君! 一、前言 今天公司领导提出一个功能,说实现一个文件的签字盖章功能,然后自己进行了简单的学习,对文档进行数字签名与签署纸质文档的原因大致相同,数字签名通过使用计算机加密来验证 &am…

springboot+thymeleaf实现公司文件的签字+盖章系统

🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习…

java毕业设计——基于java+Java Applet+access的OA流程可视化系统设计与实现(毕业论文+程序源码)——OA流程可视化系统

基于javaJava Appletaccess的OA流程可视化系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于javaJava Appletaccess的OA流程可视化系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PP…

寒冬已过,2023抓住IT复苏新机会

随着疫情防控进入新的阶段,2023年经济将逐渐回暖,许多行业也将迎来IT需求复苏的新机会。本期,我们就以互联网,金融和房地产这3个支柱行业近期的实际案例,来说明在在线文档领域的新机会。 案例1:某互联网集团A公司&…

OA系统解决方案

一、OA系统解决方案介绍 OA系统,即办公自动化系统(Office Assistant简称OA),它是一个集成了企业信息发布、公文与信息管理、公文处理、知识管理、内部通讯、协同办公等办公与管理应用功能一体的协同 办公系统。OA系统解决方案则是…

【电子发文】在OA发布电子公文的过程与细节

发布电子公文的过程与细节 1 发文稿纸2 公文正文工具套红模板1.样式2.权限3.便捷设置 3审批流程插件1)文号2)更新标题3)清单链接4)归档和发布 4其它的细节 电子发文流程一般包括发文稿纸,公文正文,审批流程三部分 1 发…

黑马】产品经理项目-内容产品项目规划

一,项目背景 二,用户端核心功能 把用户端的核心功能画出原型图 首先分析核心功能:主要有登录注册,内容列表,内容详情,个人中心,内容搜索,内容推荐 先有需求池,然后又需求…

机器学习算法介绍-拔草ChatGPT

最近ChatGPT(https://chat.openai.com)特别火,笔者也借此机会尝鲜了一波。ChatGPT是一个一个大型语言模型,它的功能是回答用户提出的问题。它可以回答很多种类的问题,包括历史、科学、技术、文化和其他话题的问题。它还…

使用国内外的各种人工智能chatgpt等计算房贷

使用国内外的各种人工智能chatgpt等计算房贷 闲来无事想测试一下各个‘人工智能’计算房贷的表现,测试时间是2023年5月30日,可能你测试的结果不一样,以你的为准。 题目 总价:400万人民币, 首付 200万人民币&#xf…

【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio制作蛋仔派对兑换码工具

目录 🍳前言🍳实验介绍🍳产品介绍🍳抓包分析😃登录分析😃😃第一步,获取验证码😃😃第二步,保存验证码😃😃第三步&#xff0…

如何把自有数据接入GPT大模型?

ChatGPT引发了AI革命,大家都想探究如何让它发挥更大价值。 以它为代表的大模型并未完全掌握所有专业知识,这也正是我们创业的契机。 我们应该思考如何让AI在专业领域中释放更大的价值潜能。 就像开发者挖掘出某个鲜为人知的资源一样,我们可以…

5.Eclipse集成开发环境

5.Eclipse集成开发环境 Eclipse集成开发环境不仅可以编译裸机工程,还可以调试整个裸机工程,这样当程序异常的时候,可以更加有效的进行修改。接下来就是搭建整个eclipse集成环境:这个调试环境的框架如下图1-1: 图1-1 从…

[ChatGPT 勘误] 关于 CL_WB_PGEDITOR 的用途

ChatGPT 对于 SAP ABAP 里 CL_WB_PGEDITOR 这个工具类用途的回答: 在 ABAP 中,CL_WB_PGEDITOR 是一个用于管理 SAP Web Dynpro ABAP 页签编辑器(Page Editor)的类。 Page Editor 是一个用于设计和维护 Web Dynpro ABAP 应用程序页…

我的周刊(第070期)

我的信息周刊,记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 🎯 项目 streamlit[1] 用 Python 快速构建数据应用&#x…

ChatGPT应用模板:英文视频转文章

正文共 800字,阅读大约需要 3 分钟 视频翻译、内容制作人群必备技巧,您将在3分钟后获得以下超能力: 1.高效英文字幕翻译校对 Beezy评级 :B级 * 经过简单的寻找, 大部分人能立刻掌握。主要节省时间。 推荐人 | 互联网…

chatgpt赋能python:Python调取摄像头:如何使用Python编程语言进行视频采集和分析?

Python调取摄像头:如何使用Python编程语言进行视频采集和分析? Python是一种广泛使用的编程语言,特别是在数据科学和人工智能方面。但是,很少有人知道Python也可以与摄像头通信,以便进行视频分析和处理。 在本文中&a…