Subir un modelo entrenado al Hub de Hugging Face te permite versionarlo, compartirlo con la comunidad y reutilizarlo desde cualquier entorno. Aprenderás a autenticarte con un token, crear un repositorio, subir el checkpoint y descargarlo de vuelta usando la librería huggingface_hub en Python, ideal para quienes entrenan modelos de deep learning y quieren publicarlos.
Cómo instalar huggingface_hub e iniciar sesión con token
Antes de mover archivos al Hub necesitas la herramienta de línea de comandos y una sesión activa en tu cuenta.
La instalación se hace con pip install huggingface_hub [0:25]. En Colab puedes anteponer %%capture a la celda para silenciar la salida y dejar el cuaderno limpio.
Una vez instalada, ejecutas huggingface-cli login para iniciar sesión. El comando te pedirá un token que obtienes desde tu cuenta en Hugging Face, en la sección de Access Tokens. Asegúrate de generarlo con permiso write, porque sin él no podrás escribir archivos en ningún repositorio.
¿Qué permiso necesita un token de Hugging Face para subir modelos? Necesita acceso write. Si solo tiene read, podrás descargar modelos pero no subir ni crear repositorios.
Cuando pegues el token, el CLI preguntará si quieres usarlo como credencial de Git. Puedes responder que no, ya que es una integración distinta. Y nunca compartas ese token: quien lo tenga puede modificar tu cuenta entera.
Cómo crear un repositorio en el Hub con HfApi
Con la sesión iniciada, el siguiente paso es preparar el espacio donde vivirá tu modelo. Aquí entra la clase HfApi.
Desde huggingface_hub importas HfApi y creas una instancia: api = HfApi() [1:45]. Esa instancia te da acceso a métodos para interactuar con el Hub sin salir del cuaderno.
Para crear el repositorio usas api.create_repo(repo_id=...). El repo_id define la ruta del repo en el Hub y sigue el formato usuario/nombre-del-modelo o organización/nombre-del-modelo.
Ejemplos prácticos del flujo:
Subirlo a tu cuenta personal: EspejelOmar/clasificacion-dbpedia.
Subirlo a una organización colaborativa: platzi/clasificacion-dbpedia-omar-espejel.
Cambiar el nombre según el dataset o la tarea, por ejemplo language-model en vez de classification.
Si eliges una organización como Platzi Community, primero debes unirte. Entras a la página de la organización en Hugging Face y haces clic en Join this organization. Sin esa membresía, la API te rechazará la creación del repo.
Al correr la celda, el repositorio aparece vacío en la pestaña Files del Hub. Ese es el lienzo donde vas a colocar los pesos.
Cómo subir un checkpoint y descargarlo de vuelta
Ahora viene la parte que conecta tu entrenamiento local con el Hub: mover el archivo .pth ida y vuelta.
Cómo usar upload_file para mover los pesos al Hub
La función api.upload_file necesita tres argumentos clave:
path_or_fileobj: ruta local del archivo, en este caso model-checkpoint.pth.
path_in_repo: nombre con el que se guardará dentro del repo.
repo_id: el mismo identificador que usaste al crear el repositorio.
Antes de subir, verifica con ls en la terminal de Colab que el checkpoint esté en tu directorio actual [4:30]. Si está, corres la celda y Hugging Face transfiere el archivo. Al terminar, en Files verás model-checkpoint.pth listado con su marca de tiempo.
¿Qué es un checkpoint en machine learning? Es un archivo que guarda los pesos entrenados del modelo en un punto específico, para poder reanudar el entrenamiento o hacer inferencia sin volver a entrenar.
Cómo descargar un modelo del Hub con hf_hub_download
Para traer los pesos de regreso, primero crea una carpeta destino con mkdir weights. Así separas los pesos descargados de los que ya tenías localmente y evitas confusiones.
Luego importas la función con from huggingface_hub import hf_hub_download y la llamas con tres parámetros:
repo_id: el repositorio del que descargas.
filename: el nombre exacto del archivo en el Hub, por ejemplo model-checkpoint.pth.
local_dir: la carpeta local donde se guardará, en este caso weights.
Al ejecutar, el archivo aparece dentro de weights/model-checkpoint.pth, listo para cargarse en un nuevo modelo en la siguiente etapa.
Por qué publicar tu modelo en la comunidad de Platzi
Subir el modelo a una organización compartida cambia el juego. Otros estudiantes pueden descargarlo, probarlo y abrir pull requests con mejoras, igual que en un proyecto de código abierto.
Esa colaboración acelera el aprendizaje: ves cómo otros ajustan hiperparámetros, cambian el dataset o adaptan el modelo a otra tarea. Si tu modelo entrena sobre DBpedia para clasificación, alguien podría reutilizar la arquitectura para un language model sobre otro corpus.
¿Ya subiste tu primer modelo al Hub? Cuéntame en los comentarios qué dataset usaste y qué nombre le pusiste al repo.
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