【发布时间】:2017-06-08 00:21:31
【问题描述】:
目前在训练我们的 ML 模型(通过 sci-kit)以在运行时使用它们之后,我将它们保存为“.pkl”文件并在服务器启动时将其加载到内存中。我的问题有两个方面:
有没有更好的方法来做同样的事情?一个 .pkl 文件在使用最高压缩后达到 500MB 的大小。我可以用其他更好的格式保存我的模型吗?
如何缩放?我有很多这样的 .pkl 文件(例如,一项任务有 20 个不同语言的模型,同样我有 5 个这样的任务,即 ~5*20 个模型)。如果我同时加载所有此类 .pkl 文件,服务将 OOM。如果我根据请求加载/卸载每个 .pkl 文件,API 会变慢,这是不可接受的。如何扩大规模或选择性加载是唯一可能的解决方案?
谢谢!
【问题讨论】:
-
您使用的是哪些 Scikit-Learn 模型类型? 500MB pickle 文件的未压缩大小是多少?在 Scikit-Learn 类中,主要有 Numpy 矩阵。你检查过它们是密集矩阵还是稀疏矩阵吗?
标签: machine-learning scikit-learn out-of-memory persistence