首页 > 解决方案 > 在 Heroku 上部署托管的深度学习模型?

问题描述

我目前想在 Heroku 上使用 Flask 部署深度学习 REST API。权重(它是一个预训练的 BERT 模型)存储在这里*为 .zip 文件。有没有办法可以直接部署这些?

据我目前了解,我必须将这些上传到 Github/S3。这有点麻烦,而且似乎毫无意义,因为它们已经被托管了。一定要告诉我!

标签: herokudeep-learningpytorch

解决方案


通常,您可以编写一个 bash 脚本来解压缩内容,然后执行您的程序。然而...

  1. 时间问题:拆包需要时间。免费层的 heroku 工作人员在被强制重启之前只工作了大约一天。如果您正在操作网络测功机,则重新启动将更加频繁,并且如果启动过程花费的时间太长,则该过程将失败(绑定到 60 秒$PORT

  2. 大小问题:该 zip 文件有 386 MB 大,解压后可能会更大。
    Heroku 的 slug 大小限制为 500 MB,请参阅:https
    : //devcenter.heroku.com/changelog-items/1145 解压缩 zip 文件后,您将超出限制。zip 文件本身 + 其解压缩的内容远远超过 500 MB。您需要预先解压并确保文件小于 500 MB。但鉴于数据已压缩 386 MB 并解压,它会更大。此外,您将依赖一些构建包(python、javascript、...),并且处理它会占用内存。您将超过 500 MB。

这意味着:您需要为 Heroku 服务付费或寻找不同的托管服务提供商。


推荐阅读