Transformers documentation

Callbacks

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

Los callbacks son objetos que pueden personalizar el comportamiento del bucle de entrenamiento en el Trainer de PyTorch, inspeccionar el estado del bucle de entrenamiento (para informar del progreso, registrar en TensorBoard u otras plataformas de ML…) y tomar decisiones (como el detenerse anticipadamente).

Los callbacks son fragmentos de código de “solo lectura”; aparte del objeto TrainerControl que devuelven, no pueden modificar nada en el bucle de entrenamiento. Para personalizaciones que requieran cambios en el bucle de entrenamiento, debes crear una subclase de Trainer y sobrescribir los métodos que necesites (consulta trainer para ver ejemplos).

Por defecto, TrainingArguments.report_to se establece en "none".

La clase principal que implementa las callbacks es TrainerCallback. Obtiene los TrainingArguments utilizados para instanciar el Trainer, puede acceder al estado interno de ese Trainer a través de TrainerState y puede realizar algunas acciones en el bucle de entrenamiento a través de TrainerControl.

Callbacks disponibles

Esta es la lista de los TrainerCallback disponibles en la biblioteca:

clase transformers.integrations.CometCallback

< >

( )

Un TrainerCallback que envía los registros a Comet ML.

configuración

< >

( argsstatemodel )

Configura la integración opcional de Comet.

Entorno:

  • COMET_MODE (str, opcional, por defecto get_or_create): Controla si se debe crear y registrar en un nuevo experimento de Comet o si se debe agregar a un experimento existente. Acepta los siguientes valores:
    • get_or_create: Decide automáticamente en función de si COMET_EXPERIMENT_KEY está definido y si ya existe un Experiment con esa clave.
    • create: Siempre crea un nuevo experimento de Comet.
    • get: Intente siempre agregar a un Experimento de Comet existente. Requiere que COMET_EXPERIMENT_KEY esté establecido.
  • COMET_START_ONLINE (bool, opcional): Si se debe crear un Experimento en línea o fuera de línea.
  • COMET_PROJECT_NAME (str, opcional): Nombre del proyecto de Comet para los experimentos.
  • COMET_LOG_ASSETS (str, opcional, valor predeterminado TRUE): Indica si se registran o no los activos de entrenamiento (puntos de control, etc.) en Comet. Puede ser TRUE o FALSE.

Para conocer varios elementos configurables del entorno, consulte aquí.

clase transformers.DefaultFlowCallback

< >

( )

Un TrainerCallback que gestiona el flujo predeterminado del bucle de entrenamiento para registros, evaluación y puntos de control.

clase transformers.PrinterCallback

< >

( )

Un TrainerCallback simple que solo imprime los registros.

clase transformers.ProgressCallback

< >

( max_str_len: int = 100 )

Un TrainerCallback que muestra el progreso del entrenamiento o la evaluación. Puede modificar max_str_len para controlar la longitud a la que se truncan las cadenas al registrar.

clase transformers.EarlyStoppingCallback

< >

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

