2023年4月23日10点,阳光明媚,春意盎然,云南省金芝专家工作站揭牌仪式在云南大学软件学院1230报告厅隆重举行,北京大学金芝教授,云南大学党委常委、副校长吴涧教授,云南电网有限责任公司电力科学研究院副所长杨莉高级工程师和尹春林工程师,云南大学科技处副处长周维教授,云南大学软件学院党委书记张极冰,云南大学软件学院院长姚绍文教授,云南大学软件学院副院长李武福老师,云南大学软件学院副院长、兼现代工学院副院长杨云教授,云南大学软件学院院长助理张璇教授,云南大学软件学院软件工程系主任朱锐副教授和人工智能系主任谢诚副教授,软件学院双一流建设办公室主任刘金卓副教授及软件学院部分教研岗老师出席仪式,揭牌仪式由云南大学软件学院张璇教授主持。仪式结束后北京大学金芝教授作题为Multi-perspective representation learning for source code analytics的精彩报告,并同现场的老师和同学们亲切交流互动。
软件学院近80余名教职工和300余名各年级研究生聆听了报告。
金芝专家工作站揭牌仪式
▲金芝专家工作站准备揭牌
揭牌仪式在张璇教授主持下有序举行,张璇教授首先介绍了出席揭牌仪式的各位嘉宾及领导并欢迎各位嘉宾、领导及金芝教授于百忙之中莅临软件学院出席揭牌仪式。
▲出席揭牌仪式的嘉宾及领导
揭牌仪式开始前,软件学院院长姚绍文教授致辞。姚绍文教授首先表达了省委省政府对云南省金芝专家工作站建站工作支持的感激,并简要介绍了金芝专家工作站的情况,并对金芝教授能在云南大学建校一百周年这个特殊的时间出席云南省金芝专家工作站揭牌仪式表示感谢及欢迎。姚绍文教授表示,金芝专家工作站是在云南省省委组织部、云南省科技厅、云南省财政厅和云南省人社厅的高度关心和帮助下建立起来的,软件学院一定要把握并珍惜这难得的机会,借助金芝专家工作站进一步提升云南大学软件学院科研水平,加强学术沟通交流,利用好、发掘好专家工作站的科研资源。
▲张璇教授主持揭牌仪式
▲姚绍文院长为揭牌仪式致辞
致辞结束后,在张璇教授主持下,金芝教授同受邀嘉宾领导一同为云南省金芝专家工作站揭牌。
▲金芝教授和嘉宾一同为工作站揭牌
在大家激烈的掌声中,揭牌仪式圆满完成。
▲揭牌仪式圆满完成
金芝教授作学术报告
▲金芝教授作源代码表示学习的报告
金芝教授主要围绕源代码表示学习展开,详细介绍了深度学习技术如何赋能源代码分析工作。
编程语言是高度受限的语言。作为一种交流符号,源代码是用来告诉计算机和程序员该做什么的。尽管它的语法很奇怪,而且充满了不同的分隔符,但好消息是可以使用非常大的开源代码集。这使得将机器学习技术应用于源代码以实现源代码分析变得合理。
尽管NLP领域有很多深度学习框架,但源代码分析有不同的特点。除了传统的编码方式之外,理解代码的意义还包括很多方面。源代码表示可以是Token序列、API序列、数据依赖图、控制流图以及程序层次结构等。金芝老师的报告介绍了在源代码分析中如何富有成效地利用深度学习技术的潜在力量。报告强调了代码表示模型可以用来支持软件工程师执行不同的任务。研究表明,代码确实能够作为可学习的知识,更确切地说是可学习的隐性知识。尽管这种知识不容易在人与人之间转移,但它可以在自动化编程任务之间转移。将为源代码分析提出未来研究的愿景。
金芝教授首先展示了研究成果的实际应用,AiXcoder Demo,说明智能机器人如何辅助编程,接着介绍代码的表示学习的发展历程以及其重要意义,其中从NLP领域最初的one-hot方法讲到今天的NLP表示模型,接着通过对深度学习模型如何学习代码的表示,以及使用深度学习方法的优势进行阐述,同时解释了深度学习为何对代码可行,以及一些需要注意的问题。
▲金芝教授作介绍AIXcoder平台
紧接着,金芝教授从两个角度分析如何进行代码的表示学习,第一个角度是从语法句法的结构,第二个是从自然语言翻译的角度,分别选择了几篇代表性的作品分析代码结构语义以及代码理解,并向同学们介绍有关代码智能的研究日渐火热,在Machine Learning for Big Code and Naturalness上面有最新的进展。最后还举了几个具体的实际应用,如在代码中检测是否存在冒泡排序,以及取得的准确率;以及代码注释的效果,以及辅助API的书写。
▲金芝教授介绍表示学习的两种方式
最后,金芝教授介绍了一些课题组所聚焦的疑难点,并分享经验,同时说明现在离真正的代码智能还有较远的路,分析近年来十分火热的预训练模型如Copilot、AlphaCode等,最后给同学们指点应该在哪几个方面进行着手研究推进代码智能。金芝教授还分析了最近一段时间以来大火的AIGC代表应用ChatGPT。
▲大家认真聆听金芝教授生动丰富的报告
▲实验室李林育同学提问
您怎么看待现在的多模块或多软件库代码生成工作?
▲金芝教授耐心且详细地回答大家的问题
这个刚刚在报告中没有提到,但是此方面工作是我的一个国家重点项目的核心工作,在该项目中我们就研究如何在多软件库或多插件环境下完成代码组装或生成工作。
▲江华老师就实验教学请教金芝教授
您觉得在ChatGPT的时代,教师在编程实验教学中应该承担什么样的角色?
金芝教授耐心且详细地回答大家的问题
ChatGPT虽然已经能够完成基础算法的编程,但是教师在实验教学中所传授给学生的编程思想将是陪伴学生们一生的宝贵经验,而这点是ChatGPT所无法给予的。
▲实验室安民同学提问
您认为代码注释是否可以作为对Code&API序列翻译为自然语言模型训练时的外部知识?您刚刚提到了Prompt Engineering,您认为在未来软件自动化的时代里提示工程是否会变得和传统软件工程中的需求工程一样重要?
金芝教授耐心且详细地回答大家的问题
代码中的注释是可以作为外部知识引入的,并且应该会对源代码转为自然语言起到良好的辅助效果。现在ChatGPT已经能够完成较为基础的部分的需求分析任务,但是需要优质的提示引导,所以提示工程在未来软件自动化中应该是必要的。
金芝教授的报告主题突出、覆盖面广,引起了现场师生浓厚的兴趣。报告会的最后是提问环节。针对师生的提问,金芝教授给予了深入详细的解答。在回答中,金芝教授提到,在AIGC时代,软件工程师要知道个人的编程思想是ChatGPT类应用无法具备的,同时需求分析等较为具体和细节的任务ChatGPT是无法高质量完成的,需要工程师加以优质高效的引导;高阶的软件工程师设计系统要遵循社会对软件系统的约束,不能停留在完成编码的程度,要对外符合社会要求,对内符合系统架构,使软件更有生命力,减弱外界影响。
金芝教授的报告在让在座同学了解专业知识应用、开拓眼界的同时,引发了大家对于源代码分析及代码智能相关技术的兴趣。软院学子在学习交流中获得金芝教授的耐心解答,受益匪浅。
▲金芝教授耐心且详细地回答大家的问题
精彩纷呈的报告在热烈掌声中结束,张璇教授对金芝教授的报告作最后总结,同时就金芝教授为大家带来的前沿学术报告表示感谢。
张璇教授就ChatGPT会不会代替程序员的工作表达了自己的思考和看法,她启发青年学子应该积极拥抱时代、拥抱领域内的新技术、新应用,要大胆勇敢尝试,在科研道路上才能更上层楼。
▲张璇教授总结金芝教授的报告
最后,在软件学院正门,金芝教授亲切地同老师们合影留念。
▲金芝教授亲切地同老师们合影留念
软件自动化未来还有很长的路需要走,金芝教授所带来的精彩报告必将给软件学院学子以长久的启发。
金芝教授的报告,前沿有趣、情真意切、催人奋进,带给软件学院学子的不止一场精彩生动的学术报告,更有金芝教授常年奋斗在科研一线的宝贵精神。
金芝专家工作站的设立为云南大学软件学院乘势而上开启百年新征程注入了新动能,也为云南大学知识驱动智能软件科学与工程实验室带来了生生不息的科研种子。
作为软院学子,要积极传承云大精神,志存高远、勤奋学习,自强不息,树立学术报国远大志向,争取更加优异的科研成果!
近年来,云南大学知识驱动智能软件科学与工程实验室多次邀请金芝教授以线上、线下多种形式为实验室同学和软件学院同学们做学术报告,交流所取得的杰出学术成果,分享科研经验,在取得优异成绩、激发学生科研兴趣和创新意识的同时,进一步提高了实验室同学的创新能力和科研实践能力,极大地丰富了软件学院的科研平台及科研资源。