Hub documentation
Uso de 🤗 transformers en Hugging Face
Uso de 🤗 transformers en Hugging Face
🤗 transformers es una biblioteca mantenida por Hugging Face y la comunidad, para Machine Learning de vanguardia en PyTorch, TensorFlow y JAX. Ofrece miles de modelos preentrenados para realizar tareas en diferentes modalidades, como texto, visión y audio. Somos un poco parciales, pero ¡realmente nos encanta 🤗 transformers!
Explorar 🤗 transformers en el Hub
Hay más de 630.000 modelos de transformers en el Hub, que puedes encontrar filtrando a la izquierda de la página de modelos.
Puedes encontrar modelos para muchas tareas diferentes:
- Extracción de la respuesta de un contexto (question-answering).
- Crear resúmenes a partir de un texto extenso (summarization).
- Clasificar texto (por ejemplo, como spam o no spam, text-classification).
- Genera un texto nuevo con modelos como GPT (text-generation).
- Identificar partes de la oración (verbo, sujeto, etc.) o entidades (país, organización, etc.) en una oración (token-classification).
- Transcribe archivos de audio a texto (automatic-speech-recognition).
- Clasifica el hablante o el idioma en un archivo de audio (audio-classification).
- Detectar objetos en una imagen (object-detection).
- Segmentar una imagen (image-segmentation).
- ¡Haz Aprendizaje por Refuerzo (reinforcement-learning)!
Puedes probar los modelos directamente en el navegador si quieres probarlos sin descargarlos, ¡gracias a los widgets en el navegador!

Archivos del repositorio Transformers
Un repositorio de modelos de Transformers generalmente contiene archivos de modelo y archivos de preprocesador.

Modelo
El archivo
config.jsonalmacena detalles sobre la arquitectura del modelo, como el número de capas ocultas, el tamaño del vocabulario, el número de cabezas de atención, las dimensiones de cada cabeza, entre otros. Esta metadatos es el plano del modelo.El archivo
model.safetensorsalmacena las capas y los pesos preentrenados de los modelos. Para modelos grandes, el archivo safetensors se divide en fragmentos para limitar la cantidad de memoria necesaria para cargarlo. Examine el archivomodel.safetensors.index.jsonpara ver desde qué archivo safetensors se están cargando los pesos del modelo.{ "metadata": { "total_size": 16060522496 }, "weight_map": { "lm_head.weight": "model-00004-of-00004.safetensors", "model.embed_tokens.weight": "model-00001-of-00004.safetensors", ... } }También puedes visualizar este mapeo haciendo clic en el botón ↗ de la tarjeta del modelo.

Safetensors es un formato de serialización más seguro y rápido que pickle para almacenar los pesos de un modelo. Es posible que encuentres pesos serializados con pickle en formatos como
bin,pthockpt, perosafetensorsse está adoptando cada vez más en el ecosistema de modelos como una alternativa mejor.Un modelo también puede tener un archivo
generation_config.jsonque almacena detalles sobre cómo generar texto, como si se debe muestrear, los tokens superiores desde los que muestrear, la temperatura y los tokens especiales para iniciar y detener la generación.
Preprocesador
- El archivo
tokenizer_config.jsonalmacena los tokens especiales añadidos por un modelo. Estos tokens especiales indican al modelo muchas cosas, como el inicio de una oración, un formato específico para plantillas de chat o la presencia de una imagen. Este archivo también muestra la longitud máxima de la secuencia de entrada que el modelo puede aceptar, la clase de preprocesador y las salidas que devuelve. - El archivo
tokenizer.jsonalmacena el vocabulario aprendido del modelo. - El
special_tokens_map.jsones un mapeo de los tokens especiales. Por ejemplo, en Llama 3.1-8B-Instruct, el token de inicio de cadena es"<|begin_of_text|>".
Para otras modalidades, el archivo
tokenizer_config.jsonse reemplaza porpreprocessor_config.json.
Uso de modelos existentes
Todos los modelos transformer están a un paso de poder usarse. Dependiendo de cómo quieras utilizarlos, puedes emplear la API de alto nivel mediante la función pipeline o usar AutoModel para tener más control.
# With pipeline, just specify the task and the model id from the Hub.
from transformers import pipeline
pipe = pipeline("text-generation", model="distilbert/distilgpt2")
# If you want more control, you will need to define the tokenizer and model.
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("distilbert/distilgpt2")
model = AutoModelForCausalLM.from_pretrained("distilbert/distilgpt2")También puede cargar un modelo desde una versión específica (basada en el hash de commit, el nombre de la etiqueta o la rama) de la siguiente manera:
model = AutoModel.from_pretrained(
"julien-c/EsperBERTo-small", revision="v2.0.1" # tag name, or branch name, or commit hash
)Si quieres ver cómo cargar un modelo específico, puedes hacer clic en Use in Transformers y se te proporcionará un fragmento de código funcional para cargarlo. Si necesitas más información sobre la arquitectura del modelo, también puedes hacer clic en “Read model documentation” en la parte inferior del fragmento.

Compartir tus modelos
Para leer todo sobre el intercambio de modelos con transformers, diríjase a la guía Compartir un modelo en la documentación oficial.
Muchas clases de transformers, como los modelos y los tokenizadores, tienen un método push_to_hub que permite subir fácilmente los archivos a un repositorio.
# Pushing model to your own account
model.push_to_hub("my-awesome-model")
# Pushing your tokenizer
tokenizer.push_to_hub("my-awesome-model")
# Pushing all things after training
trainer.push_to_hub()Hay mucho más que puedes hacer, por lo que sugerimos revisar la guía Compartir un modelo.
Recursos adicionales
- Biblioteca Transformers.
- Documentación de Transformers.
- Compartir una guía de un modelo.