Окружения и Jupyter Server

Вопросы в этом разделе

Не получается развернуть бесплатный Jupyter Server

На платформе ML Space есть ограничение в три бесплатных Jupyter Server для одного региона размещения ресурсов. При создании четвертого возникнет ошибка.

Подробнее см. Регионы размещения ресурсов.

Не могу создать Jupyter Server с GPU. В чем может быть причина?

Такая ситуация может возникать в следующих случаях:

  • Закончился баланс.

  • Не выставлен лимит на Департамент.

При нулевом балансе не получится:

  • создать Jupyter Server с выделенными GPU,

  • запустить обучение путем отправки задач в регион,

  • собрать образ с моделями для их последующего развертывания на сервисе Deployments

Актуальный баланс можно посмотреть в профиле пользователя. См. Обзорная страница.

Лимиты на департамент можно задавать в личном кабинете пользователя. Подробнее см. в Документации.

Как приостановить Jupyter Server?

Для приостановки Jupyter Server:

  1. Выберите сервер, который планируете приостановить.

  2. Нажмите на иконку паузы в соответствующей строке списка.

  3. Jupyter Server изменит статус «На паузе».

Доступны ли логи Jupyter Server после приостановки?

После приостановки посмотреть логи нельзя. Для просмотра логов возобновите работу Jupyter Server.

Будет ли тарифицироваться Jupyter Server в статусе «На паузе»?

Если Jupyter Server приостановлен, он не тарифицируется.

Будет ли тарифицироваться Jupyter Server в статусе «Ошибка» или «Предупреждение»?

В случае некорректного запуска Jupyter Server может принимать статус «Ошибка» или «Предупреждение», при этом используемые ресурсы тарифицируются. Рекомендуем удалить Jupyter Server в таком статусе и создать его заново.

Как запустить ячейку Jupyter Server во время сборки образа и завершить ее после сборки?

Если возникает потребность выполнения ячейки после сборки образа, добавьте код:

def wait_image_build_job(job):
    response = job.submit()
    if "created" not in response:
        return response
    job.logs()
    return "Done"


job = ImageBuildJob(...........)
wait_for_image_build_job(job)

В логах ошибка “Permission denied, please try again” при запуске задачи, как устранить?

Вероятно, при запуске задачи взят образ для Jupyter Server (имеет префикс “jupyter-” в названии).

Пример:

  • cr.msk.sbercloud.ru/aicloud-jupyter/jupyter-cuda10.0-tf1.15.0-pt1.3.0-gpu:0.0.80 — с этим образом возникнет возникать ошибка,

  • cr.msk.sbercloud.ru/aicloud-base-images/horovod-cuda10.0-tf1.15.0-pt1.3.0:0.0.27 — этот образ будет корректно работать в регионе V100.

Не видно образ из Docker registry при создании Jupyter Server, что делать?

Если не видно образ, загруженный в Docker registry при создании Jupyter Server, могут помочь следующие рекомендации:

  • Проверьте название образа. Для использования образа в сервисе Environments у него должен быть префикс «jupyter-».

Для использования образа в модулях платформы префикс образа обязательно должен начинаться с маленькой буквы, например «jupyter-», «deploy-», «job-». В сервисе Environments образ с именем test-custom-image:1.0 не будет отображаться в списке доступных для создания Jupyter Server. Образ с именем jupyter-custom-image:1.0 будет отображаться.

Почему у меня не разворачивается Jupyter Server c GPU?

Проблема может возникать, если под Jupyter Server нет свободных ресурсов на одном DGX (выделение ресурсов на нескольких DGX невозможно). Рекомендуется создавать Jupyter Server с количеством выделенных GPU 8 или меньше. Обучение, которое требует большее количество ресурсов, лучше запускать как задачу в регионе методом client_lib.Job().

Что сделать, чтобы столбец ipynb_checkpoints не появлялся в метриках?

Использовать файлы MLflow средствами MLflow и файлы Jupyter Lab/Notebook средствами Jupyter Lab/Notebook. Так можно избежать непредвиденных артефактов в виде .ipynb_checkpoints-столбца в разделе Metrics.

Папка mlflow — машиночитаемая (предусмотрено читать через API MLflow), при необходимости открывать файлы можно по SSH через Cyberduck/терминал.

