首页 > 解决方案 > Google App Engine:每天自动重新部署一次以更新机器学习模型?

问题描述

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

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

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

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

标签: pythongoogle-app-enginemachine-learning

解决方案


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

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

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


推荐阅读