如何在 Flask 中缓存大型机器学习模型?

hel*_*eyu 6 python caching machine-learning flask

这是我面临的情况:

我刚刚写了一个 Flask 应用程序,人们可以输入他们想要的文本评论,我的应用程序将从我们的数据集中返回最相似的评论。所以基本上它是一个 NLP 项目,机器学习模型已经训练好了。现在的问题是模型大约为 2.5GB,每次用户输入内容时,它都会加载该模型以进行一些计算。

我对机器学习没问题,但在 Web 开发领域完全是新手。经过一番谷歌搜索,我发现 Flask 中的缓存可能是解决方案,我尝试按照本教程http://brunorocha.org/python/flask/using-flask-cache.html

但是,我未能实现它。谁能给我一些关于正确方法的建议。如果 Flask 缓存是“解决方案”,我会继续研究那些东西并希望我能做到。

小智 7

我会建议您在运行应用程序时加载一次模型。只需在主函数中加载模型即可完成。第一次加载应用程序需要一些时间,但每次调用 predict API 时都会更快。

@app.route('/predict', methods=['POST', 'OPTIONS']) 
def predict(tokenized):
     global model
     "do something"
     return jsonify(result)

 if __name__ == '__main__':
    model = load_model('/model/files/model.h5')
    app.run(host='0.0.0.0', port=5000)
Run Code Online (Sandbox Code Playgroud)


Sal*_*ire 1

您可以在脚本中初始化模型一次,这样它就保留在内存中,而不必重新加载,而不是每次都在函数中加载模型。你可以先尝试上面的方法,而不是使用flask-cache。