Transformers documentation

Colaborador de datos

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

Colaborador de datos

Los collators de datos son objetos que forman un lote utilizando como entrada una lista de elementos del conjunto de datos. Estos elementos son del mismo tipo que los elementos de train_dataset o eval_dataset.

Para poder construir lotes, los collators de datos pueden aplicar algún procesamiento (como relleno). Algunos de ellos (como DataCollatorForLanguageModeling) también aplican alguna aumentación aleatoria de datos (como enmascarado aleatorio) al lote formado.

Se pueden encontrar ejemplos de uso en los cuadernos de ejemplo.

Colador de datos predeterminado

transformers.default_data_collator

< >

( features: listreturn_tensors = 'pt' )

Collator de datos muy simple que simplemente agrupa lotes de objetos tipo diccionario y realiza un tratamiento especial para las posibles claves denominadas:

  • label: maneja un único valor (int o float) por objeto
  • label_ids: maneja una lista de valores por objeto

No realiza ningún preprocesamiento adicional: los nombres de las propiedades del objeto de entrada se utilizarán como entradas correspondientes para el modelo. Consulte glue y ner como ejemplo de cómo es útil.

DefaultDataCollator

clase transformers.DefaultDataCollator

< >

( return_tensors: str = 'pt' )

Parámetros

  • return_tensors (str, opcional, valor predeterminado "pt") — El tipo de Tensor a devolver. Los valores permitidos son “np” o “pt”.

Collator de datos muy simple que simplemente agrupa lotes de objetos tipo diccionario y realiza un tratamiento especial para las posibles claves denominadas:

  • label: maneja un único valor (int o float) por objeto
  • label_ids: maneja una lista de valores por objeto

No realiza ningún preprocesamiento adicional: los nombres de las propiedades del objeto de entrada se utilizarán como entradas correspondientes para el modelo. Consulte glue y ner como ejemplo de cómo es útil.

Este es un objeto (al igual que otros data collators) en lugar de una función pura como default_data_collator. Esto puede ser útil si necesitas establecer un valor de return_tensors durante la inicialización.

DataCollatorWithPadding

clase transformers.DataCollatorWithPadding

< >

( tokenizer: PreTrainedTokenizerBasepadding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonereturn_tensors: str = 'pt' )

Parámetros

  • tokenizer (PreTrainedTokenizer o PreTrainedTokenizerFast) — El tokenizador utilizado para codificar los datos.
  • padding (bool, str o PaddingStrategy, opcional, por defecto True) — Seleccione una estrategia para rellenar las secuencias devueltas (según el lado de relleno y el índice de relleno del modelo) entre:
    • True o 'longest' (predeterminado): Rellena hasta la secuencia más larga del lote (o no aplica relleno si solo se proporciona una secuencia).
    • 'max_length': Rellena hasta una longitud máxima especificada con el argumento max_length o hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.
    • False o 'do_not_pad': Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
  • max_length (int, opcional) — Longitud máxima de la lista devuelta y, opcionalmente, longitud de relleno (véase arriba).
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado.

    Esto resulta especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.0 (Volta).

  • return_tensors (str, opcional, valor predeterminado "pt") — El tipo de Tensor a devolver. Los valores permitidos son “np” o “pt”.

Colador de datos que rellenará dinámicamente las entradas recibidas.

DataCollatorForTokenClassification

clase transformers.DataCollatorForTokenClassification

< >

( tokenizer: PreTrainedTokenizerBasepadding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonelabel_pad_token_id: int = -100return_tensors: str = 'pt' )

Parámetros

  • tokenizer (PreTrainedTokenizer o PreTrainedTokenizerFast) — El tokenizador utilizado para codificar los datos.
  • padding (bool, str o PaddingStrategy, opcional, por defecto True) — Seleccione una estrategia para rellenar las secuencias devueltas (según el lado de relleno y el índice de relleno del modelo) entre:
    • True o 'longest' (predeterminado): Rellena hasta la secuencia más larga del lote (o no aplica relleno si solo se proporciona una secuencia).
    • 'max_length': Rellena hasta una longitud máxima especificada con el argumento max_length o hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.
    • False o 'do_not_pad': Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
  • max_length (int, opcional) — Longitud máxima de la lista devuelta y, opcionalmente, longitud de relleno (véase arriba).
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado.

    Esto resulta especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.0 (Volta).

  • label_pad_token_id (int, opcional, valor predeterminado -100) — El identificador que se utiliza al rellenar las etiquetas (-100 se ignorará automáticamente en las funciones de pérdida de PyTorch).
  • return_tensors (str, opcional, valor predeterminado "pt") — El tipo de Tensor a devolver. Los valores permitidos son “np” o “pt”.

