Cloud Run/Docker加载用于ML预测的大文件



我正试图在Google Cloud Run上从Flask支持的docker容器中为一个相当大的模型(1GB(提供服务。

我正在努力找出加载pickle/joblib模型文件的最佳方式,以减少容器启动时间。

由于包含在github源代码中不是一个选项,也不是我想要的,所以我现在唯一的想法是尝试使用gsutil将其从Dockerfile读取到容器中。

这将如何影响冷容器的启动时间?有没有更简单的方法来实现这一点?

此外,在代码中调用joblib.load(model_file_path)似乎不是一个好主意,因为加载可能需要30秒或更长时间。

我的建议是构建包含模型的容器

  • 在启动时,您不必下载文件(节省启动时间(
  • 您不必存储模型(仅供参考,文件存储在/tmp目录中,这是一个内存中的文件系统,因此您在实例中使用内存空间(,从而增加所需的内存(您节省了资金,也节省了地球!(

我写了一篇关于这个的文章

但是,加载1Gb的模型需要时间。一个功能即将推出(最小实例,保持最小数量的实例温暖,以防止冷启动,但它不是免费的!(

Cloud Run有一个内存文件系统,要下载或使用1GB的文件,需要确保为实例选择了足够的内存。尝试使用4GiB,请参阅文档设置内存限制

最新更新