Apache flink ApacheFlink从文件中加载ML模型

Apache flink ApacheFlink从文件中加载ML模型,apache-flink,flink-streaming,flinkml,Apache Flink,Flink Streaming,Flinkml,我想知道是否有办法(或某种代码示例)在Flink流应用程序中加载经过编码的预训练模型(用python编写)。 因此,我可以使用从文件系统加载的权重和来自流的数据来拟合模型 提前感谢您您可以通过多种不同的方式来实现这一点。通常,最简单的方法是调用从一些外部存储(如s3)下载模型的代码,例如在函数的open方法中。然后,您可以使用您选择的库加载预先训练的权重并处理数据。您可以寻找一些灵感,这是从卡夫卡读取的加载protobuf序列化模型的代码,但您可以使用它来理解原理 通常我不建议从文件系统中读取模

我想知道是否有办法(或某种代码示例)在Flink流应用程序中加载经过编码的预训练模型(用python编写)。 因此,我可以使用从文件系统加载的权重和来自流的数据来拟合模型


提前感谢您

您可以通过多种不同的方式来实现这一点。通常,最简单的方法是调用从一些外部存储(如s3)下载模型的代码,例如在函数的
open
方法中。然后,您可以使用您选择的库加载预先训练的权重并处理数据。您可以寻找一些灵感,这是从卡夫卡读取的加载protobuf序列化模型的代码,但您可以使用它来理解原理


通常我不建议从文件系统中读取模型,因为它的灵活性和维护难度要小得多。但这也是可能的,这取决于您的基础设施设置。在这种情况下,唯一的一件事就是声明管道将运行的机器上可以使用带有模型的文件。

如果模型足够小且是静态的,您甚至可以将其捆绑到jar中。谢谢您的回答。我在考虑用Python训练模型,将其保存在某个地方或捆绑在我的jar中,然后加载模型并在flink数据流上应用预测。要做到这一点,我正在寻找xgboost4j flink或flink jpmml,您是否建议使用其他库?也许是你已经用过的东西,我想这很大程度上取决于你想用的模型的类型。您不一定需要寻找flink版本的ML libs,如果您有这种类型的模型,xgboost4j似乎是一个不错的选择。xgboost4j-flink和flink jpmml似乎是不错的选择,如果它们满足您的需要。但是fwiw、有状态函数和pyflink提供了直接执行python代码的方法。有关使用有状态函数的示例,请参见。封面使用numpy和pandas与pyflink——不确定是否有其他库,但我相信这应该是可能的。