- tocdepth
2
Собрать и использовать кастомный 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.ru
USER root
RUN apt-get update && apt-get install -y \ # Updating the list of packages and installing additional packages via apt
curl \ # Add the necessary packages, for example, for working with the network
gdb \ # Debugging Tools
htop \ # Additional utilities
&& rm -rf /var/lib/apt/lists/*
USER user
RUN pip install --no-cache-dir \ # Installing additional Python libraries via pip
pandas \ # Library for working with data
seaborn \ # Library for data visualization
scikit-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.ru
RUN apt-get update && apt-get install -y \ # Installing the dependencies required to build PyTorch
git \
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 repository
WORKDIR /pytorch # Go to the PyTorch directory
# Checking branch or tag if a specific version is required
# For example, switching to branch v1.8.0
RUN git checkout v1.8.0
# Installing additional Python dependencies for building PyTorch
RUN 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 directory
WORKDIR /
# [Optional] Remove PyTorch source code to reduce image size
RUN 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.ru
RUN apt-get update && apt-get install -y \ # Update the list of packages and install the necessary tools for building
git \
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.4
tar -xzvf /tmp/cudnn.tgz -C /usr/local && \
rm /tmp/cudnn.tgz
RUN 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.4
tar -xJf /tmp/nccl.txz -C /usr/local && \
rm /tmp/nccl.txz
RUN git clone --recursive https://github.com/pytorch/pytorch # Cloning the PyTorch repository and moving to the directory
WORKDIR /pytorch
RUN pip install --no-cache-dir \ # Installing Python dependencies
numpy \
typing_extensions \
pyyaml \
setuptools \
cmake \
cffi \
ninja
RUN python setup.py install # Install PyTorch from source
WORKDIR /home/jovyan # Return to root directory
Шаг 2. Пройдите аутентификацию в Docker registry
Сгенерируйте ключ для Docker CLI:
В левом меню платформы перейдите в
.Возле воркспейса, для которого нужно сгенерировать ключ, нажмите и выберите Параметры разработчика.
Возле Docker CLI Key нажмите Сгенерировать ключ.
После генерации скопируйте ключ.
В левом меню перейдите в
.Сгенерируйте ключ для Docker registry:
Если в Docker registry нет загруженных образов, вместо виден значок . Чтобы изменить ключ, необходимо сгенерировать новый, нажав Сгенерировать ключ для Docker CLI.
Если в Docker registry есть загруженные образы, нажмите . В появившемся окне нажмите Сгенерировать ключ для Docker CLI.
После генерации скопируйте ключ.
Аутентифицируйтесь в 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 требуемого воркспейса.
Шаг 4. Запустите задачу обучения с использованием кастомного образа
Запустите задачу обучения, выбрав предпочитаемый способ.
для Dev & Test