中国民生银行信息科技部创新研究团队总监林冠峰:民生银行代码大模型规模化应用方法研究与实践
来源:中国金融电脑 作者:林冠峰、迟倩倩、张胜、王健 日期:2024/7/12
中央金融工作会议明确提出做好数字金融等“五篇大文章”,银行业迈入数字金融转型升级加速的新阶段。随着生成式AI掀起新一轮科技浪潮,数字金融生产工具将迎来重大变革。科技研发是数字化应用转型升级的重要驱动力,如何运用大模型技术深度赋能研发,是未来各金融机构在提升研发效能、优化人才技能培养等方面面临的全新课题。民生银行前瞻布局大模型技术,通过构建研发辅助代码大模型(以下通称“代码大模型”),采用审慎稳健的“慧码”旅程指导方法,有序推动新技术在研发领域的规模化应用,积极培育科技新质生产力,助力数字金融快速发展。
一、代码生成技术的发展现状与面临的挑战
随着大模型技术的高速发展,生成式路线的智能编程在研发领域逐渐展现出巨大的应用潜力。GitHub发布的编程助手CopilotX为业界打造了智能编程工具的样本,掀起国内外代码生成应用的热潮。未来,随着多模态能力增强与智能体发展,大模型将带来全新的编程交互体验,如GPT-4一键生成网页、AI程序员Devin、微软AutoDev等展现了未来自动化编程的雏形。
当前,受限于大模型自身的技术短板,运用大模型技术辅助编程也存在诸多挑战。例如:输入输出的局限性导致结果不完整,欠缺工程全局理解导致生成代码并非全局最优;因大模型幻觉,开发者面临不准确的生成内容、误导性的分析建议等风险。
另外,大模型具备通用代码知识,但对于如银行理财、贷款等专业领域研发知识仍有所欠缺,需通过训练、微调或AI工程实现与私域代码知识的结合,现阶段大模型与私域业务代码结合的技术实现仍面临成本挑战。
二、规模化应用理念:安全为先、审慎稳健
由于金融行业的特殊性,鉴于金融研发工程要求严苛,银行业机构利用大模型赋能研发的推进过程需变中求稳、循序渐进。民生银行根据相关技术发展规律,设计了以“安全为先、审慎稳健”为原则的“慧码”旅程指导方法,旨在为金融科技管理者在代码大模型规模化应用方面提供借鉴与指引。
1.智能代码助手能力等级模型
民生银行将智能代码助手比作汽车行业的自动驾驶技术,并对其进行技术等级分类,从而可以清晰地观察代码大模型当前的状态和未来的发展路径。效仿自动驾驶技术分级的国际标准,可将智能代码助手分为6个级别(如图1所示)。
图1 民生银行智能代码助手能力等级模型
L0级别:无AI辅助。在此基础级别中,开发人员负责编程的各个方面工作,无任何AI辅助。
L1级别:质量促进。此级别可类比于路况实时检测以及自动巡航。开发人员开始使用人工智能提高人类编写代码的质量。
L2级别:知识辅助。此级别可类比于基于路线规划的辅助驾驶,智能代码助手开始参与开发人员的代码开发工作,它尝试理解需求,在大量常规代码实现的经验中匹配和推荐内容。
L3级别:智能代码生成。智能代码助手可以根据上下文逻辑快速生成单行或整个代码块,更大幅度提升开发人员的编码效率。开发人员仍需要设计整体的程序逻辑和控制流程。
L4级别:人类监督自动化。智能代码助手接收到目标后自动化执行相关任务,人类工程师需要审查生成内容,或者检视AI审查的过程,以及验证执行结果。此级别依然要保留集成开发工具(Integrated
Development Environment,IDE),就像自动驾驶依然保留了方向盘和油门踏板。
L5级别:全自主自动化。在编程环节彻底脱离IDE的束缚,智能代码助手接收到目标后自动化执行相关任务,人类工程师一般无需在任务过程中审查输出的代码,只需要验收功能、安全、性能等各方面的最终结果。
2.“慧码”旅程指导方法
从金融研发自身安全、效率、可控等需求出发,民生银行结合在DevSecOps方面的先进实践,提出了“慧码”旅程指导方法。该指导方法兼顾金融行业严谨的软件工程思维与大模型代码能力等级模型思想,将代码大模型的能力发展抽象出质检赋能、生成赋能、自动化编程三个形态阶段。不同能力形态对应代码大模型不同的辅助场景(如图2所示)。
图2 民生银行“慧码”旅程指导方法
在上述每一个能力形态阶段中,借助从探索、测评、构建、规模化到评估的工作环,通过业界洞察、专业化测评、即时构建、规模化实践、评估监督等举措,助力大模型能力有序推广。
三、民生银行代码大模型应用工程构建
1.代码生成辅助工具体系
民生银行加速建设大模型基座平台,结合算力集约化管理,提供了“平台化训练+推理方案”与全流程工具支持,实现对包括代码大模型在内的各专用大模型的纳管,并面向应用提供生成能力服务。
依托大模型基座平台提供的代码生成原子服务,民生银行构建了一体化研发辅助智能工具平台(如图3所示),实现了编程作业嵌入、多语言与多IDE支持、代码生成能力调度、应用探索实验,以及对效能评估的技术支撑。
图3 民生银行一体化研发辅助智能工具平台架构
2.提示词(Prompt)实践
“会提问”是用好大模型的关键技能之一。业界实践总结出的一些提示词方法(如零样本提示、少样本提示、思维链提示等)可指导提示词构建。然而,面对不同的大模型底座,即便是同一个研发辅助场景所使用的提示词也不尽相同,因此需要通过不断实验、优化,积累优秀的提示词交互实践并形成模板,在特定的研发辅助场景中将其固化,或形成工具使用的规范与指引。通过大量的测试与实战演练,民生银行在实践中总结了以下经验。
(1)集约且有效的输入
受大模型输入输出Token长度限制,大模型往往不具备理解一个完整项目工程的条件。如何集约化利用交互输入,使大模型在有限信息下尽量理解开发需求,是大模型代码生成能力实践的关键,可遵循以下原则。
一是最小逻辑单元。例如,在单元测试生成、代码优化场景,以逻辑相对独立的函数、代码块进行输入。
二是必要关联信息。代码之间往往存在复杂的引用关系,可带入必要的引用目标信息,如接口定义、注释、代码逻辑。
三是消除干扰。大模型交互往往会带入上下文信息,如对于独立的生成任务,前几轮生成内容若作为上下文涉入,生成结果将受到“污染”,所以用户端需显式提示生成独立性要求。
(2)控制输出
金融领域软件研发在高可靠、高可用、安全性、扩展性等方面需符合极高的程序设计要求,所以大模型输出内容的质量至关重要,研发人员可通过以下方法进行质量把控。
一是进行严谨性提示。如提示控制引入额外依赖、采用精度更高的计算方法、禁止使用过期方法等,以提升代码的严谨性。
二是明确步骤。对于生成任务,尽量使用人类思考的逻辑提示大模型采用一定的步骤逐步分析,并在每个步骤中提供分析示例。
(3)上下文关联
大模型的代码生成与一般的文字生成任务有一定的差异,交互内容一般混合了代码、文字等不同输入与输出内容。经研发实践发现,提示词即便符合日常沟通语境,生成内容仍然存在较大的不确定性。对此,应通过引导语进行上下文明确信息关联的提示,例如:“根据上面提供的×××内容”“根据前面所产生的代码”“请使用上面第N项提供的代码”等。
四、代码大模型规模化应用方法
1.标准化评估体系
业界测评大模型代码生成能力的主流方法,如HumanEval、MBPP、HumanEval-X等,主要通过Pass@k指标自动化衡量模型在语言理解、算法等方面的准确性,一般应用于大模型论文的效果论证、大模型能力公开排名等。由于测试的开放性,大模型技术提供方可定向微调提升其指标排名,因此,采用此类方法获得的评估结果无法直接作为衡量代码大模型能力的依据,另外,该类方法也无法对生成内容细节进行评价。
民生银行根据对质量、安全等自身需求与行业特点制定了适合金融行业研发领域的标准化技术评估体系(如图4所示)。总体方法框架包含了技术准入评估、总体运行评估、生成代码检测评估、功能评估四个方面。
图4 民生银行标准化技术评估体系
(1)技术准入评估
在金融项目研发工程中,代码质量关乎功能、安全、性能等方面的可靠度,往往比运行结果更受重视。参考“Pass@k=1”一次生成测评方式,采用专家评估法,民生银行对大模型在15类知识点、9项研发辅助场景开展严谨的准入测评,示例见表1。
表1 某语言能力准入测评示例
(2)总体运行评估
总体运行评估旨在为管理者呈现代码大模型工具的效能,通过系统自动化采集,根据评估指标定期统计展现评估视图。“慧码”旅程第一、二阶形态总体运行评估框架见表2。
表2 “慧码”旅程第一、二阶形态总体运行评估框架
(3)生成代码检测评估
检测评估旨在为技术管理者呈现大模型生成内容在质量方面的表现情况,辅助内容安全管理与大模型迭代。生成代码检测评估通过自动化代码检测工具对生成的内容进行扫描,覆盖代码规范、缺陷、安全等方面,实现定期自动化分析结果。
(4)功能评估
代码大模型功能评估旨在揭示代码大模型在各能力域的准确度、规范度、完整性等方面的实际表现,辅助管理者衡量代码大模型各项能力,识别技术能力短板,有助于形成与完善技术应用规范。以单元测试场景为例,其评估指标示例见表3。
表3 单元测试场景评估指标示例
2.端到端运行监测体系
银行业机构往往涉及上百套规模系统的研发工作,开发人员的能力结构、规模分布情况极其复杂。为满足对金融研发领域大规模人员工具使用的管控需求,民生银行依托DevSecOps平台,通过对工具行为、生成内容、功能缺陷、性能缺陷、生产问题等信息的采集,构建了一套覆盖代码交付事前、事中、事后的代码生成端到端运行监测体系(如图5所示),为业界代码大模型安全应用提供了参考示范。
图5 民生银行代码生成端到端运行监测体系
3.试点管控及推广策略
按照“慧码”旅程指导方法,综合考虑现阶段各形态能力成熟度,民生银行聚焦相对成熟的“质检”与“生成”两大形态,根据管控需要,形成两阶段推广策略,各阶段执行方案遵循“按领域、分批次、定范围”指导思想,具体推广策略如下。
(1)试点探索
通过标准化技术评估,按不同研发板块,划定低风险系统模块,设计“质检”、“生成”辅助功能范围,分阶段开展工具试点应用,积累工具问题与最佳实践,同时推进大模型升级迭代。
(2)工具推广
民生银行构建了运营下沉机制,建立教练团,形成教练辅导开发者的辐射圈,采用交付周期闭环监测策略(如图6所示),关注代码生成质量趋势。
图6 交付周期闭环监测策略
(3)深化应用
民生银行推动代码大模型与行内私域代码知识相结合,开放代码大模型能力与研发工程平台形成连接,逐步扩大研发辅助应用场景,进一步提升研发质效。
五、总结与展望
民生银行基于“慧码”旅程规模化应用理念,根据标准化评估方法与闭环管控策略,面向全行低风险系统模块自研团队完成试点探索,稳步进入常态化推广阶段。总体来看,代码大模型为提升研发效能带来了积极的影响。据试点评估,在严格遵循行内标准的代码质量、安全等各类门禁与流程要求的情况下,在AI代码占比(20~30%)、生成采纳率(30%以上)等工具效能方面接近业界实践水平,通用类技术研发场景辅助效果显著。未来,随着资源的持续投入以及对工具的不断迭代,民生银行将持续深化技术应用,主要开展以下几项工作。
一是加快推动私域代码知识的集成。将民生银行自研的基础框架技术、标准接口、代码规范等私域知识,通过检索增强生成(Retrieval Augmented
Generation,RAG)、向量数据库、微调等方式与大模型结合。
二是积极预研AIGC低代码工程体系。基于民生银行现有的低代码平台基础,引入大模型技术,打造更加智能的业务功能装配,赋能数字化应用加速迭代。
三是前瞻探索研发助理智能体。融合开发规范、运维规范、安全规定、科技流程等知识,实现研发流程端到端AI赋能,并积极探索编程智能体调度能力。
大模型对研发工作的重塑,具有巨大的现实意义。民生银行将持续探索大模型技术赋能金融科技研发提效,助力数字金融快速发展。
作者:中国民生银行信息科技部创新研究团队总监 林冠峰
中国民生银行信息科技部创新研究团队 迟倩倩 张胜
中国民生银行数据管理部大数据平台中心 王健
|