Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Neurosupport
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex DataSphere
  • Начало работы
    • Все инструкции
      • Аутентификация в DataSphere Jobs
      • Запустить задание DataSphere Jobs
      • Работа с заданиями из Visual Studio Code
      • Использование результатов работы выполненных заданий
      • Работа с сервисным агентом из задания
    • Как перенести работу в новую версию
  • Справочник Terraform
  • Аудитные логи Audit Trails
  • Управление доступом
  • Правила тарификации
  • Публичные материалы
  • История изменений

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

  • Создайте задание
  • Отслеживать прогресс выполнения задания
  • Пример
  1. Пошаговые инструкции
  2. DataSphere Jobs
  3. Запустить задание DataSphere Jobs

Запуск заданий DataSphere Jobs

Статья создана
Yandex Cloud
Обновлена 16 июня 2026 г.
Открыть в Markdown
  • Создайте задание
  • Отслеживать прогресс выполнения задания
  • Пример

Вы можете удаленно запускать задания (jobs) — Python- и bash-скрипты и исполняемые бинарные файлы, которые будут выполняться на ВМ Yandex DataSphere.

Задания создаются и выполняются в проектах, но не зависят от ноутбуков и запущенных ВМ в проекте.

Для запуска задания необходимо установить и сконфигурировать интерфейс командной строки Yandex Cloud, чтобы с его помощью аутентифицироваться в Yandex Cloud. Также нужно установить библиотеку datasphere в свое окружение Python командой pip install datasphere.

Работа с заданиями также доступна в Visual Studio Code с помощью расширения DataSphere Jobs Toolkit.

При запуске задания библиотека datasphere анализирует окружение, собирает зависимости кода и может передавать их в DataSphere для развертывания окружения на ВМ в облаке. Чтобы избежать лишних системных зависимостей, которые могут нарушить работу задания, рекомендуем использовать виртуальное окружение venv или conda.

Примечание

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

Создайте заданиеСоздайте задание

  1. Установите библиотеку datasphere:

    pip install datasphere
    
  2. Подготовьте скрипт или исполняемый бинарный файл.

  3. Подготовьте файл с входящими данными.

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

    name: <название_задания>
    desc: <описание_задания>
    cmd: >
        python3 <исполняемый_файл> --data ${DATA} --result ${OUTPUT}
    env:
      python: auto
    inputs:
      - <входящие_данные>: DATA
    outputs:
      - <результаты>: OUTPUT
    cloud-instance-types:
      - <конфигурация_вычислительных_ресурсов>
      - <конфигурация_вычислительных_ресурсов>
      - <конфигурация_вычислительных_ресурсов>
    

    Где:

    • name — название задания.
    • desc — описание задания.
    • cmd — файл со скриптом и переменные для входящих данных и результатов.
    • env — параметры окружения. Значение python: auto означает, что необходимо передавать в DataSphere код и зависимости pip.
    • inputs — файл с входящими данными. Название переменной DATA можно изменить.
    • outputs — файл с результатами. Название переменной OUTPUT можно изменить.
    • cloud-instance-types — список допустимых конфигураций вычислительных ресурсов для запуска задания в порядке приоритета.

    Для одной конфигурации также допустимо использовать старое поле — cloud-instance-type (например, cloud-instance-type: g1.1), но лучше использовать новое.

  5. Откройте командную оболочку в папке с подготовленными файлами и запустите задание:

    datasphere project job execute -p <идентификатор_проекта> -c config.yaml
    

    Чтобы скопировать идентификатор проекта, выберите нужный проект на главной странице DataSphere и нажмите ID .

Отслеживать прогресс выполнения заданияОтслеживать прогресс выполнения задания

Интерфейс Yandex DataSphere
Локально
  1. Выберите нужный проект в своем сообществе или на главной странице DataSphere во вкладке Недавние проекты.

  2. Перейдите на вкладку DataSphere Jobs ⟶ История запусков и выберите нужное задание.
  3. В верхней части страницы отобразится полоса прогресса.

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

