tocdepth

2

Задачи обучения

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

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

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

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

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

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

При разработке скрипта распределенного обучения с использованием низкоуровневых библиотек (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 (см. Подключиться по SSH к Jupyter Server).

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

Для отправки запросов из 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
Получить