Перейти к основному содержимому

Data Analytics Virtual Machine

Последнее изменение:

Data Analytics Virtual Machine (DAVM) — преднастроенный облачный сервер с операционной системой и предустановленными инструментами для анализа данных и машинного обучения (ML).

Образ, из которого развертывается сервер, содержит:

После создания DAVM в Jupyter Notebooks будут доступны подробные инструкции по работе с JupyterLab, Prefect, Apache Superset, Keycloak, PyTorch, TensorFlow и примеры кода.

Предустановленные инструменты

  • JupyterLab (версия 3.6.3) — единая среда разработки для работы с Jupyter Notebooks, программным кодом и данными;
  • Prefect (версия 2.10.16) — программное обеспечение для управления задачами по сбору, мониторингу и пакетной обработке данных;
  • Apache Superset (версия 3.0.0) — веб-приложение для визуализации, создания отчетов и дашбордов;
  • PostgreSQL — реляционная СУБД для хранения данных;
  • набор библиотек для машинного обучения: TensorFlow, PyTorch и другие. Можно посмотреть в таблице Версии библиотек⁠.

Решаемые задачи

  • разработка и обучение ML-моделей;
  • построение процессов обработки данных (ETL/ELT);
  • визуализация данных (BI).

Минимальные требования к ресурсам

Количество vCPU2
RAM8 ГБ
Загрузочный диск100 ГБ
Наличие GPUОбязательно

Создать облачный сервер c DAVM

  1. В панели управления в верхнем меню нажмите Продукты и выберите AI-маркетплейс.

  2. Нажмите Создать сервер.

  3. Заполните блоки:

  4. Проверьте цену сервера.

  5. Нажмите Создать сервер.

Имя и расположение

  1. Введите имя сервера.

  2. Выберите регион и сегмент пула, в котором будет создан сервер. От сегмента пула зависит список доступных GPU. После создания сервера изменить регион и сегмент пула нельзя.

Источник

Выберите образ Data Analytics VM (Ubuntu 22.04 LTS 64-bit).

GPU

  1. Нажмите Добавить GPU.

  2. Выберите тип GPU. При выборе GPU учитывайте требования к ML-моделям и используемым инструментам. Характеристики и описание GPU можно посмотреть в инструкции Графические процессоры (GPU).

  3. Укажите количество GPU.

После создания сервера можно будет изменить тип и количество GPU или удалить GPU. Подробнее в инструкции Изменить конфигурацию облачного сервера.

Конфигурация

  1. Укажите количество vCPU.

  2. Укажите размер RAM.

После создания сервера можно будет изменить конфигурацию.

Диски

  1. Выберите тип загрузочного диска. При использовании локального диска в качестве загрузочного GPU не доступны.

  2. Укажите размер диска в ГБ или ТБ. Максимальный размер для всех сетевых дисков — 10 240 ГБ (10 ТБ), для локального диска — 1 256 ГБ (1 ТБ).

  3. Если вы выбрали тип диска SSD Универсальный v2, укажите общее количество операций чтения и записи в IOPS. После создания диска вы можете изменить количество IOPS — уменьшить или увеличить. Количество изменений IOPS не ограничено.

  4. Опционально: чтобы добавить дополнительные диски сервера:

    4.1. Нажмите Добавить диск.

    4.2. Выберите тип диска.

    4.3. Укажите размер диска в ГБ или ТБ. Максимальный размер для всех сетевых дисков — 10 240 ГБ (10 ТБ), для локального диска — 1 256 ГБ (1 ТБ).

    4.4. Если вы выбрали тип диска SSD Универсальный v2, укажите общее количество операций чтения и записи в IOPS. После создания диска вы можете изменить количество IOPS — уменьшить или увеличить. Количество изменений IOPS не ограничено.

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

Сеть

