阿里云 EMR Serverless Spark 在微财机器学习场景下的应用

作者:微财技术研发经理 宋鑫

微财介绍

微财是一家创新型的金融科技企业,凭借多年积累的金融科技能力和数据处理优势,为客户提供消费分期等金融信息服务,致力于成为值得信赖的金融机构合作伙伴。旗下拥有好分期等品牌,为高成长用户提供信用分期借款过程中的综合性信息、技术以及辅助服务。

业务挑战

数据资源是金融科技企业的核心价值,微财依托大数据评估用户借款过程中的风险,随着微财业务的快速发展,积累了大量用户数据,大数据集的训练逐渐成为瓶颈,其成熟度对业务的重要性不言而喻。根据性能、成本、安全、易用性、可靠性和扩展性等多维度评估,我们可以发现,要搭建一套成熟、稳定且高效的大数据模型训练平台需要耗费大量人力和时间成本。

选择 Spark 技术栈

在数据平台计算引擎层技术选型上,前期的架构选型我们做了很多的调研,综合各个方面考虑,希望选择一个成熟且统一的平台:既能够支持数据处理、数据分析场景,也能够很好地支撑数据科学场景。加上团队成员对 Python 及 Spark 的经验丰富, 且Spark拥有比较成熟的机器学习生态,所以,从一开始就将目标锁定到了 Spark 技术栈。

为什么选择阿里云EMR Serverless Spark

在机器学习场景下需要解决的问题,

  1. 一是要突破单机训练使用的数据规模的瓶颈;
  2. 二是要提高训练的效率,EMR Serverless Spark 的全托管服务、灵活的弹性扩缩容很好的满足了这两点问题,保证了用户级别的独立资源供给。

通过与阿里云计算平台EMR团队进行多方面的技术交流以及实际的概念验证,我们最终选择了阿里云EMR Serverless Spark。作为 一站式全托管湖仓分析平台,其自研 Fusion 引擎,内置高性能向量化计算和 RSS 能力,统一的数据工程和数据科学等,都是我们决定选择 Serverless Spark的重要原因。

具体来看,Serverless Spark提供的核心优势如下:

  1. 引擎性能大幅提升:自研 Fusion 引擎,内置高性能向量化计算和 RSS 能力,相对开源版本性能提升 3 倍以上;

  2. 完整 Spark 技术栈集成: 支持使用 DataFrame、SQL、PySpark 等多种编程方式开发批、流、交互式分析、机器学习等不同类型的任务,并进行调度执行;支持通过 Spark Submit、Livy、Spark Thrift Server 等开源兼容的方式进行任务提交;提供内置 SQL Editor 和 Notebook,提供ETL和数据科学一体化开发体验;

  3. Serverless 全托管服务:开箱即用,免运维,无需关注底层资源情况,降低运维成本,聚焦分析业务,秒级资源供给,按任务级别弹性扩缩容;

  4. 高品质支持以及SLA保障:阿里云提供覆盖Serverless Spark 的技术支持;提供商业化 SLA 保障与7*24小时 Serverless Spark 专家支持服务;

  5. 总成本降低:自研 Fusion 性能优势显著;同时基于计算存储分离架构,存储依托阿里云 OSS;能够有效降低集群总体使用成本。

“EMR Serverless Spark让我们有了单独的资源池进行模型训练,避免了资源冲突,同时还解决了我们在存算分离架构下需要处理shuffle稳定性和性能问题的困扰”

——微财产品技术研发负责人

技术数据平台整体架构

数据采集

在微财数据仓库搭建的初期,我们自主研发了 dw-shell 工具,提供了完善的数据采集能力,并且屏蔽了存储引擎和计算引擎之间的差异。这一工具在我们的上云过程中发挥了至关重要的作用,帮助我们在一个月内完成了所有大数据计算任务的全量迁移。

数据入湖

在数据入湖方面,我们采用了 Apache Paimon 作为数据湖存储框架,并集成了 Apache Spark、Flink 和 Hive 作为计算引擎,构建了一个完整的数据湖生态系统。这一系统已经在实时数据监控和分析等场景中得到了成熟的应用,显著提升了我们的数据处理能力和业务效率。

数据科学

我们将机器学习的训练过程从单机训练迁移到了大数据集群,采用本地 Python 环境 + 云端训练的方式,将训练任务提交到 Serverless Spark,保证了本地开发灵活性的同时,充分利用了集群的计算资源,通过自研的模型开发框架vulcan-x,使分布式训练代码的编写、超参调优与本地开发无异,大幅降低了分布式训练代码编写的难度,基本消除了数据科学家开发的学习成本。

典型应用场景介绍

智能风控

为了帮助数据科学家无缝将训练任务迁移到 Serverless Spark执行,我们搭建了风控能力平台 MX FLow,提供以下几方面的能力。

特征挖掘支持

我们在 Serverless Spark 实现了特征挖掘常用的分箱方法,如等频分箱、决策树分箱、卡方分箱等,以及特征评估的相关函数,支持用户使用分布式能力将特征离散化,评估特征的风险区分度。

分布式训练

基于 Spark MLlib 成熟的机器学习生态,我们结合了 Spark MLlib内置算法、以及相关开源算法,如 SynapseML 提供的 lightgbm 分布式实现,为用户提供与本机训练相同的 API,截至目前累计支持了随机森林、逻辑回归、lightgbm、catboot、xgboost等算法。

实际测试中发现,训练耗时基本与数据集的 shape(行数 x 列数) 成正比。在常用的训练 PC 上 400万行的训练集,机器内存已经达到瓶颈,使用 Serverless Spark 使用默认参数进行分布式训练,训练集 5000 万行时,训练耗时在 20 min 左右。

自动项目管理

MX Flow与vulcan-x配合使用,形成客户端与服务端的交互模式,用户在本地使用vulcan-x编写运行的代码产生的过程或结果数据,自动以数据集服务在服务端组织起来,提供可视化过程数据报告、模型管理等功能。服务端也提供了完整的超参调优功能,兼容开源工具 optuna,提供调优过程Dashboard。




总结与展望

随着微财业务数据量的不断增长,我们将会进一步拓展分布式训练的规模。微财在智能风控场景中已经开始深度学习能力的探索,利用多节点的分布式训练框架,如 Horovod、PyTorch Distributed 等,加速大规模深度学习模型的训练过程。未来也希望能够在 Serverless Spark 上能够使用到 GPU 训练的能力,共同探索分布式训练在深度学习领域的应用方向,提高训练效率和可扩展性。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容