Transformers documentation

Tokenizer

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

Tokenizer

Un tokenizer se encarga de preparar las entradas para un modelo. La biblioteca contiene tokenizers para todos los modelos. La mayoría de los tokenizers están disponibles en dos variantes: una implementación completa en Python y una implementación “Fast” basada en la biblioteca Rust 🤗 Tokenizers. Las implementaciones “Fast” permiten:

  1. una aceleración significativa, en particular al realizar tokenización por lotes y
  2. métodos adicionales para mapear entre la cadena original (caracteres y palabras) y el espacio de tokens (por ejemplo, obtener el índice del token que comprende un carácter dado o el rango de caracteres correspondiente a un token dado).

Las clases base PreTrainedTokenizer y PreTrainedTokenizerFast implementan los métodos comunes para codificar las entradas de texto en entradas de modelo (ver más abajo) y para instanciar/guardar tokenizadores de python y “Fast” ya sea desde un archivo o directorio local o desde un tokenizador preentrenado proporcionado por la biblioteca (descargado del repositorio AWS S3 de HuggingFace). Ambas se basan en PreTrainedTokenizerBase, que contiene los métodos comunes.

PreTrainedTokenizer y PreTrainedTokenizerFast implementan así los métodos principales para usar todos los tokenizadores:

  • Tokenizar (dividir cadenas en subtokens), convertir cadenas de tokens en ids y viceversa, y codificar/decodificar (es decir, tokenizar y convertir en enteros).
  • Agregar nuevos tokens al vocabulario de una manera independiente de la estructura subyacente (BPE, SentencePiece…).
  • Gestión de tokens especiales (como mask, beginning-of-sentence, etc.): añadirlos, asignarlos a atributos del tokenizer para facilitar su acceso y asegurarse de que no se dividan durante la tokenización.

BatchEncoding contiene la salida de los métodos de codificación de PreTrainedTokenizerBase (__call__, encode_plus y batch_encode_plus) y se deriva de un diccionario de Python. Cuando el tokenizador es un tokenizador puro de Python, esta clase se comporta como un diccionario estándar de Python y contiene las diversas entradas del modelo calculadas por estos métodos (input_ids, attention_mask…). Cuando el tokenizador es un tokenizador “Fast” (es decir, respaldado por la tokenizers library de HuggingFace), esta clase proporciona además varios métodos avanzados de alineación que se pueden usar para mapear entre la cadena original (caracteres y palabras) y el espacio de tokens (por ejemplo, obtener el índice del token que comprende un carácter dado o el rango de caracteres correspondiente a un token dado).

Tokenizer multimodal

Además de eso, cada tokenizador puede ser un tokenizador “multimodal”, lo que significa que el tokenizador contendrá todos los tokens especiales relevantes como parte de los atributos del tokenizador para facilitar su acceso. Por ejemplo, si el tokenizador se carga desde un modelo de visión-lenguaje como LLaVA, podrá acceder a tokenizer.image_token_id para obtener el token especial de imagen utilizado como marcador de posición.

Para habilitar tokens especiales adicionales para cualquier tipo de tokenizador, debe agregar las siguientes líneas y guardar el tokenizador. Los tokens especiales adicionales no tienen por qué estar relacionados con la modalidad y pueden ser cualquier cosa a la que el modelo necesite acceder con frecuencia. En el siguiente código, el tokenizador en output_dir tendrá acceso directo a tres tokens especiales más.

vision_tokenizer = AutoTokenizer.from_pretrained(
    "llava-hf/llava-1.5-7b-hf",
    extra_special_tokens={"image_token": "<image>", "boi_token": "<image_start>", "eoi_token": "<image_end>"}
)
print(vision_tokenizer.image_token, vision_tokenizer.image_token_id)
("<image>", 32000)

PreTrainedTokenizer

clase transformers.PythonBackend

< >

( **kwargs )