Parámetros

  • early_stopping_patience (int) — Úsalo con metric_for_best_model para detener el entrenamiento cuando la métrica especifica empeore durante early_stopping_patience llamadas de evaluación.
  • early_stopping_threshold(float, opcional) — Úsese con TrainingArguments metric_for_best_model y early_stopping_patience para indicar cuánto debe mejorar la métrica especificada para cumplir las condiciones de detención temprana. `

Un TrainerCallback que gestiona la detención anticipada.

Este callback depende de la funcionalidad del argumento load_best_model_at_end de TrainingArguments para establecer best_metric en TrainerState. Tenga en cuenta que si el argumento save_steps de TrainingArguments difiere de eval_steps, la detención anticipada no se producirá hasta el siguiente paso de guardado.

clase transformers.integrations.TensorBoardCallback

< >

( tb_writer = None )

Parámetros

  • tb_writer (SummaryWriter, opcional) — El escritor a utilizar. Se instanciará uno si no se establece.

Un TrainerCallback que envía los registros a TensorBoard.

Entorno:

  • TENSORBOARD_LOGGING_DIR (str, opcional, valor predeterminado None): El directorio de registro para registrar los resultados. El valor predeterminado es os.path.join(args.output_dir, default_logdir())

clase transformers.integrations.TrackioCallback

< >

( )

Un TrainerCallback que registra métricas en Trackio.

configuración

< >

( argsstatemodel**kwargs )

Configura la integración opcional de Trackio.

Para personalizar la configuración, también puedes establecer project, trackio_space_id, trackio_bucket_id, trackio_static_space_id y hub_private_repo en TrainingArguments.

clase transformers.integrations.WandbCallback

< >

( )

Un TrainerCallback que registra métricas, medios y puntos de control del modelo en Weight and Biases.

configuración

< >

( argsstatemodel**kwargs )

Configura la integración opcional de Weights & Biases (wandb).

Es posible crear una subclase y sobrescribir este método para personalizar la configuración si es necesario. Encuentra más información aquí. También puedes sobrescribir las siguientes variables de entorno:

Entorno:

  • WANDB_LOG_MODEL (str, opcional, valor predeterminado "false"): Si se registran el modelo y los puntos de control durante el entrenamiento. Puede ser "end", "checkpoint" o "false". Si se establece en "end", el modelo se subirá al final del entrenamiento. Si se establece en "checkpoint", el punto de control se subirá cada args.save_steps . Si se establece en "false", el modelo no se subirá. Úsalo junto con load_best_model_at_end() para subir el mejor modelo.
  • WANDB_WATCH (str, opcional con valor predeterminado "false"): Puede ser "gradients", "all", "parameters" o "false". Establezca "all" para registrar gradientes y parámetros.
  • WANDB_PROJECT (str, opcional, valor predeterminado "huggingface"): Establezca esto como una cadena personalizada para almacenar los resultados en un proyecto diferente.

clase transformers.integrations.MLflowCallback

< >

( )

Un TrainerCallback que envía los registros a MLflow. Puede desactivarse estableciendo la variable de entorno DISABLE_MLFLOW_INTEGRATION = TRUE.

configuración

< >

( argsstatemodel )

Configura la integración opcional de MLflow.

Entorno:

  • HF_MLFLOW_LOG_ARTIFACTS (str, opcional): Si se debe utilizar la función .log_artifact() de MLflow para registrar artefactos. Esto solo tiene sentido si se registra en un servidor remoto, por ejemplo, s3 o GCS. Si se establece en True o 1, se copiará cada punto de control guardado en cada guardado en output_dir de TrainingArguments al almacenamiento de artefactos local o remoto. Su uso sin un almacenamiento remoto simplemente copiará los archivos a la ubicación de artefactos.
  • MLFLOW_TRACKING_URI (str, opcional): Si se deben almacenar las ejecuciones en una ruta específica o en un servidor remoto. No se establece de forma predeterminada, lo que omite la configuración de la URI de seguimiento por completo.
  • MLFLOW_EXPERIMENT_NAME (str, opcional, valor predeterminado None): Indica si se debe utilizar un experiment_name de MLflow bajo el cual lanzar la ejecución. El valor predeterminado es None, lo que apunta al experimento Default en MLflow. En caso contrario, es el nombre del experimento a activar, sensible a mayúsculas y minúsculas. Si no existe un experimento con este nombre, se crea uno nuevo con dicho nombre.
  • MLFLOW_TAGS (str, opcional): Una cadena de volcado de un diccionario de pares clave/valor que se añadirá a la ejecución de MLflow como etiquetas. Ejemplo: os.environ['MLFLOW_TAGS']='{"release.candidate": "RC1", "release.version": "2.2.0"}'.
  • MLFLOW_NESTED_RUN (str, opcional): Si se debe usar ejecuciones anidadas de MLflow. Si se establece en True o 1, se creará una ejecución anidada dentro de la ejecución actual.
  • MLFLOW_RUN_ID (str, opcional): Permite volver a adjuntarse a una ejecución existente, lo cual puede ser útil al reanudar el entrenamiento desde un punto de control. Cuando la variable de entorno MLFLOW_RUN_ID está establecida, start_run intenta reanudar una ejecución con el ID de ejecución especificado y se ignoran los demás parámetros.
  • MLFLOW_FLATTEN_PARAMS (str, opcional, valor predeterminado False): Si se debe aplanar el diccionario de parámetros antes de registrarlos.
  • MLFLOW_MAX_LOG_PARAMS (int, opcional): Establece el número máximo de parámetros que se registrarán en la ejecución.

clase transformers.integrations.AzureMLCallback

< >

( azureml_run = None )

Un TrainerCallback que envía los registros a AzureML.

clase transformers.integrations.CodeCarbonCallback

< >

( )

Un TrainerCallback que rastrea la emisión de CO2 del entrenamiento.

clase transformers.integrations.ClearMLCallback

< >

( )

Un TrainerCallback que envía los registros a ClearML.

Entorno:

  • CLEARML_PROJECT (str, opcional, valor predeterminado HuggingFace Transformers): Nombre del proyecto de ClearML.
  • CLEARML_TASK (str, opcional, valor predeterminado Trainer): Nombre de la tarea de ClearML.
  • CLEARML_LOG_MODEL (bool, opcional, valor predeterminado False): Si se registran los modelos como artefactos durante el entrenamiento.

clase transformers.integrations.DagsHubCallback

< >

( )

Un TrainerCallback que registra en DagsHub. Extiende MLflowCallback

configuración

< >

( *args**kwargs )

Configura la integración de registro de DagsHub.

Entorno:

  • HF_DAGSHUB_LOG_ARTIFACTS (str, opcional): Si se deben guardar los artefactos de datos y modelos del experimento. El valor predeterminado es False.

clase transformers.integrations.FlyteCallback

< >

( save_log_history: bool = Truesync_checkpoints: bool = True )

Parámetros

  • save_log_history (bool, opcional, valor predeterminado True) — Cuando se establece en True, los registros de entrenamiento se guardan como un Flyte Deck.
  • sync_checkpoints (bool, opcional, valor predeterminado True) — Cuando se establece en True, los puntos de control se sincronizan con Flyte y pueden usarse para reanudar el entrenamiento en caso de una interrupción.

Un TrainerCallback que envía los registros a Flyte. NOTA: Este callback solo funciona dentro de una tarea de Flyte.

Ejemplo:

# 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())

clase transformers.integrations.KubeflowCallback

< >

( )

Un TrainerCallback que informa del progreso del entrenamiento a Kubeflow Trainer.

Este callback se registra automáticamente al entrenar dentro de un Kubeflow TrainJob con la puerta de función TrainJobRuntimeStatus habilitada. El controlador de Kubeflow inyecta las variables de entorno necesarias en el pod de entrenamiento.

Variables de entorno (inyectadas por el controlador):

  • KUBEFLOW_TRAINER_SERVER_URL: punto de acceso HTTPS para actualizaciones de estado
  • KUBEFLOW_TRAINER_SERVER_CA_CERT: Ruta al certificado CA para la verificación TLS
  • KUBEFLOW_TRAINER_SERVER_TOKEN: Ruta al token de la cuenta de servicio para la autenticación

Información reportada:

  • Porcentaje de progreso (0-100%)
  • Tiempo restante estimado (segundos)
  • Métricas de entrenamiento (loss, learning_rate, etc.)

Características:

  • Ajuste automático de velocidad (máximo 1 actualización cada 5 segundos) para evitar saturar el controlador
  • Caché de tokens (5 minutos) para minimizar la E/S de archivos
  • Solo el rango 0 informa del progreso en el entrenamiento distribuido
  • Fallos silenciosos: los problemas de red no interrumpirán el entrenamiento

Se puede desactivar estableciendo la variable de entorno DISABLE_KUBEFLOW_INTEGRATION=TRUE.

clase transformers.integrations.DVCLiveCallback

< >

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

Parámetros

  • live (dvclive.Live, opcional, valor predeterminado None) — Instancia Live opcional. Si es None, se creará una nueva instancia usando **kwargs.
  • log_model (Union[Literal[“all”], bool], opcional, valor predeterminado None) — Si se usa dvclive.Live.log_artifact() para registrar los puntos de control creados por Trainer. Si se establece en True, el punto de control final se registra al final del entrenamiento. Si se establece en "all", todo el output_dir de TrainingArguments se registra en cada punto de control.

Un TrainerCallback que envía los registros a DVCLive.

Use las variables de entorno a continuación en setup para configurar la integración. Para personalizar esta devolución de llamada más allá de esas variables de entorno, consulte aquí.

configuración

< >

( argsstatemodel )

Configura la integración opcional de DVCLive. Para personalizar esta devolución de llamada más allá de las variables de entorno siguientes, consulta aquí.

Entorno:

  • HF_DVCLIVE_LOG_MODEL (str, opcional): Si se usa dvclive.Live.log_artifact() para registrar los puntos de control creados por Trainer. Si se establece en True o 1, el punto de control final se registra al final del entrenamiento. Si se establece en all, todo el output_dir de TrainingArguments se registra en cada punto de control.

clase transformers.integrations.SwanLabCallback

< >

( )

Un TrainerCallback que registra métricas, medios y puntos de control del modelo en SwanLab.

configuración

< >

( argsstatemodel**kwargs )

Configura la integración opcional de SwanLab (swanlab).

Es posible crear una subclase y sobrescribir este método para personalizar la configuración si es necesario. Encuentre más información aquí.

También puede anular las siguientes variables de entorno. Encuentre más información sobre las variables de entorno aquí

Entorno:

  • SWANLAB_API_KEY (str, opcional, valor predeterminado None): Clave de API de la nube. Durante el inicio de sesión, se comprueba primero esta variable de entorno. Si no existe, el sistema comprueba si el usuario ya ha iniciado sesión. Si no es así, se inicia el proceso de inicio de sesión.

    • Si se pasa una cadena a la interfaz de inicio de sesión, esta variable de entorno se ignora.
    • Si el usuario ya inició sesión, esta variable de entorno tiene prioridad sobre la información de inicio de sesión almacenada localmente.
  • SWANLAB_PROJECT (str, opcional, valor predeterminado None): Establezca esto como una cadena personalizada para almacenar los resultados en un proyecto diferente. Si no se especifica, se utiliza el nombre del directorio de ejecución actual.

  • SWANLAB_LOG_DIR (str, opcional, valor predeterminado swanlog): Esta variable de entorno especifica la ruta de almacenamiento para los archivos de registro al ejecutar en modo local. Por defecto, los registros se guardan en una carpeta llamada swanlog dentro del directorio de trabajo.

  • SWANLAB_MODE (Literal["local", "cloud", "disabled"], opcional, valor predeterminado cloud): Modo de análisis de SwanLab, que implica los callbacks registrados por el operador. Actualmente, hay tres modos: local, cloud y disabled. Nota: Distingue entre mayúsculas y minúsculas. Encuentra más información aquí

  • SWANLAB_LOG_MODEL (str, opcional, valor predeterminado None): SwanLab no admite actualmente la funcionalidad de modo de guardado. Esta función estará disponible en una versión futura

  • SWANLAB_WEB_HOST (str, opcional, valor predeterminado None): Dirección web del entorno en la nube de SwanLab para la versión privada (es gratuita)

  • SWANLAB_API_HOST (str, opcional, valor predeterminado None): Dirección de la API para el entorno en la nube de SwanLab de la versión privada (es gratuita)

  • SWANLAB_RUN_ID (str, opcional, valor predeterminado None): ID de experimento para reanudar una ejecución anterior. Úsalo con SWANLAB_RESUME para continuar un experimento existente.

  • SWANLAB_RESUME (str, opcional, valor predeterminado None): Modo de reanudación ("must", "allow", "never"). El valor predeterminado es "allow" cuando se utiliza resume_from_checkpoint.

TrainerCallback

clase transformers.TrainerCallback

< >

( )

Parámetros

  • args (TrainingArguments) — Los argumentos de entrenamiento utilizados para instanciar el Trainer.
  • state (TrainerState) — El estado actual del Trainer.
  • control (TrainerControl) — El objeto que se devuelve al Trainer y que puede usarse para tomar algunas decisiones.
  • model (PreTrainedModel o torch.nn.Module) — El modelo que se está entrenando.
  • processing_class ([PreTrainedTokenizer o BaseImageProcessor o ProcessorMixin o FeatureExtractionMixin]) — La clase de procesamiento utilizada para codificar los datos. Puede ser un tokenizador, un procesador, un procesador de imágenes o un extractor de características.
  • optimizer (torch.optim.Optimizer) — El optimizador utilizado para los pasos de entrenamiento.
  • lr_scheduler (torch.optim.lr_scheduler.LambdaLR) — El programador utilizado para establecer la tasa de aprendizaje.
  • train_dataloader (torch.utils.data.DataLoader, opcional) — El dataloader actual utilizado para el entrenamiento.
  • eval_dataloader (torch.utils.data.DataLoader, opcional) — El dataloader actual utilizado para la evaluación.
  • metrics (dict[str, float]) — Las métricas calculadas por la última fase de evaluación.

    Estos solo son accesibles en el evento on_evaluate.

  • logs (dict[str, float]) — Los valores que se registrarán.

    Estos solo son accesibles en el evento on_log.

Una clase para objetos que inspeccionarán el estado del bucle de entrenamiento en ciertos eventos y tomarán algunas decisiones. En cada uno de esos eventos, los siguientes argumentos están disponibles:

El objeto control es el único que puede ser modificado por el callback, en cuyo caso el evento que lo modifica debe devolver la versión modificada.

Los argumentos args, state y control son posicionales para todos los eventos, todos los demás se agrupan en kwargs. Puedes desempaquetar los que necesites en la firma del evento usándolos. Como ejemplo, consulta el código del simple PrinterCallback.

Ejemplo:

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 )

Evento que se llama al inicio de una época.

on_epoch_end

< >

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

Evento que se llama al final de una época.

on_evaluate

< >

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

Evento llamado después de una fase de evaluación.

on_init_end

< >

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

Evento llamado al final de la inicialización del Trainer.

on_log

< >

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

Evento llamado después de registrar los últimos registros.

on_optimizer_step

< >

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

Evento que se llama después del paso del optimizador pero antes de que los gradientes se pongan a cero. Útil para supervisar los gradientes.

on_pre_optimizer_step

< >

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

Evento que se llama antes del paso del optimizador pero después del recorte de gradientes. Útil para supervisar los gradientes.

on_predict

< >

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

Evento llamado después de una predicción exitosa.

on_prediction_step

< >

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

Evento llamado después de un paso de predicción.

on_push_begin

< >

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

Evento que se llama antes de subir el modelo al hub, al inicio de Trainer.push_to_hub y Trainer._push_from_checkpoint.

on_save

< >

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

Evento llamado después de guardar un punto de control.

on_step_begin

< >

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

Evento que se llama al inicio de un paso de entrenamiento. Si se usa acumulación de gradientes, un paso de entrenamiento puede tomar varias entradas.

on_step_end

< >

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

Evento que se llama al final de un paso de entrenamiento. Si se usa acumulación de gradientes, un paso de entrenamiento puede tomar varias entradas.

on_substep_end

< >

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

Evento que se llama al final de un subpaso durante la acumulación de gradientes.

on_train_begin

< >

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

Evento llamado al inicio del entrenamiento.

on_train_end

< >

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

Evento llamado al final del entrenamiento.

A continuación se muestra un ejemplo de cómo registrar un callback personalizado con el Trainer de 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())
)

Otra forma de registrar un callback es llamar a trainer.add_callback() de la siguiente manera:

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

TrainerState

clase 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 )

Parámetros

  • epoch (float, opcional) — Solo se establece durante el entrenamiento y representa la época en la que se encuentra el entrenamiento (la parte decimal indica el porcentaje de la época actual completado).
  • global_step (int, opcional, valor predeterminado 0) — Durante el entrenamiento, representa el número de pasos de actualización completados.
  • max_steps (int, opcional, valor predeterminado 0) — El número de pasos de actualización que se realizarán durante el entrenamiento actual.
  • logging_steps (int, opcional, valor predeterminado 500) — Registra cada X pasos de actualización
  • eval_steps (int, opcional) — Ejecuta una evaluación cada X pasos.
  • save_steps (int, opcional, valor predeterminado 500) — Guarda un punto de control cada X pasos de actualización.
  • train_batch_size (int, opcional) — El tamaño del lote para el dataloader de entrenamiento. Solo es necesario cuando se ha utilizado auto_find_batch_size.
  • num_input_tokens_seen (int, opcional, valor predeterminado 0) — Al hacer seguimiento de los tokens de entrada, el número de tokens vistos durante el entrenamiento (número de tokens de entrada, no el número de tokens de predicción).
  • total_flos (float, opcional, valor predeterminado 0) — El número total de operaciones de coma flotante realizadas por el modelo desde el inicio del entrenamiento (almacenadas como floats para evitar desbordes).
  • log_history (list[dict[str, float]], opcional) — La lista de registros realizados desde el inicio del entrenamiento.
  • best_metric (float, opcional) — Al hacer seguimiento del mejor modelo, el valor de la mejor métrica encontrada hasta el momento.
  • best_global_step (int, opcional) — Al hacer seguimiento del mejor modelo, el paso en el que se encontró la mejor métrica. Se utiliza para establecer best_model_checkpoint.
  • best_model_checkpoint (str, opcional) — Al hacer seguimiento del mejor modelo, el valor del nombre del checkpoint del mejor modelo encontrado hasta el momento.
  • is_local_process_zero (bool, opcional, valor predeterminado True) — Indica si este proceso es el proceso principal local (por ejemplo, en una sola máquina si el entrenamiento se realiza de forma distribuida en varias máquinas).
  • is_world_process_zero (bool, opcional, valor predeterminado True) — Indica si este proceso es el proceso principal global (cuando se entrena de forma distribuida en varias máquinas, solo será True para un proceso).
  • is_hyper_param_search (bool, opcional, valor predeterminado False) — Indica si estamos en el proceso de una búsqueda de hiperparámetros usando Trainer.hyperparameter_search. Esto afectará la forma en que se registran los datos en TensorBoard.
  • stateful_callbacks (list[StatefulTrainerCallback], opcional) — Callbacks adjuntos al Trainer cuyo estado debe guardarse o restaurarse. Los callbacks relevantes deben implementar una función state y una función from_state.

Una clase que contiene el estado interno de Trainer que se guardará junto con el modelo y el optimizador al crear un punto de control y se pasará a TrainerCallback.

En toda esta clase, un paso debe entenderse como un paso de actualización. Al usar la acumulación de gradientes, un paso de actualización puede requerir varias pasadas hacia adelante y hacia atrás: si usas gradient_accumulation_steps=n, entonces un paso de actualización requiere recorrer n lotes.

compute_steps

< >

( argsmax_steps )

Calcula y almacena el valor absoluto para los pasos de registro, evaluación y guardado, en función de si se trataba de una proporción o no.

init_training_references

< >

( trainermax_stepsnum_train_epochstrial )

Almacena las referencias iniciales de entrenamiento necesarias en self

load_from_json

< >

( json_path: str )

Cree una instancia a partir del contenido de json_path.

save_to_json

< >

( json_path: str )

Guarde el contenido de esta instancia en formato JSON dentro de json_path.

TrainerControl

clase transformers.TrainerControl

< >

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

Parámetros

  • should_training_stop (bool, opcional, por defecto False) — Indica si el entrenamiento debe interrumpirse.

    Si True, esta variable no se restablecerá a False. El entrenamiento simplemente se detendrá.

  • should_epoch_stop (bool, opcional, por defecto False) — Indica si el epoch actual debe interrumpirse.

    Si True, esta variable se restablecerá a False al inicio de la siguiente época.

  • should_save (bool, opcional, por defecto False) — Indica si el modelo debe guardarse en este paso.

    Si True, esta variable se restablecerá a False al inicio del siguiente paso.

  • should_evaluate (bool, opcional, por defecto False) — Indica si el modelo debe evaluarse en este paso.

    Si True, esta variable se restablecerá a False al inicio del siguiente paso.

  • should_log (bool, opcional, por defecto False) — Indica si los registros deben informarse en este paso.

    Si True, esta variable se restablecerá a False al inicio del siguiente paso.

Una clase que gestiona el flujo de control del Trainer. Esta clase es utilizada por el TrainerCallback para activar algunos interruptores en el bucle de entrenamiento.

Update on GitHub