{"progress": 21, "message": "progress msg 21", "create_time": "2025-06-01T11:00:12+00:00"}

Путь к файлу можно получить из переменной окружения JOB_PROGRESS_FILENAME.

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

Рассмотрим пример обучения модели классификации на датасете MNIST, содержащем образцы рукописных цифр. Запуск обучения в DataSphere происходит удаленно, после чего файл с обученной моделью возвращается в качестве результата. Другие примеры для запуска заданий доступны в репозитории на GitHub.

Важно

Для запуска задания требуется Python 3.10.0 и TensorFlow 2.12.0.

  1. Установите библиотеку tensorflow:

    pip install tensorflow==2.12.0
    
  2. Подготовьте скрипт в файле example.py:

    import argparse
    import json
    import os
    import shutil
    import tensorflow as tf
    
    parser = argparse.ArgumentParser(prog='example')
    parser.add_argument('-i', '--input', required=True, help='Input file')
    parser.add_argument('-m', '--model', required=True, help='Output file')
    
    def make_archive(source, destination):
        base = os.path.basename(destination)
        name = base.split(".")[0]
        fmt = base.split(".")[1]
        shutil.make_archive(name, fmt, source)
    
    def main(epoch_count, model_file):
        print("TensorFlow version: ", tf.__version__)
        print("")
        print(os.system("nvidia-smi"))
        print("")
    
        print("Load MNIST dataset...")
        mnist = tf.keras.datasets.mnist
        (x_train, y_train), (x_test, y_test) = mnist.load_data()
        x_train, x_test = x_train / 255.0, x_test / 255.0
    
        print("Build Sequential model...")
        model = tf.keras.models.Sequential([
          tf.keras.layers.Flatten(input_shape=(28, 28)),
          tf.keras.layers.Dense(128, activation="relu"),
          tf.keras.layers.Dropout(0.2),
          tf.keras.layers.Dense(10)
        ])
    
        #predictions = model(x_train[:1]).numpy()
        #tf.nn.softmax(predictions).numpy()
    
        loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
        #loss_fn(y_train[:1], predictions).numpy()
    
        print("Compile model...")
        model.compile(optimizer="adam", loss=loss_fn, metrics=["accuracy"])
    
        print("Fit...")
        model.fit(x_train, y_train, epochs=epoch_count)
    
        print("Evaluate...")
        model.evaluate(x_test,  y_test, verbose=2)
    
        print(f"Save model to '{model_file}'")
        tf.keras.models.save_model(model, "model", save_format="tf")
        make_archive("model", model_file)
    
        print("Done")
    
    
    if __name__ == "__main__":
        args = parser.parse_args()
    
        epoch_count = 5
    
        with open(args.input) as f:
            data = json.load(f)
            epoch_count = int(data["epoch_count"])
    
        main(epoch_count, args.model)
    
  3. Подготовьте файл с входящими данными input.json:

    {
        "epoch_count" : 3
    }
    
  4. Создайте файл config.yaml с параметрами задания:

    name: simple-tf-script
    desc: Simple TF script
    cmd: python3 example.py --input ${INPUT} --model ${MODEL}
    env:
      python: auto
    inputs:
      - input.json: INPUT
    outputs:
      - model.zip: MODEL
    cloud-instance-types:
      - g1.1
    
  5. Запустите задание:

    datasphere project job execute -p <идентификатор_проекта> -c config.yaml
    

    Чтобы скопировать идентификатор проекта, выберите нужный проект на главной странице DataSphere и нажмите ID .

Модель сохранится в архив model.zip в папке задания.

Полезные ссылкиПолезные ссылки

  • DataSphere Jobs
  • GitHub-репозиторий с примерами для запуска заданий

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

Предыдущая
Аутентификация в DataSphere Jobs
Следующая
Работа с заданиями из Visual Studio Code
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»