许多机器学习模型 - 保存和加载



目前,在训练我们的ML模型(通过sci-kit)在运行时使用它们之后,我将它们保存为".pkl"文件,并在服务器启动时将其加载到内存中。我的问题是两个方面:

  1. 有没有更好的方法来做同样的事情?一个 .pkl 文件在使用最高压缩后达到 500MB 的大小。我可以以其他更好的格式保存我的模型吗?

  2. 如何扩展它?我有很多这样的 .pkl 文件(例如,一项任务有 20 个不同语言的模型,同样我有 5 个这样的任务,即 ~5*20 个模型)。如果我同时加载所有此类 .pkl 文件,服务将转到 OOM。如果我根据请求加载/卸载每个 .pkl 文件,API 会变慢,这是不可接受的。如何扩大规模,还是选择性加载是唯一可能的解决方案?

谢谢!

有几种类型的模型可以在不过度损害性能的情况下减小大小,例如修剪随机林。除此之外,在不更改模型本身(即降低其复杂性)的情况下,您可以对内存中模型的大小执行

很多操作。

我建议尝试 joblib 库而不是 pickle 库,在那里您可以使用"压缩"参数来控制压缩的强度(代价是加载时间更长)。

另请注意,鉴于您使用的模型类型,我们可能能够为您提供更好和具体的建议。

相关内容

  • 没有找到相关文章

最新更新