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

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

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

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

Статья создана
Yandex Cloud
Обновлена 6 марта 2025 г.
  • Создайте задание
  • Пример

Вы можете удаленно запускать задания (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 .

Вы сможете отслеживать прогресс выполнения заданий на странице проекта в интерфейсе DataSphere.

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

Рассмотрим пример обучения модели классификации на датасете 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
Проект Яндекса
© 2025 ООО «Яндекс.Облако»