赵焕芳并行计算技术为市场风险计量注入新动
当前,国际局势复杂多变,国内经济发展面临新旧动能转换,各类风险因素不确定性增多,对银行市场风险管控能力带来新的挑战,同时,随着商业银行资本管理办法的全面落地,对市场风险定量分析的精细化水平提出更高的要求。从技术发展趋势看,随着人工智能的迅速发展,推动了GPU(图形处理单元)、TPU(张量处理单元)等并行计算硬件的深度应用,为金融模型的海量计算打开了新思路。面对新挑战,农业银行牢牢抓住防控金融风险这个主题,主动作为、前瞻布局,结合市场风险巴Ⅲ内模法的实施,实现基于GPU并行计算技术的估值引擎自主创新,破解了市场风险管理领域大规模金融数学计算的算力难题,打开了市场风险高效计量和精准管控的新局面。
中国农业银行研发中心副总经理赵焕芳
市场风险计量面临海量计算新挑战年1月商业银行资本管理办法正式实施,标志着巴塞尔协议Ⅲ最终版在中国落地。新资本管理办法对市场风险管理精细水平、基础数据质量、模型复杂度和系统算力性能提出了更高的要求。数据管理方面,引入风险因子有效性测试工具,金融机构需全面评估现有市场数据的支撑情况,需要积累长周期高质量市场数据和交易数据。估值和计量方面,引入市场流动性风险因素,强调资本计量所需模型应基于日常内部风险管理模型,做到将压力测试、情景分析等定量分析融入日常内部风险管理工作中,对金融机构的估值计量和资本定量分析能力提出了更高要求。计量频率方面,明确损益归因测试、压力测试和返回检验的计量频率,涉及到风险情景生成、风险估值、风险重估值、损益计量、归因分析等大量复杂计算,新内模法计算规模将达数百亿以上数量级。要求金融机构需要强化底层计量引擎支撑能力,提升系统算力水平,以适应新资本管理办法要求和内部管理精细化需要。
传统风险计量引擎难以满足算力新要求我国商业银行在市场风险估值引擎的建设上起步较晚,在市场风险计量以及估值等核心功能上,大部分金融机构通过采购国外成熟的产品,来快速构建市场风险管理相关系统,满足内外部管理要求。近年来,在国际形势趋于复杂的大背景下,随着金融科技的快速发展,我国大中型银行正在加速数字化转型,积极推进市场风险估值引擎等核心功能的自主创新。
当前主流的金融市场估值引擎的技术选型有三种:一是基于传统的分布式架构实现估值引擎。应用Hadoop技术体系下的Spark、Flink等框架实现分布式计算,由于数据文件的读取、频繁的数据网络I/O交互,数据shuffle操作等特性,在处理大量计算密集型任务时性能受限。二是基于数据库实现估值引擎。基于分布式数据库的估值引擎,计算模型全部通过数据库中SQL语言实现,复杂计算模型完全依赖于数据库中的底层函数,在模型实现的灵活性上较差,性能依赖于数据库性能。三是通过分布式内存架构实现估值引擎。通过自定义消息组件和RPC通信协议实现金融市场业务估值模型的分布式内存计算,有较好的性能扩展性,但随着节点增多,在解决数据一致性等问题上面临挑战。
面对市场风险计量中数倍或指数级增长的估值需求,CPU架构横向扩展的能力和管理成本的劣势凸显。体现在随着节点数量的增加,节点之间的网络通信开销增大、资源调度的复杂性增加,针对数据一致性的共识机制问题造成数据多副本保存,限制了大规模集群线性扩展能力,且大规模集群运营成本将大幅增加。
并行计算为海量金融市场风险估值开辟新路径金融市场产品估值的本质是以金融市场交易数据、市场报价和各类场景参数为基础,按照产品现金流折现公式或数值计算公式进行数学计算。由于估值模型计算公式的复杂性,在传统估值计算模式下,通常采用逐笔交易逐个场景进行循环估值计算。在金融市场风险的VaR/ES等大规模复杂计量场景下,针对不同产品类别、不同风险因子以及不同风险情景组合,可排列组合出大量的估值请求,属于典型的高并发、重复性计算场景。GPU拥有更多的核心数量,其结构包含了数以千计的轻量级计算核心,适合处理大量复杂度低且无状态的并行计算,这与金融产品估值的高并发、重复性计算场景相契合,使得其成为执行复杂数值计算和数据分析的理想选择。相对CPU,基于GPU的估值引擎更具优势,GPU能在单位时间内处理更多的数据流,这对于需要大量重复计算的应用场景能极大地提高效率。
从技术实现角度,有多种路径可以选择。一是面向GPU底层接口代码开发。如面向CUDA、OpenCL等开源的GPU编程接口进行并行计算开发。二是基于GPU通用加速框架。如目前在深度学习领域比较常见的TensorFlow、PyTorch框架,针对大规模的矩阵计算进行加速。三是应用Python并行计算库。在数值计算和数据处理领域的CuPy、cuDF等,可将CPU上的NumPy、Pandas等计算库无缝移植到GPU上进行并行计算。可以基于金融机构的技术栈基础和技术积累选择合适的落地方案。
农业银行新一代估值引擎建设实践面对新挑战,农业银行守正创新,以核心模型和计量引擎完全自主创新为目标,实现了基于GPU的新一代估值引擎建设,破解了金融市场风险管理中对大规模金融数学计算需求的算力难题,为市场风险新内模法实施及市场风险精细化管控提供了算力支撑。
引擎落地的关键是将海量市场风险估值问题转换为高并发的矩阵运算,大幅提升单位时间计算效率。在数据处理方面,将由交易数据、市场数据组合成的海量估值场景进行向量化,作为并行计算的数据基础。估值计算内核实现方面,结合金融市场估值模型大规模复杂数学计算的特点,研发了基础算子组件库,支持数值计算、概率统计、插值计算等常用金融工程计算;按照估值模型特点将估值过程抽象为多个适合并行处理的GPU核函数,由向量化数据驱动GPU多线程并行处理,从数据并行和模型并行两个层次实现并行计算,提高估值效率。引擎基础框架实现方面,将计算框架与估值模型分离,估值模型可按需灵活扩展,支持估值任务灵活配置和调度,同时支持CPU/GPU异构分布式计算,适应不同估值模型计算场景。
从性能表现看,挂载某种中等配置型号GPU芯片的单台GPU估值引擎环境和由10台虚拟机组成的CPU估值引擎集群环境相比,随着估值量增大,GPU估值引擎性能优势越明显,以3亿次估值为一个计量批次,GPU估值引擎相比CPU的估值性能提升10倍以上,且具备良好的线性扩展能力。从综合性价比看,数个搭载GPU芯片的PaaS云容器即可以替代由数十个节点组成的传统CPU服务器集群,将大幅降低硬件资源投入,减少运维成本。目前该引擎已正式投产应用,支持债券、外汇等金融市场业务估值,支撑市场风险VaR、ES等关键风险指标计算,用于资本计量、压力测试、限额管理等业务场景,计量准确性和性能表现良好。
总结和展望商业银行高质量发展离不开过硬的风险管控能力,中央金融工作会议对金融风险防控提出“早识别、早预警、早暴露、早处置”的要求,“早”是关键所在,要求银行在风险计量和管理上具备主动性和前瞻性。在市场风险领域,基于海量风险情景的高效风险计量是主动识别和管理风险的前提。农业银行坚持以数据和新技术应用为核心,赋能业务发展和风险防控,创造性的将AI算力和风险计量有机结合,打造了市场风险计量的“新质生产力”,推进VaR、ES等核心风险指标计量效率换挡提速,实现了从“算得对”到“算得快”“算得活”的跨越,通过强大的计量算力支撑全交易台细颗粒度的风险计量和高频的压力测试,提升了风险计量精准度和风险识别敏感度,赋能市场风险精细化管控。实践证明,基于GPU的并行计算能力可以极大提升金融工程计算效率,通过合理的计算模型,也可以应用于流动性风险计量、量化交易、投资决策等计算密集型场景,加速上述领域的大规模批量复杂数学计算,并行计算技术的广泛应用必将为金融机构业务决策和风险防控能力提升带来质的飞跃。
(此文刊发于《金融电子化》年10月上半月刊)
转载请注明:http://www.yangtuoa.com/zjjy/13136.html