Transformers documentation

Modelos

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Modelos

La clase base PreTrainedModel implementa los métodos comunes para cargar/guardar un modelo desde un archivo o directorio local, o desde una configuración de modelo preentrenado proporcionada por la biblioteca (descargada del Hub de HuggingFace).

PreTrainedModel también implementa algunos métodos comunes a todos los modelos para:

  • redimensionar las incrustaciones de tokens de entrada cuando se añaden nuevos tokens al vocabulario

Los otros métodos comunes a cada modelo están definidos en ModuleUtilsMixin y GenerationMixin.

PreTrainedModel

clase transformers.PreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

Clase base para todos los modelos.

PreTrainedModel se encarga de almacenar la configuración de los modelos y gestiona los métodos para cargar, descargar y guardar modelos, así como algunos métodos comunes a todos los modelos:

  • redimensionar los embeddings de entrada

Atributos de clase (sobreescritos por las clases derivadas):

  • config_class (PreTrainedConfig) — Una subclase de PreTrainedConfig para usar como clase de configuración para esta arquitectura de modelo.
  • base_model_prefix (str) — Una cadena de caracteres que indica el atributo asociado al modelo base en las clases derivadas de la misma arquitectura que añaden módulos sobre el modelo base.
  • main_input_name (str) — El nombre de la entrada principal del modelo (a menudo input_ids para modelos de NLP, pixel_values para modelos de visión y input_values para modelos de voz).
  • can_record_outputs (dict):

push_to_hub

< >

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

Parámetros

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

Sube el archivo del modelo al 🤗 Model Hub.

Ejemplos:

from transformers import AutoModel

model = AutoModel.from_pretrained("google-bert/bert-base-cased")

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

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

activation_checkpointing_disable

< >

( )

Desactiva el checkpointing de activaciones para el modelo actual.

activation_checkpointing_enable

< >

( activation_checkpointing_kwargs = Noneevery_n_layers: int = 1offload: bool = False )

Parámetros

  • every_n_layers (int, opcional, valor predeterminado 1) — Realiza checkpoint solo de cada every_n_layers-ésima capa decodificadora, dejando que el resto conserve sus activaciones. 1 realiza checkpoint de cada capa, que es el comportamiento habitual de todo o nada. Valores mayores intercambian memoria por velocidad, lo cual vale la pena siempre que la memoria liberada por el checkpoint completo vaya a quedar sin usar.
  • offload (bool, opcional, valor predeterminado False) — Mantener las activaciones guardadas para el recálculo en memoria de host fijada (pinned host memory) en lugar de en el acelerador. Esto libera layers x sequence x hidden bytes de memoria del dispositivo, lo cual es lo que predomina con longitudes de secuencia largas, y tiene un coste de una copia de dispositivo a host en la propagación hacia adelante (forward) y una copia de host a dispositivo en la propagación hacia atrás (backward). Ambas copias se ejecutan en el stream de cómputo, por lo que el paso se vuelve más lento.
  • activation_checkpointing_kwargs (dict, opcional) — Argumentos de palabra clave adicionales que se pasan a la función torch.utils.checkpoint.checkpoint.

Activa el checkpointing de activaciones para el modelo actual.

Pasamos el método __call__ de los módulos en lugar de forward porque __call__ adjunta todos los hooks del módulo. https://discuss.pytorch.org/t/any-different-between-model-input-and-model-forward-input/3690/2

add_model_tags

< >

( tags: list[str] | str )

Parámetros

  • tags (Union[list[str], str]) — Las etiquetas deseadas para inyectar en el modelo

Añade etiquetas personalizadas al modelo que se sube al Hugging Face Hub. No sobrescribirá las etiquetas existentes en el modelo.

Ejemplos:

from transformers import AutoModel

model = AutoModel.from_pretrained("google-bert/bert-base-cased")

model.add_model_tags(["custom", "custom-bert"])

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

can_generate

< >

( ) → bool

Devuelve

bool

Si este modelo puede generar secuencias con .generate().

Indica si este modelo puede generar secuencias con .generate(), desde GenerationMixin o uno con una interfaz similar.

Por debajo, en las clases donde esta función devuelve True, se activan algunos cambios específicos de la generación: por ejemplo, la instancia del modelo tendrá un atributo generation_config con valor.

cuda

( *args**kwargs )

Un valor simulado para una ruta con puntos (p. ej. torch.float32): las cadenas de acceso a atributos y las llamadas se comportan como decoradores de paso, repr es la ruta con puntos, y su uso como clase base sustituye una base de type simple (PEP 560 __mro_entries__), de modo que las subclases reales conservan un metaclass normal y inspect.signature lee su __init__ real en lugar del de un simulado.

dequantize

< >

( dtype = None )

Des-cuantizar potencialmente el modelo en caso de que haya sido cuantizado mediante un método de cuantización que admita la des-cuantización.

