Cloud 运行 / Docker 正在加载大型文件以进行 ML 预测
Cloud Run / Docker loading large files for ML prediction
我正在尝试从 Google 云 运行.
上的 Flask
供电的 docker 容器提供相当大的模型 (1GB)
我正在尝试找出加载 pickle
/ joblib
模型文件的最佳方式 - 以减少容器启动时间。
由于包含在 github 源中不是一个选项或不需要的,我现在唯一的想法是尝试使用 [=16= 将其从 Dockerfile
读入容器].
这将如何影响冷容器启动时间?有没有更简单的方法来实现这一目标?
另外,在代码中调用 joblib.load(model_file_path)
似乎不是一个好主意 - 因为加载可能需要 30 秒或更长时间。
我的建议是使用其中的模型构建容器。你赢了 2 件这样的事情:
- 启动时,您不必下载文件(节省启动时间)
- 您不必存储模型(有关信息,文件存储在 /tmp 目录中,该目录是内存文件系统,因此您在实例中使用内存 space),因此增加所需内存(您省钱,保护地球!)
但是,加载 1Gb 模型需要时间。即将推出一项功能(最小实例,保持最少数量的实例热,以防止冷启动,但它不是免费的!)
Cloud 运行 有一个内存文件系统,要下载或使用 1GB 的文件,您需要确保为您的实例选择了足够的内存。尝试使用 4GiB
,请参阅 docs to set memory limits
我正在尝试从 Google 云 运行.
上的Flask
供电的 docker 容器提供相当大的模型 (1GB)
我正在尝试找出加载 pickle
/ joblib
模型文件的最佳方式 - 以减少容器启动时间。
由于包含在 github 源中不是一个选项或不需要的,我现在唯一的想法是尝试使用 [=16= 将其从 Dockerfile
读入容器].
这将如何影响冷容器启动时间?有没有更简单的方法来实现这一目标?
另外,在代码中调用 joblib.load(model_file_path)
似乎不是一个好主意 - 因为加载可能需要 30 秒或更长时间。
我的建议是使用其中的模型构建容器。你赢了 2 件这样的事情:
- 启动时,您不必下载文件(节省启动时间)
- 您不必存储模型(有关信息,文件存储在 /tmp 目录中,该目录是内存文件系统,因此您在实例中使用内存 space),因此增加所需内存(您省钱,保护地球!)
但是,加载 1Gb 模型需要时间。即将推出一项功能(最小实例,保持最少数量的实例热,以防止冷启动,但它不是免费的!)
Cloud 运行 有一个内存文件系统,要下载或使用 1GB 的文件,您需要确保为您的实例选择了足够的内存。尝试使用 4GiB
,请参阅 docs to set memory limits