ipynb_checkpoints-папки появляются не везде, а только в том каталоге, где находится запущенный ноутбук. Поэтому наиболее простым решением проблемы с MLflow было бы отделить одно от другого и явно определять каталог, в котором будет находиться информация, относящаяся к MLflow-эксперименту.

Делается это следующим образом: mlflow.set_tracking_uri('file:/home/jovyan/mlruns'). Подробнее об этой команде — в документации MLflow.

Проверить текущий каталог можно командой mlflow.get_tracking_uri(). Подробнее можно прочитать в документации MLflow.

Что делать, если возникает ошибка No space left on device при работе с Jupyter Server?

Чтобы устранить ошибку, расширьте NFS.

Для самостоятельного расширения дискового пространства на требуемом NFS:

  1. Перейдите на главную страницу, нажав на Кнопка перехода на Главную страницу ML Space.

  2. Перейдите на вкладку Воркспейсы.

  3. Нажмите Кнопка с тремя вертикальными точками возле требуемого воркспейса.

  4. Выберите команду Квоты NFS.

  5. Установите квоты для хранилища требуемого региона.

    ../_images/s__nfs_quotas.png
  6. Нажмите Сохранить.

Важно

Установка квот доступна для регионов Christofari.V100, Christofari.A100 и Cloud.Region.A100 (GPU Tesla A100).

Верхний предел квоты ограничен объемом NFS для разных регионов:

  • Christofari.V100 — 1 ТБ;

  • Christofari.A100 — 10 ТБ;

  • Cloud.Region.A100 (GPU Tesla A100) — 5 ТБ.

Что делать, если при удалении файлов на NFS не освобождается место?

  1. Перейдите в Environments → Jupyter Servers.

  2. Подключитесь к требуемому Jupyter Server, нажав Jupyter.

  3. В открывшемся окне нажмите Empty trash → Удалить.

Как очистить место в директории /home/jovyan и удалить файлы, попавшие в корзину?

  1. Перейдите в Environments → Jupyter Servers.

  2. Откройте ваш Jupyter Server и перейдите в нужную директорию внутри /home/jovyan.

  3. Чтобы увидеть, сколько места занимает содержимое директории, в терминале Jupyter Server выполните команду

    Команда для проверки свободного места
    df -h
    
  4. Если какие-то файлы попали в корзину, очистите ее одним из способов:

    Команда для очистки корзины
    rm -rv ~/.local/share/Trash
    
  5. Чтобы удалить все файлы и папки в этой директории, воспользуйтесь следующей командой.

    Внимание

    Команда rm -r /home/jovyan/* удалит все содержимое /home/jovyan, не включая саму директорию. Тщательно проверьте, какие объекты планируете удалять, прежде чем выполнить эту команду.

    Команда для безвозвратного удаления файлов и папок в указанной директории
    rm -r /home/jovyan/*
    
  6. После выполнения команды удаления проверьте объем файлов в директории /home/jovyan с помощью команды

    Команда для проверки свободного места
    df -h
    

Информация о том, что место в директории освободилось, появится в течение двух часов.

Что делать, если возникает ошибка при запуске MLflow?

  1. Переименовать каталог mlruns из Jupyter Server, в котором не запущен MLflow.

  2. Запустить Jupyter Server и проверить, что MLflow работает.

Если эти действия не помогли, обратитесь в техническую поддержку.

Что делать, если при выполнении команды «torch.cuda.is_available()» возвращается «False»?

Данное поведение связанно с инцидентом у вендора. Точные сроки решения зависят от вендора. Как только будут внесены изменения, данная проблема будет исправлена.

В качестве временного решения выполните команду killall5 для завершения всех пользовательских процессов. После этого Jupyter Server будет автоматически перезагружен и ошибка не будет возникать.

Рекомендуем сохранять промежуточные результаты обучения модели, чтобы избежать потери результатов.

Что делать, если в NFS при сохранении файла возникает ошибка «Unexpected error while saving file: directory%%20name/filename.ipynb [Errno 2] No such file or directory»?

Проверьте, есть ли пробел в названиях папок, которые составляют путь до файла. Вместо пробела используйте нижнее подчеркивание или дефис.

Какие TCP-порты можно использовать для выхода в интернет из Jupyter Server или задач обучения?

Для отправки запросов между Jupyter Server и интернетом, а также между задачей обучения и интернетом используйте следующие номера TCP-портов:

  • 80,

  • 443,

  • 8000–8999.