Colador de datos que rellenará dinámicamente las entradas recibidas, así como las etiquetas.

DataCollatorForSeq2Seq

clase transformers.DataCollatorForSeq2Seq

< >

( tokenizer: PreTrainedTokenizerBasemodel: typing.Any | None = Nonepadding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonelabel_pad_token_id: int = -100return_tensors: str = 'pt' )

Parámetros

  • tokenizer (PreTrainedTokenizer o PreTrainedTokenizerFast) — El tokenizador utilizado para codificar los datos.
  • model (PreTrainedModel, opcional) — El modelo que se está entrenando. Si está definido y tiene el método prepare_decoder_input_ids_from_labels, úsalo para preparar los decoder_input_ids

    Esto es útil al usar label_smoothing para evitar calcular la pérdida dos veces.

  • padding (bool, str o PaddingStrategy, opcional, por defecto True) — Seleccione una estrategia para rellenar las secuencias devueltas (según el lado de relleno y el índice de relleno del modelo) entre:
    • True o 'longest' (predeterminado): Rellena hasta la secuencia más larga del lote (o no aplica relleno si solo se proporciona una secuencia).
    • 'max_length': Rellena hasta una longitud máxima especificada con el argumento max_length o hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.
    • False o 'do_not_pad': Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
  • max_length (int, opcional) — Longitud máxima de la lista devuelta y, opcionalmente, longitud de relleno (véase arriba).
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado.

    Esto resulta especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.0 (Volta).

  • label_pad_token_id (int, opcional, valor predeterminado -100) — El identificador que se utiliza al rellenar las etiquetas (-100 se ignorará automáticamente por las funciones de pérdida de PyTorch).
  • return_tensors (str, opcional, valor predeterminado "pt") — El tipo de Tensor a devolver. Los valores permitidos son “np” o “pt”.

Colador de datos que rellenará dinámicamente las entradas recibidas, así como las etiquetas.

DataCollatorForLanguageModeling

clase transformers.DataCollatorForLanguageModeling

< >

( tokenizer: PreTrainedTokenizerBasemlm: bool = Truewhole_word_mask: bool = Falsemlm_probability: float | None = 0.15mask_replace_prob: float = 0.8random_replace_prob: float = 0.1pad_to_multiple_of: int | None = Nonereturn_tensors: str = 'pt'seed: int | None = None )

Parámetros

  • tokenizer (PreTrainedTokenizer o PreTrainedTokenizerFast) — El tokenizador utilizado para codificar los datos.
  • mlm (bool, opcional, valor predeterminado True) — Indica si se debe usar el modelado de lenguaje enmascarado. Si se establece en False, las etiquetas son las mismas que las entradas, ignorando los tokens de relleno (estableciéndolos en -100). En caso contrario, las etiquetas son -100 para los tokens no enmascarados y el valor a predecir para el token enmascarado.
  • whole_word_mask (bool, opcional, valor predeterminado False) — Si se deben enmascarar palabras completas en lugar de tokens individuales.
  • mlm_probability (float, opcional, valor predeterminado 0.15) — La probabilidad con la que se enmascaran (aleatoriamente) los tokens en la entrada, cuando mlm se establece en True.
  • mask_replace_prob (float, opcional, valor predeterminado 0.8) — La probabilidad con la que los tokens enmascarados se reemplazan por el token de máscara del tokenizador (p. ej., [MASK]). El valor predeterminado es 0.8, lo que significa que el 80% de los tokens enmascarados se reemplazarán con [MASK]. Solo funciona cuando mlm está establecido en True.
  • random_replace_prob (float, opcional, valor predeterminado 0.1) — La probabilidad con la que los tokens enmascarados se reemplazan por tokens aleatorios del vocabulario del tokenizador. El valor predeterminado es 0.1, lo que significa que el 10% de los tokens enmascarados se reemplazará con tokens aleatorios. Los tokens enmascarados restantes (1 - mask_replace_prob - random_replace_prob) se dejan sin cambios. Solo funciona cuando mlm está establecido en True.
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado.
  • return_tensors (str) — El tipo de Tensor a devolver. Los valores permitidos son “np” o “pt”.
  • seed (int, opcional) — La semilla a utilizar para el generador de números aleatorios para el enmascaramiento. Si no se proporciona, se utilizará el RNG global.

