Изменение предустановленного набора библиотек

В каждом образе Jupyter Server и базовом образе для задач обучения есть предустановленный набор библиотек (см. Библиотеки в образах Jupyter Server, Библиотеки в базовых образах).

Пользователь может:

  • Узнать список установленных библиотек.

  • Установить дополнительные библиотеки.

  • Обновить версии существующих библиотек.

Получение списка библиотек, установленных в образе Jupyter Server

Чтобы увидеть список библиотек, установленных в образе Jupyter Server:

  1. Откройте Jupyter Notebook. См. Создание нового Jupyter Server, Подключение к существующему Jupyter Server.

  2. В ячейке ноутбука выполните следующую команду

    pip list
    

    Результатом выполнения команды станет список установленных библиотек.

Получение списка библиотек, установленных в базовом образе

Чтобы увидеть список библиотек, установленных в базовых образах, выполните последовательность действий, как описано в разделе Актуализация списка библиотек в базовых образах.

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

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

pip install <package_name> == <version>

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

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

pip list |grep <package_name>

Важно

Библиотеки устанавливаются в директорию home/jovyan/.local. Папка .local общая для всех Jupyter Server, то есть при подключении другого Jupyter Server устанавливаемые пользователем библиотеки также попадут в директорию .local. Таким образом, при наличии нескольких Jupyter Server в директории .local могут оказаться разные версии библиотек, которые конфликтуют между собой.

Есть два способа обойти эту проблему:

  1. При выполнении команды pip install проверить наличие папки .local. Если папка есть, и она не пустая, перед установкой любых библиотек необходимо удалить ее содержимое.

  2. Сформировать окружение в зависимости от типа решаемой задачи с помощью переименования папок:

    • Запустите Jupyter Notebook и сформируйте первое требуемое окружение через pip install, затем переименуйте .local в .local1.

    • Запустите второй Jupyter Notebook и сформируйте второе требуемое окружение через pip install, затем переименуйте .local в .local2.

    • Переименуйте в .local папку, соответствующую требуемому в данный момент окружению.

Обратите внимание на то, что в образ Jupyter Server jupyter-cuda10.1-tf2.3.0-gpu можно доустановить библиотеку DeepSpeed. Для этого:

  1. Откройте Jupyter Notebook. См. Создание нового Jupyter Server, Подключение к существующему Jupyter Server.

  2. Запустите командную строку (New → Terminal).

  3. Выполните команду ниже. Библиотека установится в соответствующую директорию.

cd /tmp && git clone https://github.com/microsoft/DeepSpeed.git && cd DeepSpeed && \
        pip install cpufeature && \
        DS_BUILD_SPARSE_ATTN=1 DS_BUILD_CPU_ADAM=1 /tmp/DeepSpeed/install.sh

Установка дополнительных библиотек в базовый образ

Пользователи могут доустанавливать библиотеки в базовые образы. Для сборки таких кастомных образов используются средства библиотеки client_lib. Подробнее см. Сборка кастомного образа с необходимыми библиотеками.

Обновление версий библиотек в Jupyter Server

Для обновления версии установленной библиотеки выполните команду

pip install <package_name> --upgrade

Ранее установленная версия библиотеки будет обновлена.

Пример переустановки версии torch приведен ниже (по умолчанию в образе установлена версия 1.3.0)

pip install --no-cache-dir torch===1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

Важно

Не рекомендуется менять версию базовых пакетов — horovod, torch, tensorflow, apex, mxnet, tensorboard, kfserving.

Обновление версий библиотек в базовых образах

Для обновления версий библиотек, установленных в базовом образе, внесите модули и их версии в файл requirements.txt и соберите кастомный образ с использованием этого файла. Подробнее см. Сборка кастомного образа с необходимыми библиотеками.