《林东、高赟-为实时机器学习设计的算法接口与迭代引擎.pdf》由会员分享,可在线阅读,更多相关《林东、高赟-为实时机器学习设计的算法接口与迭代引擎.pdf(25页珍藏版)》请在三个皮匠报告上搜索。
1、演讲者:林东-阿里巴巴高级技术专家 Apache Kafka PMC高赟-阿里巴巴技术专家 Apache Flink Committer共同作者:张智鹏 阿里巴巴高级开发工程师为实时机器学习设计的算法接口与迭代引擎为实时机器学习设计的算法接口与迭代引擎流批一体的迭代引擎流批一体的迭代引擎FlinkFlink MLML 生态建设生态建设面向实时机器面向实时机器学习的学习的APIAPI#1#2#3#1#1面向实时机器学习的面向实时机器学习的APIAPI为什么需要Flink ML API减少重复开发。提升社区合作效率。复用复用算法模块算法模块隐藏实现细节。统一算法使用体验。提升业务开发效率。提升算法
2、开发效率。支持以json格式表达组合。组合并封装组合并封装算法模块算法模块优化优化用户体验用户体验Flink ML API需要改进的要素传统的Estimator/ModelAPI无法表达需要多输入多输出的算法表达能力表达能力传统的Estimator/Model API无法透出会被实时更改的模型数据实时训练实时训练之前的Flink ML API存取大型模型需要用户的繁琐操作易用性易用性支持模型数据实时传输的API145632提供无模型语义的抽象类更易用的模块存取API流批一体的训练和推理API更易用的参数存取API支持多输入图结构的机器学习作业Flink ML API设计要素Flink ML A
3、PI代码概览更易用的参数存取API更易用的模块存取API支持多输入的训练API支持多输入多输出的推理API支持模型数据实时传输的API提供无模型语义的抽象类WithParams.Stagevoid save(String path)static Stage load(String path)EstimatorModel fit(Table inputs)TransformerAlgoOperatorTable transform(Table inputs)ModelModel setModelData(Table data)Table getModelData()在线训练+实时模型部署静态数据
4、(Flink HDFS Source)动态数据(Flink Kafka Source)特征处理(AlgoOperator)在线训练(Estimator)前端服务器模型数据(Flink Kafka sink)训练数据原始数据outputs=algoOperator.transform(inputs)model=estimator.fit(inputs)model.getModelData.sinkTo()前端服务器前端服务器model=new ModelA()model.setModelData()outputs=model.transform(inputs)支持DAG图结构的模块组合及封装特征
5、处理(AlgoOperator)在线训练(Estimator)特征处理(AlgoOperator)在线推理(Model)EstimatorAModelA训练数据A训练数据B推理数据A推理数据B推理结果生成ModelAGraphBuilder生成EstimatorA算法开发者不需要为生成的算子实现fit/transform/save/load构建DAG#2 2流批一体的迭代引擎流批一体的迭代引擎流批一体迭代:场景Unified Iteration for Streaming/Batch:Scenarios离线训练算法Offline Training线性分类/拟合决策树/Boost Tree聚类K
6、NN频繁项集LDA实时训练算法Online TrainingFTRL在线聚类算法前向反馈Backward Notification预测服务实时参数调整需要同时支持离线与在线场景Required supports for both offline and online cases流批一体迭代:场景Unified Iteration for Streaming/Batch:Scenarios初始模型Initial Model模型缓存Model Cache训练数据源(有限)Training Data Source(Bounded)模型更新Model Update训练节点*nTraining Node