在python中并行运行多个ML模型

时间:2020-08-03 02:01:54

标签: python joblib

我有一个Flask端点,该端点接受一个输入字符串,并在同一字符串上运行10个不同的ML管道,然后合并并返回结果。

每个模型运行需要0.2秒。我正在寻求并行处理此任务。

到目前为止,我已经尝试了以下方法:

  • 多处理-ML管道不可序列化。所以我不能使用它。
  • Joblib-由于ML管道相当复杂,因此与顺序运行模型相比,子流程的创建开销太大,并且运行时间更长。我已经证实可以使用此方法并行运行模型,但是创建子流程需要很多时间。
  • pyspark-与joblib相同的问题。并行任务需要更长的时间才能运行。

主要问题是,每次收到新消息时,Joblib都会创建新的工作程序,并且加载模型和建立管道会占用大量时间。我正在寻找一个可以设置工作程序,将模型加载到内存中并且只是无限期地等待和处理消息的框架。然后收集并返回每个已处理邮件的结果。

0 个答案:

没有答案