Начало работы с ML Space

ML Space — платформа для ML-разработки полного цикла и совместной работы DS-команд над созданием и развертыванием моделей машинного обучения.

Платформа ML Space предоставляет пользователям решать следующие задачи:

  • Распределенное обучение на большом количество GPU.

  • Высокопроизводительные вычисления на базе CPU.

  • Развертывание (инференс) моделей машинного обучения.

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

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

Перед началом работы

Убедитесь, что:

Работа с данными

В работе используются два типа хранилищ: объектное S3 и «горячее» NFS. В качестве S3-хранилища вы можете использовать Cloud.ru Evolution или Advanced, а также внешнее. На платформе ML Space есть собственное хранилище NFS — свое в каждом регионе.

Рассмотрим пример с бакетами Evolution Object Storage.

  1. Создайте бакет S3 на платформе Evolution в разделе Object Storage.

  2. Загрузите данные в S3-бакет.

  3. Чтобы использовать данные для обучения, перенесите их на NFS с помощью правила переноса.

Обучение моделей

На платформе доступно несколько способов обучения моделей. В примере рассмотрим обучение с использованием Jupyter Server :

  1. Откройте Environments → Jupyter Servers → Создать Jupyter Server и создайте Jupyter Server с одним GPU.

    В Jupyter Server для каждого региона используется отдельное NFS-хранилище.

  2. Загрузите в хранилище Jupyter Server код примера обучения и запустите его.

Если необходимо запустить распределенное обучение (Pytorch DDP или Horovod), создайте Jupyter Server с типом Управление распределенными задачами и воспользуйтесь другим примером с GitHub.

Установка дополнительных библиотек в Jupyter Server

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

!pip install <package_name> <version>

Где package_name — наименование библиотеки, которую предполагается установить, а version — версия данной библиотеки.

После установки библиотеки выполните следующую команду для проверки:

!pip list | grep <package_name>
Примечание

В Jupyter Server есть каталоги, в которых хранятся служебные и пользовательские файлы:

  • /home/user — каталог, уникальный для каждого Jupyter Server.

  • /home/jovyan — каталог, общий для всех Jupyter Server, созданных в рамках одного воркспейса.

Если устанавливать библиотеки с помощью команды pip install, то зависимости будут установлены в каталог /home/jovyan/.img-xxxxx.

При постановке Jupyter Server на паузу этот каталог остается, при остановке (удалении) каталог удаляется. При удалении Jupyter Server все библиотеки, которые установлены с помощью команды pip install, удаляются вместе с каталогом /home/user.

Для использования требуемого набора библиотек можно создать и использовать кастомный Docker-образ.

Больше примеров работы с платформой

  • pytorch-example — задача распределенного обучения Pytorch-модели с двумя типами запуска: стандартный horovod и дополнительный pytorch, он же Pytorch.Distributed.

  • hugging-face-llm-example — работа с языковой моделью методами LoRA и PEFT, а также распределенное обучение с PyTorch Distributed Data Parallel (DDP).

  • lightning-example — использование PyTorch и PyTorch Lightning для задачи классификации изображений.

  • pytorch-elastic-example — обучение модели на PyTorch и Elastic Learning с сохранением контрольных точек обучения (чекпоинтов).

Что дальше

ML Space