Colador de datos utilizado para el modelado de lenguaje. Las entradas se rellenan dinámicamente hasta la longitud máxima de un lote si no todas tienen la misma longitud.

Para obtener el mejor rendimiento, este data collator debe usarse con un conjunto de datos cuyos elementos sean diccionarios o BatchEncoding, con la clave "special_tokens_mask", tal como lo devuelve un PreTrainedTokenizer o un PreTrainedTokenizerFast con el argumento return_special_tokens_mask=True.

<Example Options and Expectations>
  1. Comportamiento predeterminado:

    • mask_replace_prob=0.8, random_replace_prob=0.1.
    • Esperamos que el 80% de los tokens enmascarados se reemplacen por [MASK], el 10% se reemplace por tokens aleatorios y el 10% permanezca sin cambios.
  2. Todos los tokens enmascarados reemplazados por [MASK]:

    • mask_replace_prob=1.0, random_replace_prob=0.0.
    • Se espera que todos los tokens enmascarados se reemplacen con [MASK]. No se dejan tokens sin cambios ni se reemplazan con tokens aleatorios.
  3. Sin reemplazo de [MASK], solo tokens aleatorios:

    • mask_replace_prob=0.0, random_replace_prob=1.0.
    • Esperar que todos los tokens enmascarados se reemplacen con tokens aleatorios. Sin reemplazos de [MASK] ni tokens sin cambios.
  4. Sustitución equilibrada:

    • mask_replace_prob=0.5, random_replace_prob=0.4.
    • Esperamos que el 50% de los tokens enmascarados se reemplacen con [MASK], el 40% se reemplace con tokens aleatorios y el 10% permanezca sin cambios.

Nota: La suma de mask_replace_prob y random_replace_prob no debe superar 1. Si su suma es menor que 1, la proporción restante consistirá en tokens enmascarados que se mantendrán sin cambios.

numpy_mask_tokens

< >

( inputs: Anyspecial_tokens_mask: typing.Any | None = Noneoffset_mapping: typing.Any | None = None )

Prepara las entradas/etiquetas de tokens enmascarados para el modelado de lenguaje enmascarado.

torch_mask_tokens

< >

( inputs: Anyspecial_tokens_mask: typing.Any | None = Noneoffset_mapping: typing.Any | None = None )

Prepara las entradas/etiquetas de tokens enmascarados para el modelado de lenguaje enmascarado.

DataCollatorForPermutationLanguageModeling

clase transformers.DataCollatorForPermutationLanguageModeling

< >

( tokenizer: PreTrainedTokenizerBaseplm_probability: float = 0.16666666666666666max_span_length: int = 5return_tensors: str = 'pt' )

Colador de datos utilizado para el modelado de lenguaje por permutación.

  • agrupa lotes de tensores, respetando el pad_token de su tokenizador
  • preprocesa lotes para el modelado de lenguaje por permutación con procedimientos específicos de XLNet

numpy_mask_tokens

< >

( inputs: Any )

Los tokens enmascarados que se deben predecir para una secuencia en particular se determinan mediante el siguiente algoritmo:

  1. Comience desde el inicio de la secuencia estableciendo cur_len = 0 (número de tokens procesados hasta el momento).
  2. Muestreea un span_length del intervalo [1, max_span_length] (longitud del tramo de tokens que se van a enmascarar)
  3. Reserve un contexto de longitud context_length = span_length / plm_probability para rodear el span que se va a enmascarar
  4. Muestree un punto de inicio start_index del intervalo [cur_len, cur_len + context_length - span_length] y enmascare los tokens start_index:start_index + span_length
  5. Establezca cur_len = cur_len + context_length. Si cur_len < max_len (es decir, quedan tokens en la secuencia por procesar), repita desde el Paso 1.

torch_mask_tokens

< >

( inputs: Any )

