Contenido del curso

Redes neuronales con PyTorch

Subir modelos al Hub de Hugging Face

Resumen

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.