9月25日,由中国信息通信研究院云大计算与大数据研究所和人工智能关键技术和应用评测工业和信息化部重点实验室联合主办的「2023大模型工程化论坛」在北京成功举办。aiXcoder(硅心科技)作为AIGC for Code领域的头部厂商受邀参会。基于在代码大模型、企业应用落地等方面的技术积累和服务能力,aiXcoder成为信通院首批AI4SE工作组成员单位,共同推动AI赋能软件工程生态建设,促进产业健康有序发展。
会上,aiXcoder联合创始人兼首席科学家谢涛教授受邀出席并发表「基于大模型的智能化软件工程:机会与挑战」主题演讲,介绍了智能化软件工程的发展历程,基于大模型的代码生成的兴起、应用和挑战,以及aiXcoder 近来的进展。
aiXcoder联合创始人兼首席科学家 谢涛教授 发表主题演讲
aiXcoder成为AI4SE工作组首批成员单位
AI4SE(AI for Software Engineering),是指以大模型等AI技术为驱动的,以提高软件研发运营智能化水平为导向的,以提质增效为目标的,新一代智能化软件工程。
AI4SE工作组首批成员单位名单
AI4SE工作组以“中国人工智能产业发展联盟”和“人工智能关键技术和应用评测工业和信息化部重点实验室”为依托,凝聚人工智能行业和软件工程行业优秀企业和专家,发挥生成式AI、大模型等人工智能技术在软件工程领域的潜力,推动AI赋能软件工程生态建设。
工作组成立后,aiXcoder将与各方共同探讨和研究AI赋能软件工程的现状、方法和问题,制定AI4SE相关标准和实践指南,发布相关行业报告、典型案例等成果,梳理和分析产业落地经验,为技术提供方和应用方搭建沟通交流平台,助力企业软件开发智能化水平的迅速提升。
中国信通院云大所人工智能部主任曹峰表示,伴随着以GPT-4为首的新一代高性能大模型的出现,大模型多维度能力提升有望成为新一代软件工程的技术底座;AI和软件工程的发展走向融合,软件工程迈入智能化时代。以大模型为引擎的智能化能力,使软件开发工具,向多功能多语言工具方向发展;局部效能提升能力备受青睐,企业研发部门找到了DevOps时代的新增长点。
据悉,首批成员单位涉及高校院所、金融、运营商、互联网大厂、软件服务业等多个行业。
基于大模型的智能化软件工程:
机会与挑战
谢涛表示,在经历面向过程、面向对象、面向构件的开发范式后,“面向智构件(Intelligently Constructed Components 智能化创建)的开发,是软件开发提质增效未来方向”。通过「抽象」屏蔽复杂性、保证质量,通过「复用」和「智能化创建」降低成本、提升效率。
aiXcoder基于代码大模型的智能化软件开发系统,已拥有代码自动补全、代码自动生成、单元测试待自动生成、代码缺陷检测与修复、代码注释自动生成、代码解释以及智能代码搜索等智能化开发能力,可覆盖更多开发场景。
代码大模型在落地企业时也面临诸多挑战,目前国内绝大部分企业和研发机构的开发环境无法访问外网,对企业数据和代码的安全要求很高。同时,企业的计算资源有限,如何在广泛部署的时候做到成本可控?企业内部的库和框架等企业领域知识,如何与大模型相结合,提升代码质量和开发效率?这些均是企业在实际应用大模型时需要考虑的问题。
针对以上挑战,aiXcoder已经形成了一套企业适配的智能化软件开发解决方案:
• aiXcoder支持企业私有化部署+代码大模型个性化训练
aiXcoder可以根据企业数据安全及合规要求、结合现有算力资源,将训练完善的代码大模型私有化部署在企业本地,确保企业代码资产安全,支持公有云、私有云、IDC、自建机房等多种部署环境,可根据企业业务量级灵活扩展模型规模。企业依托常规算力即可满足日常编码需求,大幅度降低了企业应用代码大模型的算力硬件门槛,推进智能化软件开发技术普适化进程。
在私有化部署基础上,aiXcoder可根据企业研发需要,基于企业领域代码提供代码大模型个性化训练服务。在保证主干模型的推理能力不受影响的情况下,通过修改模型结构与预测方式,以较小的微调参数,在企业私域数据上获得更好效果;使得模型生成的代码更符合企业自身的业务逻辑和代码规范,进一步提高代码生成效率和准确率。
除此之外,aiXcoder还为企业提供数据统计与分析、开发人员权限管理、企业定制开发等应用和服务,帮助企业在数字化时代的业务创新和智能化转型中取得竞争优势。
在谈到代码大模型的未来发展时,谢涛表示有以下几点值得大家关注:
一是代码大模型的能力提升方面,程序语言和自然语言有很大不同,如何针对代码特性设计模型结构和训练方式是值得探索和推进的方向。只将静态代码输入给大模型会由于输入信息量不足而导致大模型对程序的理解不够,如何构造让模型更容易学习和理解的输入数据,比如增加动态执行信息,通过程序语义等价性生成额外的等价程序,会有助于大模型做到程序理解。
二是代码大模型下游任务的生态建设,包括测试、调试等更多下游任务及应用细分领域的拓展,辅助解决更多的工程任务;以及更多支撑下游任务的工具链,包括需求分解、测试用例生成、调试/修复等工具,以更好地支撑智能化软件工程任务。
最后,我们也需要关注代码大模型时代的工程师教育和培训,让他们更好的扮演“监督”的角色,具备更强的理解程序、判定程序的能力。