1、大语言模型是软件工程的银弹吗?夏鑫 华为演讲嘉宾夏鑫 华为软件工程应用技术实验室主任夏鑫的研究方向是智能化软件工程、软件仓库挖掘和经验软件工程。夏鑫至今发表了290多篇论文,其中包括120多篇CCF A类期刊和会议长文,谷歌学术引用1.2万多次,H-index 62。夏鑫获得了2022年ACM SIGSOFT Early Career Researcher Award(亚太地区第一位),部分论文获得国际会议最佳/杰出论文奖项,包括6篇ACM SIGSOFT 杰出论文奖(连续四年获得软工顶会ASE 2018-2021的杰出论文奖)。此外他担任MSR、SANER、PROMISE等会议的Steeri
2、ng Committee,多个国际会议的PC(ICSE,ESEC/FSE,ASE等),多个期刊的编委(TOSEM、EMSE、ASEJ、JSEP等),以及参与组织了多个国际会议(ICSE 2023和2024,ASE 2016、2020和2021等)。目 录CONTENTS1.背景2.基于大语言模型的软件工程3.数据底座4.研究进展5.结论和展望背景PART 01构建软件工程的未来背景CMU软件工程研究所正在引领社区构建多年的研发愿景和路线图用于设计下一代依赖软件的系统。2.先进的架构范式AI 增强的软件开发(AI-Augmented Software Development):为实现这一目标,需
3、要通过增加AI和自动化工具对开发人员的支持重新设想整个软件开发过程,需要确保利用整个生命周期中生成的数据。重点:AI 增强的软件开发意味着 AI 将在软件开发过程和持续演化过程的每个阶段起特别的作用。确保持续演化的系统(Assuring Continuously Evolving Systems)组件正确的软件构建(Software Construction through Compositional Correctness)工程化社会规模的软件系统(Engineering Societal-Scale Software Systems)工程化 AI 赋能的软件系统(Engineering A
4、I-enabled Software Systems)工程化量子计算软件系统(Engineering Quantum Computing Software Systems)重点研究领域和目标(未来10-15年)1.先进的开发范式2020年12月,Gartner报告:人工智能增强软件开发的新兴技术有可能与脚本化自动化技术相结合,软件工程师手动完成的70%工作将实现自动化;2022年11月,OpenAI发布ChatGPT,充分利用了微软GitHub代码库数据,基于RLHF强化学习技术,在编程辅助的代码样例生成方面取得一定进展。从代码表征模型到大语言模型,深度学习对智能化软件工程的影响在增强Open
5、AI ChatGPT:在辅助编程领域取得一定进展,呈现人机协同提升研发效能的发展趋势。Cursor:GPT-4代码编辑器Copilot X:AI 结对编程工具Ghostwriter:从谷歌云上托管和提供 Replit 的代码编辑软件StarCoder:代码大模型工具大模型的快速发展历程ChatGPT的快速演进基于大模型的智能化软件工程应用开始涌现。ChatGPT大模型带来智能化软件工程技术新机遇Code ExplanationCode TranslationBrushesTest Generation根据选中的代码生成可理解的自然语言描述,Prompt:#explain what a part
6、icular block of code does实现不同编程语言之间的翻译,当前几乎覆盖了所有主流编程语言。目前这个功能处于试用过程中,还在收集用户反馈。集成TestPilot,实现从代码到完整测试方法的生成。TestPilot 将扫描repo中相关的文档注释和代码示例,然后根据这些信息为该函数生成一个单元测试。Adaptive Test Generation Using a Large Language Model除了基础的代码生成功能外,目前Copilot集成了最新的一些基于LLM的功能,包括代码解释、测试生成、代码翻译等,同时还提供了一些代码质量保障的工具,例如,bug修复,调试等。针