Вы можете добавить сервер в новую подсеть или в уже существующую. Подсеть может быть:

  • приватная без доступа из интернета. К серверу нельзя будет подключиться из интернета, в том числе по SSH или RDP;
  • приватная с одним публичным IP-адресом. Статический публичный IP-адрес подключается к приватному адресу сервера через облачный роутер. Сервер будет доступен из интернета через этот публичный IP-адрес;
  • публичная, в которой все адреса доступны из интернета.
  1. Чтобы добавить существующую приватную подсеть:

    1.1. В поле Подсеть выберите существующую подсеть.

    1.2. Опционально: измените приватный IP-адрес сервера по умолчанию.

  2. Чтобы добавить новую приватную подсеть:

    2.1. В поле Подсеть выберите тип подсети Приватная.

    2.2. Опционально: измените CIDR подсети.

    2.3. Опционально: включите тумблер DHCP. Подробнее о протоколе DHCP в статье блога Selectel Принципы работы протокола DHCP.

    2.4. Опционально: измените IP-адрес шлюза по умолчанию.

    2.5. Опционально: измените сеть, в которой будет создана подсеть — можно выбрать существующую сеть или создать новую. Если вы создаете новую сеть, введите имя сети.

Опционально: Доступ

  1. В поле Пароль для «root»:

    1.1. Скопируйте пароль пользователя root — пользователя с неограниченными правами на все действия над системой.

    1.2. Сохраните пароль в безопасном месте и не передавайте в открытом виде.

  2. Разместите на сервере SSH-ключ для проекта для безопасного подключения:

    2.1. Если SSH-ключ не добавлен в облачную платформу, нажмите , введите имя ключа, вставьте публичный ключ в формате OpenSSH и нажмите Добавить.

    2.2. Если SSH-ключ добавлен в облачную платформу, в поле SSH-ключ выберите существующий ключ.

Опционально: Дополнительные настройки

  1. Чтобы создать прерываемый сервер, отметьте чекбокс Прерываемый сервер.

  2. Если вы планируете создать несколько серверов и хотите повысить отказоустойчивость инфраструктуры, добавьте сервер в группу размещения:

    2.1. Чтобы создать новую группу, нажмите , введите имя группы и выберите политику размещения на разных хостах:

    • желательно — система постарается разместить серверы на разных хостах. Если при создании сервера не будет подходящего хоста, он будет создан на том же хосте;

    • обязательно — серверы в группе обязательно располагаются на разных хостах. Если при создании сервера не будет подходящего хоста, сервер не будет создан.

    2.2. Если группа создана, в поле Группа размещения выберите группу размещения.

  3. Чтобы добавить дополнительную информацию или фильтровать серверы в списке, добавьте теги сервера. Автоматически добавляется тег с названием образа. Чтобы добавить новый тег, в поле Теги введите тег.

Опционально: Автоматизация

  1. Чтобы добавить скрипт, который выполнится с помощью агента cloud-init при первом запуске операционной системы, в поле User data:

    • откройте вкладку Текст и вставьте скрипт текстом;
    • или откройте вкладку Файл и загрузите файл со скриптом.

    Примеры скриптов и поддерживаемые форматы можно посмотреть в инструкции User data.

Запустить DAVM

  1. Убедитесь, что прошло более семи минут после создания сервера — это время требуется для развертывания дополнительных сервисов и создания DNS-записей.

  2. Откройте в браузере страницу DAVM. Используйте ссылку:

    • home-<ip_address>.pl.davm.selcloud.ru

      Укажите <ip_address> — публичный IP-адрес облачного сервера, можно посмотреть в панели управления: в верхнем меню нажмите ПродуктыAI-маркетплейс → страница сервера → вкладка Порты → в карточке порта нажмите рядом с публичным IP-адресом. В IP-адресе замените символы . на -, например 203-0-113-10;

    • или ссылку из сообщения операционной системы, которое появляется при подключении к облачному серверу через консоль в панели управления⁠.

  3. Авторизуйтесь в Keycloak. Используйте:

    • логин — admin;
    • пароль — UUID сервера. Можно скопировать в панели управления: в верхнем меню нажмите ПродуктыAI-маркетплейс → в меню сервера выберите Скопировать UUID.
  4. Введите новый пароль. Сохраните его — в случае утраты пароля мы не сможем его сбросить.

Версии библиотек

