Compartir modelos entrenados con la comunidad es una de las prácticas más valiosas en el desarrollo de inteligencia artificial. Hugging Face Hub permite almacenar, versionar y distribuir modelos de forma colaborativa, facilitando que otros puedan descargarlos, utilizarlos e incluso mejorarlos mediante pull requests.
¿Cómo instalar y autenticarse en Hugging Face Hub?
El primer paso es instalar la herramienta de línea de comandos (command line interface) de Hugging Face Hub directamente desde el entorno de trabajo, en este caso Google Colab [0:28].
Se instala con pip install hugging_face_hub.
Se puede agregar %%capture para silenciar la retroalimentación de la instalación.
Una vez instalada, se inicia sesión con el comando huggingface-cli login [0:42]. Este proceso solicita un token de acceso que se obtiene desde la cuenta personal en Hugging Face. Es fundamental que el token tenga permisos de escritura (write access) para poder subir archivos al hub.
Nunca compartas tu token con nadie, ya que otorga control total sobre tu cuenta de Hugging Face.
¿Cómo crear un repositorio y subir un modelo al hub?
Para interactuar con el hub de forma programática se utiliza la clase HfApi [1:32]:
python
from huggingface_hub import HfApi
api = HfApi()
api.create_repo(repo_id="platzi/clasificacion-dbpedia-omar-espejel")
El repo_id define el nombre del repositorio. Puede asociarse a una cuenta personal o a una organización como la comunidad de Platzi [1:50]. Es recomendable que el nombre refleje el dataset utilizado y el tipo de tarea, por ejemplo: clasificación, modelo de lenguaje, entre otros.
¿Cómo subir el checkpoint del modelo?
Antes de subir, conviene verificar que el archivo del checkpoint exista en el directorio actual usando ls en la terminal de Colab [3:08]. La función upload_file se encarga de transferir el archivo:
path_in_repo: nombre que tendrá el archivo dentro del repositorio.
repo_id: repositorio destino donde se almacenará el modelo.
Una vez ejecutada la celda, Hugging Face confirma la subida y el archivo queda visible en la sección files del repositorio [3:55].
¿Cómo unirse a la comunidad de Platzi en Hugging Face?
Para subir modelos a la organización de Platzi es necesario ser miembro. Solo hay que visitar la página de Platzi Community en Hugging Face y hacer clic en "Join the Platzi Group" [2:48]. Al unirse, los modelos y recursos compartidos por todos los estudiantes estarán visibles en un solo lugar.
¿Cómo descargar un modelo desde Hugging Face Hub?
Descargar un modelo previamente subido es igual de sencillo. Primero se crea un directorio local para almacenar los pesos descargados y evitar confusiones con archivos existentes [4:12]:
python
import os
os.makedirs("weights", exist_ok=True)
Luego se utiliza la función hf_hub_download [4:22]:
python
from huggingface_hub import hf_hub_download
local_dir: directorio local donde se guardará el archivo.
Al verificar el contenido del directorio weights, el archivo model_checkpoint.pth aparece correctamente descargado [4:55]. Los pesos entrenados quedan listos para inicializar un nuevo modelo y continuar trabajando con ellos.
Subir modelos al hub no solo facilita el acceso personal desde cualquier entorno, sino que abre la puerta a la colaboración. ¿Ya subiste tu modelo a la comunidad de Platzi? Comparte tu experiencia y el nombre de tu repositorio en los comentarios.
Subir un modelo de PyTorch a Hugging Face es una excelente manera de compartirlo y hacer que esté disponible para su uso e inferencia. Hugging Face facilita el proceso con sus herramientas como el transformers library y huggingface\_hub. Aquí te dejo los pasos para subir tu modelo de PyTorch a Hugging Face:
### Paso 1: Instalación de huggingface\_hub
Si aún no tienes la librería huggingface\_hub instalada, puedes hacerlo con:
pip install huggingface\_hub
### Paso 2: Autenticación en Hugging Face
Primero, necesitarás un **token de autenticación** de Hugging Face. Para obtenerlo, sigue estos pasos:
3. En el menú lateral, selecciona **"Access Tokens"**.
4. Genera un nuevo token con el nombre que desees y copia el token.
Una vez que tengas tu token, ejecuta el siguiente comando en tu entorno Python para autenticarte:
from huggingface\_hub import notebook\_login
notebook\_login()# Esto abrirá un enlace para iniciar sesión y pegar tu token.
Sigue las instrucciones para autenticarte con el token.
### Paso 3: Preparación de tu modelo
Primero, asegúrate de tener tu modelo en un formato guardado. Usualmente, si ya has entrenado el modelo, lo tendrás en un archivo .pth o .pt.
Si aún no lo has guardado, usa torch.save() para guardar los pesos del modelo:
import torch
\# Supongamos que tienes un modelo entrenado
model = TextClassificationModel(VOCAB\_SIZE, EMBED\_DIM, NUM\_CLASS)\# Guardar los parámetros del modelo
torch.save(model.state\_dict(),"mi\_modelo.pth")
### Paso 4: Subir el modelo a Hugging Face
Para subir el modelo a Hugging Face, puedes usar la función HfApi de huggingface\_hub.
1. **Sube tu state\_dict() o tu modelo completo:**
Aquí puedes subir tu archivo de modelo a un nuevo repositorio en Hugging Face:
from huggingface\_hub import HfApi, HfFolder
\# Inicializa la API
api = HfApi()\# Nombre del repositorio en Hugging Face
repo\_name ="mi\_modelo\_pytorch"
\# Crea el repositorio
api.create\_repo(repo\_name)\# Subir el archivo del modelo a Hugging Face
api.upload\_file(  path\_or\_fileobj="mi\_modelo.pth",  path\_in\_repo="mi\_modelo.pth", # Nombre del archivo en el repositorio  repo\_id=f"{HfFolder().get\_user()}/{repo\_name}",  repo\_type="model",)
Este código crea un repositorio y sube el archivo del modelo al repositorio creado en Hugging Face.
2. **Opcional: Subir también el archivo del modelo completo**:
Si quieres subir el modelo completo en lugar de solo el state\_dict(), usa:
\# Guardar el modelo completo
torch.save(model,"mi\_modelo\_completo.pth")\# Subir el archivo del modelo completo
api.upload\_file(  path\_or\_fileobj="mi\_modelo\_completo.pth",  path\_in\_repo="mi\_modelo\_completo.pth",  repo\_id=f"{HfFolder().get\_user()}/{repo\_name}",  repo\_type="model",)
### Paso 5: Publicación y documentación
Una vez subido el modelo, puedes agregar más detalles al repositorio desde la página web de Hugging Face, como añadir una descripción o ajustar la visibilidad a pública o privada. Si quieres que sea público:
Si quieres cargar el modelo que subiste para hacer inferencias en otro lugar, puedes hacerlo con:
from huggingface\_hub import hf\_hub\_download
import torch
\# Descarga el archivo desde el repositorio
model\_path = hf\_hub\_download(repo\_id="username/mi\_modelo\_pytorch", filename="mi\_modelo.pth")
\# Carga el modelo en PyTorch
model\_cargado = TextClassificationModel(VOCAB\_SIZE, EMBED\_DIM, NUM\_CLASS)model\_cargado.load\_state\_dict(torch.load(model\_path))
\# Poner en modo de evaluación
model\_cargado.eval()
### Conclusión
Subir un modelo de PyTorch a Hugging Face te permite compartir tu modelo fácilmente y acceder a él desde cualquier lugar. Hugging Face ofrece una plataforma colaborativa con herramientas para despliegue, gestión y versionado de modelos.
Me da error 403 al querer subir el modelo a la url de la comunidad platzi. Lo cambié por lo pronto a mi repo personal.
es porque no haces parte de la comunidad, debes buscarla en HuggingFace y solicitar unirte