Использование проектов MLFlow для управления средой Jupyter conda не приводит к остановке процессов Jupyter. - PullRequest
0 голосов
/ 05 марта 2020

Я хотел бы зарегистрировать conda.yaml для управления исходным кодом вместе с ноутбуком Jupyter, чтобы коллаборационисты могли без труда запускать ноутбуки в согласованной среде.

Без MLFlow для этого требуется:

  • Создание conda env из файла yaml
  • Активация conda env
  • Запуск Jupyter
  • Обновление среды conda вручную при каждом изменении yaml.

Проекты MLFlow хорошо решают эту проблему в неинтерактивной среде, где я могу зафиксировать файл MLproject, указав conda.yaml и команду, которая запускает сервер Jupyter, а затем просто запустить

mlflow run .

в каталоге ноутбука.

Я обнаружил, что когда я запускаю ноутбук Jupyter с помощью проектов MLFlow, он не обрабатывает SIGINT так же, как при запуске Jupyter напрямую из командная строка - вместо запроса: Shutdown this notebook server (y/[n])? родительский процесс немедленно завершает работу, оставляя Jupyter запущенным.

Есть ли ome settings / config, которые будут использоваться для того, чтобы MLFlow передавал сигнал SIGINT Jupyter и корректно завершал работу?

Я запускаю записную книжку с командой: python -m jupyter notebook --NotebookApp.open_browser=False --NotebookApp.ip=0.0.0.0 --NotebookApp.port=8890

и мой MLproject файл выглядит так:

name: jupyter

conda_env: ./conda.yaml

entry_points:
  main:
    command: "python -m jupyter notebook --NotebookApp.open_browser=False --NotebookApp.ip=0.0.0.0 --NotebookApp.port=8890"
...