1、大模型在OpenHarmony软件工程领域的创新实践王俊涛华为资深工程工具专家 测试SIG成员王俊涛华为 资深工程工具专家 测试团队技术负责人 测试SIG成员2012年加入华为,先后负责过终端设备的平台与应用软件开发、测试与认证、工程工具的设计与研发项目,2019年带领团队参与操作系统的设计、开发和测试工作,从0构建起OpenHarmony的DT测试工具,HiSmartPerf系列性能调测调优工具集等,建立了从开发自验,测试到调优的一整套工程工具体系。目 录CONTENTS1.大模型时代下软件工程的机遇和挑战2.OpenHarmony 软件工程能力的探索与实践3.未来展望大模型时代下软件工程的
2、机遇和挑战大模型为软件工程带来的变化大模型等技术的兴起催生软件工程3.0的到来,软件工程进入智能化阶段,人机协同的工作模式已融入软件工程的各个阶段,以GitHub Copilot为代表的AI助手目前正极大的提升软件工程的研发效率与质量。软件工程1.0软件工程3.0敏捷、精益DevSecOps自然语言编程人机协作模型数据飞轮注重项目化管理采用瀑布模型CICDCMM/CMMI1968年联邦德国召开NATO会议“软件工程”学科诞生软件工程2.02001年敏捷联盟发布敏捷宣言2023年大模型突破LLM驱动下软件工程新范式需求分析架构设计代码编写代码检视测试维护问题定位工程师完成全部流程大模型生成+工程
3、师修正需求交付问题修复测试设计性能调优构建部署数据运营大模型为软件工程带来的挑战LLM驱动下的软件工程新范式,旨在通过LLM辅助工程师完成软件工程中的各项子任务,而实现LLM在软件工程中端到端的任务执行仍存在多方面的挑战。大模型生成存在幻觉p 意图冲突:生成的内容与指定任务的意图完全不同。p 上下文不一致:生成的内容与上下文存在不一致性。p 无效内容:生成了对任务没有任何贡献的内容。p 知识冲突:生成的内容与已知事实或知识库中的信息相矛盾。p 自相矛盾:前后两次回答中提供了互相矛盾的信息大模型生成存在安全问题p LLM生成的代码包含实际上并不存在的包/库。在包混淆攻击中,攻击者利用LLM生成的
4、代码中的包幻觉,发布与虚构包同名的包,并包含一些恶意代码,导致用户下载使用攻击者创建的恶意包。p LLM容易被攻击者数据投毒,存在安全威胁。攻击者对训练数据的篡改,增加了大模型生成恶意内容的概率。大模型生成存在消极影响p 大模型生成既有积极的影响(效率提升),也有消极影响:生成功能错误、难以理解、难以调试和修复的代码。大模型鲁棒性问题p 面对Prompt输入变化或扰动时,大语言模型的输出不稳定。业务复杂场景适应性差知识更新后模型训练成本高“黑盒”大模型的可解释性OpenHarmony 软件工程能力的探索与实践OpenHarmony软件工程能力探索基于业务工作流逐步探索人机协助最佳分工模式,沿开
5、发、测试、调优、问题分析4条作业流建设关键AI原子能力,构建全流程AI辅助研发作业流,支撑内部与外部鸿蒙生态研发效率的提升。维护准备阶段开发阶段测试调优调试编译构建 代码静态分析代码开发分析与设计学习调测阶段运营阶段智能问答知识映射代码生成/补齐开发自测试代码修复代码转换代码翻译用例生成测试数据生成UI自适应测试XTS生成代码维护重构代码检视问题定位代码注释生成日志分析性能调优代码重构系统设计软件设计测试设计编译优化任务分配AI辅助代码生成鸿蒙原生应用全面启动,公司内外对AI辅助鸿蒙原生应用研发具有强烈的诉求。UI代码生成&API代码生成基于上下文代码生成&基于注释生成n 实践成果:构建多场景
6、代码生成能力,累计产生84w行代码。n 实践措施:1、基于大模型的数据衍生:采样高质量种子数据,通过多样化衍生,利用大模型构造不同场景和难度的数据,增强模型的泛化能力。2、仓库级依赖关系学习:基于代码之间的相关性,分析依赖关系,采用图结构进行组织,实现长距离依赖关系的学习。3、基于语法树的数据构造:借助语法树分析代码块的完整性,构造贴合真实场景的代码块数据,最小化训练数据和实际数据分布差距。AI辅助代码检视人工检视耗时耗力,对检视人员的经验要求较高。大模型具有较好的泛化能力,通过大模型进行代码检视可以提高代码审查的效率和准确性,从而提高软件的质量,提升合