Ошибка MLflow при развертывании модели на локальном сервере REST - PullRequest
0 голосов
/ 18 июня 2019

Сведения о системе:

Операционная система: Ubuntu 19.04

версия Anaconda: 2019.03

Версия Python: 3.7.3

mlflow версия: 1.0.0

Шаги для воспроизведения: https://mlflow.org/docs/latest/tutorial.html

Ошибка в строке / команде: mlflow models serve -m [path_to_model] -p 1234

Ошибка: Команда 'source Activate mlflow-c4536834c2e6e0e2472b58bfb28dce35b4bd0be6 1> & 2 && gunicorn --timeout 60 -b 127.0.0.1:1234 -w 4 mlflow.pyfunc.scoring_server.wsgi: app' вернула ненулевой код возврата. Код возврата = 1

Журнал терминала:

(mlflow) root@user:/home/user/mlflow/mlflow/examples/sklearn_elasticnet_wine/mlruns/0/e3dd02d5d84545ffab858db13ede7366/artifacts/model# mlflow models serve -m $(pwd) -p 1234
2019/06/18 16:15:16 INFO mlflow.models.cli: Selected backend for flavor 'python_function'
2019/06/18 16:15:17 INFO mlflow.pyfunc.backend: === Running command 'source activate mlflow-c4536834c2e6e0e2472b58bfb28dce35b4bd0be6 1>&2 && gunicorn --timeout 60 -b 127.0.0.1:1234 -w 4 mlflow.pyfunc.scoring_server.wsgi:app'
bash: activate: No such file or directory
Traceback (most recent call last):
  File "/root/anaconda3/envs/mlflow/bin/mlflow", line 10, in <module>
    sys.exit(cli())
  File "/root/anaconda3/envs/mlflow/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/root/anaconda3/envs/mlflow/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/root/anaconda3/envs/mlflow/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/root/anaconda3/envs/mlflow/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/root/anaconda3/envs/mlflow/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/root/anaconda3/envs/mlflow/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/root/anaconda3/envs/mlflow/lib/python3.7/site-packages/mlflow/models/cli.py", line 43, in serve
    host=host)
  File "/root/anaconda3/envs/mlflow/lib/python3.7/site-packages/mlflow/pyfunc/backend.py", line 76, in serve
    command_env=command_env)
  File "/root/anaconda3/envs/mlflow/lib/python3.7/site-packages/mlflow/pyfunc/backend.py", line 147, in _execute_in_conda_env
    command, rc
Exception: Command 'source activate mlflow-c4536834c2e6e0e2472b58bfb28dce35b4bd0be6 1>&2 && gunicorn --timeout 60 -b 127.0.0.1:1234 -w 4 mlflow.pyfunc.scoring_server.wsgi:app' returned non zero return code. Return code = 1
(mlflow) root@user:/home/user/mlflow/mlflow/examples/sklearn_elasticnet_wine/mlruns/0/e3dd02d5d84545ffab858db13ede7366/artifacts/model# 

1 Ответ

0 голосов
/ 28 июня 2019

После действий, упомянутых в выпуске GitHub 1507 (https://github.com/mlflow/mlflow/issues/1507) Мне удалось решить эту проблему.

Что касается этого поста, каталог " anaconda / bin / " никогда не добавляется в список переменных среды, т.е. переменной PATH. Чтобы решить эту проблему, добавьте часть else в блок кода инициализации conda из файла ~ / .bashrc в переменную PATH.

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/atulk/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/atulk/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/atulk/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/atulk/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

В этом случае я добавил export PATH = "/ home / atulk / anaconda3 / bin: $ PATH" в переменную PATH. Однако это временное исправление, пока проблема не будет устранена в проекте.

...