Как запустить RASA Server в многопоточном режиме с помощью Gunicorn

Сервер Rasa работает нормально на сервере с использованием одного потока. python -m rasa_nlu.server --path projects --emulate dialogflow --response_log logs

Я пытаюсь запустить его на сервере и хочу включить многопоточность. Согласно документации 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

Это дает мне ошибку ниже.

Журнал

Пожалуйста, предложите.


person Nishant Adhikari    schedule 01.08.2018    source источник


Ответы (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.

person Caleb Keller    schedule 02.08.2018
comment
Я попытался запустить сервер с параметром --num_threads = 12, но когда я проверяю количество потоков, запущенных в окне Unix, он показывает только 1 поток. Будет ли он масштабироваться по мере увеличения нагрузки или в моем случае должны отображаться все 12 потоков. Спасибо! - person Nishant Adhikari; 06.08.2018
comment
только определенные компоненты могут использовать более одного потока. Основного процесса нет. Поэтому, если вы попробуете обучить модель с помощью пространственного конвейера, вы увидите, что она ненадолго использует 12 потоков, а затем вернется вниз. - person Caleb Keller; 06.08.2018
comment
Было сказано, что многие компоненты RASA не поддерживают многопоточность. Итак, если в RASA NLU поступает несколько запросов, сможет ли он обработать или нет? Возможна ли такая конфигурация? - person Sand T; 10.12.2018