版权说明 工商银行智能研发技术及应用 白皮书 中国⼯商银⾏软件开发中⼼2024年10⽉ 版权说明 版权说明 本⽩⽪书版权属于中国⼯商银⾏软件开发中⼼,并受法律保护。转载、摘编或利⽤其它⽅式使⽤本⽩⽪书⽂字或者观点的,应注明“来源:中国⼯商银⾏软件开发中⼼”。违反上述声明者,我们将追究其相关法律责任。 ⽬录 ⽬录 第⼀章概述2 第⼆章智能研发发展现状3 (⼀)基本情况介绍3 (⼆)重点⼯作及成果5 第三章智能研发应⽤案例11 (⼀)智能研发助⼿助⼒信贷国产化转型代码调优案例11 (⼆)智能研发助⼿助⼒资产管理应⽤新⼀代外包转型项⽬12 (三)智能研发助⼿助⼒合作⽅共享服务退汇消息重构13 (四)智能研发助⼿助⼒北京分⾏Pro*C转Python14 第四章总结与展望15 第⼀章概述 第⼀章概述 为深⼊落实中央⾦融⼯作会议关于做好“数字⾦融”等五篇⼤⽂章的⼯作要求,推动⽣成式⼈⼯智能在软件研发领域的创新应⽤,⼯商银⾏组建AI4SE(即AIforSofwareEngineering,智能化软件⼯程)专项⼯作团队,通过“趋势跟踪+实施落地+变⾰管理”的迭代推进机制,实时追踪和动态分析判研业界智能研发现状和发展趋势,加快智能研发助⼿能⼒和配套研发管理机制建设,在智能编码实践⽅⾯取得阶段成效,截⾄⽬前,⼯商银⾏已全⾯推⼴智能编码,实现AI⽣成的代码占⽐达32%。 第⼆章智能研发发展现状 (⼀)基本情况介绍 为解决软件研发领域普遍存在的研发效率低、代码缺陷多、运维成本⾼等难题,同时满⾜⾏内研发质效提升的迫切需求,⼯商银⾏以增强编码环节辅助能⼒、拓宽研发全流程赋能场景为⽬标,建设并发布了智能研发助⼿。 能⼒规划⽅⾯,形成智能研发能⼒地图,以成效为导向进⾏资源投⼊。对研发全流程进⾏拆解分析,形成11个研发能⼒域36项能⼒场景,并结合业界智能研发现状及能⼒成效评估,将能⼒项划分为变⾰类和探索类。重点推动变⾰类能⼒建设,快速实现能⼒的试点与推⼴,产⽣变⾰性成效;适当投放资源进⾏探索类能⼒研究,保持业界先进性。 图1智能研发能⼒地图 具体实施⽅⾯,打造分层解耦智能研发落地框架及配套平台体系,⽀撑 各场景能⼒建设与升级。底层提供多样化资产库建设、模型调优等能⼒,有效解决模型幻觉,提升模型推理能⼒;上层提供场景接⼊层,⽀撑各研发团队具体场景快速接⼊。⽬前,已基于该框架完成代码补全、单元测试⽣成、智能研发问答等编码阶段辅助能⼒的提升,以及CodeReview辅助、智能运维、智能详细设计、测试案例⽣成等研发全流程辅助能⼒建设。 图2智能研发技术架构 配套机制⽅⾯,开展对国内外⼤⼚及⾦融同业研发管理现状及发展趋势调研,积极参与由信通院成⽴的中国⼈⼯智能产业发展联盟AI4SE⼯作组,并建⽴适配⾏内的智能研发配套机制。在具体实施过程中,通过组建专项⼯作团队、加速研发队伍转型、调整研发流程制度三项措施,推动研发组织、规范、流程等研发⽣产关系的调整,持续迭代完善智能研发管理模式。 截⽌⽬前,⼯商银⾏已落地27项智能研发辅助能⼒,其中8项智能编码相关能⼒已在全⾏推⼴使⽤,覆盖7000+名开发⼈员,实现单位时间内有 效代码量提升22.9%,自动代码缺陷检出率超40%,月均减少资料检索耗时约1W+小时;剩余19项研发全流程辅助能力已建成并在各研发部门试点推 进过程中。 (⼆)重点⼯作及成果 1.推进智能研发建设 ⼯⾏软件开发中⼼组建AI4SE(即AIforSofwareEngineering,智能化软件⼯程)专项⼯作团队,加⼊由信通院成⽴的中国⼈⼯智能产业发展联盟AI4SE⼯作组,从前瞻性研究、智能研发场景建设和运营等⽅向,推动⼈⼯智能在软件研发领域应⽤,围绕编码质效提升、研发全流程赋能、AI主导智能研发三⼤⽅向加速推进智能研发助⼿能⼒建设。 (1)提升编码效率和质量:基于⾏内代码开展模型训练和RAG检索增强,利⽤IDE插件实现项⽬⼯程语法分析、跨⽂件感知、上下⽂感知、单测框架 ⾃动识别、相似单测案例检索等技术,实现代码补全、单测⽣成、研发问答、 CodeReview、代码安全检测等能⼒,提升编码质效。 (2)拓展研发全流程赋能:从单⼀编码环节拓展⾄需求、设计、测试、运维等研发全流程,与⾏内研发平台打通,推进详细设计⽣成、⽰例代码⽣成、测试⽤例⽣成、测试脚本⽣成、版本⻛险点⽣成等场景落地。 (3)加快智能体技术实践:推进以AI为主导的智能研发模式建设,加快 智能体技术落地,当前已实现需求、设计等领域的单智能体。 图3智能研发三⼤⽅向 2.加快智能研发应⽤ 在智能研发全流程建设⽅⾯,⼯⾏软件开发中⼼通过对研发全领域梳理,将研发阶段拆解细化,推进智能研发助⼿36项场景能⼒建设,聚焦智能编码辅助领域,通过评审积累⾏内优质代码⽂件,开展模型微调训练,优化IDE插件Java语法分析能⼒等⽅式,推动AI辅助代码⽣成占⽐从22%提升⾄32%;通过提升单测跨⽂件感知能⼒、项⽬单测框架识别、检索相似单测案例等⽅式,推动应⽤平均单元测试⾏覆盖率约60%;智能代码复核⽅ ⾯,将⼤模型代码检查能⼒集成⾄Gerrit代码复核平台,从程序结构、异常处理、性能容量等⽅⾯列出代码问题点,帮助代码复核⼈发现代码质量问题,推动智能代码问题检出率约40%。 图4智能代码复核⽰例 3.规范智能研发资产 为提升模型特⾊能⼒,⼯⾏软件开发中⼼调研国内外⼤⼚及⾦融同业现状与发展趋势,动态对标调整配套研发机制,组建近4百⼈规模的⾼级代码审核团队,依托代码审核提升流程,规模化推进代码语料建设,打造数字资产管理平台,⽀持维护RAG知识库语料、微调测评案例等资产,由开发⼈员提交⾄⾼级代码审核⼈完成审批⼊库。当前已评审积累近百万⾏优秀⾦融代码资产,收集常⻅问题排查⼿册、专有名词对照表、公共构件使⽤说明等约5百份应⽤⽂档,迭代推进模型微调,提升智能问答和代码补全等能⼒效果。 为规范智能研发流程,总结专业能⼒经验并持续赋能⼀线开发⼈员,⼯ ⾏软件开发中⼼总结智能研发使⽤、数据资产测评、模型技术调优、智能研发运营4⼤领域规范指引,编制优质数字资产管理平台使⽤等9份指导⼿ 册,挖掘种⼦⽤⼾近百⼈,组建智能研发运营推⼴团队,开展智能研发专题实战培训,提升智能研发助⼿周活跃⼈数达80%以上,引导开发⼈员掌握与模型交互的语⾔表达和逻辑思维能⼒,使⽤AI辅助⼯具完成重复和繁琐的研发⼯作内容,将更多时间精⼒投⼊到复杂、有创造性的研发⼯作中,深化“⼈机协同”研发模式。 图5数字资产管理平台 4.构建模型测评体系 为保障模型微调效果,⼯⾏软件开发中⼼对标业内代码⽣成⼤模型评估指标及数据集构造⽅法,打造⾃动化测评平台,聚焦智能研发5⼤能⼒ 建⽴私有化测评集,当前已开展16轮模型测评,实施近6千余次业务和技 术案例测评。建设模型基础能⼒测评、模型研发能⼒测评、⽤⼾试点效果测评三层体系,实现模型逐级准⼊;针对真实研发场景,开展灰度发布模型版本⽤⼾试点评估,通过埋点数据形成试点运营指标,在完成⽤⼾测评后快速迭代发布模型版本,缓解常规模型测评⼈⼒投⼊⼤且耗时⻓的痛点问题。 图6模型测评体系 图7模型版本发布机制 5.积极参与⾏业标准建设 为加速智能开发能⼒建设,促进AI4SE⾏业稳步有序发展,中国信通院与⼯商银⾏联合牵头,共四⼗余家头部企业共同编制发布《智能化软件⼯程技术和应⽤要求第1部分:代码⼤模型》、《智能化软件⼯程技术和应⽤要求第2部分:智能开发能⼒》标准,聚焦智能开发能⼒定义统⼀,⾯向智能开发⼯具⼚商和应⽤⽅提供可参考的技术选型和验收标准。 当前⼯⾏软件开发中⼼已公开13项研发⼤模型应⽤相关发明专利,包括“可提升检测精度的代码检测⽅法、装置、电⼦设备及介质”、“代码⼤模型的测评⽅法、装置、计算机设备和存储介质”、“基于优化知识库的⼤语⾔模型智能问答⼯单处理⽅法及装置”等,为开展业务领域级模型微调和代码模型测评等⼯作提供技术参考思路。 图8代码⼤模型标准 第三章智能研发应⽤案例 (⼀)智能研发助⼿助⼒信贷国产化转型代码调优案例 信贷业务在国产化转型过程中,涉及⼤量的OraclePL/SQL存过代码,在针对存量的PL/SQL存过代码进⾏java转型的过程中,开发⼈员使⽤智能研发助⼿的代码解释、代码⽣成以及单元测试⽣成能⼒进⾏辅助开发,有效提升了转型改造的效率以及代码质量。 ⼀是在设计阶段,个贷架构转型需要分析存量的存过代码逻辑,再基于领域驱动设计⽅法进⾏重新设计,因此存过的代码逻辑分析⼀直是⼯作量较⼤的难点。尝试使⽤⼤模型的代码解释功能,降低分析⼯作量。针对⼀些中等难度的存过逻辑,⼤模型给出的逻辑解释的精确度能达到80%以上。 ⼆是在编码阶段,尝试通过⼤模型的代码⽣成的功能,完成简单的增、删、改、查代码编写。按照领域驱动设计模式,业务通过组装实体能⼒、外部接⼝实现业务逻辑。基于多轮交互提供给模型外部实体及接⼝信息,模型可⽣成有效代码占⽐约60%的程序逻辑。 (⼆)智能研发助⼿助⼒资产管理应⽤新⼀代外包转型项⽬ 在新⼀代外包转型项⽬中,对于账⼾、份额交易等场景,涉及到多达60+数据库表的增删改查,其中较多表的字段数量超100+。开发⼈员基于表字段编写实体类存在较⼤⼯作量。通过在智能问题窗⼝中输⼊“根据下⾯的表格⽣成java实体类”解决了开发对于数据库增删改查时⼿动编写实体类的痛苦,助⼒开发⼯作量减少约50%。 图9基于表结构⽣成实体类 同时,对于账⼾、份额交易等场景,涉及表结构数据⼤、字段多,建表语句编写及⾃测阶段造数相当耗时。通过在智能研发助⼿的智能问答输⼊框中输⼊“基于下⾯表结构⽣成建表语句”以及“基于以下表结构造多条数据”,解决了建表语句编写及⾃测时造数的烦恼,通过智能造数能⼒,缩减 了开发⼈员约30%的⾃测⼯作量。 图10智能造数 (三)智能研发助⼿助⼒合作⽅共享服务退汇消息重构 合作⽅共享服务kafka消息推送从对账中⼼迁移⾄⽀付中⼼,在代码迁移过程中,发现存量代码针对不同的topic消息,进⾏了⼤量相同的get和set操作,且使⽤了⼤量的if和elseif判断逻辑,不符合开闭原则,不利于后续代码的扩展。这块核⼼代码必须重构。 通过智能研发助⼿的代码诊断功能⽣成优化代码案例时,调整了主题流程结构。根据⽰例,我们通过⾃⾝对业务逻辑的理解,将这⾥分为kafka消息解析、kafka消息处理、kafka消息返回3个模块,重构后通过3个⽅法处理各⾃模块的功能,主流程清晰明了,提⾼了代码的可读性、可维护性和可扩展性。 图11代码重构 (四)智能研发助⼿助⼒北京分⾏Pro*C转Python 在信创转型背景下,北京分⾏开展了Pro*C转Python代码改造,由于Pro*C技术栈较⽼,利⽤智能研发助⼿的“解释代码”功能,快速了解代码所实现的功能,弥补开发⼈员对过时语⾔不熟悉的劣势,避免存量代码理解错误。同时通过对话框交互式“⽣成代码”能⼒,获得整体的代码流程框架,针对内部实现再次使⽤进⾏逐个功能的修改和确认,在降低技术⻔槛的同时⼤幅提升了开发效率。通过统计分析⼯作量,利⽤⼤模型智能分析和⽣成后,开发⼯作量减少约50%,完成后还可以智能⽣成单元测试,进⼀步保证代码质量。 第四章总结与展望 图12代码转换 第四章总结与展望 后续,⼯商银⾏将加快⽣成式⼈⼯智能在软件研发全流程的创新应⽤,深化AI研发变⾰成效,推动需求、设计、运维等研发环节开展AI适配建设及推⼴,优化智能研发模式并调优组织结构,持续打磨积累优质数字资产,完善⾏业智能研发规范标准,形成标杆模范的⾦融⾏业智能研发产业联盟,通过⼈⼯智能技术构建研发新质⽣产⼒,持续提升端到端研发效能。 第四章未来展望 16