核心观点与关键数据
场景与需求
- Akulaku业务背景:作为一家主打海外市场的互联网金融服务提供者,Akulaku提供网上购物分期付款、现金贷、保险等服务,主要应用场景包括金融风控、电商智能客服及推荐等。
- 总体架构:系统对接业务上层应用及各层服务,涉及特征计算、模型推理等环节。
智能计算系统构建难点
- 核心难点:
- 线下分析与线上部署逻辑一致性。
- 高吞吐量、低延迟,时效性要求高。
- 特征和模型类别:
- 时间窗口类(如近X天订单数)。
- 群组关联类(如团伙订单数)。
- 关联关系类(如K度图查询)。
- 机器学习模型(如xgboost)。
- 序列模型(如TCN)。
- 深度NLP模型(如BERT)。
架构与案例:智能计算系统实现
- 特征计算方式:
- 场景驱动:业务调用时计算,实现简单,线上线下逻辑一致,但硬件依赖性高,维护稳定性挑战大。
- 数据驱动:数据变更时计算,调用与计算解耦,业务可用性高,但复杂性高,线上线下逻辑一致性难。
- 架构中的位置:
- 场景驱动:OpenMLDB。
- 数据驱动:Flink + RocksDB/PolarDB。
- 案例一:时间窗口
- Flink滑动窗口问题:步长<<窗口大小时,窗口对象过多导致性能下降或OOM。
- 基于FlinkCDC的方案:使用关系型数据库作为中间存储,但依赖外部数据库性能,SQL语义与线下回溯差异大。
- FlinkSQL方案:利用动态表抽象,通过优先队列和MapState管理数据过期,复用Flink特性,但踩边界技术。
- 基于OpenMLDB的方案:使用持久化内存避免写放大和读放大,SQL作为离线与在线桥梁,性能与直接读PolarDB相当。
- 性能对比:
- 数据量:10亿/天。
- OpenMLDB与直接读PolarDB延时:约4毫秒。
- 两者性能基本相当。
- Ray应用:
- 海量任务调度能力:毫秒级延迟,支持异构任务,拓扑图动态修改。
- 案例:
- 自动特征工程。
- AutoML超参搜索。
- 场景Pipeline:动态分支执行,节约编码。
- 基于Ray的动态控制流设计模型推理决策系统。
总结
- 场景驱动与数据驱动:各有适用场景,需根据业务需求选择。
- Ray框架:作为轻量级Python分布式框架,承接特征生成模型,支持数据科学与机器学习。