Flink AI Flow 是如何把实时推荐系统里面复杂的工作流,用一个完整的工作流描述出来?
举例说明,如图示,假如有一个 DAG,它里面包含了模型的训练,模型的验证以及在线推理这三个作业。 首先,通过Scheduler模型训练的作业,提交上去之后,Scheduler会到Metadata Service里面去更新作业状态,变成一个待提交的状态。假设环境是K8SCluster,那么它会提交到Kubernetes上去跑这样一个训练作业;
训练作业跑起来之后,可以通过作业状态监听器更新作业状态。假设是一个流式的训练作业,跑了一段时间后会生成一个模型,这个模型会注册到模型中心,注册之后模型中心会发出一个事件,表示有一个新的模型版本被注册了。这个事件会到Scheduler,Scheduler会监听这些事件。
当收到这些事件后,Scheduler就会去看有没有一些条件被满足了,还需要做什么动作。模型生成的时候,Scheduler需要对这个模型进行验证,满足后拉起一个作业,也就是模型验证的作业。模型验证作业被拉起后,它会到模型中心找到最新被生成的模型版本,然后对它机型模型验证。如果验证通过,且这个模型验证是个批作业,那么它会告诉Model Center模型被Validated了,这个时候模型中心就会发送一条Model Validated Version Event给Scheduler,模型被更新后,Scheduler会去看Model Validated,触发拉起线上的推理服务,然后再到模型中心把里面刚被Validated过的模型拉过来做推理。
假设推理服务也是一个流的作业,也是一直跑在那里。过了一段时间之后,线上的流的训练作业又生成了一个新的模型,刚才那条路又会再走一遍,它会有一个模型生成的一个 New Model Version Validated,它又会被 Scheduler 听到,Scheduler 又拉起一个Validated 作业,Job2 又会被拉起,拉起之后 Validated 作业又会去验证模型,有可能这个模型验证又通过了,又会发送一条模型 New Model Version Validated 给模型中心,模型中心会把这个 Event 又给到 Scheduler。这个时候,Scheduler 会看到推理作业其实已经起在那里了,可能就什么都不做。推理作业同时也在监听着 Model Version Validated 事件,当它收到这个事件的时候,会去做的一件事情就是到模型中心里面重新加载最新的被 Validated 过的事件。
资料来源:《实时数仓“王炸组合”-实时计算 Flink 版+Hologre》链接:https://developer.aliyun.com/topic/download?id=7944
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。