Transformers documentation

Обработчики событий

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Обработчики событий

Объекты Callbacks позволяют настраивать поведение цикла обучения в PyTorch Trainer: они могут анализировать состояние цикла обучения (для отчёта о прогрессе, логирования в TensorBoard или других ML-платформах…) и принимать решения (например, о ранней остановке).

Объекты TrainerControl, возвращаемые колбэками, являются единственным исключением: сами колбэки представляют собой код, работающий в режиме «только чтение», и не могут изменять ничего в цикле обучения. Для кастомизации, требующей модификации цикла обучения, следует создать подкласс Trainer и переопределить необходимые методы (примеры см. в разделе trainer).

По умолчанию TrainingArguments.report_to установлен в значение "none".

Основной класс, реализующий обратные вызовы, — это TrainerCallback. Он получает TrainingArguments, использованные для создания экземпляра Trainer, может обращаться к внутреннему состоянию этого Trainer через TrainerState и выполнять некоторые действия в цикле обучения с помощью TrainerControl.

Доступные обратные вызовы

Вот список доступных в библиотеке TrainerCallback:

класс transformers.integrations.CometCallback

< >

( )

Класс TrainerCallback, который отправляет логи в Comet ML.

настройка

< >

( argsstatemodel )

Настройте необязательную интеграцию с Comet.

Окружение:

  • COMET_MODE (str, необязательный, по умолчанию get_or_create): Управляет тем, следует ли создавать новый эксперимент Comet и вести в него журнал или добавлять данные в существующий эксперимент. Принимает следующие значения:
    • get_or_create: автоматически определяет поведение в зависимости от того, задан ли COMET_EXPERIMENT_KEY и существует ли уже Experiment с этим ключом.
    • create: Всегда создавать новый эксперимент Comet.
    • get: всегда пытайтесь добавлять данные в существующий эксперимент Comet. Требуется, чтобы переменная COMET_EXPERIMENT_KEY была задана.
  • COMET_START_ONLINE (bool, необязательный): Создавать ли онлайн- или офлайн-эксперимент.
  • COMET_PROJECT_NAME (str, необязательный): Имя проекта Comet для экспериментов.
  • COMET_LOG_ASSETS (str, необязательный, по умолчанию TRUE): Определяет, следует ли отправлять в Comet данные о тренировке (чекпоинты и т. д.). Может принимать значение TRUE или FALSE.

Список настраиваемых параметров окружения см. здесь.

класс transformers.DefaultFlowCallback

< >

( )

Класс TrainerCallback, который обрабатывает стандартный поток цикла обучения для ведения журналов, оценки и создания контрольных точек.

класс transformers.PrinterCallback

< >

( )

Голый TrainerCallback, который просто выводит логи.

класс transformers.ProgressCallback

< >

( max_str_len: int = 100 )

Колбэк TrainerCallback, отображающий ход обучения или оценки. Вы можете изменить max_str_len, чтобы управлять длиной обрезки строк при ведении журнала.

класс transformers.EarlyStoppingCallback

< >

( early_stopping_patience: int = 1early_stopping_threshold: float | None = 0.0 )

