Accelerate documentation
Трекеры экспериментов
Трекеры экспериментов
GeneralTracker
Базовый класс Tracker, используемый во всех реализациях интеграции с системами журналирования.
Каждая функция должна принимать **kwargs, которые автоматически передаются из базового словаря, переданного в Accelerator.
Необходимо реализовать свойства name, requires_logging_directory и tracker так, чтобы:
name (str): Строковое представление имени класса трекера, например, “TensorBoard” requires_logging_directory (bool): Требует ли логгер каталог для хранения журналов. tracker (object): Должен возвращать внутренний механизм отслеживания, используемый классом трекера (например, run для wandb)
Реализации также могут включать атрибут main_process_only (bool) для переключения того, должны ли соответствующие функции журналирования, инициализации и другие выполняться только на основном процессе или на всех процессах (по умолчанию используется True)
Должен выполнять любые функции завершения в рамках API отслеживания. Если в API не требуется такая функция, просто не переопределяйте этот метод.
log
< source >( values: dictstep: int | None = None**kwargs )
Записывает values в текущий запуск. Базовые реализации log для API отслеживания должны находиться здесь, а также здесь описывается особое поведение для параметра `step`.
Ленивая инициализация трекера внутри Accelerator, чтобы избежать инициализации PartialState до InitProcessGroupKwargs.
store_init_configuration
< source >( values: dict )
Записывает values в качестве гиперпараметров для запуска. Реализации должны использовать функциональность конфигурации эксперимента в API отслеживания.
register_tracker_class
accelerate.tracking.register_tracker_class
< source >( tracker_class: type )
Параметры
- tracker_class (потомок
GeneralTracker) — Класс трекера для регистрации. Он должен наследоваться отGeneralTrackerи определять непустой атрибут классаnameи атрибут классаrequires_logging_directory. Экземпляр класса создаётся с передачейproject_name, переданного вAccelerator.init_trackers(), в качестве первого позиционного аргумента. Еслиrequires_logging_directoryравноTrue, каталог для записи журнала передаётся вторым позиционным аргументом (в соответствии с соглашением для встроенных трекеров). Специфичные для трекера именованные аргументы изinit_kwargsпередаются как**kwargs.
Регистрирует собственный подкласс GeneralTracker, чтобы его можно было указать по name в аргументе log_with объекта Accelerator, аналогично встроенным трекерам.
Трекер должен быть зарегистрирован до создания экземпляра Accelerator, который его использует.
Пример:
from accelerate import Accelerator
from accelerate.tracking import GeneralTracker, register_tracker_class
class MyTracker(GeneralTracker):
name = "my_tracker"
requires_logging_directory = False
# ... implement the rest of the `GeneralTracker` interface
register_tracker_class(MyTracker)
accelerator = Accelerator(log_with="my_tracker")TensorBoardTracker
класс accelerate.tracking.TensorBoardTracker
< source >( run_name: strlogging_dir: str | os.PathLike**kwargs )
Класс Tracker, поддерживающий tensorboard. Должен быть инициализирован в начале вашего скрипта.
WandBTracker
класс accelerate.tracking.WandBTracker
< source >( run_name: str**kwargs )
Класс Tracker, поддерживающий wandb. Должен быть инициализирован в начале вашего скрипта.
Trackio
класс accelerate.tracking.TrackioTracker
< source >( run_name: str**kwargs )
Параметры
- run_name (
str) — Имя запуска эксперимента. Будет использовано в качестве имениprojectпри инициализации trackio. - **kwargs (дополнительные именованные аргументы, необязательные) —
Дополнительные именованные аргументы, передаваемые в метод
trackio.init. См. init для списка всех поддерживаемых именованных аргументов.
Класс Tracker, поддерживающий trackio. Должен быть инициализирован в начале вашего скрипта.
CometMLTracker
класс accelerate.tracking.CometMLTracker
< source >( run_name: str**kwargs )
Параметры
- run_name (
str) — Имя запуска эксперимента. - **kwargs (дополнительные именованные аргументы, необязательные) —
Дополнительные именованные аргументы, передаваемые в метод
comet_ml.start: https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/start/
Класс Tracker, поддерживающий comet_ml. Должен быть инициализирован в начале вашего скрипта.
Ключи API должны храниться в файле конфигурации Comet.
Примечание:
Для версий comet_ml < 3.41.0 дополнительные именованные аргументы передаются в comet_ml.Experiment: https://www.comet.com/docs/v2/api-and-sdk/python-sdk/reference/Experiment/#comet_ml.Experiment.__init__
AimTracker
класс accelerate.tracking.AimTracker
< source >( run_name: strlogging_dir: str | os.PathLike | None = '.'**kwargs )
Класс Tracker, поддерживающий aim. Должен быть инициализирован в начале вашего скрипта.
MLflowTracker
класс accelerate.tracking.MLflowTracker
< source >( experiment_name: str | None = Nonelogging_dir: str | os.PathLike | None = Nonerun_id: str | None = Nonetags: dict[str, typing.Any] | str | None = Nonenested_run: bool | None = Falserun_name: str | None = Nonedescription: str | None = None )
Параметры
- experiment_name (
str, необязательный) — Имя эксперимента. Переменная окружения MLFLOW_EXPERIMENT_NAME имеет приоритет над этим аргументом. - logging_dir (
strилиos.PathLike, по умолчанию".") — Место для хранения журналов mlflow. - run_id (
str, необязательный) — Если указано, получить run с указанным UUID и записывать параметры и метрики в этот run. Время окончания run не устанавливается, а его статус устанавливается в running, но другие атрибуты run (source_version, source_type и т. д.) не изменяются. Переменная окружения MLFLOW_RUN_ID имеет приоритет над этим аргументом. - tags (
Dict[str, str], необязательный) — Необязательныйdictс ключами и значениями типаstrили строковый дампstrизdict, который будет установлен в качестве тегов для запуска. Если выполняется возобновление запуска, эти теги устанавливаются на возобновлённый запуск. Если создаётся новый запуск, эти теги устанавливаются на новый запуск. Переменная окружения MLFLOW_TAGS имеет приоритет над этим аргументом. - nested_run (
bool, необязательный, по умолчаниюFalse) — Управляет тем, является ли run вложенным в родительский run. Значение True создает вложенный run. Переменная окружения MLFLOW_NESTED_RUN имеет приоритет над этим аргументом. - run_name (
str, необязательный) — Имя нового запуска (хранится как тег mlflow.runName). Используется только при отсутствииrun_id. - description (
str, необязательный) — Необязательная строка, заполняющая поле описания запуска. Если выполняется возобновление запуска, описание устанавливается для возобновляемого запуска. Если создаётся новый запуск, описание устанавливается для нового запуска.
Класс Tracker, поддерживающий mlflow. Должен быть инициализирован в начале вашего скрипта.
__init__
< source >( experiment_name: str | None = Nonelogging_dir: str | os.PathLike | None = Nonerun_id: str | None = Nonetags: dict[str, typing.Any] | str | None = Nonenested_run: bool | None = Falserun_name: str | None = Nonedescription: str | None = None )
ClearMLTracker
класс accelerate.tracking.ClearMLTracker
< source >( run_name: str | None = None**kwargs )
Класс Tracker, поддерживающий clearml. Должен быть инициализирован в начале вашего скрипта.
SwanLabTracker
класс accelerate.tracking.SwanLabTracker
< source >( run_name: str**kwargs )
Класс Tracker, поддерживающий swanlab. Должен быть инициализирован в начале вашего скрипта.