rasa-nlu - 如何使用 gunicorn 在多线程模式下运行 RASA 服务器
问题描述
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 文档是 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
。
推荐阅读
- java - android图像裁剪器无法正常工作
- sql - 查询每个客户具有多行(销售漏斗)事件的规范化表
- java - 5分钟后自动令牌过期Java
- python - 在这个 python 函数定义中是否没有正确使用运算符?
- python - ImportError:无法导入名称“center_net_hourglass_feature_extractor”
- angular - v9升级后Angular应用程序冻结/无限加载而没有错误
- python - 试图跨多个表获取一组数据
- scala - 如何在 ScalaFX 中动态地将节点添加到 VBox
- git - 强行从另一个分支复制一个分支?
- c# - 检查 nullable int 是否为 null,如果是,则将 null 插入 SQL