Параметры

  • early_stopping_patience (int) — Используйте вместе с metric_for_best_model, чтобы остановить обучение, если указанная метрика ухудшается в течение early_stopping_patience вызовов оценки.
  • early_stopping_threshold(float, optional) — Используйте вместе с TrainingArguments metric_for_best_model и early_stopping_patience, чтобы указать, насколько должна улучшиться указанная метрика для выполнения условий раннего останова. `

Класс TrainerCallback, реализующий раннюю остановку.

Этот колбэк использует функциональность аргумента load_best_model_at_end в TrainingArguments для установки best_metric в TrainerState. Обратите внимание, что если аргумент save_steps в TrainingArguments отличается от eval_steps, остановка обучения не произойдёт до следующего шага сохранения.

класс transformers.integrations.TensorBoardCallback

< >

( tb_writer = None )

Параметры

  • tb_writer (SummaryWriter, необязательный) — Записывающий объект, который будет использоваться. Если не задан, будет создан автоматически.

Класс TrainerCallback, который отправляет логи в TensorBoard.

Окружение:

  • TENSORBOARD_LOGGING_DIR (str, необязательный, по умолчанию None): Каталог для записи результатов. Значение по умолчанию — os.path.join(args.output_dir, default_logdir())

класс transformers.integrations.TrackioCallback

< >

( )

Класс TrainerCallback, который записывает метрики в Trackio.

настройка

< >

( argsstatemodel**kwargs )

Настройте необязательную интеграцию с Trackio.

Чтобы настроить конфигурацию, вы также можете задать project, trackio_space_id, trackio_bucket_id, trackio_static_space_id и hub_private_repo в TrainingArguments.

класс transformers.integrations.WandbCallback

< >

( )

Класс TrainerCallback, который записывает метрики, медиафайлы и контрольные точки модели в Weight and Biases.

настройка

< >

( argsstatemodel**kwargs )

Настройте необязательную интеграцию с Weights & Biases (wandb).

Можно создать подкласс и переопределить этот метод, чтобы настроить процесс при необходимости. Подробнее — здесь. Также можно переопределить следующие переменные окружения:

Окружение:

  • WANDB_LOG_MODEL (str, необязательный, по умолчанию "false"): Определяет, следует ли регистрировать модель и контрольные точки во время обучения. Может принимать значения "end", "checkpoint" или "false". Если установлено значение "end", модель будет загружена в конце обучения. Если установлено значение "checkpoint", контрольная точка будет загружаться каждые args.save_steps . Если установлено значение "false", модель не будет загружена. Используйте вместе с load_best_model_at_end() для загрузки лучшей модели.
  • WANDB_WATCH (str, необязательный, по умолчанию "false"): Может принимать значения "gradients", "all", "parameters" или "false". Установите значение "all", чтобы записывать градиенты и параметры.
  • WANDB_PROJECT (str, необязательный, по умолчанию "huggingface"): Укажите здесь собственную строку, чтобы сохранять результаты в другом проекте.

класс transformers.integrations.MLflowCallback

< >

( )

Класс TrainerCallback, который отправляет логи в MLflow. Может быть отключён путём установки переменной окружения DISABLE_MLFLOW_INTEGRATION = TRUE.

настройка

< >

( argsstatemodel )

Настройте необязательную интеграцию с MLflow.

Окружение:

  • HF_MLFLOW_LOG_ARTIFACTS (str, необязательный): Определяет, следует ли использовать механизм .log_artifact() MLflow для записи артефактов. Это имеет смысл только при записи на удалённый сервер, например s3 или GCS. Если установлено значение True или 1, каждый сохранённый контрольный пункт из output_dir в TrainingArguments будет копироваться в локальное или удалённое хранилище артефактов при каждом сохранении. Использование без удалённого хранилища приведёт лишь к копированию файлов в ваше расположение артефактов.
  • MLFLOW_TRACKING_URI (str, необязательный): Определяет, следует ли сохранять эксперименты по конкретному пути или на удалённом сервере. По умолчанию не задан, что приводит к полному пропуску установки URI отслеживания.
  • MLFLOW_EXPERIMENT_NAME (str, необязательный, по умолчанию None): Определяет, следует ли использовать experiment_name MLflow, в рамках которого будет запущен run. По умолчанию None, что указывает на эксперимент Default в MLflow. В противном случае это имя эксперимента, чувствительное к регистру, которое будет активировано. Если эксперимент с таким именем не существует, будет создан новый эксперимент с этим именем.
  • MLFLOW_TAGS (str, необязательный): Строковое представление словаря пар ключ/значение, которое будет добавлено в запуск MLflow в качестве тегов. Пример: os.environ['MLFLOW_TAGS']='{"release.candidate": "RC1", "release.version": "2.2.0"}'.
  • MLFLOW_NESTED_RUN (str, необязательный): Использовать ли вложенные запуски MLflow. Если установлено значение True или 1, будет создан вложенный запуск внутри текущего.
  • MLFLOW_RUN_ID (str, необязательный): Позволяет повторно подключиться к существующему запуску, что может быть полезно при возобновлении обучения из контрольной точки. Если переменная окружения MLFLOW_RUN_ID задана, start_run пытается возобновить запуск с указанным идентификатором, а остальные параметры игнорируются.
  • MLFLOW_FLATTEN_PARAMS (str, необязательный, по умолчанию False): Определяет, следует ли выровнять словарь параметров перед их записью в журнал.
  • MLFLOW_MAX_LOG_PARAMS (int, необязательный): Устанавливает максимальное количество параметров, которые будут записаны в журнал выполнения.

класс transformers.integrations.AzureMLCallback

< >

( azureml_run = None )

Класс TrainerCallback, который отправляет логи в AzureML.

класс transformers.integrations.CodeCarbonCallback

< >

( )

Класс TrainerCallback, отслеживающий выбросы CO2 в процессе обучения.

класс transformers.integrations.ClearMLCallback

< >

( )

Класс TrainerCallback, который отправляет логи в ClearML.

Окружение:

  • CLEARML_PROJECT (str, необязательный, по умолчанию HuggingFace Transformers): Имя проекта ClearML.
  • CLEARML_TASK (str, необязательный, по умолчанию Trainer): Имя задачи ClearML.
  • CLEARML_LOG_MODEL (bool, необязательный, по умолчанию False): Определяет, следует ли регистрировать модели в качестве артефактов во время обучения.

класс transformers.integrations.DagsHubCallback

< >

( )

Класс TrainerCallback, который выполняет логирование в DagsHub. Наследует MLflowCallback

настройка

< >

( *args**kwargs )

Настройте интеграцию с логированием DagsHub.

Окружение:

  • HF_DAGSHUB_LOG_ARTIFACTS (str, необязательный): Определяет, следует ли сохранять артефакты данных и модели для эксперимента. По умолчанию False.

класс transformers.integrations.FlyteCallback

< >

( save_log_history: bool = Truesync_checkpoints: bool = True )

Параметры

  • save_log_history (bool, необязательный, по умолчанию True) — Если установлено значение True, журналы обучения сохраняются в виде Flyte Deck.
  • sync_checkpoints (bool, необязательный, по умолчанию True) — Если установлено значение True, контрольные точки синхронизируются с Flyte и могут использоваться для возобновления обучения в случае прерывания.

Колбэк TrainerCallback, который отправляет логи в Flyte. Примечание: этот колбэк работает только внутри задачи Flyte.

Пример:

# Note: This example skips over some setup steps for brevity.
from flytekit import current_context, task


@task
def train_hf_transformer():
    cp = current_context().checkpoint
    trainer = Trainer(..., callbacks=[FlyteCallback()])
    output = trainer.train(resume_from_checkpoint=cp.restore())

класс transformers.integrations.KubeflowCallback

< >

( )

Класс TrainerCallback, который сообщает о ходе обучения в Kubeflow Trainer.

Этот callback автоматически регистрируется при обучении внутри Kubeflow TrainJob с включённым feature gate TrainJobRuntimeStatus. Контроллер Kubeflow внедряет необходимые переменные окружения в pod обучения.

Переменные окружения (инжектируются контроллером):

  • KUBEFLOW_TRAINER_SERVER_URL: HTTPS-адрес для обновления статуса
  • KUBEFLOW_TRAINER_SERVER_CA_CERT: Путь к сертификату CA для проверки TLS
  • KUBEFLOW_TRAINER_SERVER_TOKEN: путь к токену учётной записи службы для аутентификации

Сообщенная информация:

  • Процент выполнения (0–100%)
  • Ожидаемое оставшееся время (в секундах)
  • Метрики обучения (loss, learning_rate и т. д.)

Возможности:

  • Автоматическое ограничение частоты (не более 1 обновления за 5 секунд) для предотвращения перегрузки контроллера
  • Кэширование токенов (5 минут) для минимизации ввода-вывода файлов
  • Только ранг 0 сообщает о ходе обучения в распределённом режиме
  • Тихие сбои — проблемы с сетью не прерывают обучение

Можно отключить, установив переменную окружения DISABLE_KUBEFLOW_INTEGRATION=TRUE.

класс transformers.integrations.DVCLiveCallback

< >

( live: typing.Any | None = Nonelog_model: typing.Union[typing.Literal['all'], bool, NoneType] = None**kwargs )

Параметры

  • live (dvclive.Live, необязательный, по умолчанию None) — Необязательный экземпляр Live. Если значение равно None, будет создан новый экземпляр с использованием **kwargs.
  • log_model (Union[Literal[“all”], bool], необязательный, по умолчанию None) — Определяет, следует ли использовать dvclive.Live.log_artifact() для записи контрольных точек, создаваемых Trainer. Если установлено значение True, то итоговая контрольная точка записывается в конце обучения. Если установлено значение "all", то весь output_dir из TrainingArguments записывается при каждой контрольной точке.

Класс TrainerCallback, который отправляет логи в DVCLive.

Используйте перечисленные ниже переменные окружения в setup для настройки интеграции. Чтобы настроить этот callback с возможностью, выходящей за рамки этих переменных окружения, см. здесь.

настройка

< >

( argsstatemodel )

Настройте необязательную интеграцию DVCLive. Чтобы настроить этот callback в деталях, выходящих за рамки перечисленных ниже переменных окружения, см. здесь.

Окружение:

  • HF_DVCLIVE_LOG_MODEL (str, необязательный): Определяет, следует ли использовать dvclive.Live.log_artifact() для записи контрольных точек, создаваемых Trainer. Если установлено значение True или 1, итоговая контрольная точка записывается в конце обучения. Если установлено значение all, на каждой контрольной точке записывается весь output_dir объекта TrainingArguments.

класс transformers.integrations.SwanLabCallback

< >

( )

Класс TrainerCallback, который записывает метрики, медиафайлы и контрольные точки модели в SwanLab.

настройка

< >

( argsstatemodel**kwargs )

Настройте необязательную интеграцию SwanLab (swanlab).

Можно создать подкласс и переопределить этот метод, чтобы настроить процесс при необходимости. Подробнее — здесь.

Вы также можете переопределить следующие переменные окружения. Дополнительную информацию о переменных окружения можно найти здесь

Окружение:

  • SWANLAB_API_KEY (str, необязательный, по умолчанию None): Ключ облачного API. При входе в систему эта переменная окружения проверяется в первую очередь. Если она не существует, система проверяет, выполнен ли уже вход пользователя. Если нет, инициируется процесс входа.

    • Если в интерфейс входа передаётся строка, эта переменная окружения игнорируется.
    • Если пользователь уже вошёл в систему, эта переменная окружения имеет приоритет над локально сохранёнными данными для входа.
  • SWANLAB_PROJECT (str, необязательный, по умолчанию None): Укажите здесь собственную строку, чтобы сохранять результаты в другом проекте. Если значение не задано, используется имя текущей рабочей директории.

  • SWANLAB_LOG_DIR (str, необязательный, по умолчанию swanlog): Эта переменная окружения задаёт путь для хранения файлов журнала при работе в локальном режиме. По умолчанию журналы сохраняются в папке swanlog в рабочей директории.

  • SWANLAB_MODE (Literal["local", "cloud", "disabled"], необязательный, по умолчанию cloud): Режим парсинга SwanLab, который включает в себя колбэки, зарегистрированные оператором. В настоящее время доступны три режима: local, cloud и disabled. Примечание: Регистр символов имеет значение. Дополнительную информацию можно найти здесь

  • SWANLAB_LOG_MODEL (str, необязательный, по умолчанию None): SwanLab в настоящее время не поддерживает функциональность режима сохранения. Эта функция станет доступна в одном из будущих выпусков

  • SWANLAB_WEB_HOST (str, необязательный, по умолчанию None): Веб-адрес облачной среды SwanLab для частной версии (она бесплатна)

  • SWANLAB_API_HOST (str, необязательный, по умолчанию None): Адрес API облачной среды SwanLab для частной версии (она бесплатна)

  • SWANLAB_RUN_ID (str, необязательный, по умолчанию None): Идентификатор эксперимента для возобновления предыдущего запуска. Используйте вместе с SWANLAB_RESUME, чтобы продолжить существующий эксперимент.

  • SWANLAB_RESUME (str, необязательный, по умолчанию None): Режим возобновления ("must", "allow", "never"). По умолчанию "allow", если используется resume_from_checkpoint.

TrainerCallback

класс transformers.TrainerCallback

< >

( )

Параметры

  • args (TrainingArguments) — Аргументы обучения, используемые для создания экземпляра Trainer.
  • state (TrainerState) — Текущее состояние Trainer.
  • control (TrainerControl) — Объект, который возвращается в Trainer и может использоваться для принятия некоторых решений.
  • model (PreTrainedModel или torch.nn.Module) — Модель, которая обучается.
  • processing_class ([PreTrainedTokenizer или BaseImageProcessor или ProcessorMixin или FeatureExtractionMixin]) — Класс обработки, используемый для кодирования данных. Может быть токенизатором, процессором, процессором изображений или экстрактором признаков.
  • optimizer (torch.optim.Optimizer) — Оптимизатор, используемый для шагов обучения.
  • lr_scheduler (torch.optim.lr_scheduler.LambdaLR) — планировщик, используемый для установки скорости обучения.
  • train_dataloader (torch.utils.data.DataLoader, необязательный) — Текущий dataloader, используемый для обучения.
  • eval_dataloader (torch.utils.data.DataLoader, необязательный) — Текущий загрузчик данных, используемый для оценки.
  • metrics (dict[str, float]) — Метрики, вычисленные на последнем этапе оценки.

    Они доступны только в событии on_evaluate.

  • logs (dict[str, float]) — Значения для записи в журнал.

    Они доступны только в событии on_log.

Класс для объектов, которые будут проверять состояние цикла обучения в определённых событиях и принимать некоторые решения. В каждом из этих событий доступны следующие аргументы:

Объект control — единственный, который может быть изменён колбэком, при этом событие, изменяющее его, должно возвращать изменённую версию.

Аргументы args, state и control являются позиционными для всех событий, все остальные сгруппированы в kwargs. Вы можете распаковать необходимые вам аргументы в сигнатуре события, используя их. В качестве примера см. код простого PrinterCallback.

Пример:

class PrinterCallback(TrainerCallback):
    def on_log(self, args, state, control, logs=None, **kwargs):
        _ = logs.pop("total_flos", None)
        if state.is_local_process_zero:
            print(logs)

on_epoch_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое в начале эпохи.

on_epoch_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое в конце эпохи.

on_evaluate

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое после фазы оценки.

on_init_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое в конце инициализации Trainer.

on_log

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое после записи последних логов.

on_optimizer_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое после шага оптимизатора, но до обнуления градиентов. Полезно для мониторинга градиентов.

on_pre_optimizer_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое перед шагом оптимизатора, но после обрезки градиентов. Полезно для мониторинга градиентов.

on_predict

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControlmetrics**kwargs )

Событие, вызываемое после успешного предсказания.

on_prediction_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое после шага предсказания.

on_push_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Event called before pushing the model to the hub, at the beginning of Trainer.push_to_hub and Trainer._push_from_checkpoint.

on_save

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое после сохранения контрольной точки.

on_step_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое в начале шага обучения. При использовании накопления градиентов один шаг обучения может включать несколько входных данных.

on_step_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое в конце шага обучения. При использовании накопления градиентов один шаг обучения может включать несколько входных данных.

on_substep_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое в конце подшага во время накопления градиентов.

on_train_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое в начале обучения.

on_train_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Событие, вызываемое в конце обучения.

Ниже приведен пример регистрации пользовательского обратного вызова с Trainer PyTorch:

class MyCallback(TrainerCallback):
    "A callback that prints a message at the beginning of training"

    def on_train_begin(self, args, state, control, **kwargs):
        print("Starting training")


trainer = Trainer(
    model,
    args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    callbacks=[MyCallback],  # We can either pass the callback class this way or an instance of it (MyCallback())
)

Ещё один способ зарегистрировать колбэк — вызвать trainer.add_callback() следующим образом:

trainer = Trainer(...)
trainer.add_callback(MyCallback)
# Alternatively, we can pass an instance of the callback class
trainer.add_callback(MyCallback())

TrainerState

класс transformers.TrainerState

< >

( epoch: float = 0global_step: int = 0max_steps: int = 0logging_steps: int = 500eval_steps: int = 500save_steps: int = 500train_batch_size: int | None = Nonenum_train_epochs: int = 0num_input_tokens_seen: int = 0total_flos: float = 0log_history: list = Nonebest_metric: float | None = Nonebest_global_step: int | None = Nonebest_model_checkpoint: str | None = Noneis_local_process_zero: bool = Trueis_world_process_zero: bool = Trueis_hyper_param_search: bool = Falsetrial_name: str | None = Nonetrial_params: dict[str, str | float | int | bool] | None = Nonestateful_callbacks: list['TrainerCallback'] | None = None )

Параметры

  • epoch (float, необязательный) — Устанавливается только во время обучения и указывает текущую эпоху (дробная часть показывает процент завершённой текущей эпохи).
  • global_step (int, необязательный, по умолчанию 0) — В процессе обучения представляет собой количество выполненных шагов обновления.
  • max_steps (int, необязательный, по умолчанию 0) — Количество шагов обновления, выполняемых в ходе текущей тренировки.
  • logging_steps (int, необязательный, по умолчанию 500) — Выводить журнал каждые X шагов обновления
  • eval_steps (int, необязательный) — Выполнять оценку каждые X шагов.
  • save_steps (int, необязательный, по умолчанию 500) — Сохранять контрольную точку каждые X шагов обновления.
  • train_batch_size (int, необязательный) — Размер батча для загрузчика данных обучения. Требуется только в том случае, если использовался auto_find_batch_size.
  • num_input_tokens_seen (int, необязательный, по умолчанию 0) — При отслеживании входных токенов — количество токенов, обработанных во время обучения (число входных токенов, а не число токенов предсказания).
  • total_flos (float, необязательный, по умолчанию 0) — Общее количество операций с плавающей запятой, выполненных моделью с начала обучения (хранится в формате float, чтобы избежать переполнения).
  • log_history (list[dict[str, float]], необязательный) — Список логов, сделанных с начала обучения.
  • best_metric (float, необязательный) — При отслеживании лучшей модели — значение лучшей метрики, полученной на данный момент.
  • best_global_step (int, необязательный) — Шаг, на котором было достигнуто лучшее значение метрики, при отслеживании лучшей модели. Используется для установки best_model_checkpoint.
  • best_model_checkpoint (str, необязательный) — При отслеживании лучшей модели — значение имени контрольной точки для лучшей модели, найденной на данный момент.
  • is_local_process_zero (bool, необязательный, по умолчанию True) — Указывает, является ли данный процесс локальным (например, на одной машине при распределённом обучении на нескольких машинах) основным процессом.
  • is_world_process_zero (bool, необязательный, по умолчанию True) — Указывает, является ли этот процесс глобальным основным процессом (при распределенном обучении на нескольких машинах значение True будет только для одного процесса).
  • is_hyper_param_search (bool, необязательный, по умолчанию False) — Указывает, выполняется ли в данный момент поиск гиперпараметров с помощью Trainer.hyperparameter_search. Это влияет на способ записи данных в TensorBoard.
  • stateful_callbacks (list[StatefulTrainerCallback], необязательный) — Обработчики событий, привязанные к Trainer, состояние которых должно сохраняться или восстанавливаться. Соответствующие обработчики событий должны реализовывать функции state и from_state.

Класс, содержащий внутреннее состояние Trainer, которое сохраняется вместе с моделью и оптимизатором при создании контрольной точки и передаётся в TrainerCallback.

Во всех классах данного раздела один шаг понимается как один шаг обновления. При использовании накопления градиентов один шаг обновления может требовать нескольких проходов вперёд и назад: если вы используете gradient_accumulation_steps=n, то для одного шага обновления необходимо пройти n батчей.

compute_steps

< >

( argsmax_steps )

Вычисляет и сохраняет абсолютное значение для шагов логирования, оценки и сохранения на основе того, было ли это значение долей или нет.

init_training_references

< >

( trainermax_stepsnum_train_epochstrial )

Сохраняет начальные опорные данные для обучения в self

load_from_json

< >

( json_path: str )

Создайте экземпляр на основе содержимого json_path.

save_to_json

< >

( json_path: str )

Сохраните содержимое этого экземпляра в формате JSON внутри json_path.

TrainerControl

класс transformers.TrainerControl

< >

( should_training_stop: bool = Falseshould_epoch_stop: bool = Falseshould_save: bool = Falseshould_evaluate: bool = Falseshould_log: bool = False )

Параметры

  • should_training_stop (bool, необязательный, по умолчанию False) — Следует ли прервать обучение.

    Если True, эта переменная не будет сброшена в False. Обучение просто остановится.

  • should_epoch_stop (bool, необязательный, по умолчанию False) — Следует ли прервать текущую эпоху.

    Если True, то в начале следующей эпохи значение этой переменной будет сброшено в False.

  • should_save (bool, необязательный, по умолчанию False) — Сохранять ли модель на этом шаге.

    Если True, то в начале следующего шага эта переменная будет сброшена в False.

  • should_evaluate (bool, необязательный, по умолчанию False) — Следует ли оценивать модель на этом шаге.

    Если True, то в начале следующего шага эта переменная будет сброшена в False.

  • should_log (bool, необязательный, по умолчанию False) — Следует ли выводить логи на этом шаге.

    Если True, то в начале следующего шага эта переменная будет сброшена в False.

Класс, управляющий потоком выполнения Trainer. Этот класс используется TrainerCallback для активации некоторых переключателей в цикле обучения.

Update on GitHub