tocdepth

2

Вопросы по задачам обучения

Какие хранилища используются для обучения моделей?

Для обучения моделей необходимо:

  1. Разместить пользовательские данные на S3 — объектное хранилище в рамках модуля Data Catalog.

  2. Перенести данные из S3 в «горячее» хранилище NFS (см. Управление данными на платформе ML Space).

Подробнее об использовании данных для обучения моделей см. Управление данными на платформе ML Space.

Как отследить падение задачи?

При разработке скрипта распределенного обучения с использованием низкоуровневых библиотек (mpi, torch.distributed и т.д.) стоит обратить внимание на то, что процессы работают независимо друг от друга. Не забудьте поставить флаги коммуникации между процессами (barrier, all_reduce и пр.), чтобы распределенный процесс обучения шел корректно.

Нет root-доступа. Как установить требуемые зависимости?

В Jupyter Server нет root-доступа, apt-get, sudo отключены.

Примечание

Не рекомендуется менять версию базовых пакетов — Horovod, TensorFlow, Apex, MXNet, TensorBoard, KServe, PyTorch.

Рекомендуем выбрать подходящий образ из имеющихся на платформе ML Space или собрать кастомный образ по инструкции.

Как отследить ход выполнения задачи обучения в регионе?

Можно узнать статус выполнения задачи или вывести ее логи, используя стандартные средства функции client_lib.

Можно ли обучать на большом количестве GPU?

ML Space позволяет обучать модели распределенно на базе суперкомпьютеров Christofari.V100 и Christofari.A100. Количество GPU и количество рабочих узлов региона задаются с помощью параметров n_ gpus и n_ workers соответственно. Обратите внимание: чем больше GPU требуется для обучения модели, тем выше вероятность того, что вычислительных ресурсов может не хватить.

Особенности запуска таких задач см. в разделе Обучение моделей на большом количестве GPU.

Можно ли обучать на CPU?

Можно.

Для запуска задачи обучения только на CPU используйте регион Cloud.Region.HP1.

Подробнее в разделе задачи обучения (Job).

Что делать, если моя задача долго находится в очереди?

Скорее всего, для выполнения задачи сейчас нет ресурсов.

Можно ли настраивать количество ядер, выделяемых на одну видеокарту?

Изменить количество ядер нельзя, они выделяются пропорционально количеству GPU. В регионе Christofari.V100 выделяется три ядра на один GPU, в регионе Christofari.A100 выделяется 16 ядер на один GPU.

Как я могу сохранять промежуточные результаты в процессе обучения моделей?

Бывают случаи, когда процесс обучения нужно остановить, чтобы затем продолжить обучение с того же места и не потерять результаты работы. Решение — фиксировать состояние модели с некоторой разумной периодичностью, например, в конце каждой эпохи или после окончания итерации по небольшим блокам обучения. См. более подробно в разделе Сохранить промежуточные результаты обучения (чекпоинты).

Есть ли возможность добавлять Git-репозитории в различные регионы?

Да, такая возможность есть. Для этого откройте терминал в Jupyter Server и выполните команду:

git clone <your_repo_url>

Репозиторий будет склонирован в рабочий каталог /home/jovyan на NFS. После этого можно импортировать из репозитория библиотеки, необходимые для работы.

Примечание

Некоторые библиотеки требуют компиляции. Например, чтобы собрать библиотеку torch-blocksparse из репозитория, необходимо выполнить команду

sudo apt-get install llvm-9-dev

Исполнение этой команды требует прав администратора на NFS. На данный момент для использования sudo и работы c такими библиотеками необходимо написать письмо в support@cloud.ru.

Есть ли возможность подключиться к контейнерам по SSH для отладки?

В стандартных и пользовательских окружениях есть возможность подключения к контейнерам по SSH (см. Подключиться к Jupyter Server по SSH из локальной IDE или терминала).

Есть ли доступ к интернету из контейнера при запуске задачи обучения?

Для отправки запросов из Jupyter Server в интернет используйте следующие номера TCP-портов: 80, 443, 8000–8999.

Использование Jupyter Server из интернета невозможно без интерфейса ML Space или SSH-соединения с Jupyter Server.

Как быстро сообщить о проблеме с задачей обучения в техническую поддержку?

  1. Перейдите в список задач Environments → Задачи и окружения.

  2. Рядом с нужной задачей нажмите Кнопка с тремя вертикальными точками и выберите Сообщить о проблеме.

  3. Выберите суть проблемы и опишите подробности, если необходимо.

Будет создана заявка в техническую поддержку. Отслеживать статус можно в личном кабинете в разделе Поддержка.

Что делать, если при попытке подключиться по SSH к задаче обучения, использующей образы версии 0.0.82-1, возникает ошибка?

Подключитесь к задаче альтернативным способом, последовательно выполнив в терминале Jupyter Notebook следующие команды:

export name=lm-mpi-job-b88a8c2d-489f-4021-b706-7c439de8975d       # job-name
export host=lm-mpi-job-b88a8c2d-489f-4021-b706-7c439de8975d-mpimaster-0       # job-name-pod-name
ssh user@${host}.${name} -p 2222       # connection command with your host and name

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

Для того чтобы проверить корректность работы скрипта и исправить ошибки в нем, запустите скрипт распределенно из Jupyter Server с несколькими GPU командой:

python -m torch.distributed.launch --nproc_per_node $GPUS_PER_NODE --nnodes 1 <myscript.py>

Какие особенности запуска задачи обучения в регионе Cloud.Region.HP?

При запуске задачи обучения в регионе Cloud.Region.HP используйте:

  • образы с CUDA 12.2 и 12.3;

  • тип задач обучения pytorch2;

  • instance_type='a100plus..'.

Как определить объем используемой памяти в регионах, где отключен мониторинг задач?

Чтобы посмотреть объем использованной памяти в каждом воркере задачи обучения:

  1. Подключитесь к нужному воркеру задачи обучения.

  2. В терминале выполните команду:

    cat /sys/fs/cgroup/memory.current
    

    После выполнения команды вернется значение используемой памяти в байтах:

    cat /sys/fs/cgroup/memory.current 1020788117504
    
Запустили Evolution free tier
для Dev & Test
Получить