另外有一个并发为 N 的训练节点。由于是离线训练,因此训练节点在迭代开始之前可以预先把所有数据读取到训练节点当中。然后在每一轮迭代中,当训练节点收到从模型节点发送的最新的模型之后,就会从预先缓存的全量训练数据中选择一小部分数据(Mini-batch)。基于当前最新的模型计算一个模型更新,模型更新通过某种方式发挥到模型缓存的节点。模型缓存节点把这个模型更新应用到之前保存的最新模型上就可以完成一轮迭代,最后得到下一轮迭代开始的模型,模型缓存节点再把模型发送到训练节点并开始下一轮迭代。
最后介绍一下 Flink ML 未来的发展,如图 25 所示。Flink ML 在 2022 年 1 月份的时候发布了 Flink ML API,其中结合 Alink 的 API 设计,考虑到流处理算法的开发,对 API 做了重新的架构设计。在 2022 年 7 月份的时候发布了一个版本,主要是开发了高效的 Flink ML 的基础设施。未来,预计在 2022 年 11 月份的下一个发布版本中,侧重于特征工程算法,并考虑一些业务场景进行落地。最终希望将 Flink ML 做成我们传统实时机器学习实施标准。
7. 参考资料
大家如果对 Flink ML 感兴趣,可以看一下项目的 GitHub 和文档,链接地址如图26 所示。