运行 Heroku 上的自然语言处理

Running NLP on Heroku

如果您使用 Heroku,您就会知道 Heroku 施加了 300MB 的 slugsize 限制。我们公司正在尝试 运行 NLP 应用程序,该应用程序使用斯坦福 NLP 库,超过 300MB。

有没有人在 Heroku 上成功托管过 Stanford NLP 流程?你是如何实现的?如果你不得不通过排除部分 NLP 库来减肥,你是怎么做到的?

之所以需要这么多 space 是因为模型很大。如果您的任务允许,您可以使用较小的模型。为实现这一点,您需要在训练数据的子集上重新训练它们,并可能排除一些奇特的特征或使用更窄的上下文 window。

另一种方法是压缩模型,当您需要它们时解压缩它们并将它们保存在内存中,同时您的应用程序 运行。但这可能是个坏主意。也许你应该考虑使用不同的 NLP 系统。

您遇到的尺寸问题是由stanford-corenlp-3.5.2-models.jar中的模型文件引起的。您无需保留 stanford-corenlp-3.5.2-models.jar 中的所有文件即可使用该工具包。我建议评估您要为服务器维护哪些功能,然后删除该功能不需要的模型。

您可以使用3.5.0版本。它小于 300M,但我仍然遇到问题。我觉得内存不够用 free heroku sand-box.

我以前遇到过这个问题。我与 Heroku 支持人员进行了交谈,他们将我的松弛大小增加到 500 Mb。所以,我建议和他们谈谈。此外,heroku 最近添加了对 docker 部署的支持。您可以尝试使用 CodeShip 或其他 CI 和 docker 部署来尝试。我相信这完全绕过了他们的习惯 CI/CD。 希望我回答了你的问题。