Перейти к основному содержимому
Подключить объектное хранилище Selectel к ClearML
Последнее изменение:

Подключить объектное хранилище Selectel к ClearML

В ClearML для хранения датасетов, результатов и артефактов экспериментов можно подключить объектное хранилище Selectel.

  1. Откройте конфигурационный файл ClearML clearml.conf. Измените блоки api, aws и development:

    api {
    ...
    files_server: s3://s3.<pool>.storage.selcloud.ru:443/<container_name>
    ...
    }
    ...
    sdk {
    ...
    aws {
    s3 {
    host: "s3.storage.selcloud.ru:443"
    region: "ru-1"
    key: "<access_key>"
    secret: "<secret_key>"
    use_credentials_chain: false
    credentials: [{
    bucket: "<container_name>"
    secure: true
    }]
    }
    boto3 {
    pool_connections: 512
    max_multipart_concurrency: 16
    }
    }
    ...
    }
    ...
    ...
    development {
    ...
    default_output_uri: "s3://s3.<pool>.storage.selcloud.ru:443/<container_name>/<path>"
    ...
    }
    ...

    Укажите:

    • <container_name> — имя контейнера в объектном хранилище, в котором будут храниться датасеты и артефакты. Имя можно посмотреть в панели управления в разделе Объектное хранилище → вкладка Контейнеры;
    • <access_key> — Access Key ID из S3-ключа, выданного пользователю;
    • <secret_key> — Secret Access Key из S3-ключа, выданного пользователю.
    • <path> — префикс в объектном хранилище;
    • <pool> — пул, в котором находится объектное хранилище (например, ru-1).
  2. Чтобы загрузить датасеты в ClearML Server, запустите python-скрипт.

    Пример скрипта для загрузки одного датасета:

    # Создать датасет через класс Dataset
    from clearml import Dataset
    dataset = Dataset.create(
    dataset_name="<dataset_name>",
    dataset_project="<project_name>",
    output_uri="s3://s3.storage.selcloud.ru:443/<container_name>/<path>",
    )

    # Добавить файлы в датасет
    dataset.add_files(
    path="<local_path_to_dataset>",
    )

    # Загрузить датасет в ClearML Server
    dataset.upload()

    # Закоммитить изменения в датасете
    dataset.finalize()

    Укажите:

    • <dataset_name> — имя датасета, отобразится в WebApp;
    • <project_name> — имя проекта, отобразится в WebApp;
    • <container_name>/<path> — префикс в объектном хранилище из шага 1;
    • <local_path_to_dataset> — путь до датасета на локальной машине.