Transformers documentation
Tokenizer
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:
- una aceleración significativa, en particular al realizar tokenización por lotes y
- 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
< source >( **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 enmax_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 (
strotokenizers.AddedToken, opcional) — Un token especial que representa el inicio de una oración. - eos_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa el final de una oración. - unk_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa un token fuera del vocabulario. - sep_token (
strotokenizers.AddedToken, opcional) — Un token especial que separa dos oraciones diferentes en la misma entrada (utilizado, por ejemplo, por BERT). - pad_token (
strotokenizers.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 (
strotokenizers.AddedToken, opcional) — Un token especial que representa la clase de la entrada (utilizado, por ejemplo, por BERT). - mask_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa un token enmascarado (utilizado por objetivos de preentrenamiento de modelado de lenguaje enmascarado, como BERT). Se asociará aself.mask_tokenyself.mask_token_id. - extra_special_tokens (lista de
strotokenizers.AddedToken, opcional) — Una lista de tokens especiales adicionales específicos del modelo. Añádalos aquí para asegurarte de que se omiten al decodificar cuandoskip_special_tokensestá establecido en True. Si no forman parte del vocabulario, se añadirán al final del vocabulario. - split_special_tokens (
bool, opcional, valor predeterminadoFalse) — 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 elbos_token, entoncestokenizer.tokenize("<s>") = ['<s>]. En caso contrario, sisplit_special_tokens=True, entoncestokenizer.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 losshort-cut-namesde los modelos preentrenados, con, como valores asociados, laurldel 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__
< source >( 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 estableceris_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 estableceris_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 estableceris_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 estableceris_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 predeterminadoTrue) — Indica si se deben o no añadir tokens especiales al codificar las secuencias. Esto utilizará la función subyacentePretrainedTokenizerBase.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 tokensbosoeosautomáticamente. - padding (
bool,stro PaddingStrategy, opcional, el valor predeterminado esFalse) — Activa y controla el relleno. Acepta los siguientes valores:Trueo'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 argumentomax_lengtho hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.Falseo'do_not_pad'(predeterminado): Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
- truncation (
bool,stro TruncationStrategy, opcional, por defectoFalse) — Activa y controla la truncación. Acepta los siguientes valores:Trueo'longest_first': Trunca hasta una longitud máxima especificada con el argumentomax_lengtho 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 argumentomax_lengtho 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 argumentomax_lengtho 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).Falseo'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 conmax_length, los tokens de desbordamiento devueltos cuandoreturn_overflowing_tokens=Truecontendrá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 predeterminadoFalse) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece enTrue, 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 quepaddingesté 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 (
stro TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:'pt': Devuelve objetostorch.Tensorde PyTorch.'np': Devuelve objetos Numpynp.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 elreturn_outputsatributo. - 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 elreturn_outputsatributo. - return_overflowing_tokens (
bool, opcional, valor predeterminadoFalse) — 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) contruncation_strategy = longest_firstoTrue, se genera un error en lugar de devolver los tokens que exceden el límite. - return_special_tokens_mask (
bool, opcional, valor predeterminadoFalse) — Indica si se debe o no devolver información de la máscara de tokens especiales. - return_offsets_mapping (
bool, opcional, por defectoFalse) — 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 predeterminadoFalse) — Indica si se deben devolver las longitudes de las entradas codificadas. - verbose (
bool, opcional, valor predeterminadoTrue) — Si se imprime más información y advertencias. - **kwargs — se pasan al método
self.tokenize()
Devuelve
Un BatchEncoding con los siguientes campos:
-
input_ids — Lista de ids de tokens que se enviarán a un modelo.
-
token_type_ids — Lista de ids de tipo de token que se enviarán a un modelo (cuando
return_token_type_ids=Trueo si “token_type_ids” está enself.model_input_names). -
attention_mask — Lista de índices que especifica qué tokens deben ser atendidos por el modelo (cuando
return_attention_mask=Trueo si “attention_mask” está enself.model_input_names). -
overflowing_tokens — Lista de secuencias de tokens que exceden el límite (cuando se especifica un
max_lengthyreturn_overflowing_tokens=True). -
num_truncated_tokens — Número de tokens truncados (cuando se especifica un
max_lengthyreturn_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=Trueyreturn_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
< source >( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int
Parámetros
- new_tokens (
str,tokenizers.AddedTokeno una secuencia de str otokenizers.AddedToken) — Los tokens solo se añaden si no están ya en el vocabulario.tokenizers.AddedTokenenvuelve 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 predeterminadoFalse) — Especifica si el token es especial. Esto cambia principalmente el comportamiento de normalización. Vea los detalles detokenizers.AddedTokenen 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
Metaspaceque usaprepend_scheme="always"(p. ej., NLLB) añaden"▁"al texto que sigue a un token añadido. Después detokenizer.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 pretokenizadora
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
< source >( 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, oSequence[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 predeterminadoTrue) — SiTrue, la lista existente de tokens especiales adicionales se reemplazará por la lista proporcionada enspecial_tokens_dict. De lo contrario,extra_special_tokensse 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 eladded_tokens_encoderni eladded_tokens_decoder. Esto significa que losextra_special_tokensanteriores 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
< source >( 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 defectoTrue) — Si se debe tokenizar la salida. Si esFalse, la salida será una cadena de texto. - sanitize_control_tokens (
bool, por defectoFalse) — 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 entokenizer.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,stro PaddingStrategy, opcional, por defectoFalse) — Seleccione una estrategia para rellenar las secuencias devueltas (según el lado de relleno y el índice de relleno del modelo) entre:Trueo'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 argumentomax_lengtho hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.Falseo'do_not_pad'(predeterminado): Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
- truncation (
bool, por defectoFalse) — Si se deben truncar las secuencias en la longitud máxima. No tiene efecto si tokenize esFalse. - max_length (
int, opcional) — Longitud máxima (en tokens) para usar en el relleno o la truncación. No tiene efecto si tokenize esFalse. Si no se especifica, se usará el atributomax_lengthdel tokenizador como valor predeterminado. - return_tensors (
stro TensorType, opcional) — Si se establece, devolverá tensores de un marco de trabajo específico. No tiene efecto si tokenize esFalse. Los valores aceptables son:'pt': Devuelve objetostorch.Tensorde PyTorch.'np': Devuelve objetosnp.ndarrayde NumPy.
- return_dict (
bool, por defectoTrue) — Si se devuelve un diccionario con salidas nombradas. No tiene efecto si tokenize esFalse. - tokenizer_kwargs (
dict[str -- Any], opcional): Kwargs adicionales para pasar al tokenizer. - return_assistant_tokens_mask (
bool, por defectoFalse) — 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
< source >( 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 predeterminadoFalse) — 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 esNone, se usará por defectoself.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
< source >( 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 predeterminadoFalse) — 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
< source >( 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]olist[int]) — La primera secuencia que se codificará. Puede ser una cadena de caracteres, una lista de cadenas (cadena tokenizada usando el métodotokenize) o una lista de enteros (ids de tokens de una cadena tokenizada usando el métodoconvert_tokens_to_ids). - text_pair (
str,list[str]olist[int], opcional) — Segunda secuencia opcional que se codificará. Puede ser una cadena de caracteres, una lista de cadenas (cadena tokenizada usando el métodotokenize) o una lista de enteros (ids de tokens de una cadena tokenizada usando el métodoconvert_tokens_to_ids). - add_special_tokens (
bool, opcional, valor predeterminadoTrue) — Indica si se deben o no añadir tokens especiales al codificar las secuencias. Esto utilizará la función subyacentePretrainedTokenizerBase.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 tokensbosoeosautomáticamente. - padding (
bool,stro PaddingStrategy, opcional, el valor predeterminado esFalse) — Activa y controla el relleno. Acepta los siguientes valores:Trueo'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 argumentomax_lengtho hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.Falseo'do_not_pad'(predeterminado): Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
- truncation (
bool,stro TruncationStrategy, opcional, por defectoFalse) — Activa y controla la truncación. Acepta los siguientes valores:Trueo'longest_first': Trunca hasta una longitud máxima especificada con el argumentomax_lengtho 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 argumentomax_lengtho 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 argumentomax_lengtho 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).Falseo'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 conmax_length, los tokens de desbordamiento devueltos cuandoreturn_overflowing_tokens=Truecontendrá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 predeterminadoFalse) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece enTrue, 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 quepaddingesté 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 (
stro TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:'pt': Devuelve objetostorch.Tensorde PyTorch.'np': Devuelve objetos Numpynp.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
< source >( 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 esNone(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 (
boolostr, opcional) — El token que se usará como autorización HTTP bearer para archivos remotos. Si esTrue(valor predeterminado), se usará el token generado al ejecutarhf auth login(almacenado en~/.huggingface). - revision (
str, opcional) — Rama a la que se enviarán los archivos subidos. - create_pr (
bool, opcional, valor predeterminadoFalse) — Si se debe crear una PR con los archivos subidos o realizar el commit directamente. - max_shard_size (
intostr, 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
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
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
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
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 pairsDevuelve 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
< source >( 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 predeterminadoFalse) — 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
< source >( pair: bool = False ) → int
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
< source >( 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 )
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
< source >( 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 predeterminadoFalse) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece enTrue, 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
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]
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
< source >( text: str**kwargs )
Convierte una cadena en una secuencia de tokens, utilizando el tokenizador.
truncate_sequences
< source >( 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
< source >( *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 enmax_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 (
strotokenizers.AddedToken, opcional) — Un token especial que representa el inicio de una oración. - eos_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa el final de una oración. - unk_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa un token fuera del vocabulario. - sep_token (
strotokenizers.AddedToken, opcional) — Un token especial que separa dos oraciones diferentes en la misma entrada (utilizado, por ejemplo, por BERT). - pad_token (
strotokenizers.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 (
strotokenizers.AddedToken, opcional) — Un token especial que representa la clase de la entrada (utilizado, por ejemplo, por BERT). - mask_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa un token enmascarado (utilizado por objetivos de preentrenamiento de modelado de lenguaje enmascarado, como BERT). Se asociará aself.mask_tokenyself.mask_token_id. - extra_special_tokens (lista de
strotokenizers.AddedToken, opcional) — Una lista de tokens especiales adicionales específicos del modelo. Añádalos aquí para asegurarte de que se omiten al decodificar cuandoskip_special_tokensestá establecido en True. Si no forman parte del vocabulario, se añadirán al final del vocabulario. - split_special_tokens (
bool, opcional, valor predeterminadoFalse) — 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 elbos_token, entoncestokenizer.tokenize("<s>") = ['<s>]. En caso contrario, sisplit_special_tokens=True, entoncestokenizer.tokenize("<s>")devolverá['<','s', '>']. - tokenizer_object (
tokenizers.Tokenizer) — Un objetotokenizers.Tokenizerde 🤗 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 objetotokenizers.Tokenizerpreviamente 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 losshort-cut-namesde los modelos preentrenados, con, como valores asociados, laurldel 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__
< source >( 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 estableceris_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 estableceris_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 estableceris_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 estableceris_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 predeterminadoTrue) — Indica si se deben o no añadir tokens especiales al codificar las secuencias. Esto utilizará la función subyacentePretrainedTokenizerBase.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 tokensbosoeosautomáticamente. - padding (
bool,stro PaddingStrategy, opcional, el valor predeterminado esFalse) — Activa y controla el relleno. Acepta los siguientes valores:Trueo'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 argumentomax_lengtho hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.Falseo'do_not_pad'(predeterminado): Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
- truncation (
bool,stro TruncationStrategy, opcional, por defectoFalse) — Activa y controla la truncación. Acepta los siguientes valores:Trueo'longest_first': Trunca hasta una longitud máxima especificada con el argumentomax_lengtho 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 argumentomax_lengtho 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 argumentomax_lengtho 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).Falseo'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 conmax_length, los tokens de desbordamiento devueltos cuandoreturn_overflowing_tokens=Truecontendrá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 predeterminadoFalse) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece enTrue, 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 quepaddingesté 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 (
stro TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:'pt': Devuelve objetostorch.Tensorde PyTorch.'np': Devuelve objetos Numpynp.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 elreturn_outputsatributo. - 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 elreturn_outputsatributo. - return_overflowing_tokens (
bool, opcional, valor predeterminadoFalse) — 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) contruncation_strategy = longest_firstoTrue, se genera un error en lugar de devolver los tokens que exceden el límite. - return_special_tokens_mask (
bool, opcional, valor predeterminadoFalse) — Indica si se debe o no devolver información de la máscara de tokens especiales. - return_offsets_mapping (
bool, opcional, por defectoFalse) — 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 predeterminadoFalse) — Indica si se deben devolver las longitudes de las entradas codificadas. - verbose (
bool, opcional, valor predeterminadoTrue) — Si se imprime más información y advertencias. - **kwargs — se pasan al método
self.tokenize()
Devuelve
Un BatchEncoding con los siguientes campos:
-
input_ids — Lista de ids de tokens que se enviarán a un modelo.
-
token_type_ids — Lista de ids de tipo de token que se enviarán a un modelo (cuando
return_token_type_ids=Trueo si “token_type_ids” está enself.model_input_names). -
attention_mask — Lista de índices que especifica qué tokens deben ser atendidos por el modelo (cuando
return_attention_mask=Trueo si “attention_mask” está enself.model_input_names). -
overflowing_tokens — Lista de secuencias de tokens que exceden el límite (cuando se especifica un
max_lengthyreturn_overflowing_tokens=True). -
num_truncated_tokens — Número de tokens truncados (cuando se especifica un
max_lengthyreturn_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=Trueyreturn_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
< source >( new_tokens: str | AddedToken | Sequence[str | AddedToken]special_tokens: bool = False ) → int
Parámetros
- new_tokens (
str,tokenizers.AddedTokeno una secuencia de str otokenizers.AddedToken) — Los tokens solo se añaden si no están ya en el vocabulario.tokenizers.AddedTokenenvuelve 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 predeterminadoFalse) — Especifica si el token es especial. Esto cambia principalmente el comportamiento de normalización. Vea los detalles detokenizers.AddedTokenen 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
Metaspaceque usaprepend_scheme="always"(p. ej., NLLB) añaden"▁"al texto que sigue a un token añadido. Después detokenizer.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 pretokenizadora
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
< source >( 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, oSequence[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 predeterminadoTrue) — SiTrue, la lista existente de tokens especiales adicionales se reemplazará por la lista proporcionada enspecial_tokens_dict. De lo contrario,extra_special_tokensse 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 eladded_tokens_encoderni eladded_tokens_decoder. Esto significa que losextra_special_tokensanteriores 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
< source >( 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 defectoTrue) — Si se debe tokenizar la salida. Si esFalse, la salida será una cadena de texto. - sanitize_control_tokens (
bool, por defectoFalse) — 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 entokenizer.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,stro PaddingStrategy, opcional, por defectoFalse) — Seleccione una estrategia para rellenar las secuencias devueltas (según el lado de relleno y el índice de relleno del modelo) entre:Trueo'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 argumentomax_lengtho hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.Falseo'do_not_pad'(predeterminado): Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
- truncation (
bool, por defectoFalse) — Si se deben truncar las secuencias en la longitud máxima. No tiene efecto si tokenize esFalse. - max_length (
int, opcional) — Longitud máxima (en tokens) para usar en el relleno o la truncación. No tiene efecto si tokenize esFalse. Si no se especifica, se usará el atributomax_lengthdel tokenizador como valor predeterminado. - return_tensors (
stro TensorType, opcional) — Si se establece, devolverá tensores de un marco de trabajo específico. No tiene efecto si tokenize esFalse. Los valores aceptables son:'pt': Devuelve objetostorch.Tensorde PyTorch.'np': Devuelve objetosnp.ndarrayde NumPy.
- return_dict (
bool, por defectoTrue) — Si se devuelve un diccionario con salidas nombradas. No tiene efecto si tokenize esFalse. - tokenizer_kwargs (
dict[str -- Any], opcional): Kwargs adicionales para pasar al tokenizer. - return_assistant_tokens_mask (
bool, por defectoFalse) — 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
< source >( 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 predeterminadoFalse) — 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 esNone, se usará por defectoself.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
< source >( 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 predeterminadoFalse) — 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
< source >( 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]olist[int]) — La primera secuencia que se codificará. Puede ser una cadena de caracteres, una lista de cadenas (cadena tokenizada usando el métodotokenize) o una lista de enteros (ids de tokens de una cadena tokenizada usando el métodoconvert_tokens_to_ids). - text_pair (
str,list[str]olist[int], opcional) — Segunda secuencia opcional que se codificará. Puede ser una cadena de caracteres, una lista de cadenas (cadena tokenizada usando el métodotokenize) o una lista de enteros (ids de tokens de una cadena tokenizada usando el métodoconvert_tokens_to_ids). - add_special_tokens (
bool, opcional, valor predeterminadoTrue) — Indica si se deben o no añadir tokens especiales al codificar las secuencias. Esto utilizará la función subyacentePretrainedTokenizerBase.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 tokensbosoeosautomáticamente. - padding (
bool,stro PaddingStrategy, opcional, el valor predeterminado esFalse) — Activa y controla el relleno. Acepta los siguientes valores:Trueo'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 argumentomax_lengtho hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.Falseo'do_not_pad'(predeterminado): Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
- truncation (
bool,stro TruncationStrategy, opcional, por defectoFalse) — Activa y controla la truncación. Acepta los siguientes valores:Trueo'longest_first': Trunca hasta una longitud máxima especificada con el argumentomax_lengtho 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 argumentomax_lengtho 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 argumentomax_lengtho 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).Falseo'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 conmax_length, los tokens de desbordamiento devueltos cuandoreturn_overflowing_tokens=Truecontendrá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 predeterminadoFalse) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece enTrue, 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 quepaddingesté 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 (
stro TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:'pt': Devuelve objetostorch.Tensorde PyTorch.'np': Devuelve objetos Numpynp.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
< source >( 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 esNone(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 (
boolostr, opcional) — El token que se usará como autorización HTTP bearer para archivos remotos. Si esTrue(valor predeterminado), se usará el token generado al ejecutarhf auth login(almacenado en~/.huggingface). - revision (
str, opcional) — Rama a la que se enviarán los archivos subidos. - create_pr (
bool, opcional, valor predeterminadoFalse) — Si se debe crear una PR con los archivos subidos o realizar el commit directamente. - max_shard_size (
intostr, 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")Construir un backend tokenizers.Tokenizer a partir de los archivos de serialización disponibles (tokenizer.json, modelos de sentencepiece, tekken.json, vocab/merges).
Devuelve los tokens añadidos al vocabulario como un diccionario de token a índice.
num_special_tokens_to_add
< source >( pair: bool = False ) → int
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
< source >( 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 untekken.jsonnativo copiando el archivo original (requiere que el archivo de vocabulario tekken original esté disponible). El nombre se normaliza atekken.jsonal guardar, y el tokenizador instanciado debe seguir coincidiendo exactamente con él."hf"oNonepara 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
< source >( 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
< source >( 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
stroAddedToken, 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.
Devuelve
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.
Actualiza el procesador posterior subyacente con el bos_token y el eos_token actuales.
PythonBackend
clase transformers.PythonBackend
< source >( **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 enmax_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 (
strotokenizers.AddedToken, opcional) — Un token especial que representa el inicio de una oración. - eos_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa el final de una oración. - unk_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa un token fuera del vocabulario. - sep_token (
strotokenizers.AddedToken, opcional) — Un token especial que separa dos oraciones diferentes en la misma entrada (utilizado, por ejemplo, por BERT). - pad_token (
strotokenizers.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 (
strotokenizers.AddedToken, opcional) — Un token especial que representa la clase de la entrada (utilizado, por ejemplo, por BERT). - mask_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa un token enmascarado (utilizado por objetivos de preentrenamiento de modelado de lenguaje enmascarado, como BERT). Se asociará aself.mask_tokenyself.mask_token_id. - extra_special_tokens (lista de
strotokenizers.AddedToken, opcional) — Una lista de tokens especiales adicionales específicos del modelo. Añádalos aquí para asegurarte de que se omiten al decodificar cuandoskip_special_tokensestá establecido en True. Si no forman parte del vocabulario, se añadirán al final del vocabulario. - split_special_tokens (
bool, opcional, valor predeterminadoFalse) — 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 elbos_token, entoncestokenizer.tokenize("<s>") = ['<s>]. En caso contrario, sisplit_special_tokens=True, entoncestokenizer.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 losshort-cut-namesde los modelos preentrenados, con, como valores asociados, laurldel 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
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
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
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
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 pairsDevuelve 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
< source >( 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 predeterminadoFalse) — 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
< source >( pair: bool = False ) → int
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
< source >( 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 )
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
< source >( 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 predeterminadoFalse) — Indica si la entrada ya está pretokenizada (por ejemplo, dividida en palabras). Si se establece enTrue, 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
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple[str, ...]
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
< source >( text: str**kwargs )
Convierte una cadena en una secuencia de tokens, utilizando el tokenizador.
truncate_sequences
< source >( 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
< source >( *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 enmax_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 (
strotokenizers.AddedToken, opcional) — Un token especial que representa el inicio de una oración. - eos_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa el final de una oración. - unk_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa un token fuera del vocabulario. - sep_token (
strotokenizers.AddedToken, opcional) — Un token especial que separa dos oraciones diferentes en la misma entrada (utilizado, por ejemplo, por BERT). - pad_token (
strotokenizers.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 (
strotokenizers.AddedToken, opcional) — Un token especial que representa la clase de la entrada (utilizado, por ejemplo, por BERT). - mask_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa un token enmascarado (utilizado por objetivos de preentrenamiento de modelado de lenguaje enmascarado, como BERT). Se asociará aself.mask_tokenyself.mask_token_id. - extra_special_tokens (lista de
strotokenizers.AddedToken, opcional) — Una lista de tokens especiales adicionales específicos del modelo. Añádalos aquí para asegurarte de que se omiten al decodificar cuandoskip_special_tokensestá establecido en True. Si no forman parte del vocabulario, se añadirán al final del vocabulario. - split_special_tokens (
bool, opcional, valor predeterminadoFalse) — 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 elbos_token, entoncestokenizer.tokenize("<s>") = ['<s>]. En caso contrario, sisplit_special_tokens=True, entoncestokenizer.tokenize("<s>")devolverá['<','s', '>']. - tokenizer_object (
tokenizers.Tokenizer) — Un objetotokenizers.Tokenizerde 🤗 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 objetotokenizers.Tokenizerpreviamente 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 losshort-cut-namesde los modelos preentrenados, con, como valores asociados, laurldel 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'.
Construir un backend tokenizers.Tokenizer a partir de los archivos de serialización disponibles (tokenizer.json, modelos de sentencepiece, tekken.json, vocab/merges).
Devuelve los tokens añadidos al vocabulario como un diccionario de token a índice.
num_special_tokens_to_add
< source >( pair: bool = False ) → int
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
< source >( 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 untekken.jsonnativo copiando el archivo original (requiere que el archivo de vocabulario tekken original esté disponible). El nombre se normaliza atekken.jsonal guardar, y el tokenizador instanciado debe seguir coincidiendo exactamente con él."hf"oNonepara 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
< source >( 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
< source >( 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
stroAddedToken, 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.
Devuelve
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.
Actualiza el procesador posterior subyacente con el bos_token y el eos_token actuales.
SentencePieceBackend
clase transformers.SentencePieceBackend
< source >( **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 enmax_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 (
strotokenizers.AddedToken, opcional) — Un token especial que representa el inicio de una oración. - eos_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa el final de una oración. - unk_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa un token fuera del vocabulario. - sep_token (
strotokenizers.AddedToken, opcional) — Un token especial que separa dos oraciones diferentes en la misma entrada (utilizado, por ejemplo, por BERT). - pad_token (
strotokenizers.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 (
strotokenizers.AddedToken, opcional) — Un token especial que representa la clase de la entrada (utilizado, por ejemplo, por BERT). - mask_token (
strotokenizers.AddedToken, opcional) — Un token especial que representa un token enmascarado (utilizado por objetivos de preentrenamiento de modelado de lenguaje enmascarado, como BERT). Se asociará aself.mask_tokenyself.mask_token_id. - extra_special_tokens (lista de
strotokenizers.AddedToken, opcional) — Una lista de tokens especiales adicionales específicos del modelo. Añádalos aquí para asegurarte de que se omiten al decodificar cuandoskip_special_tokensestá establecido en True. Si no forman parte del vocabulario, se añadirán al final del vocabulario. - split_special_tokens (
bool, opcional, valor predeterminadoFalse) — 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 elbos_token, entoncestokenizer.tokenize("<s>") = ['<s>]. En caso contrario, sisplit_special_tokens=True, entoncestokenizer.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 losshort-cut-namesde los modelos preentrenados, con, como valores asociados, laurldel 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'.
Convierte una secuencia de tokens (cadena) en una sola cadena.
Devuelve el vocabulario como un diccionario
save_vocabulary
< source >( save_directory: strfilename_prefix: str | None = None ) → tuple(str)
Guarde el vocabulario de sentencepiece (copie el archivo original) en un directorio.
BatchEncoding
clase transformers.BatchEncoding
< source >( 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.EncodingoSequence[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 detokenizers.Encodingo 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 predeterminadoFalse) — Indica si se debe añadir un eje de lote al convertir a tensores (consultetensor_typearriba). Tenga en cuenta que este parámetro tiene un efecto si el parámetrotensor_typeestá establecido, en caso contrario no tiene efecto. - n_sequences (
Optional[int], opcional) — El número de secuencias de entrada representadas por cada codificación (Nonepara desconocido,1para una secuencia única y2para 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
< source >( 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 1self.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
< source >( 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 1self.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
< source >( tensor_type: str | TensorType | None = Noneprepend_batch_axis: bool = False )
Parámetros
- tensor_type (
stro TensorType, opcional) — El tipo de tensores a utilizar. Si esstr, debe ser uno de los valores del enum TensorType. Si esNone, no se realiza ninguna modificación. - prepend_batch_axis (
bool, opcional, valor predeterminadoFalse) — 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
< source >( batch_index: int = 0 ) → list[Optional[int]]
Parámetros
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:
Nonepara los tokens especiales añadidos alrededor o entre secuencias,0para los tokens que corresponden a palabras de la primera secuencia,1para los tokens que corresponden a palabras de la segunda secuencia cuando un par de secuencias se codificó conjuntamente.
hasta
< source >( device: str | torch.device | intnon_blocking: bool = False ) → BatchEncoding
Envía todos los valores al dispositivo llamando a v.to(device, non_blocking=non_blocking) (solo PyTorch).
token_to_chars
< source >( 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
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 1self.token_to_chars(batch_index, token_index)si el tamaño del lote es mayor o igual a 1
token_to_sequence
< source >( 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 1self.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
< source >( 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 1self.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
< source >( batch_index: int = 0 ) → list[str]
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
< source >( batch_index: int = 0 ) → list[Optional[int]]
Parámetros
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
< source >( 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 1self.word_to_chars(batch_index, word_index)si el tamaño del lote es mayor o igual a 1
word_to_tokens
< source >( 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 1self.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.