Transformers documentation
Configuración
Configuración
La clase base PreTrainedConfig implementa los métodos comunes para cargar/guardar una configuración ya sea desde un archivo o directorio local, o desde una configuración de modelo preentrenado proporcionada por la biblioteca (descargada del repositorio AWS S3 de HuggingFace).
Cada clase de configuración derivada implementa atributos específicos del modelo. Los atributos comunes presentes en todas las clases de configuración son: hidden_size, num_attention_heads y num_hidden_layers. Los modelos de texto implementan además: vocab_size.
PreTrainedConfig
clase transformers.PreTrainedConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None )
Parámetros
- name_or_path (
str, opcional, por defecto"") — Almacena la cadena que se pasó a PreTrainedModel.from_pretrained() comopretrained_model_name_or_pathsi la configuración se creó con dicho método. - output_hidden_states (
bool, opcional, valor predeterminadoFalse) — Si el modelo debe devolver todos los estados ocultos. - output_attentions (
bool, opcional, valor predeterminadoFalse) — Si el modelo debe devolver todas las atenciones. - return_dict (
bool, opcional, valor predeterminadoTrue) — Si el modelo debe devolver un ModelOutput en lugar de una tupla simple. - is_encoder_decoder (
bool, opcional, valor predeterminadoFalse) — Indica si el modelo se utiliza como codificador/decodificador o no. - chunk_size_feed_forward (
int, opcional, valor predeterminado0) — El tamaño de bloque de todas las capas feed forward en los bloques de atención residual. Un tamaño de bloque de0significa que la capa feed forward no se divide en bloques. Un tamaño de bloque de n significa que la capa feed forward procesan< sequence_length embeddings a la vez. Para obtener más información sobre la división en bloques de las capas feed forward, consulte ¿Cómo funciona la división en bloques de las capas feed forward?. - per_layer_config (
dict[int | str, dict[str, Any]], opcional) — Un mapeo disperso de índices de capa a sobrescrituras de atributos de configuración. Cada clave es un índice de capa y cada valor contiene los atributos que difieren de la configuración global para esa capa. - tie_last_hidden_states (
bool, opcional) — Sihidden_states[-1]debe ser ellast_hidden_stateposterior a la normalización final en lugar del estado oculto anterior a la normalización final. Si no se establece, se utiliza el valor predeterminado integrado del modelo.
Parámetros para tareas de ajuste fino
- architectures (
list[str], opcional) — Arquitecturas de modelo que se pueden usar con los pesos preentrenados del modelo. - id2label (
dict[int, str], opcional) — Un mapa de índice (por ejemplo, índice de predicción o índice de destino) a etiqueta. - label2id (
dict[str, int], opcional) — Un mapa de etiqueta a índice para el modelo. - num_labels (
int, opcional) — Número de etiquetas a utilizar en la última capa añadida al modelo, típicamente para una tarea de clasificación. - problem_type (
str, opcional) — Tipo de problema para los modelosXxxForSequenceClassification. Puede ser"regression","single_label_classification"o"multi_label_classification".
Parámetros específicos de PyTorch
- dtype (
str, opcional) — Eldtypede los pesos. Este atributo se puede utilizar para inicializar el modelo con undtypeno predeterminado (normalmentefloat32) y así permitir una asignación de almacenamiento óptima. Por ejemplo, si el modelo guardado esfloat16, idealmente queremos volver a cargarlo utilizando la cantidad mínima de memoria necesaria para cargar los pesosfloat16.
Clase base para todas las clases de configuración. Gestiona algunos parámetros comunes a las configuraciones de todos los modelos, así como métodos para cargar, descargar y guardar configuraciones.
Un archivo de configuración se puede cargar y guardar en el disco. Cargar el archivo de configuración y usarlo para inicializar un modelo no carga los pesos del modelo. Solo afecta la configuración del modelo.
Atributos de clase (sobreescritos por las clases derivadas):
- model_type (
str) — Un identificador para el tipo de modelo, serializado en el archivo JSON y utilizado para recrear el objeto correcto en AutoConfig. - attribute_map (
dict[str, str]) — Un diccionario que mapea los nombres de atributos específicos del modelo a la nomenclatura estandarizada de los atributos. - base_model_tp_plan (
dict[str, Any]) — Un diccionario que mapea los FQN de los submódulos de un modelo base a un plan de paralelismo de tensor aplicado al submódulo cuando se llama amodel.tensor_parallel. - base_model_fsdp_plan (
dict[Any, str]) — Un diccionario que asigna a los submódulos de un modelo base una estrategia de particionamiento de FSDP2 (p. ej."free_full_weight"/"keep_full_weight"). Las claves pueden ser rutas de módulos con comodines (p. ej."layers.*") o tuplas de rutas (agrupadas en una única llamada afully_shard). - base_model_pp_plan (
dict[str, tuple[list[str]]]) — Un diccionario que asigna a los submódulos de un modelo base un plan de paralelismo de pipeline que permite a los usuarios colocar el submódulo en el dispositivo adecuado.
Atributos comunes (presentes en todas las subclases):
- vocab_size (
int) — El número de tokens en el vocabulario, que también es la primera dimensión de la matriz de embeddings (este atributo puede no estar presente en modelos que no tienen una modalidad de texto, como ViT). - hidden_size (
int) — El tamaño oculto del modelo. - num_attention_heads (
int) — El número de cabezas de atención utilizadas en las capas de atención multi-cabeza del modelo. - num_hidden_layers (
int) — El número de bloques en el modelo.
Establecer parámetros para la generación de secuencias en la configuración del modelo está en desuso. Por compatibilidad hacia atrás, la carga de algunos de ellos seguirá siendo posible, pero intentar sobrescribirlos lanzará una excepción: debes establecerlos en [~transformers.GenerationConfig]. Consulta la documentación de [~transformers.GenerationConfig] para obtener más información sobre los parámetros individuales.
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 enviar tu configuración. 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 config". - 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 el archivo de configuración al 🤗 Model Hub.
Ejemplos:
from transformers import AutoConfig
config = AutoConfig.from_pretrained("google-bert/bert-base-cased")
# Push the config to your namespace with the name "my-finetuned-bert".
config.push_to_hub("my-finetuned-bert")
# Push the config to an organization with the name "my-finetuned-bert".
config.push_to_hub("huggingface/my-finetuned-bert")Obtiene los valores predeterminados de cada campo anotado en un dataclass, utilizado para guardar el diff-dict.
Para las configuraciones creadas en v4 con un __init__ personalizado, devolverá
un diccionario vacío, por lo que se guardarán todas las claves de self.__dict__. Para las configuraciones más nuevas, devolverá
las claves que tienen valores predeterminados declarados como campos, en lugar de en __post_init__,
lo que filtra únicamente estos campos específicos del archivo json serializado.
Comprueba si el diccionario pasado y sus diccionios anidados tienen una clave dtype y, si no es None, convierte torch.dtype en una cadena de solo el tipo. Por ejemplo, torch.float32 se convierte en la cadena “float32”, que luego puede almacenarse en formato json.
from_dict
< source >( config_dict: dict[str, Any]**kwargs ) → PreTrainedConfig
Parámetros
- config_dict (
dict[str, Any]) — Diccionario que se utilizará para instanciar el objeto de configuración. Dicho diccionario puede obtenerse de un punto de control preentrenado aprovechando el método get_config_dict(). - kwargs (
dict[str, Any]) — Parámetros adicionales a partir de los cuales inicializar el objeto de configuración.
Devuelve
El objeto de configuración instanciado a partir de esos parámetros.
Instancia un PreTrainedConfig a partir de un diccionario de Python de parámetros.
from_json_file
< source >( json_file: str | os.PathLike ) → PreTrainedConfig
Parámetros
Devuelve
El objeto de configuración instanciado a partir de ese archivo JSON.
Instancia un PreTrainedConfig a partir de la ruta a un archivo JSON de parámetros.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs ) → PreTrainedConfig
Parámetros
- pretrained_model_name_or_path (
stroos.PathLike) — Puede ser:- una cadena, el model id de una configuración de modelo preentrenado alojada en un repositorio de modelos en huggingface.co.
- una ruta a un directorio que contiene un archivo de configuración guardado usando el método
save_pretrained(), por ejemplo,
./my_model_directory/. - una ruta a un archivo JSON de configuración guardado file, por ejemplo,
./my_model_directory/configuration.json.
- cache_dir (
stroos.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 usar la caché estándar. - force_download (
bool, opcional, valor predeterminadoFalse) — Indica si se debe forzar la (re)descarga de los archivos de configuración y sobrescribir las versiones en caché si existen. - proxies (
dict[str, str], opcional) — Un diccionario de servidores proxy a utilizar por protocolo o punto de acceso, p. ej.,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.Los proxies se utilizan en cada solicitud. - token (
strobool, opcional) — El token que se usará como autorización HTTP bearer para archivos remotos. Si esTrue, o no se especifica, se usará el token generado al ejecutarhf 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 querevisionpuede 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>". - return_unused_kwargs (
bool, opcional, por defectoFalse) — SiFalse, entonces esta función devuelve solo el objeto de configuración final.Si
True, esta función devuelve unaTuple(config, unused_kwargs)donde unused_kwargs es un diccionario que consiste en pares clave/valor cuyas claves no son atributos de configuración: es decir, la parte dekwargsque no se ha utilizado para actualizarconfigy que se ignora de lo contrario. - 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í. - kwargs (
dict[str, Any], opcional) — Los valores en kwargs de cualquier clave que sea un atributo de configuración se usarán para sobrescribir los valores cargados. El comportamiento respecto a pares clave/valor cuyas claves no son atributos de configuración está controlado por el parámetro de palabra clavereturn_unused_kwargs.
Devuelve
El objeto de configuración instanciado a partir de este modelo preentrenado.
Instanciar un PreTrainedConfig (o una clase derivada) a partir de la configuración de un modelo preentrenado.
Ejemplos:
# We can't instantiate directly the base class *PreTrainedConfig* so let's show the examples on a
# derived class: BertConfig
config = BertConfig.from_pretrained(
"google-bert/bert-base-uncased"
) # Download configuration from huggingface.co and cache.
config = BertConfig.from_pretrained(
"./test/saved_model/"
) # E.g. config (or model) was saved using *save_pretrained('./test/saved_model/')*
config = BertConfig.from_pretrained("./test/saved_model/my_configuration.json")
config = BertConfig.from_pretrained("google-bert/bert-base-uncased", output_attentions=True, foo=False)
assert config.output_attentions == True
config, unused_kwargs = BertConfig.from_pretrained(
"google-bert/bert-base-uncased", output_attentions=True, foo=False, return_unused_kwargs=True
)
assert config.output_attentions == True
assert unused_kwargs == {"foo": False}get_config_dict
< source >( pretrained_model_name_or_path: str | os.PathLike**kwargs ) → tuple[Dict, Dict]
A partir de un pretrained_model_name_or_path, resuelve a un diccionario de parámetros, para ser utilizado en la instanciación de un PreTrainedConfig mediante from_dict.
Devuelve la configuración de texto mtp que se utilizará para crear el modelo MTP. Dado que las capas MTP se crean instanciando las mismas clases que el modelo principal, es necesario sobrescribir las propiedades específicas del índice de la configuración, como layer_types o mtp_layer_types, para crear las capas mtp correctas y evitar problemas de indexación en las capas (ya que las capas MTP reinician la indexación de las capas en 0).
get_text_config
< source >( decoder = Noneencoder = None )
Devuelve la configuración de texto relacionada con la entrada de texto (codificador) o la salida de texto (decodificador) del modelo. Los argumentos de entrada decoder y encoder se pueden utilizar para especificar en qué extremo del modelo estamos interesados, lo cual es útil en modelos que tienen tanto modalidades de entrada como de salida de texto.
Hay tres posibles resultados al usar este método:
- En la mayoría de los modelos, devuelve la instancia de configuración original.
- En los modelos compuestos más recientes (2024+), devuelve la sección de texto de la configuración, que está anidada bajo un conjunto de nombres válidos.
- En los modelos compuestos más antiguos (2023-), descarta los parámetros solo de decodificador cuando
encoder=Truey viceversa.
Devuelve si la configuración actual es de código personalizado, es decir, si el código se cargó desde el hub o se definió en cualquier módulo o sesión específico del usuario.
Devuelve si la configuración actual es de código personalizado, es decir, código cargado desde el hub, o una clase que acabamos de registrar mediante register_for_auto_class.
register_for_auto_class
< source >( auto_class = 'AutoConfig' )
Registra esta clase con una clase auto dada. Esto solo debe usarse para configuraciones personalizadas, ya que las de la biblioteca ya están mapeadas con AutoConfig.
save_pretrained
< source >( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )
Parámetros
- save_directory (
stroos.PathLike) — Directorio donde se guardará el archivo JSON de configuración (se creará si no existe). - push_to_hub (
bool, opcional, valor predeterminadoFalse) — 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 conrepo_id(por defecto, usará el nombre desave_directoryen tu espacio de nombres). - kwargs (
dict[str, Any], opcional) — Argumentos de palabra clave adicionales que se pasan al método push_to_hub().
Guarde un objeto de configuración en el directorio save_directory para que pueda recargarse mediante el método de clase from_pretrained().
to_dict
< source >( ) → dict[str, Any]
Devuelve
dict[str, Any]
Diccionario de todos los atributos que componen esta instancia de configuración.
Serializa esta instancia en un diccionario de Python.
to_diff_dict
< source >( ) → dict[str, Any]
Devuelve
dict[str, Any]
Diccionario de todos los atributos que componen esta instancia de configuración.
Elimina todos los atributos de la configuración que corresponden a los atributos de la configuración predeterminada para mejorar la legibilidad, mientras que siempre conserva el atributo config de la clase. Serializa a un diccionario de Python.
to_json_file
< source >( json_file_path: str | os.PathLikeuse_diff: bool = True )
Parámetros
- json_file_path (
stroos.PathLike) — Ruta al archivo JSON en el que se guardarán los parámetros de esta instancia de configuración. - use_diff (
bool, opcional, valor predeterminadoTrue) — Si se establece enTrue, solo se serializa en el archivo JSON la diferencia entre la instancia de configuración y la configuración predeterminadaPreTrainedConfig().
Guarde esta instancia en un archivo JSON.
to_json_string
< source >( use_diff: bool = True ) → str
Parámetros
- use_diff (
bool, opcional, valor predeterminadoTrue) — Si se establece enTrue, solo se serializa a cadena JSON la diferencia entre la instancia de configuración y la configuración predeterminadaPreTrainedConfig().
Devuelve
str
Cadena que contiene todos los atributos que componen esta instancia de configuración en formato JSON.
Serializa esta instancia en una cadena JSON.
actualizar
< source >( config_dict: dict[str, Any] )
Actualiza los atributos de esta clase con los atributos de config_dict.
update_from_string
< source >( update_str: str )
Actualiza los atributos de esta clase con los atributos de update_str.
El formato esperado son enteros, flotantes y cadenas de texto tal cual, y para los booleanos se usa true o false. Por ejemplo:
“n_embd=10,resid_pdrop=0.2,scale_attn_weights=false,summary_type=cls_index”
Las claves que se van a cambiar deben existir ya en el objeto de configuración.
Ejecuta los validadores de clase en la instancia.
Parte de la validación impulsada por @strict. Valida la arquitectura de la configuración.
Comprueba que mlp_layer_types y layer_types están definidos correctamente.
Parte de la validación impulsada por @strict. Valida el contenido de los tokens especiales.