Transformers documentation

Utilidades para tokenizadores

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

Utilidades para tokenizadores

Esta página enumera todas las funciones utilitarias utilizadas por los tokenizadores, principalmente la clase PreTrainedTokenizerBase que implementa los métodos comunes entre PreTrainedTokenizer y PreTrainedTokenizerFast.

La mayoría de ellas solo son útiles si estás estudiando el código de los tokenizadores de la biblioteca.

PreTrainedTokenizerBase

clase transformers.PreTrainedTokenizerBase

< >

( **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 backends de tokenizadores.

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_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>"

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

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.

clean_up_tokenization

< >

( text: str )

Limpia los espacios de tokenización en un texto dado. Este método es principalmente para el soporte de código remoto.

convert_ids_to_tokens

< >

( ids: int | list[int]skip_special_tokens: bool = False ) → str or list[str]

Parámetros

  • ids (int o list[int]) — El id de token (o los ids de token) que se deben convertir en tokens.
  • skip_special_tokens (bool, opcional, valor predeterminado False) — Indica si se deben eliminar los tokens especiales durante la decodificación.

Devuelve

str o list[str]

El (los) token(s) decodificado(s).

Convierte un único índice o una secuencia de índices en un token o una secuencia de tokens, utilizando el vocabulario y los tokens añadidos.

convert_tokens_to_ids

< >

( tokens: str | list[str] ) → int or list[int]

Parámetros

  • tokens (str or list[str]) — One or several token(s) to convert to token id(s).

Devuelve

int o list[int]

El id de token o lista de ids de token.

Convierte una cadena de tokens (o una secuencia de tokens) en un identificador entero único (o una secuencia de identificadores), utilizando el vocabulario.

convert_tokens_to_string

< >

( tokens: list[str] ) → str

Parámetros

  • tokens (list[str]) — El token para unir en una cadena.

Devuelve

str

Los tokens unidos.

Convierte una secuencia de tokens en una sola cadena. La forma más sencilla de hacerlo es " ".join(tokens), pero a menudo queremos eliminar al mismo tiempo los artefactos de la tokenización subpalabra.

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

encode_message_with_chat_template

< >

( message: dict[str, str]conversation_history: list[dict[str, str]] | None = None**kwargs ) → list[int]

Parámetros

  • message (dict) — Un diccionario con las claves “role” y “content”, que representa el mensaje que se va a tokenizar.
  • conversation_history (list[dict], opcional) — Una lista de diccionarios con las claves “role” y “content”, que representa el historial de la conversación hasta el momento. Si estás tokenizando los mensajes uno a uno, debes pasar aquí los mensajes anteriores de la conversación.
  • **kwargs — Kwargs adicionales para pasar al método apply_chat_template.

Devuelve

list[int]

Una lista de ids de tokens que representa el mensaje tokenizado.

Tokeniza un mensaje individual. Este método es un envoltorio de conveniencia alrededor de apply_chat_template que permite tokenizar los mensajes uno a uno. Esto es útil para tareas como la transmisión de tokens uno a uno. No se garantiza que este método sea perfecto. Para algunos modelos, puede ser imposible tokenizar de forma robusta mensajes individuales. Por ejemplo, si la plantilla de chat añade tokens después de cada mensaje, pero también tiene un prefijo que se añade a todo el chat, será imposible distinguir un token de inicio de chat de un token de inicio de mensaje. En estos casos, este método hará lo mejor posible para encontrar la tokenización correcta, pero puede no ser perfecto. Nota: Este método no admite add_generation_prompt. Si deseas añadir un prompt de generación, deberás hacerlo por separado después de tokenizar la conversación.

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLike*init_inputscache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'trust_remote_code = False**kwargs )

Parámetros

  • pretrained_model_name_or_path (str o os.PathLike) — Puede ser:
    • Una cadena de texto, el model id de un tokenizador predefinido alojado en un repositorio de modelos en huggingface.co.
    • Una ruta a un directorio que contenga los archivos de vocabulario requeridos por el tokenizador, por ejemplo, guardados usando el método save_pretrained(), p. ej., ./my_model_directory/.
    • (Obsoleto, no aplicable a todas las clases derivadas) una ruta a un único archivo de vocabulario guardado (si y solo si el tokenizador requiere un único archivo de vocabulario, como Bert o XLNet), por ejemplo, ./my_model_directory/vocab.txt.
  • cache_dir (str o os.PathLike, opcional) — Ruta a un directorio en el que se deben almacenar en caché los archivos de vocabulario de un tokenizador predefinido descargado si no se debe usar la caché estándar.
  • force_download (bool, opcional, valor predeterminado False) — Indica si se debe forzar la (re)descarga de los archivos de vocabulario y sobrescribir las versiones en caché si existen.
  • proxies (dict[str, str], opcional) — Un diccionario de servidores proxy a utilizar por protocolo o punto de acceso, p. ej., {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Los proxies se utilizan en cada solicitud.
  • token (str o bool, opcional) — El token que se usará como autorización HTTP bearer para archivos remotos. Si es True, se usará el token generado al ejecutar hf auth login (almacenado en ~/.huggingface).
  • local_files_only (bool, opcional, valor predeterminado False) — Indica si se debe confiar únicamente en los archivos locales y no intentar descargar ningún archivo.
  • revision (str, opcional, valor predeterminado "main") — La versión específica del modelo que se va a utilizar. Puede ser el nombre de una rama, el nombre de una etiqueta o un id de commit, ya que utilizamos un sistema basado en git para almacenar modelos y otros artefactos en huggingface.co, por lo que revision puede ser cualquier identificador permitido por git.
  • subfolder (str, opcional) — En caso de que los archivos relevantes se encuentren dentro de una subcarpeta del repositorio del modelo en huggingface.co (p. ej. para facebook/rag-token-base), especifíquela aquí.
  • inputs (argumentos posicionales adicionales, opcional) — Se pasarán al método __init__ del Tokenizer.
  • trust_remote_code (bool, opcional, valor predeterminado False) — Indica si se permiten modelos personalizados definidos en el Hub en sus propios archivos de modelado. Esta opción debe establecerse en True solo para repositorios de confianza en los que hayas leído el código, ya que ejecutará el código presente en el Hub en tu máquina local.
  • kwargs (argumentos de palabra clave adicionales, opcional) — Se pasarán al método __init__ del Tokenizer. Se pueden usar para establecer tokens especiales como bos_token, eos_token, unk_token, sep_token, pad_token, cls_token, mask_token, extra_special_tokens. Consulte los parámetros en __init__ para obtener más detalles.

Instanciar un PreTrainedTokenizerBase (o una clase derivada) a partir de un tokenizador predefinido.

Es necesario pasar token=True cuando se desea utilizar un modelo privado.

Ejemplos:

# We can't instantiate directly the base class *PreTrainedTokenizerBase* so let's show our examples on a derived class: BertTokenizer
# Download vocabulary from huggingface.co and cache.
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased")

# Download vocabulary from huggingface.co (user-uploaded) and cache.
tokenizer = BertTokenizer.from_pretrained("dbmdz/bert-base-german-cased")

# If vocabulary files are in a directory (e.g. tokenizer was saved using *save_pretrained('./test/saved_model/')*)
tokenizer = BertTokenizer.from_pretrained("./test/saved_model/")

# If the tokenizer uses a single vocabulary file, you can point directly to this file
tokenizer = BertTokenizer.from_pretrained("./test/saved_model/my_vocab.txt")

# You can link tokens to special vocabulary when instantiating
tokenizer = BertTokenizer.from_pretrained("google-bert/bert-base-uncased", unk_token="<unk>")
# You should be sure '<unk>' is in the vocabulary when doing that.
# Otherwise use tokenizer.add_special_tokens({'unk_token': '<unk>'}) instead)
assert tokenizer.unk_token == "<unk>"

get_chat_template

< >

( chat_template: str | None = Nonetools: list[dict] | None = None ) → str

Parámetros

  • chat_template (str, opcional) — Una plantilla Jinja o el nombre de una plantilla para usar en esta conversión. Por lo general, no es necesario pasar nada a este argumento, ya que se usará la plantilla del modelo de forma predeterminada.
  • tools (list[Dict], 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 plantillas de chat para obtener más información.

Devuelve

str

La cadena de la plantilla de chat.

Obtiene la cadena de plantilla de chat utilizada para tokenizar mensajes de chat. Esta plantilla se utiliza internamente por el método apply_chat_template y también puede usarse externamente para obtener la plantilla de chat del modelo y mejorar el seguimiento de la generación.

get_response_parser

< >

( response_template: dict | None = Noneprefix: str | list[int] | np.ndarray | torch.Tensor | None = Nonetools: list[dict | Callable] | None = None )

Devuelve un ResponseParser con estado para analizar de forma incremental una respuesta transmitida en flujo. Utiliza el atributo response_template del tokenizador, a menos que se sobrescriba.

prefix (una cadena, una lista de ids de tokens o un tensor 1D) es obligatorio: el stream se inicializa en el estado implicado por el contexto del chat-prompt (recortado por la derecha más allá del start_anchor de la especificación), de modo que los fragmentos generados que se alimentan mediante stream.feed() se clasifican correctamente incluso cuando la plantilla de chat emitió contenido del turno del asistente (p. ej., <think>\n) desde el cual el modelo continúa. Si se omite, se lanza una excepción; si el stream comienza realmente desde un turno limpio del asistente, pase prefix="" para desactivar esta opción.

tools (list[Union[Dict, Callable]], opcional): herramientas disponibles para el modelo, en el mismo formato que acepta apply_chat_template. Cuando se establece, los argumentos de la llamada a la herramienta se convierten usando el esquema JSON de la herramienta que realiza la llamada a medida que cada región se cierra, de modo que los eventos de streaming region_close incluyen argumentos tipados.

get_special_tokens_mask

< >

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

Parámetros

  • token_ids_0 — Lista de IDs de la secuencia (posiblemente ya formateada).
  • token_ids_1 — No se usa cuando already_has_special_tokens=True. Debe ser None en ese caso.
  • already_has_special_tokens — Indica si la secuencia ya está formateada con tokens especiales.

Devuelve

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

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

Obtener los ids de secuencia de una lista de tokens a la que no se le han añadido tokens especiales.

Para los tokenizadores rápidos, los collators de datos llaman a esto con already_has_special_tokens=True para construir una máscara sobre una secuencia ya formateada. En ese caso, calculamos la máscara comprobando la pertenencia en all_special_ids.

get_vocab

< >

( ) → dict[str, int]

Devuelve

dict[str, int]

El vocabulario.

Devuelve el vocabulario como un diccionario de token a índice.

tokenizer.get_vocab()[token] es equivalente a tokenizer.convert_tokens_to_ids(token) cuando token está en el vocabulario.

pad

< >

( encoded_inputs: BatchEncoding | list[BatchEncoding] | dict[str, EncodedInput] | dict[str, list[EncodedInput]] | list[dict[str, EncodedInput]]padding: bool | str | PaddingStrategy = Truemax_length: int | None = Nonepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | TensorType | None = Noneverbose: bool = True )

Parámetros

  • encoded_inputs (BatchEncoding, lista de BatchEncoding, dict[str, list[int]], dict[str, list[list[int]] o list[dict[str, list[int]]]) — Entradas tokenizadas. Puede representar una entrada (BatchEncoding o dict[str, list[int]]) o un lote de entradas tokenizadas (lista de BatchEncoding, dict[str, list[list[int]]] o list[dict[str, list[int]]]) de modo que puedes usar este método tanto durante la preprocesamiento como en una función de collate de un Dataloader de PyTorch.

    En lugar de list[int] puede tener tensores (arrays de numpy o tensores de PyTorch), consulte la nota anterior sobre el tipo de retorno.

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

    Esto resulta especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.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_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_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.
  • verbose (bool, opcional, valor predeterminado True) — Si se imprime más información y advertencias.

Rellena una entrada codificada individual o un lote de entradas codificadas hasta una longitud predefinida o hasta la longitud de secuencia máxima del lote.

Los ids de tokens de relleno (izquierda/derecha) se definen a nivel del tokenizador (con self.padding_side, self.pad_token_id y self.pad_token_type_id).

Tenga en cuenta que, con un tokenizador rápido, usar el método __call__ es más rápido que usar un método para codificar el texto seguido de una llamada al método pad para obtener una codificación rellena.

Si los encoded_inputs pasados son un diccionario de arrays de numpy o tensores de PyTorch, el resultado usará el mismo tipo, a menos que proporciones un tipo de tensor diferente con return_tensors. En el caso de los tensores de PyTorch, sin embargo, perderás el dispositivo específico de tus tensores.

parse_response

< >

( response: str | list[int] | list[str] | list[list[int]] | np.ndarray | torch.Tensorschema: dict | None = Noneprefix: str | list[int] | list[str] | list[list[int]] | np.ndarray | torch.Tensor | None = Nonetools: list[dict | Callable] | None = None )

Parámetros

  • response (str, ids de tokens, tensor 1D/2D o una lista de estos) — La salida generada por el modelo. Puede ser texto decodificado o ids de tokens, como una secuencia única (str / list[int] / array 1D / tensor 1D) o un lote (list[str] / list[list[int]] / array 2D / tensor 2D). Tenga en cuenta que esto debe contener solo la salida del modelo, no el texto del prompt anterior (eso va en prefix).
  • schema (dict, opcional) — Una plantilla de respuesta que indica el formato de salida esperado y cómo debe realizarse el análisis. Si no se proporciona, se utilizará el atributo response_template del tokenizador.
  • prefix (str, ids de tokens, tensor 1D/2D o una lista de estos) — El prompt que precedió a la generación. Esto es necesario porque muchas plantillas de chat escriben de antemano parte del mensaje, por lo que necesitamos ver el prompt para analizarlo correctamente. Para un response por lotes, pase un único prefijo (que se difunde a cada elemento) o un prefijo por elemento.
  • tools (list[Union[Dict, Callable]], opcional) — Herramientas disponibles para el modelo, en el mismo formato que acepta apply_chat_template. Cuando se pasan, los argumentos de la llamada a la herramienta se convierten usando el esquema JSON de la herramienta invocada: "7" se convierte en 7 para un parámetro entero, pero se mantiene como "7" para uno de tipo cadena.

Convierte una cadena de salida creada al generar texto desde un modelo en un diccionario de mensajes analizado. Este método está diseñado para su uso con modelos de chat y leerá el atributo response_template del tokenizador para controlar el análisis, a menos que se pase directamente un argumento schema.

Acepta una secuencia única o un lote. Una secuencia única (una cadena de caracteres, o una secuencia 1D de ids de tokens) devuelve un único mensaje analizado dict; un lote (una lista de cadenas de caracteres, una lista de secuencias de ids de tokens, o un tensor / array 2D) devuelve una list de diccionarios de mensajes analizados, uno por elemento.

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

register_for_auto_class

< >

( auto_class = 'AutoTokenizer' )

Parámetros

  • auto_class (str o type, opcional, por defecto "AutoTokenizer") — La clase automática con la que registrar este nuevo tokenizador.

Registra esta clase con una clase auto dada. Esto solo debe usarse para tokenizadores personalizados, ya que los de la biblioteca ya están mapeados con AutoTokenizer.

save_chat_templates

< >

( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )

Escribe las plantillas de chat en el directorio de guardado si estamos usando el nuevo formato, y las elimina de la configuración del tokenizador si están presentes. Si estamos usando el formato heredado, no escribe ningún archivo y, en su lugar, escribe las plantillas en la configuración del tokenizador en el formato correcto.

save_pretrained

< >

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

Parámetros

  • save_directory (str o os.PathLike) — La ruta a un directorio donde se guardará el tokenizador.
  • legacy_format (bool, opcional) — Solo aplicable para un tokenizer rápido. Si no se establece (valor predeterminado), se guardará el tokenizer en el formato JSON unificado y también en el formato legacy si existe, es decir, con un vocabulario específico del tokenizer y archivos added_tokens separados.

    Si False, solo se guardará el tokenizador en el formato JSON unificado. Este formato no es compatible con los tokenizadores “lentos” (no impulsados por la biblioteca tokenizers), por lo que el tokenizador no podrá cargarse en el tokenizador “lento” correspondiente.

    Si True, se guardará el tokenizador en el formato heredado. Si el tokenizador “slow” no existe, se genera un error de valor.

  • filename_prefix (str, opcional) — Un prefijo para añadir a los nombres de los archivos guardados por el tokenizador.
  • push_to_hub (bool, opcional, valor predeterminado False) — Indica si se debe subir el modelo al hub de modelos de Hugging Face después de guardarlo. Puedes especificar el repositorio al que deseas subirlo con repo_id (por defecto, usará el nombre de save_directory en tu espacio de nombres).
  • 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.

Este método garantiza que el tokenizador completo pueda recargarse a continuación mediante el método de clase ~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.

Warning,None Esto no guardará las modificaciones que puedas haber aplicado al tokenizador después de la instancia (por ejemplo, modificar tokenizer.do_lower_case después de la creación).

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.

Guarda solo el vocabulario del tokenizador (vocabulario + tokens añadidos).

Este método no guardará la configuración ni los mapeos de tokens especiales del tokenizer. Use _save_pretrained() para guardar todo el estado del tokenizer.

tokenize

< >

( text: strpair: str | None = Noneadd_special_tokens: bool = False**kwargs ) → list[str]

Parámetros

  • text (str) — La secuencia que se va a codificar.
  • pair (str, opcional) — Una segunda secuencia que se codificará junto con la primera.
  • add_special_tokens (bool, opcional, valor predeterminado False) — Indica si se deben o no añadir los tokens especiales asociados con el modelo correspondiente.
  • kwargs (argumentos de palabra clave adicionales, opcional) — Se pasará al método de codificación específico del modelo subyacente. Consulte los detalles en call()

Devuelve

list[str]

La lista de tokens.

Convierte una cadena en una secuencia de tokens, reemplazando los tokens desconocidos con unk_token.

Enums y namedtuples

clase transformers.tokenization_utils_base.TruncationStrategy

< >

( valuenames = Nonemodule = Nonequalname = Nonetype = Nonestart = 1boundary = None )

Valores posibles para el argumento truncation en PreTrainedTokenizerBase.call(). Útil para la autocompletación de pestañas en un IDE.

clase transformers.CharSpan

< >

( start: ForwardRef('int')end: ForwardRef('int') )

Parámetros

  • start (int) — Índice del primer carácter en la cadena original.
  • end (int) — Índice del carácter que sigue al último carácter de la cadena original.

Extensión de caracteres en la cadena original.

clase transformers.TokenSpan

< >

( start: ForwardRef('int')end: ForwardRef('int') )

Parámetros

  • start (int) — Índice del primer token en el rango.
  • end (int) — Índice del token que sigue al último token del tramo.

Extensión de token en una cadena codificada (lista de tokens).

Update on GitHub