数据准备与Spark处理
使用Apache Spark和Kubeflow Spark Operator处理原始交易数据。Spark任务执行数据合并、类型转换、特征工程(如添加时间戳、生成唯一ID)和点-in-time特征计算(历史交易统计)。处理后的数据以CSV和Parquet格式存储至MinIO对象存储。
特征工程与Feast集成
通过Feast特征商店管理特征,确保训练与推理的一致性。定义特征视图(如distance_from_home、ratio_to_median_purchase_price),应用特征定义并物化特征至在线存储。特征数据上传至MinIO,供下游流程使用。
模型训练与ONNX导出
使用TensorFlow/Keras训练神经网络模型,处理类别不平衡问题。特征包括行为信号(如distance_from_last_transaction)和交易属性(如used_chip)。训练后模型转换为ONNX格式,确保跨平台推理性能。
模型注册与治理
通过Kubeflow Model Registry注册模型,分配唯一名称和版本(如"fraud-detection")。存储元数据(模型格式、存储位置),支持审计和版本管理,实现生产级治理。
实时推理与KServe部署
使用KServe部署ONNX模型为实时推理服务。自定义Python预测器集成Feast在线特征存储,根据user_id实时获取特征并执行推理。通过Kubernetes自定义资源定义InferenceService,确保低延迟预测。
环境设置与流水线运行
本地Kubernetes集群(kind)部署Kubeflow Pipelines、MinIO、KServe和Spark Operator。上传合成数据至MinIO,构建自定义容器镜像(数据准备、特征工程等),并通过Kubeflow UI导入和运行流水线。
测试与验证
端口转发推理服务后,使用curl发送预测请求(如user_0),返回欺诈概率结果。完整代码开源,支持自定义扩展。
结论:该蓝图提供了可复现的MLOps工作流,结合Kubeflow生态工具,实现从数据到部署的全生命周期自动化。