- tocdepth
2
Начало работы с ML Space
ML Space — платформа для ML-разработки полного цикла и совместной работы DS-команд над созданием и развертыванием моделей машинного обучения.
Платформа ML Space предоставляет пользователям решать следующие задачи:
Распределенное обучение на большом количество GPU.
Высокопроизводительные вычисления на базе CPU.
Развертывание (инференс) моделей машинного обучения.
До знакомства с платформой рекомендуем изучить такие темы, как основы машинного обучения, работа с датасетами, сценарии применения и видео по работе с платформой.
В этом разделе описываются действия, которые будем выполнять через интерфейс платформы.
Перед началом работы
Убедитесь, что:
Вы авторизованы в личном кабинете https://console.cloud.ru, и у вас есть доступ к платформе ML Space.
Создан проект. Если проекта не существует, создайте его.
Создан воркспейс. Попросите коллег из требуемого воркспейса добавить вас в воркспейс и после добавления выберите его из раскрывающегося списка в шапке страницы.
Если воркспейс не существует, создайте новый.
Пользователь зарегистрирован. Для регистрации нового пользователя воспользуйтесь инструкцией.
Работа с данными
На платформе представлено два типа хранилищ:
Объектное хранилище S3 — основной ресурс для хранения большого объема данных. Общее для платформы.
NFS — обеспечивает быстрый доступ к данным во время обучения моделей. В каждом регионе свое NFS-хранилище.
Чтобы использовать данные на платформе:
Откройте вкладку Объектное хранилище в левом меню и выберите бакет или создайте пользовательский.
Загрузите данные в объектное хранилище S3, используя кнопку Создать или Data transfer service .
Чтобы использовать данные для обучения, переложите их в «горячее» хранилище NFS, используя кнопку (находится в правом верхнем углу экрана) в объектном хранилище S3 или другие способы переноса.
Обучение моделей
На платформе доступно несколько способов обучения моделей.
Создание окружения (Jupyter Server) и интерактивная работа в нем. Код исполняется на выделенных заранее ресурсах с GPU/CPU.
Обучение через отправку задачи обучения в регион размещения вычислительных ресурсов. Для этого используется Jupyter Server Управление распределенными задачами.
В примере рассмотрим обучение с использованием Jupyter Server:
Откройте Создать Jupyter Server и подключиться к нему через интерфейс ML Space.
и создайте Jupyter Server с одним GPU. Подробнее в разделеПодключитесь к Jupyter Server. В Jupyter Server для каждого региона используется отдельное NFS-хранилище.
Запустите код.
Если необходимо запустить распределенное обучение (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-образ. Подробнее см. Способ 1. Обучение из Jupyter Server с GPU.
Больше примеров работы с платформой
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 с сохранением контрольных точек обучения (чекпоинтов).
для Dev & Test