我们在离线环境中训练机器学习模型,并将它们保存为Python的pickle文件。
我们正在考虑将这些pickle格式的模型嵌入到流处理中的最佳方法(例如,传感器输入流 > 预测作业 > 输出流)。
Apache Flink ML似乎是使用流数据训练模型的合适选择,但不适合引用现有模型。
感谢您的回应。
此致 Lomungo
回答:
根据您使用的模型,有两种可能的解决方案:
- 可能是最简单的想法是创建一个外部服务,该服务将调用模型并返回结果,然后使用
AsyncFunction
简单地调用该服务。 - 使用某个库,同样取决于您的模型,在
ProcessFunction
的open
方法中加载预训练模型。然后对每条到达的数据简单地调用模型。
第二种解决方案有两个缺点,首先您需要有特定库的Java版本可用,其次如果您希望能够随着时间的推移更新模型,您需要以某种方式外部化模型的元数据。