Работа с conda-окружениями

В ML Space есть возможность создавать окружения с помощью conda. Рассмотрим пример создания conda-окружения с версиями:

  • Python 3.11;

  • CUDA 12.1.0.

Это руководство подойдет пользователям, начинающим знакомиться с conda-окружениями на платформе ML Space.

Шаг 1. Создайте Jupyter Server

  1. Перейдите в Environments → Jupyter Servers.

  2. Нажмите Создать Jupyter Server.

    Откроется окно, в котором необходимо заполнить параметры сервера:

    1. В поле Название введите название нового сервера c учетом регистра или используйте предложенное платформой ML Space Разрешается применять следующие символы: строчные латинские буквы от a до z, цифры от 0 до 9, дефис (–).

    2. Выберите Обучение моделей на CPU.

      Примечание

      В сценарии рассмотрен тип вычислений на CPU, чтобы не ждать освобождения GPU ресурсов. Выбирайте ресурсы в зависимости от своих потребностей.

    3. Выберите один из доступных регионов размещения ресурсов.

    4. Выберите Ресурсы для задачи.

      Ориентируйтесь на цвет индикатора рядом с конфигурацией:

      • Зеленый — свободных ресурсов достаточно для запуска сервера в выбранной конфигурации.

      • Желтый — свободных ресурсов мало для запуска серверов в этой конфигурации. Если планируете создать несколько таких серверов, ресурсов может не хватить.

      • Серый — свободных ресурсов не осталось. Выберите другой регион.

    5. Нажмите Выбрать образ и выберите образ jupyter-server версии 0.0.95 и выше.

    6. Нажмите Создать Jupyter Server и дождитесь его создания.

Шаг 2. Создайте окружение с конкретной версией Python

  1. Перейдите в созданный на предыдущем шаге Environments → Jupyter Servers.

  2. Напротив созданного Jupyter Server выберите JupyterLab.

  3. Запустите новый терминал.

    ../../../_images/s__jupyter-lab__terminal__select.png
  4. В терминале выполните команду:

    # Command starts creating the environment with Python 3.11 and CUDA 12.1.0
    mlspace environments create -- env zip_install -- python 3.11 -- cuda 12.1.0

    Где:

    • zip_install — имя создаваемого окружения. Может быть указано любое имя.

    • 3.11 — версия Python, которую требуется установить в окружение.

    • 12.1.0 — версия CUDA, которую требуется установить в окружение.

    Дождитесь создания окружения. Обычно процесс создания занимает от трех до пяти минут.

    ../../../_images/s__env-create__python-cuda.png
  5. Проверьте наличие созданного окружения:

    # Command shows a list of created environments
    mlspace environments list

    В выводе команды должно появиться имя окружения, созданного в предыдущем пункте.

Шаг 3. Активируйте созданное окружение

С помощью терминала
  1. (Опционально) Запустите терминал, если закрыли его на предыдущем шаге.

  2. Активируйте окружение с помощью команды:

    conda activate zip_install

    Где zip_install — имя активируемого окружения, созданного на предыдущем шаге.

    Если имя было изменено, то укажите необходимое.

    После выполнения команды все операции с Python и другими инструментами будут происходить в контексте активированного окружения.

С помощью интерфейса Jupyter
  1. Перейдите в Environments → Jupyter Servers.

  2. Создайте или перейдите в созданный Jupyter Server, используя JupyterLab.

  3. Выберите New Launcher, нажав +.

  4. Выберите иконку с именем zip_install в разделе Notebook.

    Если имя было изменено, то укажите необходимое.

Шаг 4. Установите библиотеку

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

Установим библиотеку numpy и покажем работу с многомерными массивами:

  1. Запустите созданное окружение.

  2. Скопируйте и выполните команды:

    # Command install numpy
    !pip install numpy
    # Command imports numpy as np
    import numpy as np
    # Create a multidimensional array with np.array
    b = np.array([[1.5, 2, 3], [4, 5, 6]])
    # Display the created array on the screen
    print(b)
  3. Проверьте получившийся результат:

    [[ 1.5 2. 3. ]
    [ 4. 5. 6. ]]

Шаг 5. Установите утилиту с помощью conda

Для установки утилит в созданное conda-окружение используем стандартные средства conda:

  1. (Опционально) Запустите терминал, если закрыли его на предыдущем шаге.

  2. Перейдите в окружение zip_install, если не сделали этого на шаге 3.

  3. Установите утилиту zip, выполнив команду:

    conda install zip -y

    Введите y после появления вопроса — Proceed ([y]/n)? для установки утилиты.

    Либо можно использовать ключ -y, как в примере.

    Дождитесь окончания установки.

  4. Проверьте версию утилиты zip, выполнив команду:

    zip -h

    В ответ придет описание:

    Copyright ( c ) 1990 -2008 Info-ZIP - Type 'zip "-L"' for software license.
    Zip 3 .0 ( July 5th 2008 ) . Usage:
    zip [ -options ] [ -b path ] [ -t mmddyyyy ] [ -n suffixes ] [ zipfile list ] [ -xi list ]
    The default action is to add or replace zipfile entries from list, which
    can include the special name - to compress standard input.
    If zipfile and list are omitted, zip compresses stdin to stdout.
    -f freshen: only changed files -u update: only changed or new files
    -d delete entries in zipfile -m move into zipfile ( delete OS files )
    -r recurse into directories -j junk ( don 't record) directory names
    -0 store only -l convert LF to CR LF (-ll CR LF to LF)
    -1 compress faster -9 compress better
    -q quiet operation -v verbose operation/print version info
    -c add one-line comments -z add zipfile comment
    -@ read names from stdin -o make zipfile as old as latest entry
    -x exclude the following names -i include only the following names
    -F fix zipfile (-FF try harder) -D do not add directory entries
    -A adjust self-extracting exe -J junk zipfile prefix (unzipsfx)
    -T test zipfile integrity -X eXclude eXtra file attributes
    -y store symbolic links as the link instead of the referenced file
    -e encrypt -n don' t compress these suffixes
    -h2 show more help
  5. Загрузите или выберите требуемые для архивирования файлы на NFS.

  6. Выполните команду, чтобы добавить в архив требуемые файлы:

    zip tutorial-archive.zip file-name_1.py file-name_2.xlsx

    Где:

    • tutorial-archive.zip — имя создаваемого архива.

    • file-name_1.py и file-name_2.xlsx — имена файлов, которые требуется заархивировать.

    После выполнения команды на NFS появится архив с именем tutorial-archive.zip, в котором будут упакованы указанные файлы.

  7. Разархивируйте требуемые файлы:

    unzip tutorial - archive . zip

    Упакованные в архив файлы будут выгружены в текущую рабочую директорию.

ML Space