python - 谷歌应用引擎 : Automatically re-deploy once a day to update machine learning model?

标签 python google-app-engine machine-learning

我有以下情况:在 Google App 引擎上运行的 Python Flask 应用程序;这个应用程序提供来自 Spacy 机器学习模型的预测。一整天,都有一个工作流程可以为这个模型添加新的训练数据,并且该应用程序有一个 cron 作业,每天晚上都会考虑这个新的训练数据来重新训练模型。

问题是我希望每个 App 实例在新训练的模型可用后引用它。我可以将模型上传到某个地方(比如谷歌云存储),但最终,每个实例都需要找出这个新模型的存在,下载它,并将它加载到内存/初始化它;这需要时间,所以我只想每天/启动时执行一次。

我目前想知道 - 有没有办法每天自动重新部署应用程序一次或自动重启实例?我应该采取不同的方式来解决这个问题吗?

(注意:我现在宁愿坚持使用 Google App 引擎。)

最佳答案

听起来您应该每天部署一个新版本的应用程序,然后在将流量迁移到新实例之前预热它。这是假设初始启动对于您的应用来说加载这个新模型很慢,因此您不能中断正在运行的版本,因为它会在那时中断您的流量。

要部署版本,请遵循官方指南 here然后使用指南预热和迁移流量 here .

要使此过程自动化,您可以使用 Admin API——问题在于如何将模型获取到新版本的特定位置。我建议为模型使用相同的文件名,以便您的实际代码在每个版本中保持一致。有了它,您应该能够每天以编程方式构建该目录并使用新版本部署应用程序——但这取决于您的其余设置以及您如何存储和自动化该过程的任何其他部分。

关于python - 谷歌应用引擎 : Automatically re-deploy once a day to update machine learning model?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58225918/

相关文章:

python - 在 Fabric 中使用 SSH key 文件

python - 管理python中函数的输出数量

python - 用 scipy 拟合 Gamma 分布中的位置参数

python - dev_appserver.py 没有那个文件或目录

python - 找到多对点之间最近的 8 连通棋盘距离 : shortest m-path

php - 在 Google AppEngine for PHP 上处理图像

spring - 谷歌应用引擎 : How to define secret system properties

machine-learning - 使用朴素贝叶斯分类

python - scipy.sparse.csr.csr_matrix :Matrix extension

python - 类子集的 scikit-learn 指标