Parámetros

  • model_max_length (int, opcional) — La longitud máxima (en número de tokens) para las entradas del modelo transformer. Cuando el tokenizador se carga con from_pretrained(), se establecerá en el valor almacenado para el modelo asociado en max_model_input_sizes (ver arriba). Si no se proporciona un valor, usará VERY_LARGE_INTEGER (int(1e30)) por defecto.
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • truncation_side (str, opcional) — El lado en el que el modelo debe aplicar la truncación. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • chat_template (str, opcional) — Una cadena de plantilla Jinja que se utilizará para formatear listas de mensajes de chat. Consulte https://huggingface.co/docs/transformers/chat_templating para una descripción completa.
  • model_input_names (list[string], opcional) — La lista de entradas aceptadas por la pasada hacia adelante del modelo (como "token_type_ids" o "attention_mask"). El valor predeterminado se toma del atributo de clase con el mismo nombre.
  • bos_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa el inicio de una oración.
  • eos_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa el final de una oración.
  • unk_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa un token fuera del vocabulario.
  • sep_token (str o tokenizers.AddedToken, opcional) — Un token especial que separa dos oraciones diferentes en la misma entrada (utilizado, por ejemplo, por BERT).
  • pad_token (str o tokenizers.AddedToken, opcional) — Un token especial utilizado para que los arreglos de tokens tengan el mismo tamaño con fines de lote. Luego será ignorado por los mecanismos de atención o el cálculo de la pérdida.
  • cls_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa la clase de la entrada (utilizado, por ejemplo, por BERT).
  • mask_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa un token enmascarado (utilizado por objetivos de preentrenamiento de modelado de lenguaje enmascarado, como BERT). Se asociará a self.mask_token y self.mask_token_id.
  • extra_special_tokens (lista de str o tokenizers.AddedToken, opcional) — Una lista de tokens especiales adicionales específicos del modelo. Añádalos aquí para asegurarte de que se omiten al decodificar cuando skip_special_tokens está establecido en True. Si no forman parte del vocabulario, se añadirán al final del vocabulario.
  • split_special_tokens (bool, opcional, valor predeterminado False) — Indica si los tokens especiales deben dividirse durante el proceso de tokenización. Pasar este argumento afectará al estado interno del tokenizador. El comportamiento predeterminado es no dividir los tokens especiales. Esto significa que si <s> es el bos_token, entonces tokenizer.tokenize("<s>") = ['<s>]. En caso contrario, si split_special_tokens=True, entonces tokenizer.tokenize("<s>") devolverá ['<','s', '>'].

Clase base para todos los tokenizadores lentos.

Hereda de PreTrainedTokenizerBase.

Gestiona todos los métodos compartidos para la tokenización y los tokens especiales, así como los métodos para descargar, cachear y cargar tokenizadores preentrenados, además de añadir tokens al vocabulario.

Esta clase también contiene los tokens añadidos de manera unificada sobre todos los tokenizadores, de modo que no tengamos que manejar los métodos específicos de ampliación del vocabulario de las diversas estructuras de diccionario subyacentes (BPE, sentencepiece…).

Atributos de clase (sobreescritos por las clases derivadas)

  • vocab_files_names (dict[str, str]) — Un diccionario que, como claves, contiene el nombre de la palabra clave de __init__ de cada archivo de vocabulario requerido por el modelo, y como valores asociados, el nombre del archivo para guardar el archivo asociado (cadena de caracteres).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Un diccionario de diccionarios, cuyas claves de alto nivel son el nombre de la palabra clave de __init__ de cada archivo de vocabulario requerido por el modelo, y las de bajo nivel son los short-cut-names de los modelos preentrenados, con, como valores asociados, la url del archivo de vocabulario preentrenado correspondiente.
  • model_input_names (list[str]) — Una lista de entradas esperadas en la pasada hacia adelante del modelo.
  • padding_side (str) — El valor predeterminado para el lado en el que el modelo debe aplicar el relleno. Debe ser 'right' o 'left'.
  • truncation_side (str) — El valor predeterminado para el lado en el que el modelo debe aplicar la truncación. Debe ser 'right' o 'left'.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

Parámetros

  • text (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadenas pre-tokenizadas). Si las secuencias se proporcionan como lista de cadenas de caracteres (pre-tokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • text_pair (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadena pre-tokenizada). Si las secuencias se proporcionan como lista de cadenas de caracteres (pre-tokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • text_target (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán como textos objetivo. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadena pretokenizada). Si las secuencias se proporcionan como lista de cadenas de caracteres (pretokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • text_pair_target (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán como textos objetivo. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadena pretokenizada). Si las secuencias se proporcionan como lista de cadenas de caracteres (pretokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • tokenizer_kwargs (dict[str, Any], opcional) — Kwargs adicionales para pasar al tokenizer. Se fusionarán con los parámetros explícitos y otros kwargs, dando prioridad a los parámetros explícitos.
  • add_special_tokens (bool, opcional, valor predeterminado True) — Indica si se deben o no añadir tokens especiales al codificar las secuencias. Esto utilizará la función subyacente PretrainedTokenizerBase.build_inputs_with_special_tokens, que define qué tokens se añaden automáticamente a los ids de entrada. Esto es útil si deseas añadir tokens bos o eos automáticamente.
  • padding (bool, str o PaddingStrategy, opcional, el valor predeterminado es False) — Activa y controla el relleno. Acepta los siguientes valores:
    • 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).
  • truncation (bool, str o TruncationStrategy, opcional, por defecto False) — Activa y controla la truncación. Acepta los siguientes valores:
    • True o 'longest_first': Trunca 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. Esto truncará token a token, eliminando un token de la secuencia más larga de la pareja si se proporciona una pareja de secuencias (o un lote de parejas).
    • 'only_first': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la primera secuencia de un par si se proporciona un par de secuencias (o un lote de pares).
    • 'only_second': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la segunda secuencia de un par si se proporciona un par de secuencias (o un lote de pares).
    • False o 'do_not_truncate' (predeterminado): sin truncamiento (es decir, se puede generar un lote con longitudes de secuencia mayores que el tamaño máximo de entrada admisible por el modelo).
  • max_length (int, opcional) — Controla la longitud máxima que se utilizará mediante uno de los parámetros de truncamiento/relleno.

    Si se deja sin definir o se establece en None, se utilizará la longitud máxima predefinida del modelo si uno de los parámetros de truncamiento/relleno lo requiere. Si el modelo no tiene una longitud máxima de entrada específica (como XLNet), el truncamiento/relleno a una longitud máxima se desactivará.

  • stride (int, opcional, valor predeterminado 0) — Si se establece en un número junto con max_length, los tokens de desbordamiento devueltos cuando return_overflowing_tokens=True contendrán algunos tokens del final de la secuencia truncada devuelta para proporcionar cierta superposición entre las secuencias truncadas y las de desbordamiento. El valor de este argumento define el número de tokens superpuestos.
  • is_split_into_words (bool, opcional, valor predeterminado False) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece en True, el tokenizador asume que la entrada ya está dividida en palabras (por ejemplo, dividiéndola por espacios en blanco) y las tokenizará. Esto es útil para NER o clasificación de tokens.
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado. Requiere que padding esté activado. Esto es especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.5 (Volta).
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • return_tensors (str o TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:
    • 'pt': Devuelve objetos torch.Tensor de PyTorch.
    • 'np': Devuelve objetos Numpy np.ndarray.
  • return_token_type_ids (bool, opcional) — Si se deben devolver los IDs de tipo de token. Si se deja en el valor predeterminado, se devolverán los IDs de tipo de token según el valor predeterminado del tokenizador específico, definido por el return_outputs atributo.

    ¿Qué son los IDs de tipo de token?

  • return_attention_mask (bool, opcional) — Si se debe devolver la máscara de atención. Si se deja en el valor predeterminado, se devolverá la máscara de atención según el valor predeterminado del tokenizador específico, definido por el return_outputs atributo.

    ¿Qué son las máscaras de atención?

  • return_overflowing_tokens (bool, opcional, valor predeterminado False) — Indica si se deben devolver las secuencias de tokens que exceden el límite. Si se proporciona un par de secuencias de ids de entrada (o un lote de pares) con truncation_strategy = longest_first o True, se genera un error en lugar de devolver los tokens que exceden el límite.
  • return_special_tokens_mask (bool, opcional, valor predeterminado False) — Indica si se debe o no devolver información de la máscara de tokens especiales.
  • return_offsets_mapping (bool, opcional, por defecto False) — Si se devuelve o no (char_start, char_end) para cada token.

    Esto solo está disponible en los tokenizadores rápidos que heredan de PreTrainedTokenizerFast; si se utiliza el tokenizador de Python, este método lanzará NotImplementedError.

  • return_length (bool, opcional, valor predeterminado False) — Indica si se deben devolver las longitudes de las entradas codificadas.
  • verbose (bool, opcional, valor predeterminado True) — Si se imprime más información y advertencias.
  • **kwargs — se pasan al método self.tokenize()

Devuelve

BatchEncoding

Un BatchEncoding con los siguientes campos:

  • input_ids — Lista de ids de tokens que se enviarán a un modelo.

    ¿Qué son los IDs de entrada?

  • token_type_ids — Lista de ids de tipo de token que se enviarán a un modelo (cuando return_token_type_ids=True o si “token_type_ids” está en self.model_input_names).

    ¿Qué son los IDs de tipo de token?

  • attention_mask — Lista de índices que especifica qué tokens deben ser atendidos por el modelo (cuando return_attention_mask=True o si “attention_mask” está en self.model_input_names).

    ¿Qué son las máscaras de atención?

  • overflowing_tokens — Lista de secuencias de tokens que exceden el límite (cuando se especifica un max_length y return_overflowing_tokens=True).

  • num_truncated_tokens — Número de tokens truncados (cuando se especifica un max_length y return_overflowing_tokens=True).

  • special_tokens_mask — Lista de 0 y 1, donde 1 especifica los tokens especiales añadidos y 0 especifica los tokens regulares de la secuencia (cuando add_special_tokens=True y return_special_tokens_mask=True).

  • length — La longitud de las entradas (cuando return_length=True)

Método principal para tokenizar y preparar para el modelo una o varias secuencias o uno o varios pares de secuencias.

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

Parámetros

  • new_tokens (str, tokenizers.AddedToken o una secuencia de str o tokenizers.AddedToken) — Los tokens solo se añaden si no están ya en el vocabulario. tokenizers.AddedToken envuelve un token de cadena para permitir personalizar su comportamiento: si este token debe coincidir solo con una palabra, si debe eliminar todos los espacios en blanco potenciales en el lado izquierdo, si debe eliminar todos los espacios en blanco potenciales en el lado derecho, etc.
  • special_tokens (bool, opcional, valor predeterminado False) — Especifica si el token es especial. Esto cambia principalmente el comportamiento de normalización. Vea los detalles de tokenizers.AddedToken en la biblioteca HuggingFace tokenizers.

Devuelve

int

Número de tokens añadidos al vocabulario.

#TODO ¡eliminar esto de aquí! PreTrainedTokenizerBase debe ser agnóstico de AddedToken.

Añade una lista de nuevos tokens. Si los nuevos tokens no están en el vocabulario, se añaden al final. Por lo tanto, los tokens añadidos y los tokens del vocabulario del algoritmo de tokenización no se tratan de la misma manera.

Los tokenizadores rápidos con un pretokenizador Metaspace que usa prepend_scheme="always" (p. ej., NLLB) añaden "▁" al texto que sigue a un token añadido. Después de tokenizer.add_tokens(["abcd"]), "abcdgym" se tokeniza como ["abcd", "▁gym"] y se decodifica como "abcd gym". Si los tokens añadidos pueden aparecer dentro de palabras, cambia el pretokenizador

a prepend_scheme="first" para que solo se prefija el inicio de la entrada:

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

Ejemplos:

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

Parámetros

  • special_tokens_dict (diccionario str a str, tokenizers.AddedToken, o Sequence[Union[str, AddedToken]]) — Las claves deben estar en la lista de atributos especiales predefinidos: [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    Los tokens solo se añaden si no están ya en el vocabulario (se comprueba si el tokenizer les asigna el índice del unk_token).

  • replace_extra_special_tokens (bool, opcional, valor predeterminado True) — Si True, la lista existente de tokens especiales adicionales se reemplazará por la lista proporcionada en special_tokens_dict. De lo contrario, extra_special_tokens se extenderá. En el primer caso, los tokens NO se eliminarán del vocabulario completo del tokenizador; solo se marcan como tokens no especiales. Recuerde que esto solo afecta qué tokens se omiten durante la decodificación, no el added_tokens_encoder ni el added_tokens_decoder. Esto significa que los extra_special_tokens anteriores siguen siendo tokens añadidos y no serán divididos por el modelo.

Devuelve

int

Número de tokens añadidos al vocabulario.

Añade un diccionario de tokens especiales (eos, pad, cls, etc.) al codificador y los vincula a atributos de clase. Si los tokens especiales NO están en el vocabulario, se añaden a este (con índices que comienzan desde el último índice del vocabulario actual).

Al añadir nuevos tokens al vocabulario, debe asegurarse de redimensionar también la matriz de incrustaciones de tokens del modelo para que su matriz de incrustaciones coincida con el tokenizador.

Para hacer eso, utiliza el método resize_token_embeddings().

El uso de add_special_tokens garantiza que tus tokens especiales puedan utilizarse de varias formas:

  • Los tokens especiales se pueden omitir durante la decodificación usando skip_special_tokens = True.
  • Los tokens especiales se manejan con cuidado por parte del tokenizador (nunca se dividen), de manera similar a AddedTokens.
  • Puede hacer referencia fácilmente a los tokens especiales mediante los atributos de la clase tokenizer, como tokenizer.cls_token. Esto facilita el desarrollo de scripts de entrenamiento y ajuste fino independientes del modelo.

Cuando es posible, los tokens especiales ya están registrados para los modelos preentrenados proporcionados (por ejemplo, BertTokenizer cls_token ya está registrado como '[CLS]' y el de XLM también está registrado como '</s>').

Ejemplos:

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

Parámetros

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — Una lista de diccionarios con las claves “role” y “content”, que representa el historial de la conversación hasta el momento.
  • tools (list[Union[Dict, Callable]], opcional) — Una lista de herramientas (funciones invocables) que estarán accesibles para el modelo. Si la plantilla no soporta la invocación de funciones, este argumento no tendrá efecto. Cada herramienta debe pasarse como un JSON Schema, indicando el nombre, la descripción y los tipos de argumentos de la herramienta. Consulte nuestra guía de uso de herramientas para obtener más información.
  • documents (list[dict[str, str]], opcional) — Una lista de diccionarios que representan documentos a los que el modelo tendrá acceso si está realizando RAG (generación aumentada por recuperación). Si la plantilla no admite RAG, este argumento no tendrá efecto. Recomendamos que cada documento sea un diccionario que contenga las claves “title” y “text”.
  • chat_template (str, opcional) — Plantilla Jinja que se utilizará para esta conversión. Por lo general, no es necesario pasar nada a este argumento, ya que se utilizará la plantilla del modelo de forma predeterminada.
  • add_generation_prompt (bool, opcional) — Si se establece, se añadirá al final de la salida formateada un prompt con el o los tokens que indican el inicio de un mensaje del asistente. Esto es útil cuando se desea generar una respuesta del modelo. Tenga en cuenta que este argumento se pasará a la plantilla de chat, por lo que la plantilla debe admitirlo para que el argumento tenga algún efecto.
  • continue_final_message (bool o str, opcional) — Si se establece, el chat se formateará de modo que el mensaje final del chat sea de final abierto, sin tokens EOS. El modelo continuará este mensaje en lugar de comenzar uno nuevo. Esto permite “prellenar” parte de la respuesta del modelo. Si se pasa una cadena, se usará como clave para el campo a continuar (p. ej. “reasoning_content”). No se puede usar al mismo tiempo que add_generation_prompt.
  • tokenize (bool, por defecto True) — Si se debe tokenizar la salida. Si es False, la salida será una cadena de texto.
  • sanitize_control_tokens (bool, por defecto False) — Si se establece, los tokens de control que aparecen en mensajes, herramientas o documentos se codifican como texto ordinario, de modo que solo los tokens de control escritos por la plantilla de chat se codifican como tokens. Los tokens de control son los tokens especiales del tokenizador, más los tokens añadidos en tokenizer.chat_control_tokens. Si esa variable no está establecida, los tokens de control se infieren a partir de los tokens añadidos que aparecen en el texto de la plantilla de chat y en las literales de cadena. Solo se sanitizan los tokens de control completos, por lo que si la plantilla une cadenas de la entrada para formar tokens de control (como '<|' + message['role'] + '|>'), esas cadenas deben validarse por separado. Las claves de los diccionarios tampoco se sanitizan.
  • padding (bool, str o PaddingStrategy, opcional, por defecto False) — 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).
  • truncation (bool, por defecto False) — Si se deben truncar las secuencias en la longitud máxima. No tiene efecto si tokenize es False.
  • max_length (int, opcional) — Longitud máxima (en tokens) para usar en el relleno o la truncación. No tiene efecto si tokenize es False. Si no se especifica, se usará el atributo max_length del tokenizador como valor predeterminado.
  • return_tensors (str o TensorType, opcional) — Si se establece, devolverá tensores de un marco de trabajo específico. No tiene efecto si tokenize es False. Los valores aceptables son:
    • 'pt': Devuelve objetos torch.Tensor de PyTorch.
    • 'np': Devuelve objetos np.ndarray de NumPy.
  • return_dict (bool, por defecto True) — Si se devuelve un diccionario con salidas nombradas. No tiene efecto si tokenize es False.
  • tokenizer_kwargs (dict[str -- Any], opcional): Kwargs adicionales para pasar al tokenizer.
  • return_assistant_tokens_mask (bool, por defecto False) — Si se debe devolver una máscara de los tokens generados por el asistente. Para los tokens generados por el asistente, la máscara contendrá 1. Para los tokens de usuario y sistema, la máscara contendrá 0. Esta funcionalidad solo está disponible para plantillas de chat que la admiten mediante la palabra clave {% generation %}.
  • **kwargs — Kwargs adicionales para pasar al renderizador de la plantilla. Serán accesibles por la plantilla de chat.

Devuelve

Union[list[int], Dict]

Una lista de ids de tokens que representa el chat tokenizado hasta el momento, incluidos los tokens de control. Esta salida está lista para pasarse al modelo, ya sea directamente o mediante métodos como generate(). Si return_dict está establecido, se devolverá un diccionario de salidas del tokenizador en su lugar.

Convierte una lista de diccionarios con las claves "role" y "content" en una lista de ids de tokens. Este método está diseñado para su uso con modelos de chat y leerá el atributo chat_template del tokenizador para determinar el formato y los tokens de control que se usarán durante la conversión.

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Parámetros

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Lista de ids de entrada tokenizados. Se puede obtener usando el método __call__.
  • skip_special_tokens (bool, opcional, valor predeterminado False) — Indica si se deben eliminar los tokens especiales durante la decodificación.
  • clean_up_tokenization_spaces (bool, opcional) — Si se deben limpiar los espacios de tokenización. Si es None, se usará por defecto self.clean_up_tokenization_spaces.
  • kwargs (argumentos de palabra clave adicionales, opcional) — Se pasará al método de decodificación específico del modelo subyacente.

Devuelve

list[str]

La lista de oraciones decodificadas.

Convierta una lista de listas de ids de tokens en una lista de cadenas de texto llamando a decode.

Este método se proporciona por compatibilidad con versiones anteriores. El método decode ahora maneja la entrada por lotes de forma nativa, por lo que puede usar decode directamente en lugar de batch_decode.

decode

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

Parámetros

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Una secuencia única o un lote (lista de secuencias) de ids de entrada tokenizados. Se puede obtener mediante el método __call__.
  • skip_special_tokens (bool, opcional, valor predeterminado False) — Indica si se deben eliminar los tokens especiales durante la decodificación.
  • kwargs (argumentos de palabra clave adicionales, opcional) — Se pasará al método de decodificación específico del modelo subyacente.

Devuelve

Union[str, list[str]]

La cadena decodificada para una secuencia individual, o una lista de cadenas decodificadas para un lote de secuencias.

Convierte una secuencia de ids en una cadena de texto, o una lista de secuencias en una lista de cadenas de texto, utilizando el tokenizador y el vocabulario, con opciones para eliminar tokens especiales y limpiar los espacios de tokenización.

Similar a hacer self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

Parámetros

  • text (str, list[str] o list[int]) — La primera secuencia que se codificará. Puede ser una cadena de caracteres, una lista de cadenas (cadena tokenizada usando el método tokenize) o una lista de enteros (ids de tokens de una cadena tokenizada usando el método convert_tokens_to_ids).
  • text_pair (str, list[str] o list[int], opcional) — Segunda secuencia opcional que se codificará. Puede ser una cadena de caracteres, una lista de cadenas (cadena tokenizada usando el método tokenize) o una lista de enteros (ids de tokens de una cadena tokenizada usando el método convert_tokens_to_ids).
  • add_special_tokens (bool, opcional, valor predeterminado True) — Indica si se deben o no añadir tokens especiales al codificar las secuencias. Esto utilizará la función subyacente PretrainedTokenizerBase.build_inputs_with_special_tokens, que define qué tokens se añaden automáticamente a los ids de entrada. Esto es útil si deseas añadir tokens bos o eos automáticamente.
  • padding (bool, str o PaddingStrategy, opcional, el valor predeterminado es False) — Activa y controla el relleno. Acepta los siguientes valores:
    • 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).
  • truncation (bool, str o TruncationStrategy, opcional, por defecto False) — Activa y controla la truncación. Acepta los siguientes valores:
    • True o 'longest_first': Trunca 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. Esto truncará token a token, eliminando un token de la secuencia más larga de la pareja si se proporciona una pareja de secuencias (o un lote de parejas).
    • 'only_first': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la primera secuencia de un par si se proporciona un par de secuencias (o un lote de pares).
    • 'only_second': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la segunda secuencia de un par si se proporciona un par de secuencias (o un lote de pares).
    • False o 'do_not_truncate' (predeterminado): sin truncamiento (es decir, se puede generar un lote con longitudes de secuencia mayores que el tamaño máximo de entrada admisible por el modelo).
  • max_length (int, opcional) — Controla la longitud máxima que se utilizará mediante uno de los parámetros de truncamiento/relleno.

    Si se deja sin definir o se establece en None, se utilizará la longitud máxima predefinida del modelo si uno de los parámetros de truncamiento/relleno lo requiere. Si el modelo no tiene una longitud máxima de entrada específica (como XLNet), el truncamiento/relleno a una longitud máxima se desactivará.

  • stride (int, opcional, valor predeterminado 0) — Si se establece en un número junto con max_length, los tokens de desbordamiento devueltos cuando return_overflowing_tokens=True contendrán algunos tokens del final de la secuencia truncada devuelta para proporcionar cierta superposición entre las secuencias truncadas y las de desbordamiento. El valor de este argumento define el número de tokens superpuestos.
  • is_split_into_words (bool, opcional, valor predeterminado False) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece en True, el tokenizador asume que la entrada ya está dividida en palabras (por ejemplo, dividiéndola por espacios en blanco) y las tokenizará. Esto es útil para NER o clasificación de tokens.
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado. Requiere que padding esté activado. Esto es especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.5 (Volta).
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • return_tensors (str o TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:
    • 'pt': Devuelve objetos torch.Tensor de PyTorch.
    • 'np': Devuelve objetos Numpy np.ndarray.
  • **kwargs — Se pasan al método .tokenize().

Devuelve

list[int], torch.Tensor o np.ndarray

Los ids tokenizados del texto.

Convierte una cadena en una secuencia de ids (enteros), utilizando el tokenizador y el vocabulario.

Igual que hacer self.convert_tokens_to_ids(self.tokenize(text)).

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

Parámetros

  • repo_id (str) — El nombre del repositorio al que deseas subir tu tokenizador. Debe incluir el nombre de tu organización cuando se sube a una organización determinada.
  • commit_message (str, opcional) — Mensaje para el commit al hacer push. El valor predeterminado es "Upload tokenizer".
  • commit_description (str, opcional) — La descripción del commit que se creará
  • private (bool, opcional) — Si se debe hacer el repositorio privado. Si es None (predeterminado), el repositorio será público a menos que el valor predeterminado de la organización sea privado. Este valor se ignora si el repositorio ya existe.
  • token (bool o str, opcional) — El token que se usará como autorización HTTP bearer para archivos remotos. Si es True (valor predeterminado), se usará el token generado al ejecutar hf auth login (almacenado en ~/.huggingface).
  • revision (str, opcional) — Rama a la que se enviarán los archivos subidos.
  • create_pr (bool, opcional, valor predeterminado False) — Si se debe crear una PR con los archivos subidos o realizar el commit directamente.
  • max_shard_size (int o str, opcional, valor predeterminado "50GB") — Solo aplicable a modelos. El tamaño máximo de un checkpoint antes de ser fragmentado. Los fragmentos del checkpoint tendrán cada uno un tamaño inferior a este valor. Si se expresa como una cadena, debe consistir en dígitos seguidos de una unidad (como "5MB").
  • tags (list[str], opcional) — Lista de etiquetas para publicar en el Hub.

Sube los archivos del tokenizador al 🤗 Model Hub.

Ejemplos:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Parámetros

  • token_ids_0 (list[int]) — Lista de IDs a los que se les añadirán los tokens especiales.
  • token_ids_1 (list[int], opcional) — Segunda lista de IDs opcional para pares de secuencias.

Devuelve

list[int]

Lista de IDs de entrada con los tokens especiales apropiados.

Construya las entradas del modelo a partir de una secuencia o un par de secuencias añadiendo tokens especiales.

Este método construye dinámicamente las entradas en función de special_tokens_pattern del tokenizador:

  • "none": Sin tokens especiales
  • "cls_sep": [CLS] seq0 [SEP] o [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] o seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 o [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] o [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] o [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens> (prefijo/sufijo personalizado almacenado en el tokenizador)

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Parámetros

  • token_ids_0 (list[int]) — Lista de IDs.
  • token_ids_1 (list[int], opcional) — Segunda lista de IDs opcional para pares de secuencias.

Devuelve

list[int]

IDs de tipo de token según el patrón configurado.

Crea una máscara a partir de las dos secuencias pasadas para ser utilizada en una tarea de clasificación de pares de secuencias.

Este método construye dinámicamente los IDs de tipo de token en función de los atributos de configuración del tokenizador:

  • token_type_ids_pattern: Patrón a utilizar (“all_zeros” o “bert_style”)
  • token_type_ids_include_special_tokens: Si se deben tener en cuenta los tokens especiales en el cálculo de la longitud

Ejemplos:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

Devuelve

dict[str, int]

Los tokens añadidos.

Devuelve los tokens añadidos al vocabulario como un diccionario de token a índice. Los resultados pueden diferir de la llamada rápida porque, por ahora, siempre se añaden los tokens aunque ya estén en el vocabulario. Esto es algo que deberíamos cambiar.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

Parámetros

  • token_ids_0 (list[int]) — Lista de ids de la primera secuencia.
  • token_ids_1 (list[int], opcional) — Lista de ids de la segunda secuencia.
  • already_has_special_tokens (bool, opcional, valor predeterminado False) — Indica si la lista de tokens ya está formateada con tokens especiales para el modelo.

Devuelve

Una lista de enteros en el rango [0, 1]

1 para un token especial, 0 para un token de secuencia.

Obtiene los ids de secuencia de una lista de tokens a la que no se le han añadido tokens especiales. Este método se llama al añadir tokens especiales mediante los métodos prepare_for_model o encode_plus del tokenizer.

Este método construye dinámicamente la máscara de tokens especiales en función de special_tokens_pattern del tokenizador:

  • "none": Sin tokens especiales (predeterminado, devuelve todos 0)
  • "cls_sep": [CLS] seq0 [SEP] o [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] o seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 o [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] o [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] o [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Parámetros

  • pair (bool, opcional, valor predeterminado False) — Si el número de tokens añadidos debe calcularse en el caso de un par de secuencias o de una secuencia única.

Devuelve

int

Número de tokens especiales añadidos a las secuencias.

Devuelve el número de tokens añadidos al codificar una secuencia con tokens especiales.

Esto codifica una entrada ficticia y comprueba el número de tokens añadidos, por lo que no es eficiente. No coloque esto dentro de su bucle de entrenamiento.

prepare_for_model

< >

( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

Parámetros

  • ids — ids de entrada tokenizada de la primera secuencia.
  • pair_ids — ids de entrada tokenizados de la segunda secuencia (opcional).

Prepara una secuencia de ids de entrada para que pueda ser utilizada por el modelo. Añade tokens especiales, trunca y rellena.

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

Parámetros

  • text (str) — El texto a preparar.
  • is_split_into_words (bool, opcional, valor predeterminado False) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece en True, el tokenizador asume que la entrada ya está dividida en palabras (por ejemplo, dividiéndola por espacios en blanco) y las tokenizará. Esto es útil para NER o clasificación de tokens.
  • kwargs (dict[str, Any], opcional) — Argumentos de palabra clave para usar en la tokenización.

Devuelve

tuple[str, dict[str, Any]]

El texto preparado y los kwargs no utilizados.

Realiza las transformaciones necesarias antes de la tokenización.

Este método debe extraer los argumentos de kwargs y devolver también los kwargs restantes. Probamos los kwargs al final del proceso de codificación para asegurarnos de que se hayan utilizado todos los argumentos.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

Parámetros

  • save_directory (str) — El directorio en el que se guardará el vocabulario.
  • filename_prefix (str, opcional) — Un prefijo opcional para añadir al nombre de los archivos guardados.

Devuelve

tuple[str, ...]

Rutas a los archivos guardados, o una tupla vacía si no se guardaron archivos.

Implementación predeterminada para los patrones comunes de guardado de vocabulario. Guarda self.encoder/self.vocab como JSON, opcionalmente con self.bpe_ranks como fusiones. Devuelve una tupla vacía si no existe un vocabulario.

Sobrescriba este método si su tokenizador requiere una lógica de guardado personalizada (p. ej., modelos de SentencePiece, varios archivos de vocabulario o formatos de archivo especiales).

tokenize

< >

( text: str**kwargs )

Parámetros

  • text — La secuencia que se codificará.
  • **kwargs — Se pasan al método de preprocesamiento prepare_for_tokenization específico del modelo.

Convierte una cadena en una secuencia de tokens, utilizando el tokenizador.

truncate_sequences

< >

( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

Trunca las secuencias según la estrategia especificada.

PreTrainedTokenizerFast

El PreTrainedTokenizerFast depende de la biblioteca tokenizers. Los tokenizers obtenidos de la biblioteca 🤗 tokenizers se pueden cargar muy fácilmente en 🤗 transformers. Consulta la página Using tokenizers from 🤗 tokenizers para entender cómo se hace.

clase transformers.TokenizersBackend

< >

( *args**kwargs )

Parámetros

  • model_max_length (int, opcional) — La longitud máxima (en número de tokens) para las entradas del modelo transformer. Cuando el tokenizador se carga con from_pretrained(), se establecerá en el valor almacenado para el modelo asociado en max_model_input_sizes (ver arriba). Si no se proporciona un valor, usará VERY_LARGE_INTEGER (int(1e30)) por defecto.
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • truncation_side (str, opcional) — El lado en el que el modelo debe aplicar la truncación. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • chat_template (str, opcional) — Una cadena de plantilla Jinja que se utilizará para formatear listas de mensajes de chat. Consulte https://huggingface.co/docs/transformers/chat_templating para una descripción completa.
  • model_input_names (list[string], opcional) — La lista de entradas aceptadas por la pasada hacia adelante del modelo (como "token_type_ids" o "attention_mask"). El valor predeterminado se toma del atributo de clase con el mismo nombre.
  • bos_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa el inicio de una oración.
  • eos_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa el final de una oración.
  • unk_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa un token fuera del vocabulario.
  • sep_token (str o tokenizers.AddedToken, opcional) — Un token especial que separa dos oraciones diferentes en la misma entrada (utilizado, por ejemplo, por BERT).
  • pad_token (str o tokenizers.AddedToken, opcional) — Un token especial utilizado para que los arreglos de tokens tengan el mismo tamaño con fines de lote. Luego será ignorado por los mecanismos de atención o el cálculo de la pérdida.
  • cls_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa la clase de la entrada (utilizado, por ejemplo, por BERT).
  • mask_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa un token enmascarado (utilizado por objetivos de preentrenamiento de modelado de lenguaje enmascarado, como BERT). Se asociará a self.mask_token y self.mask_token_id.
  • extra_special_tokens (lista de str o tokenizers.AddedToken, opcional) — Una lista de tokens especiales adicionales específicos del modelo. Añádalos aquí para asegurarte de que se omiten al decodificar cuando skip_special_tokens está establecido en True. Si no forman parte del vocabulario, se añadirán al final del vocabulario.
  • split_special_tokens (bool, opcional, valor predeterminado False) — Indica si los tokens especiales deben dividirse durante el proceso de tokenización. Pasar este argumento afectará al estado interno del tokenizador. El comportamiento predeterminado es no dividir los tokens especiales. Esto significa que si <s> es el bos_token, entonces tokenizer.tokenize("<s>") = ['<s>]. En caso contrario, si split_special_tokens=True, entonces tokenizer.tokenize("<s>") devolverá ['<','s', '>'].
  • tokenizer_object (tokenizers.Tokenizer) — Un objeto tokenizers.Tokenizer de 🤗 tokenizers desde el cual instanciar. Consulte Usar tokenizers de 🤗 tokenizers para obtener más información.
  • tokenizer_file (str) — Una ruta a un archivo JSON local que representa un objeto tokenizers.Tokenizer previamente serializado de 🤗 tokenizers.

Clase base para todos los tokenizadores rápidos (envuelve la biblioteca HuggingFace tokenizers).

Hereda de PreTrainedTokenizerBase.

Gestiona todos los métodos compartidos para la tokenización y los tokens especiales, así como los métodos para descargar, cachear y cargar tokenizadores preentrenados, además de añadir tokens al vocabulario.

Esta clase también contiene los tokens añadidos de manera unificada sobre todos los tokenizadores, de modo que no tengamos que manejar los métodos específicos de ampliación del vocabulario de las diversas estructuras de diccionario subyacentes (BPE, sentencepiece…).

Atributos de clase (sobreescritos por las clases derivadas)

  • vocab_files_names (dict[str, str]) — Un diccionario que, como claves, contiene el nombre de la palabra clave de __init__ de cada archivo de vocabulario requerido por el modelo, y como valores asociados, el nombre del archivo para guardar el archivo asociado (cadena de caracteres).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Un diccionario de diccionarios, cuyas claves de alto nivel son el nombre de la palabra clave de __init__ de cada archivo de vocabulario requerido por el modelo, y las de bajo nivel son los short-cut-names de los modelos preentrenados, con, como valores asociados, la url del archivo de vocabulario preentrenado correspondiente.
  • model_input_names (list[str]) — Una lista de entradas esperadas en la pasada hacia adelante del modelo.
  • padding_side (str) — El valor predeterminado para el lado en el que el modelo debe aplicar el relleno. Debe ser 'right' o 'left'.
  • truncation_side (str) — El valor predeterminado para el lado en el que el modelo debe aplicar la truncación. Debe ser 'right' o 'left'.

__call__

< >

( text: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Nonetext_pair_target: TextInput | PreTokenizedInput | list[TextInput] | list[PreTokenizedInput] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0is_split_into_words: bool = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = Truetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → BatchEncoding

Parámetros

  • text (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadenas pre-tokenizadas). Si las secuencias se proporcionan como lista de cadenas de caracteres (pre-tokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • text_pair (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadena pre-tokenizada). Si las secuencias se proporcionan como lista de cadenas de caracteres (pre-tokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • text_target (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán como textos objetivo. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadena pretokenizada). Si las secuencias se proporcionan como lista de cadenas de caracteres (pretokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • text_pair_target (str, list[str], list[list[str]], opcional) — La secuencia o lote de secuencias que se codificarán como textos objetivo. Cada secuencia puede ser una cadena de caracteres o una lista de cadenas de caracteres (cadena pretokenizada). Si las secuencias se proporcionan como lista de cadenas de caracteres (pretokenizadas), debe establecer is_split_into_words=True (para eliminar la ambigüedad con un lote de secuencias).
  • tokenizer_kwargs (dict[str, Any], opcional) — Kwargs adicionales para pasar al tokenizer. Se fusionarán con los parámetros explícitos y otros kwargs, dando prioridad a los parámetros explícitos.
  • add_special_tokens (bool, opcional, valor predeterminado True) — Indica si se deben o no añadir tokens especiales al codificar las secuencias. Esto utilizará la función subyacente PretrainedTokenizerBase.build_inputs_with_special_tokens, que define qué tokens se añaden automáticamente a los ids de entrada. Esto es útil si deseas añadir tokens bos o eos automáticamente.
  • padding (bool, str o PaddingStrategy, opcional, el valor predeterminado es False) — Activa y controla el relleno. Acepta los siguientes valores:
    • 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).
  • truncation (bool, str o TruncationStrategy, opcional, por defecto False) — Activa y controla la truncación. Acepta los siguientes valores:
    • True o 'longest_first': Trunca 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. Esto truncará token a token, eliminando un token de la secuencia más larga de la pareja si se proporciona una pareja de secuencias (o un lote de parejas).
    • 'only_first': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la primera secuencia de un par si se proporciona un par de secuencias (o un lote de pares).
    • 'only_second': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la segunda secuencia de un par si se proporciona un par de secuencias (o un lote de pares).
    • False o 'do_not_truncate' (predeterminado): sin truncamiento (es decir, se puede generar un lote con longitudes de secuencia mayores que el tamaño máximo de entrada admisible por el modelo).
  • max_length (int, opcional) — Controla la longitud máxima que se utilizará mediante uno de los parámetros de truncamiento/relleno.

    Si se deja sin definir o se establece en None, se utilizará la longitud máxima predefinida del modelo si uno de los parámetros de truncamiento/relleno lo requiere. Si el modelo no tiene una longitud máxima de entrada específica (como XLNet), el truncamiento/relleno a una longitud máxima se desactivará.

  • stride (int, opcional, valor predeterminado 0) — Si se establece en un número junto con max_length, los tokens de desbordamiento devueltos cuando return_overflowing_tokens=True contendrán algunos tokens del final de la secuencia truncada devuelta para proporcionar cierta superposición entre las secuencias truncadas y las de desbordamiento. El valor de este argumento define el número de tokens superpuestos.
  • is_split_into_words (bool, opcional, valor predeterminado False) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece en True, el tokenizador asume que la entrada ya está dividida en palabras (por ejemplo, dividiéndola por espacios en blanco) y las tokenizará. Esto es útil para NER o clasificación de tokens.
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado. Requiere que padding esté activado. Esto es especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.5 (Volta).
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • return_tensors (str o TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:
    • 'pt': Devuelve objetos torch.Tensor de PyTorch.
    • 'np': Devuelve objetos Numpy np.ndarray.
  • return_token_type_ids (bool, opcional) — Si se deben devolver los IDs de tipo de token. Si se deja en el valor predeterminado, se devolverán los IDs de tipo de token según el valor predeterminado del tokenizador específico, definido por el return_outputs atributo.

    ¿Qué son los IDs de tipo de token?

  • return_attention_mask (bool, opcional) — Si se debe devolver la máscara de atención. Si se deja en el valor predeterminado, se devolverá la máscara de atención según el valor predeterminado del tokenizador específico, definido por el return_outputs atributo.

    ¿Qué son las máscaras de atención?

  • return_overflowing_tokens (bool, opcional, valor predeterminado False) — Indica si se deben devolver las secuencias de tokens que exceden el límite. Si se proporciona un par de secuencias de ids de entrada (o un lote de pares) con truncation_strategy = longest_first o True, se genera un error en lugar de devolver los tokens que exceden el límite.
  • return_special_tokens_mask (bool, opcional, valor predeterminado False) — Indica si se debe o no devolver información de la máscara de tokens especiales.
  • return_offsets_mapping (bool, opcional, por defecto False) — Si se devuelve o no (char_start, char_end) para cada token.

    Esto solo está disponible en los tokenizadores rápidos que heredan de PreTrainedTokenizerFast; si se utiliza el tokenizador de Python, este método lanzará NotImplementedError.

  • return_length (bool, opcional, valor predeterminado False) — Indica si se deben devolver las longitudes de las entradas codificadas.
  • verbose (bool, opcional, valor predeterminado True) — Si se imprime más información y advertencias.
  • **kwargs — se pasan al método self.tokenize()

Devuelve

BatchEncoding

Un BatchEncoding con los siguientes campos:

  • input_ids — Lista de ids de tokens que se enviarán a un modelo.

    ¿Qué son los IDs de entrada?

  • token_type_ids — Lista de ids de tipo de token que se enviarán a un modelo (cuando return_token_type_ids=True o si “token_type_ids” está en self.model_input_names).

    ¿Qué son los IDs de tipo de token?

  • attention_mask — Lista de índices que especifica qué tokens deben ser atendidos por el modelo (cuando return_attention_mask=True o si “attention_mask” está en self.model_input_names).

    ¿Qué son las máscaras de atención?

  • overflowing_tokens — Lista de secuencias de tokens que exceden el límite (cuando se especifica un max_length y return_overflowing_tokens=True).

  • num_truncated_tokens — Número de tokens truncados (cuando se especifica un max_length y return_overflowing_tokens=True).

  • special_tokens_mask — Lista de 0 y 1, donde 1 especifica los tokens especiales añadidos y 0 especifica los tokens regulares de la secuencia (cuando add_special_tokens=True y return_special_tokens_mask=True).

  • length — La longitud de las entradas (cuando return_length=True)

Método principal para tokenizar y preparar para el modelo una o varias secuencias o uno o varios pares de secuencias.

add_tokens

< >

( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int

Parámetros

  • new_tokens (str, tokenizers.AddedToken o una secuencia de str o tokenizers.AddedToken) — Los tokens solo se añaden si no están ya en el vocabulario. tokenizers.AddedToken envuelve un token de cadena para permitir personalizar su comportamiento: si este token debe coincidir solo con una palabra, si debe eliminar todos los espacios en blanco potenciales en el lado izquierdo, si debe eliminar todos los espacios en blanco potenciales en el lado derecho, etc.
  • special_tokens (bool, opcional, valor predeterminado False) — Especifica si el token es especial. Esto cambia principalmente el comportamiento de normalización. Vea los detalles de tokenizers.AddedToken en la biblioteca HuggingFace tokenizers.

Devuelve

int

Número de tokens añadidos al vocabulario.

#TODO ¡eliminar esto de aquí! PreTrainedTokenizerBase debe ser agnóstico de AddedToken.

Añade una lista de nuevos tokens. Si los nuevos tokens no están en el vocabulario, se añaden al final. Por lo tanto, los tokens añadidos y los tokens del vocabulario del algoritmo de tokenización no se tratan de la misma manera.

Los tokenizadores rápidos con un pretokenizador Metaspace que usa prepend_scheme="always" (p. ej., NLLB) añaden "▁" al texto que sigue a un token añadido. Después de tokenizer.add_tokens(["abcd"]), "abcdgym" se tokeniza como ["abcd", "▁gym"] y se decodifica como "abcd gym". Si los tokens añadidos pueden aparecer dentro de palabras, cambia el pretokenizador

a prepend_scheme="first" para que solo se prefija el inicio de la entrada:

from tokenizers import pre_tokenizers

pre_tokenizer = tokenizer.backend_tokenizer.pre_tokenizer
tokenizer.backend_tokenizer.pre_tokenizer = pre_tokenizers.Metaspace(
    replacement=pre_tokenizer.replacement, prepend_scheme="first", split=pre_tokenizer.split
)

Ejemplos:

# Let's see how to increase the vocabulary of Bert model and tokenizer
tokenizer = BertTokenizerFast.from_pretrained("google-bert/bert-base-uncased")
model = BertModel.from_pretrained("google-bert/bert-base-uncased")

num_added_toks = tokenizer.add_tokens(["new_tok1", "my_new-tok2"])
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

add_special_tokens

< >

( special_tokens_dict: dict[str, str | AddedToken | Sequence[str | AddedToken]]replace_extra_special_tokens = True ) → int

Parámetros

  • special_tokens_dict (diccionario str a str, tokenizers.AddedToken, o Sequence[Union[str, AddedToken]]) — Las claves deben estar en la lista de atributos especiales predefinidos: [bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens].

    Los tokens solo se añaden si no están ya en el vocabulario (se comprueba si el tokenizer les asigna el índice del unk_token).

  • replace_extra_special_tokens (bool, opcional, valor predeterminado True) — Si True, la lista existente de tokens especiales adicionales se reemplazará por la lista proporcionada en special_tokens_dict. De lo contrario, extra_special_tokens se extenderá. En el primer caso, los tokens NO se eliminarán del vocabulario completo del tokenizador; solo se marcan como tokens no especiales. Recuerde que esto solo afecta qué tokens se omiten durante la decodificación, no el added_tokens_encoder ni el added_tokens_decoder. Esto significa que los extra_special_tokens anteriores siguen siendo tokens añadidos y no serán divididos por el modelo.

Devuelve

int

Número de tokens añadidos al vocabulario.

Añade un diccionario de tokens especiales (eos, pad, cls, etc.) al codificador y los vincula a atributos de clase. Si los tokens especiales NO están en el vocabulario, se añaden a este (con índices que comienzan desde el último índice del vocabulario actual).

Al añadir nuevos tokens al vocabulario, debe asegurarse de redimensionar también la matriz de incrustaciones de tokens del modelo para que su matriz de incrustaciones coincida con el tokenizador.

Para hacer eso, utiliza el método resize_token_embeddings().

El uso de add_special_tokens garantiza que tus tokens especiales puedan utilizarse de varias formas:

  • Los tokens especiales se pueden omitir durante la decodificación usando skip_special_tokens = True.
  • Los tokens especiales se manejan con cuidado por parte del tokenizador (nunca se dividen), de manera similar a AddedTokens.
  • Puede hacer referencia fácilmente a los tokens especiales mediante los atributos de la clase tokenizer, como tokenizer.cls_token. Esto facilita el desarrollo de scripts de entrenamiento y ajuste fino independientes del modelo.

Cuando es posible, los tokens especiales ya están registrados para los modelos preentrenados proporcionados (por ejemplo, BertTokenizer cls_token ya está registrado como '[CLS]' y el de XLM también está registrado como '</s>').

Ejemplos:

# Let's see how to add a new classification token to GPT-2
tokenizer = GPT2Tokenizer.from_pretrained("openai-community/gpt2")
model = GPT2Model.from_pretrained("openai-community/gpt2")

special_tokens_dict = {"cls_token": "<CLS>"}

num_added_toks = tokenizer.add_special_tokens(special_tokens_dict)
print("We have added", num_added_toks, "tokens")
# Notice: resize_token_embeddings expect to receive the full size of the new vocabulary, i.e., the length of the tokenizer.
model.resize_token_embeddings(len(tokenizer))

assert tokenizer.cls_token == "<CLS>"

apply_chat_template

< >

( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | Callable] | None = Nonedocuments: list[dict[str, str]] | None = Nonechat_template: str | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool | str = Falsetokenize: bool = Truesanitize_control_tokens: bool = Falsepadding: bool | str | PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | TensorType | None = Nonereturn_dict: bool = Truereturn_assistant_tokens_mask: bool = Falsetokenizer_kwargs: dict[str, Any] | None = None**kwargs ) → Union[list[int], Dict]

Parámetros

  • conversation (Union[list[dict[str, str]], list[list[dict[str, str]]]]) — Una lista de diccionarios con las claves “role” y “content”, que representa el historial de la conversación hasta el momento.
  • tools (list[Union[Dict, Callable]], opcional) — Una lista de herramientas (funciones invocables) que estarán accesibles para el modelo. Si la plantilla no soporta la invocación de funciones, este argumento no tendrá efecto. Cada herramienta debe pasarse como un JSON Schema, indicando el nombre, la descripción y los tipos de argumentos de la herramienta. Consulte nuestra guía de uso de herramientas para obtener más información.
  • documents (list[dict[str, str]], opcional) — Una lista de diccionarios que representan documentos a los que el modelo tendrá acceso si está realizando RAG (generación aumentada por recuperación). Si la plantilla no admite RAG, este argumento no tendrá efecto. Recomendamos que cada documento sea un diccionario que contenga las claves “title” y “text”.
  • chat_template (str, opcional) — Plantilla Jinja que se utilizará para esta conversión. Por lo general, no es necesario pasar nada a este argumento, ya que se utilizará la plantilla del modelo de forma predeterminada.
  • add_generation_prompt (bool, opcional) — Si se establece, se añadirá al final de la salida formateada un prompt con el o los tokens que indican el inicio de un mensaje del asistente. Esto es útil cuando se desea generar una respuesta del modelo. Tenga en cuenta que este argumento se pasará a la plantilla de chat, por lo que la plantilla debe admitirlo para que el argumento tenga algún efecto.
  • continue_final_message (bool o str, opcional) — Si se establece, el chat se formateará de modo que el mensaje final del chat sea de final abierto, sin tokens EOS. El modelo continuará este mensaje en lugar de comenzar uno nuevo. Esto permite “prellenar” parte de la respuesta del modelo. Si se pasa una cadena, se usará como clave para el campo a continuar (p. ej. “reasoning_content”). No se puede usar al mismo tiempo que add_generation_prompt.
  • tokenize (bool, por defecto True) — Si se debe tokenizar la salida. Si es False, la salida será una cadena de texto.
  • sanitize_control_tokens (bool, por defecto False) — Si se establece, los tokens de control que aparecen en mensajes, herramientas o documentos se codifican como texto ordinario, de modo que solo los tokens de control escritos por la plantilla de chat se codifican como tokens. Los tokens de control son los tokens especiales del tokenizador, más los tokens añadidos en tokenizer.chat_control_tokens. Si esa variable no está establecida, los tokens de control se infieren a partir de los tokens añadidos que aparecen en el texto de la plantilla de chat y en las literales de cadena. Solo se sanitizan los tokens de control completos, por lo que si la plantilla une cadenas de la entrada para formar tokens de control (como '<|' + message['role'] + '|>'), esas cadenas deben validarse por separado. Las claves de los diccionarios tampoco se sanitizan.
  • padding (bool, str o PaddingStrategy, opcional, por defecto False) — 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).
  • truncation (bool, por defecto False) — Si se deben truncar las secuencias en la longitud máxima. No tiene efecto si tokenize es False.
  • max_length (int, opcional) — Longitud máxima (en tokens) para usar en el relleno o la truncación. No tiene efecto si tokenize es False. Si no se especifica, se usará el atributo max_length del tokenizador como valor predeterminado.
  • return_tensors (str o TensorType, opcional) — Si se establece, devolverá tensores de un marco de trabajo específico. No tiene efecto si tokenize es False. Los valores aceptables son:
    • 'pt': Devuelve objetos torch.Tensor de PyTorch.
    • 'np': Devuelve objetos np.ndarray de NumPy.
  • return_dict (bool, por defecto True) — Si se devuelve un diccionario con salidas nombradas. No tiene efecto si tokenize es False.
  • tokenizer_kwargs (dict[str -- Any], opcional): Kwargs adicionales para pasar al tokenizer.
  • return_assistant_tokens_mask (bool, por defecto False) — Si se debe devolver una máscara de los tokens generados por el asistente. Para los tokens generados por el asistente, la máscara contendrá 1. Para los tokens de usuario y sistema, la máscara contendrá 0. Esta funcionalidad solo está disponible para plantillas de chat que la admiten mediante la palabra clave {% generation %}.
  • **kwargs — Kwargs adicionales para pasar al renderizador de la plantilla. Serán accesibles por la plantilla de chat.

Devuelve

Union[list[int], Dict]

Una lista de ids de tokens que representa el chat tokenizado hasta el momento, incluidos los tokens de control. Esta salida está lista para pasarse al modelo, ya sea directamente o mediante métodos como generate(). Si return_dict está establecido, se devolverá un diccionario de salidas del tokenizador en su lugar.

Convierte una lista de diccionarios con las claves "role" y "content" en una lista de ids de tokens. Este método está diseñado para su uso con modelos de chat y leerá el atributo chat_template del tokenizador para determinar el formato y los tokens de control que se usarán durante la conversión.

batch_decode

< >

( sequences: list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]

Parámetros

  • sequences (Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — Lista de ids de entrada tokenizados. Se puede obtener usando el método __call__.
  • skip_special_tokens (bool, opcional, valor predeterminado False) — Indica si se deben eliminar los tokens especiales durante la decodificación.
  • clean_up_tokenization_spaces (bool, opcional) — Si se deben limpiar los espacios de tokenización. Si es None, se usará por defecto self.clean_up_tokenization_spaces.
  • kwargs (argumentos de palabra clave adicionales, opcional) — Se pasará al método de decodificación específico del modelo subyacente.

Devuelve

list[str]

La lista de oraciones decodificadas.

Convierta una lista de listas de ids de tokens en una lista de cadenas de texto llamando a decode.

Este método se proporciona por compatibilidad con versiones anteriores. El método decode ahora maneja la entrada por lotes de forma nativa, por lo que puede usar decode directamente en lugar de batch_decode.

decode

< >

( token_ids: int | list[int] | list[list[int]] | np.ndarray | torch.Tensorskip_special_tokens: bool = False**kwargs ) → Union[str, list[str]]

Parámetros

  • token_ids (Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — Una secuencia única o un lote (lista de secuencias) de ids de entrada tokenizados. Se puede obtener mediante el método __call__.
  • skip_special_tokens (bool, opcional, valor predeterminado False) — Indica si se deben eliminar los tokens especiales durante la decodificación.
  • kwargs (argumentos de palabra clave adicionales, opcional) — Se pasará al método de decodificación específico del modelo subyacente.

Devuelve

Union[str, list[str]]

La cadena decodificada para una secuencia individual, o una lista de cadenas decodificadas para un lote de secuencias.

Convierte una secuencia de ids en una cadena de texto, o una lista de secuencias en una lista de cadenas de texto, utilizando el tokenizador y el vocabulario, con opciones para eliminar tokens especiales y limpiar los espacios de tokenización.

Similar a hacer self.convert_tokens_to_string(self.convert_ids_to_tokens(token_ids)).

encode

< >

( text: TextInput | PreTokenizedInput | EncodedInputtext_pair: TextInput | PreTokenizedInput | EncodedInput | None = Noneadd_special_tokens: bool = Truepadding: bool | str | PaddingStrategy = Falsetruncation: bool | str | TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0padding_side: str | None = Nonereturn_tensors: str | TensorType | None = None**kwargs ) → list[int], torch.Tensor, or np.ndarray

Parámetros

  • text (str, list[str] o list[int]) — La primera secuencia que se codificará. Puede ser una cadena de caracteres, una lista de cadenas (cadena tokenizada usando el método tokenize) o una lista de enteros (ids de tokens de una cadena tokenizada usando el método convert_tokens_to_ids).
  • text_pair (str, list[str] o list[int], opcional) — Segunda secuencia opcional que se codificará. Puede ser una cadena de caracteres, una lista de cadenas (cadena tokenizada usando el método tokenize) o una lista de enteros (ids de tokens de una cadena tokenizada usando el método convert_tokens_to_ids).
  • add_special_tokens (bool, opcional, valor predeterminado True) — Indica si se deben o no añadir tokens especiales al codificar las secuencias. Esto utilizará la función subyacente PretrainedTokenizerBase.build_inputs_with_special_tokens, que define qué tokens se añaden automáticamente a los ids de entrada. Esto es útil si deseas añadir tokens bos o eos automáticamente.
  • padding (bool, str o PaddingStrategy, opcional, el valor predeterminado es False) — Activa y controla el relleno. Acepta los siguientes valores:
    • 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).
  • truncation (bool, str o TruncationStrategy, opcional, por defecto False) — Activa y controla la truncación. Acepta los siguientes valores:
    • True o 'longest_first': Trunca 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. Esto truncará token a token, eliminando un token de la secuencia más larga de la pareja si se proporciona una pareja de secuencias (o un lote de parejas).
    • 'only_first': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la primera secuencia de un par si se proporciona un par de secuencias (o un lote de pares).
    • 'only_second': Trunca a una longitud máxima especificada con el argumento max_length o a la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento. Esto solo truncará la segunda secuencia de un par si se proporciona un par de secuencias (o un lote de pares).
    • False o 'do_not_truncate' (predeterminado): sin truncamiento (es decir, se puede generar un lote con longitudes de secuencia mayores que el tamaño máximo de entrada admisible por el modelo).
  • max_length (int, opcional) — Controla la longitud máxima que se utilizará mediante uno de los parámetros de truncamiento/relleno.

    Si se deja sin definir o se establece en None, se utilizará la longitud máxima predefinida del modelo si uno de los parámetros de truncamiento/relleno lo requiere. Si el modelo no tiene una longitud máxima de entrada específica (como XLNet), el truncamiento/relleno a una longitud máxima se desactivará.

  • stride (int, opcional, valor predeterminado 0) — Si se establece en un número junto con max_length, los tokens de desbordamiento devueltos cuando return_overflowing_tokens=True contendrán algunos tokens del final de la secuencia truncada devuelta para proporcionar cierta superposición entre las secuencias truncadas y las de desbordamiento. El valor de este argumento define el número de tokens superpuestos.
  • is_split_into_words (bool, opcional, valor predeterminado False) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece en True, el tokenizador asume que la entrada ya está dividida en palabras (por ejemplo, dividiéndola por espacios en blanco) y las tokenizará. Esto es útil para NER o clasificación de tokens.
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado. Requiere que padding esté activado. Esto es especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.5 (Volta).
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • return_tensors (str o TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:
    • 'pt': Devuelve objetos torch.Tensor de PyTorch.
    • 'np': Devuelve objetos Numpy np.ndarray.
  • **kwargs — Se pasan al método .tokenize().

Devuelve

list[int], torch.Tensor o np.ndarray

Los ids tokenizados del texto.

Convierte una cadena en una secuencia de ids (enteros), utilizando el tokenizador y el vocabulario.

Igual que hacer self.convert_tokens_to_ids(self.tokenize(text)).

push_to_hub

< >

( repo_id: strcommit_message: str | None = Nonecommit_description: str | None = Noneprivate: bool | None = Nonetoken: bool | str | None = Nonerevision: str | None = Nonecreate_pr: bool = Falsemax_shard_size: int | str | None = '50GB'tags: list[str] | None = None )

Parámetros

  • repo_id (str) — El nombre del repositorio al que deseas subir tu tokenizador. Debe incluir el nombre de tu organización cuando se sube a una organización determinada.
  • commit_message (str, opcional) — Mensaje para el commit al hacer push. El valor predeterminado es "Upload tokenizer".
  • commit_description (str, opcional) — La descripción del commit que se creará
  • private (bool, opcional) — Si se debe hacer el repositorio privado. Si es None (predeterminado), el repositorio será público a menos que el valor predeterminado de la organización sea privado. Este valor se ignora si el repositorio ya existe.
  • token (bool o str, opcional) — El token que se usará como autorización HTTP bearer para archivos remotos. Si es True (valor predeterminado), se usará el token generado al ejecutar hf auth login (almacenado en ~/.huggingface).
  • revision (str, opcional) — Rama a la que se enviarán los archivos subidos.
  • create_pr (bool, opcional, valor predeterminado False) — Si se debe crear una PR con los archivos subidos o realizar el commit directamente.
  • max_shard_size (int o str, opcional, valor predeterminado "50GB") — Solo aplicable a modelos. El tamaño máximo de un checkpoint antes de ser fragmentado. Los fragmentos del checkpoint tendrán cada uno un tamaño inferior a este valor. Si se expresa como una cadena, debe consistir en dígitos seguidos de una unidad (como "5MB").
  • tags (list[str], opcional) — Lista de etiquetas para publicar en el Hub.

Sube los archivos del tokenizador al 🤗 Model Hub.

Ejemplos:

from transformers import AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("google-bert/bert-base-cased")

# Push the tokenizer to your namespace with the name "my-finetuned-bert".
tokenizer.push_to_hub("my-finetuned-bert")

# Push the tokenizer to an organization with the name "my-finetuned-bert".
tokenizer.push_to_hub("huggingface/my-finetuned-bert")

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

Construir un backend tokenizers.Tokenizer a partir de los archivos de serialización disponibles (tokenizer.json, modelos de sentencepiece, tekken.json, vocab/merges).

get_added_vocab

< >

( ) → dict[str, int]

Devuelve

dict[str, int]

Los tokens añadidos.

Devuelve los tokens añadidos al vocabulario como un diccionario de token a índice.

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Parámetros

  • pair (bool, opcional, valor predeterminado False) — Si el número de tokens añadidos debe calcularse en el caso de un par de secuencias o de una secuencia única.

Devuelve

int

Número de tokens especiales añadidos a las secuencias.

Devuelve el número de tokens añadidos al codificar una secuencia con tokens especiales.

Esto codifica una entrada ficticia y comprueba el número de tokens añadidos, por lo que no es eficiente. No coloque esto dentro de su bucle de entrenamiento.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

Parámetros

  • save_format (str, opcional) — "mistral" para guardar como un tekken.json nativo copiando el archivo original (requiere que el archivo de vocabulario tekken original esté disponible). El nombre se normaliza a tekken.json al guardar, y el tokenizador instanciado debe seguir coincidiendo exactamente con él. "hf" o None para el formato predeterminado de HuggingFace.
  • kwargs (dict[str, Any], opcional) — Argumentos de palabra clave adicionales que se pasan al método push_to_hub().

Devuelve

Una tupla de str

Los archivos guardados.

Guarde el estado completo del tokenizador.

Extiende save_pretrained() con soporte para save_format, para tokenizadores convertidos desde un archivo de vocabulario nativo (p. ej. tekken.json de Mistral). Consulte el método base para legacy_format, filename_prefix y push_to_hub.

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

Parámetros

  • padding_strategy (PaddingStrategy) — El tipo de relleno que se aplicará a la entrada
  • truncation_strategy (TruncationStrategy) — El tipo de truncamiento que se aplicará a la entrada
  • max_length (int) — El tamaño máximo de una secuencia.
  • stride (int) — El paso a utilizar al manejar el desbordamiento.
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado. Esto es especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.5 (Volta).
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.

Defina las estrategias de truncamiento y relleno para los tokenizadores rápidos (proporcionados por la biblioteca HuggingFace tokenizers) y restablezca la configuración del tokenizador después.

El tokenizador proporcionado no tiene una estrategia de relleno / truncamiento antes de la sección gestionada. Si su tokenizador estableció una estrategia de relleno / truncamiento antes, se restablecerá a sin relleno / truncamiento al salir de la sección gestionada.

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

Parámetros

  • text_iterator (generador de list[str]) — El corpus de entrenamiento. Debe ser un generador de lotes de textos, por ejemplo, una lista de listas de textos si tienes todo en memoria.
  • vocab_size (int) — El tamaño del vocabulario que deseas para tu tokenizador.
  • length (int, opcional) — El número total de secuencias en el iterador. Esto se utiliza para proporcionar un seguimiento de progreso significativo
  • new_special_tokens (lista de str o AddedToken, opcional) — Una lista de nuevos tokens especiales para añadir al tokenizador que estás entrenando.
  • special_tokens_map (dict[str, str], opcional) — Si desea cambiar el nombre de algunos de los tokens especiales que utiliza este tokenizador, pase un mapeo del nombre del token especial antiguo al nombre del token especial nuevo en este argumento.
  • kwargs (dict[str, Any], opcional) — Argumentos de palabra clave adicionales que se pasan al trainer desde la biblioteca 🤗 Tokenizers.

Un nuevo tokenizador del mismo tipo que el original, entrenado en text_iterator.

Entrena un tokenizador en un nuevo corpus con los mismos valores predeterminados (en términos de tokens especiales o pipeline de tokenización) que el actual.

update_post_processor

< >

( )

Actualiza el procesador posterior subyacente con el bos_token y el eos_token actuales.

PythonBackend

clase transformers.PythonBackend

< >

( **kwargs )

Parámetros

  • model_max_length (int, opcional) — La longitud máxima (en número de tokens) para las entradas del modelo transformer. Cuando el tokenizador se carga con from_pretrained(), se establecerá en el valor almacenado para el modelo asociado en max_model_input_sizes (ver arriba). Si no se proporciona un valor, usará VERY_LARGE_INTEGER (int(1e30)) por defecto.
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • truncation_side (str, opcional) — El lado en el que el modelo debe aplicar la truncación. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • chat_template (str, opcional) — Una cadena de plantilla Jinja que se utilizará para formatear listas de mensajes de chat. Consulte https://huggingface.co/docs/transformers/chat_templating para una descripción completa.
  • model_input_names (list[string], opcional) — La lista de entradas aceptadas por la pasada hacia adelante del modelo (como "token_type_ids" o "attention_mask"). El valor predeterminado se toma del atributo de clase con el mismo nombre.
  • bos_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa el inicio de una oración.
  • eos_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa el final de una oración.
  • unk_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa un token fuera del vocabulario.
  • sep_token (str o tokenizers.AddedToken, opcional) — Un token especial que separa dos oraciones diferentes en la misma entrada (utilizado, por ejemplo, por BERT).
  • pad_token (str o tokenizers.AddedToken, opcional) — Un token especial utilizado para que los arreglos de tokens tengan el mismo tamaño con fines de lote. Luego será ignorado por los mecanismos de atención o el cálculo de la pérdida.
  • cls_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa la clase de la entrada (utilizado, por ejemplo, por BERT).
  • mask_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa un token enmascarado (utilizado por objetivos de preentrenamiento de modelado de lenguaje enmascarado, como BERT). Se asociará a self.mask_token y self.mask_token_id.
  • extra_special_tokens (lista de str o tokenizers.AddedToken, opcional) — Una lista de tokens especiales adicionales específicos del modelo. Añádalos aquí para asegurarte de que se omiten al decodificar cuando skip_special_tokens está establecido en True. Si no forman parte del vocabulario, se añadirán al final del vocabulario.
  • split_special_tokens (bool, opcional, valor predeterminado False) — Indica si los tokens especiales deben dividirse durante el proceso de tokenización. Pasar este argumento afectará al estado interno del tokenizador. El comportamiento predeterminado es no dividir los tokens especiales. Esto significa que si <s> es el bos_token, entonces tokenizer.tokenize("<s>") = ['<s>]. En caso contrario, si split_special_tokens=True, entonces tokenizer.tokenize("<s>") devolverá ['<','s', '>'].

Clase base para todos los tokenizadores lentos.

Hereda de PreTrainedTokenizerBase.

Gestiona todos los métodos compartidos para la tokenización y los tokens especiales, así como los métodos para descargar, cachear y cargar tokenizadores preentrenados, además de añadir tokens al vocabulario.

Esta clase también contiene los tokens añadidos de manera unificada sobre todos los tokenizadores, de modo que no tengamos que manejar los métodos específicos de ampliación del vocabulario de las diversas estructuras de diccionario subyacentes (BPE, sentencepiece…).

Atributos de clase (sobreescritos por las clases derivadas)

  • vocab_files_names (dict[str, str]) — Un diccionario que, como claves, contiene el nombre de la palabra clave de __init__ de cada archivo de vocabulario requerido por el modelo, y como valores asociados, el nombre del archivo para guardar el archivo asociado (cadena de caracteres).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Un diccionario de diccionarios, cuyas claves de alto nivel son el nombre de la palabra clave de __init__ de cada archivo de vocabulario requerido por el modelo, y las de bajo nivel son los short-cut-names de los modelos preentrenados, con, como valores asociados, la url del archivo de vocabulario preentrenado correspondiente.
  • model_input_names (list[str]) — Una lista de entradas esperadas en la pasada hacia adelante del modelo.
  • padding_side (str) — El valor predeterminado para el lado en el que el modelo debe aplicar el relleno. Debe ser 'right' o 'left'.
  • truncation_side (str) — El valor predeterminado para el lado en el que el modelo debe aplicar la truncación. Debe ser 'right' o 'left'.

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Parámetros

  • token_ids_0 (list[int]) — Lista de IDs a los que se les añadirán los tokens especiales.
  • token_ids_1 (list[int], opcional) — Segunda lista de IDs opcional para pares de secuencias.

Devuelve

list[int]

Lista de IDs de entrada con los tokens especiales apropiados.

Construya las entradas del modelo a partir de una secuencia o un par de secuencias añadiendo tokens especiales.

Este método construye dinámicamente las entradas en función de special_tokens_pattern del tokenizador:

  • "none": Sin tokens especiales
  • "cls_sep": [CLS] seq0 [SEP] o [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] o seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 o [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] o [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] o [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens> (prefijo/sufijo personalizado almacenado en el tokenizador)

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

Parámetros

  • token_ids_0 (list[int]) — Lista de IDs.
  • token_ids_1 (list[int], opcional) — Segunda lista de IDs opcional para pares de secuencias.

Devuelve

list[int]

IDs de tipo de token según el patrón configurado.

Crea una máscara a partir de las dos secuencias pasadas para ser utilizada en una tarea de clasificación de pares de secuencias.

Este método construye dinámicamente los IDs de tipo de token en función de los atributos de configuración del tokenizador:

  • token_type_ids_pattern: Patrón a utilizar (“all_zeros” o “bert_style”)
  • token_type_ids_include_special_tokens: Si se deben tener en cuenta los tokens especiales en el cálculo de la longitud

Ejemplos:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

get_added_vocab

< >

( ) → dict[str, int]

Devuelve

dict[str, int]

Los tokens añadidos.

Devuelve los tokens añadidos al vocabulario como un diccionario de token a índice. Los resultados pueden diferir de la llamada rápida porque, por ahora, siempre se añaden los tokens aunque ya estén en el vocabulario. Esto es algo que deberíamos cambiar.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

Parámetros

  • token_ids_0 (list[int]) — Lista de ids de la primera secuencia.
  • token_ids_1 (list[int], opcional) — Lista de ids de la segunda secuencia.
  • already_has_special_tokens (bool, opcional, valor predeterminado False) — Indica si la lista de tokens ya está formateada con tokens especiales para el modelo.

Devuelve

Una lista de enteros en el rango [0, 1]

1 para un token especial, 0 para un token de secuencia.

Obtiene los ids de secuencia de una lista de tokens a la que no se le han añadido tokens especiales. Este método se llama al añadir tokens especiales mediante los métodos prepare_for_model o encode_plus del tokenizer.

Este método construye dinámicamente la máscara de tokens especiales en función de special_tokens_pattern del tokenizador:

  • "none": Sin tokens especiales (predeterminado, devuelve todos 0)
  • "cls_sep": [CLS] seq0 [SEP] o [CLS] seq0 [SEP] seq1 [SEP]
  • "eos": seq0 [EOS] o seq0 [EOS] seq1 [EOS]
  • "bos": [BOS] seq0 o [BOS] seq0 [BOS] seq1
  • "bos_eos": [BOS] seq0 [EOS] o [BOS] seq0 [EOS] seq1 [EOS]
  • "cls_double_sep": [CLS] seq0 [SEP] o [CLS] seq0 [SEP] [SEP] seq1 [SEP]
  • "prefix_suffix": <prefix_tokens> seq0 [seq1] <suffix_tokens>

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Parámetros

  • pair (bool, opcional, valor predeterminado False) — Si el número de tokens añadidos debe calcularse en el caso de un par de secuencias o de una secuencia única.

Devuelve

int

Número de tokens especiales añadidos a las secuencias.

Devuelve el número de tokens añadidos al codificar una secuencia con tokens especiales.

Esto codifica una entrada ficticia y comprueba el número de tokens añadidos, por lo que no es eficiente. No coloque esto dentro de su bucle de entrenamiento.

prepare_for_model

< >

( ids: listpair_ids: list[int] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Falsemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = False**kwargs )

Parámetros

  • ids — ids de entrada tokenizada de la primera secuencia.
  • pair_ids — ids de entrada tokenizados de la segunda secuencia (opcional).

Prepara una secuencia de ids de entrada para que pueda ser utilizada por el modelo. Añade tokens especiales, trunca y rellena.

prepare_for_tokenization

< >

( text: stris_split_into_words: bool = False**kwargs ) → tuple[str, dict[str, Any]]

Parámetros

  • text (str) — El texto a preparar.
  • is_split_into_words (bool, opcional, valor predeterminado False) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece en True, el tokenizador asume que la entrada ya está dividida en palabras (por ejemplo, dividiéndola por espacios en blanco) y las tokenizará. Esto es útil para NER o clasificación de tokens.
  • kwargs (dict[str, Any], opcional) — Argumentos de palabra clave para usar en la tokenización.

Devuelve

tuple[str, dict[str, Any]]

El texto preparado y los kwargs no utilizados.

Realiza las transformaciones necesarias antes de la tokenización.

Este método debe extraer los argumentos de kwargs y devolver también los kwargs restantes. Probamos los kwargs al final del proceso de codificación para asegurarnos de que se hayan utilizado todos los argumentos.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]

Parámetros

  • save_directory (str) — El directorio en el que se guardará el vocabulario.
  • filename_prefix (str, opcional) — Un prefijo opcional para añadir al nombre de los archivos guardados.

Devuelve

tuple[str, ...]

Rutas a los archivos guardados, o una tupla vacía si no se guardaron archivos.

Implementación predeterminada para los patrones comunes de guardado de vocabulario. Guarda self.encoder/self.vocab como JSON, opcionalmente con self.bpe_ranks como fusiones. Devuelve una tupla vacía si no existe un vocabulario.

Sobrescriba este método si su tokenizador requiere una lógica de guardado personalizada (p. ej., modelos de SentencePiece, varios archivos de vocabulario o formatos de archivo especiales).

tokenize

< >

( text: str**kwargs )

Parámetros

  • text — La secuencia que se codificará.
  • **kwargs — Se pasan al método de preprocesamiento prepare_for_tokenization específico del modelo.

Convierte una cadena en una secuencia de tokens, utilizando el tokenizador.

truncate_sequences

< >

( ids: listpair_ids: list[int] | None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0 )

Trunca las secuencias según la estrategia especificada.

TokenizersBackend

clase transformers.TokenizersBackend

< >

( *args**kwargs )

Parámetros

  • model_max_length (int, opcional) — La longitud máxima (en número de tokens) para las entradas del modelo transformer. Cuando el tokenizador se carga con from_pretrained(), se establecerá en el valor almacenado para el modelo asociado en max_model_input_sizes (ver arriba). Si no se proporciona un valor, usará VERY_LARGE_INTEGER (int(1e30)) por defecto.
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • truncation_side (str, opcional) — El lado en el que el modelo debe aplicar la truncación. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • chat_template (str, opcional) — Una cadena de plantilla Jinja que se utilizará para formatear listas de mensajes de chat. Consulte https://huggingface.co/docs/transformers/chat_templating para una descripción completa.
  • model_input_names (list[string], opcional) — La lista de entradas aceptadas por la pasada hacia adelante del modelo (como "token_type_ids" o "attention_mask"). El valor predeterminado se toma del atributo de clase con el mismo nombre.
  • bos_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa el inicio de una oración.
  • eos_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa el final de una oración.
  • unk_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa un token fuera del vocabulario.
  • sep_token (str o tokenizers.AddedToken, opcional) — Un token especial que separa dos oraciones diferentes en la misma entrada (utilizado, por ejemplo, por BERT).
  • pad_token (str o tokenizers.AddedToken, opcional) — Un token especial utilizado para que los arreglos de tokens tengan el mismo tamaño con fines de lote. Luego será ignorado por los mecanismos de atención o el cálculo de la pérdida.
  • cls_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa la clase de la entrada (utilizado, por ejemplo, por BERT).
  • mask_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa un token enmascarado (utilizado por objetivos de preentrenamiento de modelado de lenguaje enmascarado, como BERT). Se asociará a self.mask_token y self.mask_token_id.
  • extra_special_tokens (lista de str o tokenizers.AddedToken, opcional) — Una lista de tokens especiales adicionales específicos del modelo. Añádalos aquí para asegurarte de que se omiten al decodificar cuando skip_special_tokens está establecido en True. Si no forman parte del vocabulario, se añadirán al final del vocabulario.
  • split_special_tokens (bool, opcional, valor predeterminado False) — Indica si los tokens especiales deben dividirse durante el proceso de tokenización. Pasar este argumento afectará al estado interno del tokenizador. El comportamiento predeterminado es no dividir los tokens especiales. Esto significa que si <s> es el bos_token, entonces tokenizer.tokenize("<s>") = ['<s>]. En caso contrario, si split_special_tokens=True, entonces tokenizer.tokenize("<s>") devolverá ['<','s', '>'].
  • tokenizer_object (tokenizers.Tokenizer) — Un objeto tokenizers.Tokenizer de 🤗 tokenizers desde el cual instanciar. Consulte Usar tokenizers de 🤗 tokenizers para obtener más información.
  • tokenizer_file (str) — Una ruta a un archivo JSON local que representa un objeto tokenizers.Tokenizer previamente serializado de 🤗 tokenizers.

Clase base para todos los tokenizadores rápidos (envuelve la biblioteca HuggingFace tokenizers).

Hereda de PreTrainedTokenizerBase.

Gestiona todos los métodos compartidos para la tokenización y los tokens especiales, así como los métodos para descargar, cachear y cargar tokenizadores preentrenados, además de añadir tokens al vocabulario.

Esta clase también contiene los tokens añadidos de manera unificada sobre todos los tokenizadores, de modo que no tengamos que manejar los métodos específicos de ampliación del vocabulario de las diversas estructuras de diccionario subyacentes (BPE, sentencepiece…).

Atributos de clase (sobreescritos por las clases derivadas)

  • vocab_files_names (dict[str, str]) — Un diccionario que, como claves, contiene el nombre de la palabra clave de __init__ de cada archivo de vocabulario requerido por el modelo, y como valores asociados, el nombre del archivo para guardar el archivo asociado (cadena de caracteres).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Un diccionario de diccionarios, cuyas claves de alto nivel son el nombre de la palabra clave de __init__ de cada archivo de vocabulario requerido por el modelo, y las de bajo nivel son los short-cut-names de los modelos preentrenados, con, como valores asociados, la url del archivo de vocabulario preentrenado correspondiente.
  • model_input_names (list[str]) — Una lista de entradas esperadas en la pasada hacia adelante del modelo.
  • padding_side (str) — El valor predeterminado para el lado en el que el modelo debe aplicar el relleno. Debe ser 'right' o 'left'.
  • truncation_side (str) — El valor predeterminado para el lado en el que el modelo debe aplicar la truncación. Debe ser 'right' o 'left'.

convert_to_native_format

< >

( trust_remote_code = False**kwargs )

Construir un backend tokenizers.Tokenizer a partir de los archivos de serialización disponibles (tokenizer.json, modelos de sentencepiece, tekken.json, vocab/merges).

get_added_vocab

< >

( ) → dict[str, int]

Devuelve

dict[str, int]

Los tokens añadidos.

Devuelve los tokens añadidos al vocabulario como un diccionario de token a índice.

num_special_tokens_to_add

< >

( pair: bool = False ) → int

Parámetros

  • pair (bool, opcional, valor predeterminado False) — Si el número de tokens añadidos debe calcularse en el caso de un par de secuencias o de una secuencia única.

Devuelve

int

Número de tokens especiales añadidos a las secuencias.

Devuelve el número de tokens añadidos al codificar una secuencia con tokens especiales.

Esto codifica una entrada ficticia y comprueba el número de tokens añadidos, por lo que no es eficiente. No coloque esto dentro de su bucle de entrenamiento.

save_pretrained

< >

( save_directory: str | os.PathLikelegacy_format: bool | None = Nonefilename_prefix: str | None = Nonepush_to_hub: bool = Falsesave_format: str | None = None**kwargs ) → A tuple of str

Parámetros

  • save_format (str, opcional) — "mistral" para guardar como un tekken.json nativo copiando el archivo original (requiere que el archivo de vocabulario tekken original esté disponible). El nombre se normaliza a tekken.json al guardar, y el tokenizador instanciado debe seguir coincidiendo exactamente con él. "hf" o None para el formato predeterminado de HuggingFace.
  • kwargs (dict[str, Any], opcional) — Argumentos de palabra clave adicionales que se pasan al método push_to_hub().

Devuelve

Una tupla de str

Los archivos guardados.

Guarde el estado completo del tokenizador.

Extiende save_pretrained() con soporte para save_format, para tokenizadores convertidos desde un archivo de vocabulario nativo (p. ej. tekken.json de Mistral). Consulte el método base para legacy_format, filename_prefix y push_to_hub.

set_truncation_and_padding

< >

( padding_strategy: PaddingStrategytruncation_strategy: TruncationStrategymax_length: intstride: intpad_to_multiple_of: int | Nonepadding_side: str | None )

Parámetros

  • padding_strategy (PaddingStrategy) — El tipo de relleno que se aplicará a la entrada
  • truncation_strategy (TruncationStrategy) — El tipo de truncamiento que se aplicará a la entrada
  • max_length (int) — El tamaño máximo de una secuencia.
  • stride (int) — El paso a utilizar al manejar el desbordamiento.
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la secuencia hasta un múltiplo del valor proporcionado. Esto es especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.5 (Volta).
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.

Defina las estrategias de truncamiento y relleno para los tokenizadores rápidos (proporcionados por la biblioteca HuggingFace tokenizers) y restablezca la configuración del tokenizador después.

El tokenizador proporcionado no tiene una estrategia de relleno / truncamiento antes de la sección gestionada. Si su tokenizador estableció una estrategia de relleno / truncamiento antes, se restablecerá a sin relleno / truncamiento al salir de la sección gestionada.

train_new_from_iterator

< >

( text_iteratorvocab_sizelength = Nonenew_special_tokens = Nonespecial_tokens_map = None**kwargs ) → PreTrainedTokenizerFast

Parámetros

  • text_iterator (generador de list[str]) — El corpus de entrenamiento. Debe ser un generador de lotes de textos, por ejemplo, una lista de listas de textos si tienes todo en memoria.
  • vocab_size (int) — El tamaño del vocabulario que deseas para tu tokenizador.
  • length (int, opcional) — El número total de secuencias en el iterador. Esto se utiliza para proporcionar un seguimiento de progreso significativo
  • new_special_tokens (lista de str o AddedToken, opcional) — Una lista de nuevos tokens especiales para añadir al tokenizador que estás entrenando.
  • special_tokens_map (dict[str, str], opcional) — Si desea cambiar el nombre de algunos de los tokens especiales que utiliza este tokenizador, pase un mapeo del nombre del token especial antiguo al nombre del token especial nuevo en este argumento.
  • kwargs (dict[str, Any], opcional) — Argumentos de palabra clave adicionales que se pasan al trainer desde la biblioteca 🤗 Tokenizers.

Un nuevo tokenizador del mismo tipo que el original, entrenado en text_iterator.

Entrena un tokenizador en un nuevo corpus con los mismos valores predeterminados (en términos de tokens especiales o pipeline de tokenización) que el actual.

update_post_processor

< >

( )

Actualiza el procesador posterior subyacente con el bos_token y el eos_token actuales.

SentencePieceBackend

clase transformers.SentencePieceBackend

< >

( **kwargs )

Parámetros

  • model_max_length (int, opcional) — La longitud máxima (en número de tokens) para las entradas del modelo transformer. Cuando el tokenizador se carga con from_pretrained(), se establecerá en el valor almacenado para el modelo asociado en max_model_input_sizes (ver arriba). Si no se proporciona un valor, usará VERY_LARGE_INTEGER (int(1e30)) por defecto.
  • padding_side (str, opcional) — El lado en el que el modelo debe aplicar el relleno. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • truncation_side (str, opcional) — El lado en el que el modelo debe aplicar la truncación. Debe seleccionarse entre [‘right’, ‘left’]. El valor predeterminado se elige a partir del atributo de clase con el mismo nombre.
  • chat_template (str, opcional) — Una cadena de plantilla Jinja que se utilizará para formatear listas de mensajes de chat. Consulte https://huggingface.co/docs/transformers/chat_templating para una descripción completa.
  • model_input_names (list[string], opcional) — La lista de entradas aceptadas por la pasada hacia adelante del modelo (como "token_type_ids" o "attention_mask"). El valor predeterminado se toma del atributo de clase con el mismo nombre.
  • bos_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa el inicio de una oración.
  • eos_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa el final de una oración.
  • unk_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa un token fuera del vocabulario.
  • sep_token (str o tokenizers.AddedToken, opcional) — Un token especial que separa dos oraciones diferentes en la misma entrada (utilizado, por ejemplo, por BERT).
  • pad_token (str o tokenizers.AddedToken, opcional) — Un token especial utilizado para que los arreglos de tokens tengan el mismo tamaño con fines de lote. Luego será ignorado por los mecanismos de atención o el cálculo de la pérdida.
  • cls_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa la clase de la entrada (utilizado, por ejemplo, por BERT).
  • mask_token (str o tokenizers.AddedToken, opcional) — Un token especial que representa un token enmascarado (utilizado por objetivos de preentrenamiento de modelado de lenguaje enmascarado, como BERT). Se asociará a self.mask_token y self.mask_token_id.
  • extra_special_tokens (lista de str o tokenizers.AddedToken, opcional) — Una lista de tokens especiales adicionales específicos del modelo. Añádalos aquí para asegurarte de que se omiten al decodificar cuando skip_special_tokens está establecido en True. Si no forman parte del vocabulario, se añadirán al final del vocabulario.
  • split_special_tokens (bool, opcional, valor predeterminado False) — Indica si los tokens especiales deben dividirse durante el proceso de tokenización. Pasar este argumento afectará al estado interno del tokenizador. El comportamiento predeterminado es no dividir los tokens especiales. Esto significa que si <s> es el bos_token, entonces tokenizer.tokenize("<s>") = ['<s>]. En caso contrario, si split_special_tokens=True, entonces tokenizer.tokenize("<s>") devolverá ['<','s', '>'].

Clase base para tokenizadores basados en SentencePiece que se cargan desde archivos sentencepiece.model.

Hereda de PreTrainedTokenizer.

Gestiona todos los métodos compartidos para la tokenización y los tokens especiales, así como los métodos para descargar, cachear y cargar tokenizadores preentrenados, además de añadir tokens al vocabulario.

Esta clase también contiene los tokens añadidos de manera unificada sobre todos los tokenizadores, de modo que no tengamos que manejar los métodos específicos de ampliación del vocabulario de las diversas estructuras de diccionario subyacentes (BPE, sentencepiece…).

Atributos de clase (sobreescritos por las clases derivadas)

  • vocab_files_names (dict[str, str]) — Un diccionario que, como claves, contiene el nombre de la palabra clave de __init__ de cada archivo de vocabulario requerido por el modelo, y como valores asociados, el nombre del archivo para guardar el archivo asociado (cadena de caracteres).
  • pretrained_vocab_files_map (dict[str, dict[str, str]]) — Un diccionario de diccionarios, cuyas claves de alto nivel son el nombre de la palabra clave de __init__ de cada archivo de vocabulario requerido por el modelo, y las de bajo nivel son los short-cut-names de los modelos preentrenados, con, como valores asociados, la url del archivo de vocabulario preentrenado correspondiente.
  • model_input_names (list[str]) — Una lista de entradas esperadas en la pasada hacia adelante del modelo.
  • padding_side (str) — El valor predeterminado para el lado en el que el modelo debe aplicar el relleno. Debe ser 'right' o 'left'.
  • truncation_side (str) — El valor predeterminado para el lado en el que el modelo debe aplicar la truncación. Debe ser 'right' o 'left'.

convert_tokens_to_string

< >

( tokens: list )

Convierte una secuencia de tokens (cadena) en una sola cadena.

get_vocab

< >

( )

Devuelve el vocabulario como un diccionario

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None ) → tuple(str)

Parámetros

  • save_directory (str) — El directorio en el que se guardará el vocabulario.
  • filename_prefix (str, opcional) — Un prefijo opcional para añadir al nombre de los archivos guardados.

Devuelve

tuple(str)

Rutas a los archivos guardados.

Guarde el vocabulario de sentencepiece (copie el archivo original) en un directorio.

BatchEncoding

clase transformers.BatchEncoding

< >

( data: dict[str, Any] | None = Noneencoding: EncodingFast | Sequence[EncodingFast] | None = Nonetensor_type: None | str | TensorType = Noneprepend_batch_axis: bool = Falsen_sequences: int | None = None )

Parámetros

  • data (dict, opcional) — Diccionario de listas/arrays/tensores devueltos por los métodos __call__/encode_plus/batch_encode_plus (‘input_ids’, ‘attention_mask’, etc.).
  • encoding (tokenizers.Encoding o Sequence[tokenizers.Encoding], opcional) — Si el tokenizador es un tokenizador rápido que emite información adicional, como el mapeo del espacio de palabras/caracteres al espacio de tokens, la instancia de tokenizers.Encoding o la lista de instancias (para lotes) contiene esta información.
  • tensor_type (Union[None, str, TensorType], opcional) — Puede indicar un tensor_type aquí para convertir las listas de enteros en Tensors de PyTorch/Numpy durante la inicialización.
  • prepend_batch_axis (bool, opcional, valor predeterminado False) — Indica si se debe añadir un eje de lote al convertir a tensores (consulte tensor_type arriba). Tenga en cuenta que este parámetro tiene un efecto si el parámetro tensor_type está establecido, en caso contrario no tiene efecto.
  • n_sequences (Optional[int], opcional) — El número de secuencias de entrada representadas por cada codificación (None para desconocido, 1 para una secuencia única y 2 para un par de secuencias).

Contiene la salida de los métodos call(), ~tokenization_utils_base.PreTrainedTokenizerBase.encode_plus y ~tokenization_utils_base.PreTrainedTokenizerBase.batch_encode_plus (tokens, attention_masks, etc.).

Esta clase se deriva de un diccionario de Python y puede usarse como un diccionario. Además, esta clase expone métodos de utilidad para mapear desde el espacio de palabras/caracteres al espacio de tokens.

char_to_token

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

Parámetros

  • batch_or_char_index (int) — Índice de la secuencia en el lote. Si el lote solo comprende una secuencia, esto puede ser el índice del carácter en la secuencia
  • char_index (int, opcional) — Si se proporciona un índice de lote en batch_or_char_index, este puede ser el índice del carácter en la secuencia.
  • sequence_index (int, opcional, valor predeterminado 0) — Si en el lote se codifica un par de secuencias, se puede usar para especificar a cuál de las secuencias del par (0 o 1) pertenece el índice de carácter proporcionado.

Devuelve

int

Índice del token, o None si el índice de carácter se refiere a un token que solo contiene espacios en blanco y los espacios en blanco se recortan con trim_offsets=True.

Obtén el índice del token en la salida codificada que comprende un carácter de la cadena original para una secuencia del lote.

Puede llamarse de la siguiente manera:

  • self.char_to_token(char_index) si el tamaño del lote es 1
  • self.char_to_token(batch_index, char_index) si el tamaño del lote es mayor o igual a 1

Este método es especialmente adecuado cuando las secuencias de entrada se proporcionan como secuencias pretokenizadas (es decir, las palabras están definidas por el usuario). En este caso, permite asociar fácilmente los tokens codificados con las palabras tokenizadas proporcionadas.

char_to_word

< >

( batch_or_char_index: intchar_index: int | None = Nonesequence_index: int = 0 ) → int

Parámetros

  • batch_or_char_index (int) — Índice de la secuencia en el lote. Si el lote solo comprende una secuencia, esto puede ser el índice del carácter en la cadena original.
  • char_index (int, opcional) — Si se proporciona un índice de lote en batch_or_char_index, este puede ser el índice del carácter en la cadena original.
  • sequence_index (int, opcional, valor predeterminado 0) — Si en el lote se codifica un par de secuencias, se puede usar para especificar a cuál de las secuencias del par (0 o 1) pertenece el índice de carácter proporcionado.

Devuelve

int

Índice de la palabra que contiene el carácter.

Obtenga la palabra en la cadena original que corresponde a un carácter en la cadena original de una secuencia del lote.

Puede llamarse de la siguiente manera:

  • self.char_to_word(char_index) si el tamaño del lote es 1
  • self.char_to_word(batch_index, char_index) si el tamaño del lote es mayor que 1

Este método es especialmente adecuado cuando las secuencias de entrada se proporcionan como secuencias pretokenizadas (es decir, las palabras están definidas por el usuario). En este caso, permite asociar fácilmente los tokens codificados con las palabras tokenizadas proporcionadas.

convert_to_tensors

< >

( tensor_type: str | TensorType | None = Noneprepend_batch_axis: bool = False )

Parámetros

  • tensor_type (str o TensorType, opcional) — El tipo de tensores a utilizar. Si es str, debe ser uno de los valores del enum TensorType. Si es None, no se realiza ninguna modificación.
  • prepend_batch_axis (bool, opcional, valor predeterminado False) — Indica si se debe o no añadir la dimensión de lote durante la conversión.

Convierte el contenido interno en tensores.

sequence_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

Parámetros

  • batch_index (int, opcional, valor predeterminado 0) — El índice al que acceder en el lote.

Devuelve

list[Optional[int]]

Una lista que indica el identificador de secuencia correspondiente a cada token. Los tokens especiales añadidos por el tokenizador se mapean a None y los demás tokens se mapean al índice de su secuencia correspondiente.

Devuelve una lista que mapea los tokens al id de sus oraciones originales:

  • None para los tokens especiales añadidos alrededor o entre secuencias,
  • 0 para los tokens que corresponden a palabras de la primera secuencia,
  • 1 para los tokens que corresponden a palabras de la segunda secuencia cuando un par de secuencias se codificó conjuntamente.

hasta

< >

( device: str | torch.device | intnon_blocking: bool = False ) → BatchEncoding

Parámetros

  • device (str o torch.device o int) — El dispositivo en el que colocar los tensores.
  • non_blocking (bool) — Si se realiza la copia de forma asíncrona.

Devuelve

BatchEncoding

La misma instancia después de la modificación.

Envía todos los valores al dispositivo llamando a v.to(device, non_blocking=non_blocking) (solo PyTorch).

token_to_chars

< >

( batch_or_token_index: inttoken_index: int | None = None ) → CharSpan

Parámetros

  • batch_or_token_index (int) — Índice de la secuencia en el lote. Si el lote solo comprende una secuencia, esto puede ser el índice del token en la secuencia.
  • token_index (int, opcional) — Si se proporciona un índice de lote en batch_or_token_index, este puede ser el índice del token o tokens en la secuencia.

Devuelve

CharSpan

Rango de caracteres en la cadena original, o None, si el token (p. ej. , ) no corresponde a ningún carácter en la cadena original.

Obtenga el rango de caracteres correspondiente a un token codificado en una secuencia del lote.

Los tramos de caracteres se devuelven como un CharSpan con:

  • start — Índice del primer carácter de la cadena original asociado al token.
  • end — Índice del carácter que sigue al último carácter de la cadena original asociada al token.

Puede llamarse de la siguiente manera:

  • self.token_to_chars(token_index) si el tamaño del lote es 1
  • self.token_to_chars(batch_index, token_index) si el tamaño del lote es mayor o igual a 1

token_to_sequence

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

Parámetros

  • batch_or_token_index (int) — Índice de la secuencia en el lote. Si el lote solo comprende una secuencia, esto puede ser el índice del token en la secuencia.
  • token_index (int, opcional) — Si se proporciona un índice de lote en batch_or_token_index, este puede ser el índice del token en la secuencia.

Devuelve

int

Índice de la secuencia de entrada que contiene el token (0 para la primera secuencia o 1 para la segunda secuencia de un par).

Obtiene el índice de la secuencia representada por el token dado. En el caso de uso general, este método devuelve 0 para una secuencia única o la primera secuencia de un par, y 1 para la segunda secuencia de un par

Puede llamarse de la siguiente manera:

  • self.token_to_sequence(token_index) si el tamaño del lote es 1
  • self.token_to_sequence(batch_index, token_index) si el tamaño del lote es mayor que 1

Este método es especialmente adecuado cuando las secuencias de entrada se proporcionan como secuencias pretokenizadas (es decir, las palabras están definidas por el usuario). En este caso, permite asociar fácilmente los tokens codificados con las palabras tokenizadas proporcionadas.

token_to_word

< >

( batch_or_token_index: inttoken_index: int | None = None ) → int

Parámetros

  • batch_or_token_index (int) — Índice de la secuencia en el lote. Si el lote solo comprende una secuencia, esto puede ser el índice del token en la secuencia.
  • token_index (int, opcional) — Si se proporciona un índice de lote en batch_or_token_index, este puede ser el índice del token en la secuencia.

Devuelve

int

Índice de la palabra en la secuencia de entrada.

Obtenga el índice de la palabra correspondiente (es decir, que comprende) a un token codificado en una secuencia del lote.

Puede llamarse de la siguiente manera:

  • self.token_to_word(token_index) si el tamaño del lote es 1
  • self.token_to_word(batch_index, token_index) si el tamaño del lote es mayor que 1

Este método es especialmente adecuado cuando las secuencias de entrada se proporcionan como secuencias pretokenizadas (es decir, las palabras están definidas por el usuario). En este caso, permite asociar fácilmente los tokens codificados con las palabras tokenizadas proporcionadas.

tokens

< >

( batch_index: int = 0 ) → list[str]

Parámetros

  • batch_index (int, opcional, valor predeterminado 0) — El índice al que acceder en el lote.

Devuelve

list[str]

La lista de tokens en ese índice.

Devuelve la lista de tokens (subpartes de las cadenas de entrada después de la división por palabras/subpalabras y antes de la conversión a índices enteros) en un índice de lote dado (solo funciona para la salida de un tokenizador rápido).

word_ids

< >

( batch_index: int = 0 ) → list[Optional[int]]

Parámetros

  • batch_index (int, opcional, valor predeterminado 0) — El índice al que acceder en el lote.

Devuelve

list[Optional[int]]

Una lista que indica la palabra correspondiente a cada token. Los tokens especiales añadidos por el tokenizador se mapean a None y los demás tokens se mapean al índice de su palabra correspondiente (varios tokens se mapearán al mismo índice de palabra si son partes de esa palabra).

Devuelve una lista que mapea los tokens a su palabra real en la oración inicial para un tokenizador rápido.

word_to_chars

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → CharSpan

Parámetros

  • batch_or_word_index (int) — Índice de la secuencia en el lote. Si el lote solo comprende una secuencia, esto puede ser el índice de la palabra en la secuencia
  • word_index (int, opcional) — Si se proporciona un índice de lote en batch_or_word_index, este puede ser el índice de la palabra en la secuencia.
  • sequence_index (int, opcional, valor predeterminado 0) — Si en el lote se codifica un par de secuencias, se puede utilizar para especificar a cuál de las secuencias del par (0 o 1) pertenece el índice de palabra proporcionado.

Devuelve

CharSpan

Extensión del carácter o caracteres asociados en la cadena. CharSpan es una NamedTuple con:

  • start: índice del primer carácter asociado a la palabra en la cadena original
  • end: índice del carácter que sigue al último carácter asociado a la palabra en la cadena original

Obtenga el rango de caracteres en la cadena original que corresponde a la palabra dada en una secuencia del lote.

Los tramos de caracteres se devuelven como una NamedTuple CharSpan con:

  • start: índice del primer carácter en la cadena original
  • end: índice del carácter que sigue al último carácter en la cadena original

Puede llamarse de la siguiente manera:

  • self.word_to_chars(word_index) si el tamaño del lote es 1
  • self.word_to_chars(batch_index, word_index) si el tamaño del lote es mayor o igual a 1

word_to_tokens

< >

( batch_or_word_index: intword_index: int | None = Nonesequence_index: int = 0 ) → (TokenSpan, optional)

Parámetros

  • batch_or_word_index (int) — Índice de la secuencia en el lote. Si el lote solo comprende una secuencia, esto puede ser el índice de la palabra en la secuencia.
  • word_index (int, opcional) — Si se proporciona un índice de lote en batch_or_word_index, este puede ser el índice de la palabra en la secuencia.
  • sequence_index (int, opcional, valor predeterminado 0) — Si en el lote se codifica un par de secuencias, se puede utilizar para especificar a cuál de las secuencias del par (0 o 1) pertenece el índice de palabra proporcionado.

Devuelve

(TokenSpan, opcional)

Extensión de los tokens en la secuencia codificada. Devuelve None si no hay tokens que correspondan a la palabra. Esto puede ocurrir especialmente cuando el token es un token especial que se ha utilizado para formatear la tokenización. Por ejemplo, cuando añadimos un token de clase al principio de la tokenización.

Obtenga el rango de tokens codificados correspondiente a una palabra en una secuencia del lote.

Los tramos de tokens se devuelven como un TokenSpan con:

  • start — Índice del primer token.
  • end — Índice del token que sigue al último token.

Puede llamarse de la siguiente manera:

  • self.word_to_tokens(word_index, sequence_index: int = 0) si el tamaño del lote es 1
  • self.word_to_tokens(batch_index, word_index, sequence_index: int = 0) si el tamaño del lote es mayor o igual a 1

Este método es especialmente adecuado cuando las secuencias de entrada se proporcionan como secuencias pretokenizadas (es decir, las palabras están definidas por el usuario). En este caso, permite asociar fácilmente los tokens codificados con las palabras tokenizadas proporcionadas.

Update on GitHub