Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex DataSphere
  • Начало работы
    • О сервисе DataSphere
    • Взаимосвязь ресурсов в DataSphere
    • Сообщества
    • Управление расходами
    • Проект
    • Конфигурации вычислительных ресурсов
      • Задания
      • DataSphere CLI
      • Docker-образы в заданиях
      • Среда исполнения заданий
      • Повторный запуск заданий
      • Интеграция с Managed Service for Apache Airflow™
      • Работа с коннекторами Spark
    • Фундаментальные модели
    • Квоты и лимиты
    • Специальные условия для образования
  • Справочник Terraform
  • Аудитные логи Audit Trails
  • Управление доступом
  • Правила тарификации
  • Публичные материалы
  • История изменений

В этой статье:

  • Python-окружение
  • Автоматический сбор окружения Python
  • Ручное задание окружения Python
  • Явное указание точек входа
  • Plain-окружение
  • Пример
  1. Концепции
  2. DataSphere Jobs
  3. Среда исполнения заданий

Среда исполнения заданий

Статья создана
Yandex Cloud
Обновлена 14 января 2025 г.
  • Python-окружение
    • Автоматический сбор окружения Python
    • Ручное задание окружения Python
    • Явное указание точек входа
  • Plain-окружение
    • Пример

Задания DataSphere Jobs выполняются на выделенных виртуальных машинах, не связанных с JupyterLab и запущенным проектом. Рабочее окружение этих ВМ развертывается на основе Docker-образа и дополнительных параметров, которые вы определяете в файле конфигурации задания.

Задания позволяют запускать на виртуальной машине Python-скрипты, Bash-скрипты и любые бинарные файлы, скомпилированные под платформу Linux x86_64.

Python-окружениеPython-окружение

Совет

Старайтесь запускать задания в виртуальном окружении Python, чтобы четко контролировать все параметры запуска.

Автоматический сбор окружения PythonАвтоматический сбор окружения Python

Примечание

Для запуска заданий DataSphere используется Python venv. Поддерживаются версии Python 3.8–3.12.

Если вы запускаете Python-скрипты, DataSphere может автоматически подготовить окружение для вашего задания. Для этого укажите параметр python: auto в секции env:

cmd: python3 main.py <аргументы_вызова>
env:
  python: auto

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

Автоматически собранное окружение можно модифицировать:

cmd: python3 main.py <аргументы_вызова>
env:
  python:
    type: auto # указываем автоматический сбор окружения
    root-path:
      - other.py
    pip:
      index-url: https://pypi.org/simple
      extra-index-urls:
        - https://pypi.ngc.nvidia.com
      trusted-hosts:
        - nvidia.com
      no-deps: true  # По умолчанию false

Где:

  • root-path — явное указание дополнительных точек входа.
  • index-urls — адрес основного репозитория, из которого менеджер пакетов pip будет устанавливать необходимые пакеты окружения.
  • extra-index-urls — дополнительные адреса репозиториев, из которых менеджер пакетов pip сможет установить пакеты, если они не были обнаружены в основном репозитории.
  • trusted-hosts — список доверенных хостов позволяет обращаться к хостам, перечисленным в формате <хост>:<порт>, даже если они не поддерживают HTTPS.
  • no-deps — аргумент команды pip install, запрещающий установку зависимостей пакетов.

Ручное задание окружения PythonРучное задание окружения Python

При настройке окружения Python вручную вы можете явно задать версию Python, указать зависимости и параметры работы pip через файл requirements.txt и передать локальные модули. При ручном задании окружения вы должны указать как минимум один параметр. Если параметр не указан в файле конфигурации, его значение будет определено автоматически.

env:
 python:
   type: manual     # указываем ручное управление окружением
   version: 3.10.13 # optional
   pip:
      index-url: https://pypi.org/simple
      extra-index-urls:
        - https://pypi.ngc.nvidia.com
      trusted-hosts:
        - nvidia.com
      no-deps: true  # По умолчанию false
   requirements-file: requirements.txt  # optional
   root-path:
      - other.py
   local-paths:     # optional, нельзя использовать с опцией root-paths
     - foo.py
     - lib/

Где:

  • version — версия Python. Если не указано, используется версия окружения, из которого запускается задание.
  • index-urls — адрес основного репозитория, из которого менеджер пакетов pip будет устанавливать необходимые пакеты окружения.
  • extra-index-urls — дополнительные адреса репозиториев, из которых менеджер пакетов pip сможет установить пакеты, если они не были обнаружены в основном репозитории.
  • trusted-hosts — список доверенных хостов позволяет обращаться к хостам, перечисленным в формате <хост>:<порт>, даже если они не поддерживают HTTPS.
  • no-deps — аргумент команды pip install, запрещающий установку зависимостей пакетов.
  • requirements-file — путь к файлу requirements.txt, в котором перечислены все пакеты и флаги pip, необходимые для задания. Если не указано, список зависимостей будет определен автоматически.
  • root-path — явное указание дополнительных точек входа.
  • local-paths — список локальных Python-файлов, которые нужно перенести. С его помощью можно указывать не только конечные файлы, но и целые директории. Если не указано, список файлов будет определен автоматически.
    Если задание состоит только из одного главного Python-скрипта, в секции env укажите local-paths: [].

Если файл конфигурации содержит параметры version, requirements-file и local-paths, DataSphere не будет проверять окружение, чтобы определить недостающие зависимости. Это может быть полезно, если вы не можете или не хотите воспроизводить окружение для выполнения задания локально, как этого требует автоматический сбор окружения.

Явное указание точек входаЯвное указание точек входа

Важно

Используйте стандартную конструкцию if __name__ == "__main__": в своих программах для всех точек входа.

Вы можете запускать Python-скрипты в заданиях различными способами:

  • явно запускать скрипт через python3 main.py <arguments>.
  • использовать готовые стартеры сторонних производителей, например deepspeed: deepspeed main.py --num_gpus=1 --deepspeed_stage 2 --apply_lora True.
  • передавать программы как аргументы при запуске других программ: python3 main.py other.py.

Чтобы собрать окружение и запустить задание, DataSphere необходимо будет определить все точки входа в программу. Если это не удастся сделать в автоматическом режиме, укажите их в файле конфигурации config.yaml:

env:
  python:
    type: auto | manual   # возможны оба варианта
    root-paths:           # optional, нельзя использовать с опцией local-paths
      - main.py
      - other.py

Plain-окружениеPlain-окружение

По умолчанию в заданиях используется Plain-окружение для исполнения бинарных файлов и Bash-скриптов. В этом случае на ВМ будут перенесены все файлы, указанные в секции inputs файла конфигурации задания.

ПримерПример

Выполнение следующего задания выведет версию ядра Linux, список всех установленных пакетов и список файлов и каталогов домашней директории ВМ.

В файле конфигурации config.yaml указана точка входа и список всех модулей, которые нужно передать на ВМ:

cmd: ./run.sh
inputs:
  - run.sh  # явно прописываем все необходимые модули

В файле с кодом задания run.sh перечислены команды, которые нужно выполнить на ВМ:

#!/bin/bash
uname -a
dpkg -l
ls -la

См. такжеСм. также

  • DataSphere Jobs
  • DataSphere CLI
  • Docker-образы в заданиях
  • Запуск заданий DataSphere Jobs
  • GitHub-репозиторий с примерами для запуска заданий

Была ли статья полезна?

Предыдущая
Docker-образы в заданиях
Следующая
Повторный запуск заданий
Проект Яндекса
© 2025 ООО «Яндекс.Облако»