Los tokens enmascarados que se deben predecir para una secuencia en particular se determinan mediante el siguiente algoritmo:

  1. Comience desde el inicio de la secuencia estableciendo cur_len = 0 (número de tokens procesados hasta el momento).
  2. Muestreea un span_length del intervalo [1, max_span_length] (longitud del tramo de tokens que se van a enmascarar)
  3. Reserve un contexto de longitud context_length = span_length / plm_probability para rodear el span que se va a enmascarar
  4. Muestree un punto de inicio start_index del intervalo [cur_len, cur_len + context_length - span_length] y enmascare los tokens start_index:start_index + span_length
  5. Establezca cur_len = cur_len + context_length. Si cur_len < max_len (es decir, quedan tokens en la secuencia por procesar), repita desde el Paso 1.

DataCollatorWithFlattening

clase transformers.DataCollatorWithFlattening

< >

( *argsreturn_position_ids = Trueseparator_id = -100return_flash_attn_kwargs = Falsereturn_seq_idx = Falseposition_ids_start = 0**kwargs )

Parámetros

  • return_position_ids (bool, opcional, valor predeterminado True) — Si se deben devolver position_ids, que se reinician en position_ids_start para cada secuencia aplanada.
  • separator_id (int, opcional, valor predeterminado -100) — El valor utilizado para separar las secuencias dentro de las labels concatenadas.
  • return_flash_attn_kwargs (bool, opcional, valor predeterminado False) — Si se devuelven los kwargs de los límites de secuencia utilizados por FlashAttention (cu_seq_lens_q, cu_seq_lens_k, max_length_q y max_length_k).
  • return_seq_idx (bool, opcional, valor predeterminado False) — Indica si se debe devolver seq_idx, que especifica la secuencia a la que pertenece cada token.
  • position_ids_start (int, opcional, valor predeterminado 0) — El identificador de posición asignado al primer token de cada secuencia.

Colador de datos utilizado para el enfoque sin relleno. Realiza lo siguiente:

  • concatena todo el mini lote en una única secuencia larga de forma [1, total_tokens]
  • usa separator_id para separar las secuencias dentro de labels concatenadas, el valor predeterminado es -100
  • no se añadirá padding, devuelve input_ids, labels y position_ids de forma predeterminada
  • opcionalmente devuelve los kwargs contenidos en FlashAttentionKwargs
  • opcionalmente devuelve seq_idx que indica a qué secuencia pertenece cada token

El uso de DataCollatorWithFlattening aplanará el mini lote completo en una única secuencia larga. ¡Asegúrate de que tu cálculo de atención pueda manejarlo!

No todos los modelos numeran las posiciones desde 0 al calcular los ids de posición por sí mismos. Las arquitecturas similares a RoBERTa (entre ellas roberta, xlm_roberta, camembert, mpnet y esm con embeddings de posición absoluta) comienzan en padding_idx + 1, que suele ser 2. Si se pasan a estos modelos los position_ids predeterminados basados en 0, los embeddings de posición se desplazan silenciosamente y se degradan sus salidas, por lo que hay que establecer position_ids_start en consecuencia para esos modelos.

DataCollatorForMultipleChoice

clase transformers.DataCollatorForMultipleChoice

< >

( tokenizer: PreTrainedTokenizerBasepadding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonereturn_tensors: str = 'pt' )

Parámetros

  • tokenizer (PreTrainedTokenizer o PreTrainedTokenizerFast) — El tokenizador utilizado para codificar los datos.
  • padding (bool, str o PaddingStrategy, opcional, por defecto True) — Seleccione una estrategia para rellenar las secuencias devueltas según el lado de relleno y el índice de relleno del modelo, entre:
    • True o 'longest': Rellena hasta la secuencia más larga del lote (o no aplica relleno si solo se proporciona una secuencia).
    • 'max_length': Rellena hasta una longitud máxima especificada con el argumento max_length o hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.
    • False o 'do_not_pad' (predeterminado): Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
  • max_length (int, opcional) — Longitud máxima de la lista devuelta y, opcionalmente, longitud de relleno (véase arriba).
  • pad_to_multiple_of (int, opcional) — Rellena la secuencia hasta un múltiplo del valor proporcionado.

    Esto resulta especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.5 (Volta).

  • return_tensors (str, opcional, valor predeterminado "pt") — El tipo de Tensor a devolver. Los valores permitidos son “np” o “pt”.

Colador de datos que rellena dinámicamente un lote de ejemplos anidados para selección múltiple, de modo que todas las opciones de todos los ejemplos tengan la misma longitud.

Update on GitHub