【问题标题】:How to run RASA Server in multi thread mode using gunicorn如何使用 gunicorn 在多线程模式下运行 RASA 服务器
【发布时间】:2018-08-01 23:04:24
【问题描述】:

Rasa 服务器在使用单线程的服务器上运行良好。 python -m rasa_nlu.server --path 项目 --emulate dialogflow --response_log 日志

我正在尝试在服务器上运行它并希望启用多线程。 根据 RASA 文档,(https://nlu.rasa.com/0.8.12/http.html) 我正在尝试在命令下运行。

gunicorn -w 4 --threads 12 -k gevent -b 127.0.0.1:5000 rasa_nlu.wsgi

这给了我以下错误。

请提出建议。

【问题讨论】:

    标签: rasa-nlu rasa-core


    【解决方案1】:

    这不再可能,您指向的 Rasa 文档适用于 0.8 版,它们现在是 0.12 版。有几个因素导致为什么要删除对此的支持,主要是:

    • 语言模型的高内存使用率
    • 从 Flask 转移到 Klein 进行异步训练

    这是一个包含更多信息的 Github 问题:https://github.com/RasaHQ/rasa_nlu/issues/793

    如果您要获得更高的/parse 请求的整体吞吐量,那么建议使用 Docker 和 nginx 在同一服务器上运行多个实例 - 如果服务器足够大来处理它 - 或者运行多个较小的实例,仍然使用 nginx 反向代理。

    请注意,培训已经转移到单独的流程中。可以使用--max_training_processes 参数设置可用于训练的进程数。此外,Rasa 管道的某些组件支持多线程。可以使用--num_threads 参数设置这些管道组件可用的线程数。

    【讨论】:

    • 我尝试使用 --num_threads = 12 选项运行服务器,但是当我检查 unix box 上运行的线程数时,它只显示 1 个线程。它会随着负载的增加而扩大,还是应该显示在我的情况下运行的所有 12 个线程。谢谢!
    • 只有某些组件能够使用多于一个线程的操作系统。主要过程没有。因此,如果您尝试使用 spacy 管道训练模型,您应该会看到它短暂使用了 12 个线程,然后又回落。
    • 听说 RASA 的许多组件不支持多线程。那么,如果有多个请求来到 RASA NLU,那么它是否能够处理呢?这样的配置可行吗?
    猜你喜欢
    • 2016-06-20
    • 2010-10-12
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多