disable_input_require_grads

< >

( )

Elimina el _require_grads_hook.

enable_input_require_grads

< >

( )

Habilita los gradientes para los embeddings de entrada. Esto es útil para ajustar los pesos del adaptador mientras se mantienen fijos los pesos del modelo.

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLike | None*model_argsconfig: transformers.configuration_utils.PreTrainedConfig | str | os.PathLike | None = Nonecache_dir: str | os.PathLike | None = Noneignore_mismatched_sizes: bool = Falseforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'use_safetensors: bool | None = Noneweights_only: bool = Truefusion_config: dict[str, bool | dict[str, typing.Any]] | None = Nonedisable_mmap: bool | None = None**kwargs )

Parámetros

  • pretrained_model_name_or_path (str o os.PathLike, opcional) — Puede ser:
    • Una cadena de texto, el model id de un modelo preentrenado alojado en un repositorio de modelos en huggingface.co.
    • Una ruta a un directorio que contiene los pesos del modelo guardados con save_pretrained(), por ejemplo, ./my_model_directory/. Los directorios guardados con save_pretrained(..., distributed_checkpoint=True) se detectan y cargan con checkpointing distribuido (DCP), preservando la malla y las ubicaciones actuales del modelo. Esto requiere torch>=2.7 y la carga es estricta: cada clave del modelo debe estar presente en el checkpoint.
    • None si proporcionas tanto la configuración como el diccionario de estado (respectivamente, con los argumentos de palabra clave config y state_dict).
  • model_args (secuencia de argumentos posicionales, opcional) — Todos los argumentos posicionales restantes se pasarán al método __init__ del modelo subyacente.
  • config (Union[PreTrainedConfig, str, os.PathLike], opcional) — Puede ser:

    Configuración para el modelo a utilizar en lugar de una configuración cargada automáticamente. La configuración puede cargarse automáticamente cuando:

    • El modelo es un modelo proporcionado por la biblioteca (cargado con la cadena model id de un modelo preentrenado).
    • El modelo se guardó usando save_pretrained() y se recarga proporcionando el directorio de guardado.
    • El modelo se carga al proporcionar un directorio local como pretrained_model_name_or_path y se encuentra un archivo JSON de configuración llamado config.json en el directorio.
  • state_dict (dict[str, torch.Tensor], opcional) — Un diccionario de estado para usar en lugar de un diccionario de estado cargado desde un archivo de pesos guardados. Esta opción se puede usar si deseas crear un modelo a partir de una configuración preentrenada pero cargar tus propios pesos. En este caso, sin embargo, deberías comprobar si usar save_pretrained() y from_pretrained() no es una opción más sencilla.

    Esta opción se puede usar si deseas crear un modelo a partir de una configuración preentrenada pero cargar tus propios pesos. En este caso, sin embargo, debes comprobar si usar save_pretrained() y from_pretrained() no es una opción más sencilla.

  • cache_dir (Union[str, os.PathLike], opcional) — Ruta a un directorio en el que se debe almacenar en caché la configuración de un modelo preentrenado descargado si no se debe utilizar la caché estándar.
  • ignore_mismatched_sizes (bool, opcional, valor predeterminado False) — Si se debe lanzar un error si algunos de los pesos del checkpoint no tienen el mismo tamaño que los pesos del modelo (por ejemplo, si se instancia un modelo con 10 etiquetas a partir de un checkpoint con 3 etiquetas).
  • force_download (bool, opcional, valor predeterminado False) — Indica si se debe forzar la (re)descarga de los pesos del modelo y los archivos de configuración, ignorando las versiones en caché si existen.
  • proxies (dict[str, str], opcional) — Un diccionario de servidores proxy a utilizar por protocolo o punto de acceso, p. ej., {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Los proxies se utilizan en cada solicitud.
  • output_loading_info(bool, opcional, por defecto False) — Indica si se debe devolver también un diccionario que contenga las claves faltantes, las claves inesperadas y los mensajes de error.
  • local_files_only(bool, opcional, valor predeterminado False) — Indica si se deben buscar únicamente archivos locales (es decir, no intentar descargar el modelo).
  • token (str o bool, opcional) — El token que se usará como autorización HTTP bearer para archivos remotos. Si es True, o no se especifica, se usará el token generado al ejecutar hf auth login (almacenado en ~/.huggingface).
  • revision (str, opcional, por defecto "main") — La versión específica del modelo que se va a usar. Puede ser el nombre de una rama, el nombre de una etiqueta o un id de commit, ya que usamos un sistema basado en git para almacenar modelos y otros artefactos en huggingface.co, por lo que revision puede ser cualquier identificador permitido por git.

    Para probar una solicitud de extracción (pull request) que hayas realizado en el Hub, puedes pasar revision="refs/pr/<pr_number>".

  • attn_implementation (str, opcional) — La implementación de atención a utilizar en el modelo (si es relevante). Puede ser cualquiera de

    Aceptar referencias de kernel de HF en el formato:

    /[@][:]
    • y son cualquier secuencia que no sea "/" ni ":".
    • “@” es opcional (rama, etiqueta o commit-ish), p. ej. “@main”, “@v1.2.0”, “@abc123”.
    • ”:” es opcional y selecciona una función dentro del repositorio del kernel.
    • Ambas opciones pueden aparecer juntas y solo en este orden: @revision primero y luego :kernel_name.
    • Permitimos intencionalmente un prefijo inicial de “|” (p. ej., “flash|…”) porque el código lo elimina antes de cargar; el carácter ’|’ no está excluido en las clases de caracteres aquí.

    Ejemplos que coinciden: “org/model” “org/model@main” “org/model:custom_kernel” “org/[email protected]:custom_kernel”

  • experts_implementation (str, opcional) — La implementación de expertos a utilizar en el modelo (si es relevante). Puede ser cualquiera de:

    Por defecto, si el modelo lo admite, se utilizará "grouped_mm". En caso contrario, el valor predeterminado es la implementación manual "eager".

Parámetros para la inferencia de modelos grandes

  • dtype (str o torch.dtype, opcional, por defecto "auto") — Anula el valor predeterminado de torch_dtype y carga el modelo con un dtype. Las diferentes opciones son:
    1. torch.float16 o torch.bfloat16 o torch.float: carga en un dtype especificado, ignorando el config.dtype del modelo si existe. Si no se especifica

      • el modelo se cargará en torch.float (fp32).
    2. "auto" - Se intentará utilizar una entrada de dtype o torch_dtype en el archivo config.json del modelo. Si no se encuentra esta entrada, a continuación se comprobará el dtype del primer peso del checkpoint que sea de un tipo de punto flotante y se usará ese como dtype. Esto cargará el modelo usando el dtype en el que se guardó al final del entrenamiento. No se puede usar como indicador de cómo se entrenó el modelo, ya que podría haberse entrenado en uno de los dtypes de media precisión, pero guardado en fp32.

    3. Una cadena de caracteres que es un torch.dtype válido. Por ejemplo, “float32” carga el modelo en torch.float32, “float16” lo carga en torch.float16, etc.

    Para algunos modelos, el dtype en el que se entrenaron es desconocido; puedes intentar consultar el paper del modelo o contactar con los autores y pedirles que añadan esta información a la tarjeta del modelo y que inserten la entrada dtype o torch_dtype en config.json en el hub.

  • device_map (str o dict[str, Union[int, str, torch.device]] o int o torch.device, opcional) — Un mapa que especifica dónde debe ir cada submódulo. No es necesario que se refine hasta el nombre de cada parámetro/buffer; una vez que un nombre de módulo dado está incluido, todos sus submódulos se enviarán al mismo dispositivo. Si solo pasamos el dispositivo (e.g., "cpu", "cuda:1", "mps", o un rango ordinal de GPU como 1) en el que se asignará el modelo, el mapa de dispositivos asignará todo el modelo a este dispositivo. Pasar device_map = 0 significa colocar todo el modelo en la GPU 0.

    Para que Accelerate calcule automáticamente el device_map más optimizado, establezca device_map="auto". Para obtener más información sobre cada opción, consulte el diseño de un mapa de dispositivos.

  • max_memory (Dict, opcional) — Un diccionario de identificador de dispositivo a memoria máxima si se usa device_map. Si no se establece, el valor predeterminado será la memoria máxima disponible para cada GPU y la RAM de CPU disponible.
  • distributed_config (DistributedConfig, opcional) — Configuración para la carga distribuida nativa con paralelismo de tensores o FSDP2. Pasa DistributedConfig(tp_size=N) para usar el plan de paralelismo de tensores predefinido de un modelo, DistributedConfig(tp_plan=...) para especificar un plan de paralelismo de tensores, o DistributedConfig(fsdp_size=N) para FSDP2. Requiere torchrun y un grupo de procesos inicializado cuando tp_size > 1 o fsdp_size > 1. Es mutuamente excluyente con device_map.
  • device_mesh (torch.distributed.DeviceMesh, opcional) — Una malla de dispositivos de torch. Si no se proporciona, se usará el tamaño del mundo por defecto. Por ahora, solo se utiliza para la paralelización de tensores. Si se proporciona, debe contener una dimensión llamada "tp" en caso de que sea de más de 1 dimensión; esta dimensión se utilizará para la paralelización de tensores.
  • offload_folder (str o os.PathLike, opcional) — Si el device_map contiene algún valor "disk", la carpeta donde se descargarán los pesos.
  • offload_buffers (bool, opcional) — Si se descargan o no los buffers con los parámetros del modelo.
  • quantization_config (Union[QuantizationConfigMixin,Dict], opcional) — Un diccionario de parámetros de configuración o un objeto QuantizationConfigMixin para la cuantización (p. ej. bitsandbytes, gptq).
  • subfolder (str, opcional, valor predeterminado "") — Si los archivos relevantes se encuentran en una subcarpeta del repositorio del modelo en huggingface.co, puede especificar el nombre de la carpeta aquí.
  • variant (str, opcional) — Si se especifica, carga los pesos desde el nombre de archivo variant, p. ej. pytorch_model..bin.
  • use_safetensors (bool, opcional, valor predeterminado None) — Indica si se deben usar puntos de control de safetensors. El valor predeterminado es None. Si no se especifica y safetensors no está instalado, se establecerá en False.
  • weights_only (bool, opcional, valor predeterminado True) — Indica si el unpickler debe estar restringido a cargar solo tensores, tipos primitivos, diccionarios y cualquier tipo añadido mediante torch.serialization.add_safe_globals(). Cuando se establece en False, se pueden cargar pesos de subclases de tensores envueltos.
  • disable_mmap (bool, opcional) — Si se debe deshabilitar el mapeo de memoria al cargar puntos de control de safetensors. Cuando es None (valor predeterminado), se detecta automáticamente y se establece en True cuando el punto de control reside en un sistema de archivos FUSE de hf-mount (que utilizan HF Spaces/Endpoints), donde mmap + fallas de página paralelas pueden provocar un bloqueo. Cuando es True, los archivos se leen por completo en memoria y se analizan con safetensors.torch.load. Cuando es False, siempre se utiliza el cargador de memoria mapeada predeterminado.
  • fusion_config (dict[str, bool | dict[str, Any]], opcional) — Configuración de fusión opcional aplicada antes de la instanciación del modelo. Cada clave habilita una familia de fusión y su valor puede ser True para habilitar esa fusión con opciones predeterminadas o un diccionario de opciones específicas de la familia. Por ejemplo, {"patch_embeddings": True} habilita la fusión de patch embedding. Esto solo debe usarse como una optimización de inferencia, ya que puede cambiar ligeramente las salidas. Si se omite, from_pretrained() recurre a config.fusion_config cuando está disponible. Consulte la guía de mapeo de fusión en docs/source/en/fusion_mapping.md para más detalles.
  • key_mapping (`dict[str, str], opcional) — Un posible mapeo de los nombres de los pesos si se utiliza un modelo del Hub que es compatible con una arquitectura de Transformers, pero que no se ha convertido de la manera correspondiente.
  • kwargs (diccionario restante de argumentos de palabra clave, opcional) — Se puede usar para actualizar el objeto de configuración (después de ser cargado) e iniciar el modelo (p. ej., output_attentions=True). Se comporta de manera diferente dependiendo de si se proporciona una config o se carga automáticamente:
    • Si se proporciona una configuración con config, **kwargs se pasará directamente al método __init__ del modelo subyacente (se asume que todas las actualizaciones relevantes de la configuración ya se han realizado)
    • Si no se proporciona una configuración, kwargs se pasará primero a la función de inicialización de la clase de configuración (from_pretrained()). Cada clave de kwargs que corresponda a un atributo de configuración se usará para sobrescribir dicho atributo con el valor de kwargs proporcionado. Las claves restantes que no correspondan a ningún atributo de configuración se pasarán a la función __init__ del modelo subyacente.

Instanciar un modelo de pytorch preentrenado a partir de una configuración de modelo preentrenado.

El modelo se establece en modo de evaluación de forma predeterminada mediante model.eval() (los módulos Dropout se desactivan). Para entrenar el modelo, primero debe volver a establecerlo en modo de entrenamiento con model.train().

La advertencia Weights from XXX not initialized from pretrained model significa que los pesos de XXX no vienen preentrenados con el resto del modelo. Corresponde a usted entrenar esos pesos con una tarea de ajuste fino de nivel inferior.

La advertencia Weights from XXX not used in YYY significa que la capa XXX no se utiliza en YYY, por lo que esos pesos se descartan.

Active el modo especial “offline-mode” para usar este método en un entorno con cortafuegos.

Ejemplos:

>>> from transformers import BertConfig, BertModel

>>> # Download model and configuration from huggingface.co and cache.
>>> model = BertModel.from_pretrained("google-bert/bert-base-uncased")
>>> # Model was saved using *save_pretrained('./test/saved_model/')* (for example purposes, not runnable).
>>> model = BertModel.from_pretrained("./test/saved_model/")
>>> # Update configuration during loading.
>>> model = BertModel.from_pretrained("google-bert/bert-base-uncased", output_attentions=True)
>>> assert model.config.output_attentions == True

get_compiled_call

< >

( compile_config: transformers.generation.configuration_utils.CompileConfig | None )

Devuelve una versión compilada con torch.compile de self.__call__. Esto es útil para elegir dinámicamente entre forward no compilado y compilado durante la inferencia, especialmente para alternar entre prefill (donde no queremos usar la versión compilada para evitar recalcular el grafo con nuevas formas) y decodificación iterativa (donde queremos las mejoras de velocidad de la versión compilada con formas estáticas).

get_decoder

< >

( )

Búsqueda de mejor esfuerzo del módulo decoder.

Orden de intentos (cubre ~85 % de los usos actuales):

  1. self.decoder/self.language_model/self.text_model
  2. self.base_model (muchos envoltorios almacenan el decodificador aquí)
  3. self.base_model.get_decoder() (envoltorios anidados)
  4. fallback: lanzar una excepción para los pocos modelos exóticos que requieren una regla a medida

get_encoder

< >

( modality: str | None = None )

Búsqueda de mejor esfuerzo del módulo encoder. Si se proporciona el argumento modality, busca un codificador específico de la modalidad en los modelos multimodales (p. ej. “image_encoder”) Por defecto, la función devuelve el codificador de texto del modelo, si existe, y en caso contrario devuelve self.

Los valores posibles de modality son “image”, “video” y “audio”.

get_expanded_tied_weights_keys

< >

( all_submodels: bool = False )

Devuelve las claves de pesos vinculados expandidos (en caso de que contengan módulos o patrones de expresiones regulares) solo para el modelo actual, o de forma recursiva para todos los submodelos si all_submodels=True (es decir, volverá a comprobar los valores de configuración de todos los submodelos).

Para casi todos los modelos, solo es necesario vincular los embeddings, por lo que el modelo tiene una propiedad interna _tied_weights_keys = {"lm_head.weight": "model.embed_tokens.weight"}. En este caso, el mapeo ya está “expandido”, es decir, ya contiene los parámetros completos, y esta función simplemente devolverá una copia de la propiedad. Para patrones más complejos, p. ej. para DFineForObjectDetection, tenemos el siguiente atributo

_tied_weights_keys = {
    r"bbox_embed.(?![0])\d+": "bbox_embed.0",
    r"class_embed.(?![0])\d+": "class_embed.0",
    "model.decoder.class_embed": "class_embed",
    "model.decoder.bbox_embed": "bbox_embed",
}
In this case, the function looks up all the model's parameters and buffers, and matches all the params,

devolviendo lo siguiente:

{
    'bbox_embed.1.layers.0.bias': 'bbox_embed.0.layers.0.bias',
    'bbox_embed.1.layers.0.weight': 'bbox_embed.0.layers.0.weight',
    'bbox_embed.1.layers.1.bias': 'bbox_embed.0.layers.1.bias',
    'bbox_embed.1.layers.1.weight': 'bbox_embed.0.layers.1.weight',
    'bbox_embed.1.layers.2.bias': 'bbox_embed.0.layers.2.bias',
    'bbox_embed.1.layers.2.weight': 'bbox_embed.0.layers.2.weight',
    'bbox_embed.2.layers.0.bias': 'bbox_embed.0.layers.0.bias',
    'bbox_embed.2.layers.0.weight': 'bbox_embed.0.layers.0.weight',
    ...
    'class_embed.1.bias': 'class_embed.0.bias',
    'class_embed.1.weight': 'class_embed.0.weight',
    'class_embed.2.bias': 'class_embed.0.bias',
    'class_embed.2.weight': 'class_embed.0.weight',
    ...
    'model.decoder.class_embed.0.bias': 'class_embed.0.bias',
    'model.decoder.class_embed.0.weight': 'class_embed.0.weight',
    'model.decoder.class_embed.1.bias': 'class_embed.0.bias',
    'model.decoder.class_embed.1.weight': 'class_embed.0.weight',
    ...
    'model.decoder.bbox_embed.0.layers.0.bias': 'bbox_embed.0.layers.0.bias',
    'model.decoder.bbox_embed.0.layers.0.weight': 'bbox_embed.0.layers.0.weight',
    'model.decoder.bbox_embed.0.layers.1.bias': 'bbox_embed.0.layers.1.bias',
    'model.decoder.bbox_embed.0.layers.1.weight': 'bbox_embed.0.layers.1.weight',
    ...
}
i.e. all the parameters matching the regex and modules patterns in `_tied_weights_keys`

get_experts_implementation

< >

( )

Devuelve la implementación de expertos de este modelo y sus submodelos, como un dict en el formato aceptado por set_experts_implementation ("" para este modelo, y una entrada por cada sub_config). Esta es la contraparte de set_experts_implementation, por ejemplo, para tomar una instantánea de la implementación actual y restaurarla más tarde.

get_memory_footprint

< >

( return_buffers = True )

Parámetros

  • return_buffers (bool, opcional, valor predeterminado True) — Si se debe incluir el tamaño de los tensores de buffer en el cálculo de la huella de memoria. Los buffers son tensores que no requieren gradientes y no están registrados como parámetros. Por ejemplo, la media y la desviación estándar en las capas de normalización por lote. Consulte: https://discuss.pytorch.org/t/what-pytorch-means-by-buffers/120266/2

Obtén la huella de memoria de un modelo. Esto devolverá la huella de memoria del modelo actual en bytes. Útil para medir la huella de memoria del modelo actual y diseñar algunas pruebas. Solución inspirada en las discusiones de PyTorch: https://discuss.pytorch.org/t/gpu-memory-that-model-uses/56822/2

get_parameter_or_buffer

< >

( target: str )

Devuelve el parámetro o búfer indicado por target si existe; de lo contrario, lanza un error. Esta función combina get_parameter() y get_buffer() en una única función práctica. Si el destino es un atributo _extra_state, devolverá el estado adicional proporcionado por el módulo. Tenga en cuenta que solo funciona si target es una hoja del modelo.

gradient_checkpointing_disable

< >

( )

Alias obsoleto de activation_checkpointing_disable(), se eliminará en v6.

gradient_checkpointing_enable

< >

( gradient_checkpointing_kwargs = None**kwargs )

Alias obsoleto de activation_checkpointing_enable(), se eliminará en v6.

init_weights

< >

( )

Inicializa y vincula los pesos si es necesario. Si usas un PreTrainedModel personalizado, debes implementar la lógica de inicialización en _init_weights.

initialize_weights

< >

( )

Esto es equivalente a llamar a self.apply(self._initialize_weights), pero maneja correctamente los modelos compuestos. Esta función despacha dinámicamente la función init_weights correcta a los módulos a medida que avanzamos en el grafo de módulos a lo largo de la recursión. Puede manejar un número arbitrario de submodelos. Sin ella, cada modelo compuesto tendría que recursar una segunda vez en todos los submodelos explícitamente en el _init_weights más externo, lo cual es extremadamente propenso a errores e ineficiente.

is_custom_code

< >

( )

Devuelve si el modelo actual es código personalizado, es decir, si es código cargado desde el hub o definido en cualquier módulo o sesión específico del usuario.

is_remote_code

< >

( )

Devuelve si el modelo actual es código personalizado, es decir, código cargado desde el hub, o una clase que acabamos de registrar mediante register_for_auto_class.

mark_tied_weights_as_initialized

< >

( loading_info )

Añade la bandera _is_hf_initialized a los parámetros que se vincularán, para evitar inicializarlos posteriormente, ya que de todos modos se vincularán (se sobrescribirán). Esto es muy importante, ya que la mayoría de las incrustaciones están vinculadas y son parámetros enormes (los vocabularios suelen ser de 256k), por lo que ejecutar inicializaciones en ellos es muy costoso.

named_non_persistent_buffers

< >

( recurse: bool = Trueremove_duplicate: bool = True )

Similar a named_buffers, pero solo produce los no persistentes. Es útil, ya que no es del todo obvio saber si son persistentes o no.

post_init

< >

( )

Un método que se ejecuta al final de la inicialización de cada modelo de Transformers, para ejecutar código que requiere que los módulos del modelo estén correctamente inicializados (como la inicialización de pesos). También se utiliza para obtener todas las propiedades estáticas correctas (planes de paralelismo, tied_weights_keys, _keep_in_fp32_modules, etc.) de manera correcta en el caso de modelos compuestos (es decir, el modelo de nivel superior debe conocer esas propiedades de sus hijos).

register_for_auto_class

< >

( auto_class = 'AutoModel' )

Parámetros

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

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

resize_token_embeddings

< >

( new_num_tokens: int | None = Nonepad_to_multiple_of: int | None = Nonemean_resizing: bool = True ) → torch.nn.Embedding

Parámetros

  • new_num_tokens (int, opcional) — El nuevo número de tokens en la matriz de incrustaciones. Aumentar el tamaño añadirá vectores recién inicializados al final. Reducir el tamaño eliminará vectores desde el final. Si no se proporciona o es None, simplemente devuelve un puntero al módulo de tokens de entrada torch.nn.Embedding del modelo sin hacer nada.
  • pad_to_multiple_of (int, opcional) — Si se establece, se rellenará la matriz de embeddings hasta un múltiplo del valor proporcionado. Si new_num_tokens se establece en None , simplemente se rellenará el embedding hasta un múltiplo de pad_to_multiple_of.

    Esto resulta especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo >= 7.5 (Volta), o en TPUs, que se benefician de que las longitudes de secuencia sean un múltiplo de 128. Para más detalles sobre esto, o para obtener ayuda sobre cómo elegir el valor correcto para el redimensionamiento, consulte esta guía: https://docs.nvidia.com/deeplearning/performance/dl-performance-matrix-multiplication/index.html#requirements-tc

  • mean_resizing (bool) — Si se inicializan los embeddings añadidos a partir de una distribución normal multivariante que tiene la media y la covarianza de los embeddings anteriores, o si se inicializan con una distribución normal que tiene una media de cero y una desviación estándar igual a config.initializer_range.

    Establecer mean_resizing en True es útil al aumentar el tamaño de los embeddings de los modelos de lenguaje causales, donde las probabilidades de los tokens generados no se verán afectadas por los embeddings añadidos, ya que inicializar los nuevos embeddings con la media de los embeddings antiguos reducirá la divergencia de KL entre la probabilidad del siguiente token antes y después de añadir los nuevos embeddings. Consulte este artículo para obtener más información: https://nlp.stanford.edu/~johnhew/vocab-expansion.html

Devuelve

torch.nn.Embedding

Puntero al módulo de Embeddings de los tokens de entrada del modelo.

Redimensiona la matriz de incrustaciones de tokens de entrada del modelo si new_num_tokens != config.vocab_size.

Se encarga de vincular los pesos de las incrustaciones después, si la clase del modelo tiene un método tie_weights().

save_pretrained

< >

( save_directory: str | os.PathLikeis_main_process: bool = Truestate_dict: dict | None = Nonepush_to_hub: bool = Falsemax_shard_size: int | str = '50GB'variant: str | None = Nonetoken: str | bool | None = Nonesave_peft_format: bool = Truesave_original_format: bool = Truedistributed_checkpoint: bool = False**kwargs )

Parámetros

  • save_directory (str o os.PathLike) — Directorio en el que se guardará. Se creará si no existe.
  • is_main_process (bool, opcional, valor predeterminado True) — Indica si el proceso que realiza esta llamada es el proceso principal o no. Útil en el entrenamiento distribuido, como con TPUs, cuando es necesario llamar a esta función en todos los procesos. En este caso, establezca is_main_process=True solo en el proceso principal para evitar condiciones de carrera.
  • state_dict (diccionario anidado de torch.Tensor) — El diccionario de estado del modelo a guardar. Por defecto será self.state_dict(), pero se puede usar para guardar solo partes del modelo o si se necesitan precauciones especiales al recuperar el diccionario de estado de un modelo (como cuando se usa paralelismo de modelos).
  • push_to_hub (bool, opcional, valor predeterminado False) — Indica si se debe subir el modelo al hub de modelos de Hugging Face después de guardarlo. Puedes especificar el repositorio al que deseas subirlo con repo_id (por defecto, usará el nombre de save_directory en tu espacio de nombres).
  • max_shard_size (int o str, opcional, por defecto "50GB") — 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").

    Si un solo peso del modelo es mayor que max_shard_size, se encontrará en su propia partición de checkpoint, que será mayor que max_shard_size.

  • variant (str, opcional) — Si se especifica, los pesos se guardan en el formato model..safetensors.
  • token (str o bool, opcional) — El token que se usará como autorización HTTP bearer para archivos remotos. Si es True, o no se especifica, se usará el token generado al ejecutar hf auth login (almacenado en ~/.huggingface).
  • save_peft_format (bool, opcional, valor predeterminado True) — Para la compatibilidad hacia atrás con la biblioteca PEFT, si los pesos del adaptador están unidos al modelo, todas las claves del state dict de los adaptadores deben tener base_model.model como prefijo. Los usuarios avanzados pueden deshabilitar este comportamiento estableciendo save_peft_format en False.
  • save_original_format (bool, opcional, valor predeterminado True) — Para la compatibilidad hacia atrás con las versiones anteriores de transformers, puede guardar el punto de control con su mapeo inverso. El mapeo inverso debe existir incluso si el modelo se cargó desde un punto de control legacy None.
  • distributed_checkpoint (bool, opcional, valor predeterminado False) — Al guardar un modelo particionado con FSDP o TP, escribe safetensors con checkpointing distribuido (DCP) en lugar de reunir los pesos en la CPU primero. Cada rank debe llamar a este método. Cuando False, los pesos se reúnen en la CPU en el rank 0 mediante gather_full_state_dict antes de escribirlos. Solo está pensado para guardar y reanudar el entrenamiento; establécelo en False si deseas las funciones completas de save_pretrained. Con push_to_hub=True, el rank 0 consolida el checkpoint en un subdirectorio consolidated/ y sube ese directorio. Requiere torch>=2.7.
  • kwargs (dict[str, Any], opcional) — Argumentos de palabra clave adicionales que se pasan al método push_to_hub().

Guarde un modelo y su archivo de configuración en un directorio para que pueda recargarse mediante el método de clase from_pretrained().

set_attn_implementation

< >

( attn_implementation: str | dictallow_all_kernels: bool = False )

Parámetros

  • attn_implementation (str o dict) — La implementación de atención a configurar para este modelo. Puede ser un str, en cuyo caso se distribuirá a todos los submodelos si es relevante, o un dict donde las claves son los nombres de sub_configs, en cuyo caso cada submodelo distribuirá el valor correspondiente (a sí mismo y a todos los submodelos anidados en él). Un valor puede ser a su vez un dict en el mismo formato, para apuntar a los sub_configs de ese submodelo (como al inicializar una config con un attn_implementation dict anidado).
  • allow_all_kernels (bool, opcional) — Si se deben cargar kernels de repositorios no verificados del hub, si attn_implementation es un kernel personalizado fuera del repositorio del hub kernels-community.

Establece el attn_implementation solicitado para este modelo.

set_decoder

< >

( decoder )

Configurador simétrico. Replica la lógica de búsqueda utilizada en get_decoder.

set_encoder

< >

( encodermodality: str | None = None )

Configurador simétrico. Replica la lógica de búsqueda utilizada en get_encoder.

set_experts_implementation

< >

( experts_implementation: str | dict )

Parámetros

  • experts_implementation (str o dict) — La implementación de expertos a configurar para este modelo. Puede ser un str, en cuyo caso se asignará a todos los submodelos si es relevante, o un dict donde las claves son los nombres de sub_configs, en cuyo caso cada submodelo asignará el valor correspondiente.

Establezca el experts_implementation solicitado para este modelo.

set_use_kernels

< >

( use_kernelskernel_config: transformers.utils.kernel_config.KernelConfig | None = Nonemode: Mode | None = None )

Parámetros

  • use_kernels (bool) — Si se debe usar o no la biblioteca kernels para kernelizar algunas capas del modelo.
  • kernel_config (KernelConfig, opcional) — La configuración del kernel que se utilizará para kernelizar el modelo. Si es None, se utilizará el mapeo de kernels predeterminado.
  • mode (Mode, opcional) — El modo que debe aplicarse durante kernelize. Opcional, por defecto es el modo de entrenamiento o inferencia según la bandera interna training.

Establece si se debe usar o no la biblioteca kernels para kernelizar algunas capas del modelo.

tie_weights

< >

( missing_keys: set[str] | None = Nonerecompute_mapping: bool = True )

Vincula los pesos del modelo. Si recompute_mapping=False (valor predeterminado cuando se llama internamente), se basará en el atributo model.all_tied_weights_keys, que contiene el mapeo {target: source} para los parámetros vinculados. Si recompute_mapping=True, volverá a comprobar todos los submodelos internos y su configuración para determinar los parámetros que deben vincularse. Este es el valor predeterminado cuando se llama a model.tie_weights() de forma independiente, fuera de __init__ y from_pretrained, por si los valores de la configuración se han modificado en algún lugar.

Tenga en cuenta que durante from_pretrained, el atado es simétrico: si el mapeo indica “tie target -> source” pero source no está presente en el checkpoint mientras que target sí existe, intercambiamos source y target para poder atar todo al parámetro que realmente existe.

hasta

( *args**kwargs )

Un valor simulado para una ruta con puntos (p. ej. torch.float32): las cadenas de acceso a atributos y las llamadas se comportan como decoradores de paso, repr es la ruta con puntos, y su uso como clase base sustituye una base de type simple (PEP 560 __mro_entries__), de modo que las subclases reales conservan un metaclass normal y inspect.signature lee su __init__ real en lugar del de un simulado.

warn_if_padding_and_no_attention_mask

< >

( input_idsattention_mask )

Muestra una advertencia única si los input_ids parecen contener relleno y no se proporcionó una máscara de atención.

Los modelos personalizados también deben incluir _supports_assign_param_buffer, que determina si superfast init se puede aplicar en el modelo particular. Las señales de que su modelo necesita esto son si test_save_and_load_from_pretrained falla. En ese caso, establezca esto en False.

ModuleUtilsMixin

clase transformers.modeling_utils.ModuleUtilsMixin

< >

( )

Algunas utilidades para torch.nn.Modules, para usarse como mixin.

num_parameters

< >

( only_trainable: bool = Falseexclude_embeddings: bool = False ) → int

Parámetros

  • only_trainable (bool, opcional, valor predeterminado False) — Si se devuelve solo el número de parámetros entrenables
  • exclude_embeddings (bool, opcional, valor predeterminado False) — Si se devuelve solo el número de parámetros que no son embeddings

Devuelve

int

El número de parámetros.

Obtener el número de parámetros (opcionalmente, entrenables o no de incrustaciones) en el módulo.

Subir al Hub

clase transformers.utils.PushToHubMixin

< >

( )

Un Mixin que contiene la funcionalidad para subir un modelo o tokenizador al hub.

push_to_hub

< >

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

Parámetros

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

Sube {object_files} al 🤗 Model Hub.

Ejemplos:

from transformers import {object_class}

{object} = {object_class}.from_pretrained("google-bert/bert-base-cased")

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

# Push the {object} to an organization with the name "my-finetuned-bert".
{object}.push_to_hub("huggingface/my-finetuned-bert")
Update on GitHub