- Начало работы с ML Space
- Инструкции
- Обучение моделей
- Примеры препроцессинга данных
- Установить библиотеки из Git-репозитория
- Запустить процесс обучения
- Обучить модель с использованием PyTorch Elastic Learning
- Обучить модель с использованием библиотеки Horovod
- Сохранить промежуточные результаты обучения (чекпоинты)
- Собрать и использовать кастомный Docker-образ для задачи обучения на основе базового образа платформы
- Собрать и использовать кастомный Docker-образ для задачи обучения на основе внешнего образа
- Использовать GitLab CI при работе с Environments
- Тарификация
- Термины и сокращения
- Обратиться в поддержку
Собрать и использовать кастомный Docker-образ для задачи обучения на основе базового образа платформы
Docker registry используется для хранения кастомных Docker-образов. Экземпляр образа в Docker registry идентифицируется по тегу.
Кастомные образы предназначены для установки зависимостей, которые нужны пользователю и отсутствуют в базовых образах ML Space.
Кастомные образы с префиксом «job-» используются в Environments для обучения моделей.
Перед началом работы
Убедитесь, что у вас установлен Docker Desktop.
Шаг 1. Соберите кастомный образ для задачи обучения
Сборка кастомного образа осуществляется локально.
Dockerfile — текстовый документ, который содержит все необходимые команды для сборки образа.
В образе будет:
Обновление списка пакетов apt. Сначала обновляется список доступных пакетов, чтобы убедиться, что устанавливаются последние версии.
Установка дополнительных apt пакетов. Таких как curl для работы с сетью, gdb для отладки и htop для мониторинга системы. После установки очищается кеш apt, чтобы уменьшить размер образа.
Установка дополнительных пакетов Python через pip. Установка дополнительных библиотек Python, таких как pandas для работы с данными, seaborn для визуализации и scikit-learn для машинного обучения. Используется флаг --no-cache-dir для уменьшения размера образа, так как кеш pip не сохраняется.
FROM cr.msk.ai.cloud.ru/aicloud-base-images/cuda12.1-torch2-py311:0.0.36 # Using an image with CUDA 12.1, PyTorch 2 and Python 3.11 from Cloud.ruUSER rootRUN apt-get update && apt-get install -y \ # Updating the list of packages and installing additional packages via aptcurl \ # Add the necessary packages, for example, for working with the networkgdb \ # Debugging Toolshtop \ # Additional utilities&& rm -rf /var/lib/apt/lists/*USER userRUN pip install --no-cache-dir \ # Installing additional Python libraries via pippandas \ # Library for working with dataseaborn \ # Library for data visualizationscikit-learn # Machine learning and data analysis
Сборка образа с необходимой версией PyTorch
Сборка образа с необходимой версией PyTorch из исходников, если требуется определенная совместимость.
FROM cr.msk.ai.cloud.ru/aicloud-base-images/cuda12.1-torch2-py311:0.0.36 # Using an image with CUDA 12.1, PyTorch 2 and Python 3.11 from Cloud.ruRUN apt-get update && apt-get install -y \ # Installing the dependencies required to build PyTorchgit \cmake \build-essential \libopenblas-dev \liblapack-dev \&& rm -rf /var/lib/apt/lists/*# Installing specific versions of CuDNN and NCCL# You will need to download and install these packages, possibly manually,# since their versions depend on the specific requirements of the project and availability on the servers.RUN git clone --recursive https://github.com/pytorch/pytorch # Cloning PyTorch repositoryWORKDIR /pytorch # Go to the PyTorch directory# Checking branch or tag if a specific version is required# For example, switching to branch v1.8.0RUN git checkout v1.8.0# Installing additional Python dependencies for building PyTorchRUN pip install --no-cache-dir \numpy \typing_extensions \pyyaml \setuptools \cmake \cffi \ninja# Running the PyTorch build. Additional flags may be used in this step# to configure the build (for example, specifying paths to CuDNN and NCCL)RUN python setup.py install# Return to the root directoryWORKDIR /# [Optional] Remove PyTorch source code to reduce image sizeRUN rm -rf /pytorch
Сборка с указанием необходимых версий CuDNN и NCCL
Обратите внимание, что для этого процесса требуется довольно специфичная и тщательная настройка, учитывая версии CUDA, CuDNN, NCCL и совместимость их с версией PyTorch, которую вы хотите собрать.
Есть вероятность, что вам необходимо будет самостоятельно загрузить эти пакеты с официального сайта NVIDIA и убедиться, что у вас есть доступ к ним для установки в Dockerfile.
FROM cr.msk.ai.cloud.ru/aicloud-base-images/cuda11.8-torch2-py311:0.0.36 # Using an image with CUDA 12.1, PyTorch 2 and Python 3.11 from Cloud.ruRUN apt-get update && apt-get install -y \ # Update the list of packages and install the necessary tools for buildinggit \cmake \build-essential \libopenblas-dev \liblapack-dev \wget \&& rm -rf /var/lib/apt/lists/*RUN wget https://developer.download.nvidia.com/compute/redist/cudnn/v8.4.1/cudnn-11.4-linux-x64-v8.4.1.50.tgz -O /tmp/cudnn.tgz && \ # Download and install CuDNN 8.4tar -xzvf /tmp/cudnn.tgz -C /usr/local && \rm /tmp/cudnn.tgzRUN wget https://developer.download.nvidia.com/compute/redist/nccl/v2.11/nccl_2.11.4-1+cuda11.8_x86_64.txz -O /tmp/nccl.txz && \ # Download and install NCCL 2.11.4tar -xJf /tmp/nccl.txz -C /usr/local && \rm /tmp/nccl.txzRUN git clone --recursive https://github.com/pytorch/pytorch # Cloning the PyTorch repository and moving to the directoryWORKDIR /pytorchRUN pip install --no-cache-dir \ # Installing Python dependenciesnumpy \typing_extensions \pyyaml \setuptools \cmake \cffi \ninjaRUN python setup.py install # Install PyTorch from sourceWORKDIR /home/jovyan # Return to root directory
Шаг 2. Пройдите аутентификацию в Docker registry
Сгенерируйте ключ для Docker CLI:
В левом меню платформы перейдите в ML Space → Воркспейсы.
Возле воркспейса, для которого нужно сгенерировать ключ, нажмите
и выберите Параметры разработчика.
Возле Docker CLI Key нажмите Сгенерировать ключ.
После генерации скопируйте ключ.
Аутентифицируйтесь в Docker registry.
Откройте терминал на вашем компьютере и аутентифицируйтесь в Docker CLI, используя команду:
docker login cr.ai.cloud.ru --username example@example.com --password examplepsswdГде параметр example@example.com — это email пользователя, а examplepsswd — ключ, однократно передаваемый пользователю при нажатии на Сгенерировать ключ для Docker CLI.
Шаг 3. Загрузите образ в Docker registry
Команду для использования тега можно просмотреть, нажав Push command в Docker registry.
docker push cr.ai.cloud.ru/хххххххх-хххх-хххх-хххх-хххххххххххх/job-custom-image:test_tag
Эта команда позволяет загрузить образ job-custom-image с тегом test_tag в Docker registry требуемого воркспейса.
Что дальше
Создайте и запустите задачу обучения, выбрав предпочитаемый способ.
- Перед началом работы
- Шаг 1. Соберите кастомный образ для задачи обучения
- Шаг 2. Пройдите аутентификацию в Docker registry
- Шаг 3. Загрузите образ в Docker registry
- Что дальше