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

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

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

    api {
        ...
        files_server: s3://s3.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.storage.selcloud.ru:443/<container_name>/<path>"
        ...
    }   
    ...
    

    Укажите:

    • <container_name> — имя контейнера в объектном хранилище, в котором будут храниться датасеты и артефакты. Имя можно посмотреть в панели управления в разделе Объектное хранилище ⟶ Хранилище ⟶ вкладка Контейнеры;
    • <access_key> — логин пользователя объектного хранилища в формате НомерАккаунта_ИмяПользователя. Логин можно посмотреть в панели управления в разделе Объектное хранилищеПользователи;
    • <secret_key> — пароль пользователя объектного хранилища. Пароль не хранится в панели управления – если вы его потеряли, установите новый пароль;
    • <path> — префикс в объектном хранилище.
  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> — путь до датасета на локальной машине.