absl-py2.0.0Jinja23.1.2PyJWT2.8.0
accelerate0.23.0jmespath1.0.1pyOpenSSL23.3.0
aiobotocore2.5.4joblib1.3.2pyparsing3.1.1
aiofiles22.1.0json50.9.14pyproject_hooks1.0.0
aiohttp3.8.6jsonpatch1.33PySocks1.7.1
aioitertools0.11.0jsonpointer2.4python-dateutil2.8.2
aiosignal1.3.1jsonschema4.19.2python-json-logger2.0.7
aiosqlite0.19.0jsonschema-specifications2023.7.1python-slugify8.0.1
alembic1.12.1jupyter1.0.0pytz2023.3.post1
altair5.1.2jupyter_client8.6.0pytzdata2020.1
ansiwrap0.8.4jupyter-console6.6.3PyWavelets1.4.1
anyio3.7.1jupyter_core5.5.0PyYAML6.0.1
apprise1.6.0jupyter-events0.9.0pyzmq25.1.1
archspec0.2.2jupyter_scheduler1.3.1qtconsole5.5.0
argon2-cffi23.1.0jupyter_server2.10.0QtPy2.4.1
argon2-cffi-bindings21.2.0jupyter_server_fileid0.9.0readchar4.0.5
arrow1.3.0jupyter-server-mathjax0.2.6referencing0.30.2
asgi-lifespan2.1.0jupyter_server_terminals0.4.4regex2023.10.3
asttokens2.4.1jupyter_server_ydoc0.8.0requests2.31.0
astunparse1.6.3jupyter-telemetry0.1.0requests-oauthlib1.3.1
async-generator1.1jupyter-ydoc0.2.4rfc3339-validator0.1.4
async-timeout4.0.3jupyterhub4.0.0rfc3986-validator0.1.1
asyncpg0.29.0jupyterlab3.6.3rich13.6.0
attrs23.1.0jupyterlab-git0.41.0rpds-py0.12.0
Babel2.13.1jupyterlab-pygments0.2.2rpy23.5.11
backports.functools-lru-cache1.6.5jupyterlab-s3-browser0.12.0rsa4.9
beautifulsoup44.12.2jupyterlab_server2.25.1ruamel.yaml0.18.5
bleach6.1.0jupyterlab-widgets3.0.9ruamel.yaml.clib0.2.7
blinker1.7.0keras2.14.0s3fs2023.6.0
bokeh3.3.0kiwisolver1.4.5s3transfer0.6.2
boltons23.0.0kubernetes28.1.0safetensors0.4.0
boto31.28.17lab8scikit-image0.22.0
botocore1.31.17lazy_loader0.3scikit-learn1.3.2
Bottleneck1.3.7libclang16.0.6scipy1.11.3
Brotli1.1.0libmambapy1.5.3seaborn0.13.0
build1.0.3lit15.0.7Send2Trash1.8.2
cached-property1.5.2llvmlite0.41.1setuptools68.2.2
cachetools5.3.2locket1.0.0simplegeneric0.8.1
certifi2023.7.22lz44.3.2simplejson3.19.2
certipy0.1.3Mako1.3.0singleton-decorator1.0.0
cffi1.16.0mamba1.5.3six1.16.0
charset-normalizer3.3.2Markdown3.5.1smmap5.0.1
click8.1.7markdown-it-py3.0.0sniffio1.3.0
cloudpickle3.0.0MarkupSafe2.1.3sortedcontainers2.4.0
cmake3.25.0matplotlib3.8.1soupsieve2.5
colorama0.4.6matplotlib-inline0.1.6SQLAlchemy1.4.50
comm0.1.4mdurl0.1.2stack-data0.6.2
conda23.10.0mistune3.0.2starlette0.27.0
conda-libmamba-solver23.11.0ml-dtypes0.2.0statsmodels0.14.0
conda-package-handling2.2.0mpmath1.3.0sympy1.12
conda_package_streaming0.9.0msgpack1.0.6tables3.9.1
contourpy1.2.0multidict6.0.4tblib2.0.0
coolname2.2.0multiprocess0.70.15tenacity8.2.3
croniter2.0.1munkres1.1.4tensorboard2.14.1
cryptography41.0.5nbclassic1.0.0tensorboard-data-server0.7.2
cycler0.12.1nbclient0.8.0tensorflow2.14.0
Cython3.0.5nbconvert7.11.0tensorflow-estimator2.14.0
cytoolz0.12.2nbdime3.2.1tensorflow-io-gcs-filesystem0.34.0
dask2023.10.1nbformat5.9.2termcolor2.3.0
datasets2.14.5nest-asyncio1.5.8terminado0.17.1
dateparser1.1.8networkx3.2.1text-unidecode1.3
debugpy1.8.0notebook6.5.4textwrap30.9.2
decorator5.1.1notebook_shim0.2.3threadpoolctl3.2.0
defusedxml0.7.1numba0.58.1tifffile2023.9.26
dill0.3.7numexpr2.8.7tinycss21.2.1
distributed2023.10.1numpy1.26.0tokenizers0.14.1
docker6.1.3nvidia-ml-py12.535.133toml0.10.2
entrypoints0.4nvitop1.3.1tomli2.0.1
et-xmlfile1.1.0oauthlib3.2.2toolz0.12.0
exceptiongroup1.1.3openpyxl3.1.2torch2.0.1+cu118
executing2.0.1opt-einsum3.3.0torchaudio2.0.2+cu118
fastapi0.104.1orjson3.9.10torchvision0.15.2+cu118
fastjsonschema2.18.1overrides7.4.0tornado6.3.3
filelock3.9.0packaging23.2tqdm4.66.1
flatbuffers23.5.26pamela1.1.0traitlets5.9.0
fonttools4.44.0pandas2.1.2transformers4.34.0
fqdn1.5.1pandocfilters1.5.0triton2.0.0
frozenlist1.4.0papermill2.4.0truststore0.8.0
fsspec2023.6.0parso0.8.3txt2tags3.9
gast0.5.4partd1.4.1typer0.9.0
gitdb4.0.11pathspec0.11.2types-python-dateutil2.8.19.14
GitPython3.1.40patsy0.5.3typing_extensions4.8.0
gmpy22.1.2pendulum2.1.2typing-utils0.1.0
google-auth2.23.4pexpect4.8.0tzdata2023.3
google-auth-oauthlib1.0.0pickleshare0.7.5tzlocal5.2
google-pasta0.2.0Pillow10.1.0unicodedata215.1.0
greenlet3.0.1pip23.3.1uri-template1.3.0
griffe0.36.9pkgutil_resolve_name1.3.10urllib31.26.18
grpcio1.59.2platformdirs3.11.0uvicorn0.24.0.post1
h110.14.0plotly5.14.1wcwidth0.2.9
h24.1.0pluggy1.3.0webcolors1.13
h5py3.10.0prefect2.10.16webencodings0.5.1
hpack4.0.0prometheus-client0.18.0websocket-client1.6.4
httpcore1.0.1prompt-toolkit3.0.39websockets12
httpx0.25.1protobuf4.24.4Werkzeug3.0.1
huggingface-hub0.17.3psutil5.9.5wheel0.41.3
hyperframe6.0.1psycopg2-binary2.9.6widgetsnbextension4.0.9
idna3.4ptyprocess0.7.0wrapt1.14.1
imagecodecs2023.9.18pure-eval0.2.2xformers0.0.22
imageio2.31.5py-cpuinfo9.0.0xlrd2.0.1
importlib-metadata6.8.0pyarrow14.0.0xxhash3.4.1
importlib-resources6.1.1pyasn10.5.0xyzservices2023.10.1
ipykernel6.26.0pyasn1-modules0.3.0y-py0.5.9
ipympl0.9.3pycosat0.6.6yarl1.9.2
ipython8.17.2pycparser2.21ypy-websocket0.8.2
ipython-genutils0.2.0pycurl7.45.1zict3.0.0
ipywidgets8.1.1pydantic1.10.12zipp3.17.0
isoduration20.11.0Pygments2.16.1zstandard0.22.0
jedi0.19.1