Despliegue de Gradio en Hugging Face Spaces

Resumen

Desplegar un modelo de NLP deja de ser un dolor de cabeza cuando usas Hugging Face Spaces: subes dos archivos, eliges hardware y tu interfaz de Gradio queda pública en minutos. Esta guía te muestra el flujo exacto, pensado para quien ya tiene un notebook funcional y quiere llevarlo a producción.

¿Qué necesitas antes de desplegar en Hugging Face Spaces?

El despliegue se apoya en dos archivos que salen directo de tu notebook de Google Colab.

  • app.py: es tu notebook convertido a Python. Desde Colab, ve a Archivo y selecciona Descargar .py. El nombre importa: Hugging Face busca específicamente un archivo llamado así [01:00].
  • requirements.txt: contiene las librerías y versiones que usa tu app. Se genera con un pip freeze dentro del entorno [00:30].

Antes de subirlos, limpia el app.py: elimina las líneas de pip install, los comentarios sobrantes y el parámetro debug=True, porque en producción no quieres ver los logs internos de Gradio [01:35].

¿Por qué el archivo principal debe llamarse app.py? Porque Hugging Face Spaces escanea el repositorio buscando ese nombre exacto para arrancar la aplicación. Si lo nombras distinto, el space no levanta.

¿Qué librerías van en requirements.txt?

Google Colab trae muchas librerías preinstaladas, pero en Spaces necesitas declarar solo las que tu app realmente usa. En este proyecto de análisis de reseñas, la lista queda así:

  • Torch, TorchAudio y TorchVision, porque Transformers corre por debajo sobre PyTorch [02:10].
  • Transformers para los modelos preentrenados.
  • Gradio para la interfaz gráfica.
  • WordCloud, Pillow y Pandas para visualización y manejo de datos.

Para fijar versiones, copia el número exacto que reporta Colab. Por ejemplo, Pandas aparece como 2.2 y ese mismo valor va al requirements.txt [02:50]. La URL de instalación de PyTorch que muestra Colab indica que se está usando CUDA 12.4 sobre Linux, lo que confirma la compatibilidad con GPU.

¿Cómo crear y configurar un Space en Hugging Face?

Con los dos archivos listos, entra a tu cuenta gratuita de Hugging Face y abre New space. La plataforma ofrece tres recursos: models, datasets y spaces; este último es el que aloja interfaces desplegadas.

En la configuración del space defines varios campos clave:

  1. Nombre y descripción: por ejemplo, Demo Platzi proyecto final con la descripción análisis de reseñas de Mercado Libre.
  2. Licencia: la MIT funciona cuando quieres compartir libremente con la comunidad. La Apache 2.0 aplica si necesitas reservar derechos.
  3. SDK: elige Gradio. También existen opciones para Streamlit, Docker o páginas estáticas con HTML.
  4. Plantilla: como la app es propia, selecciona plantilla vacía.

¿Qué hardware elegir y cuánto cuesta?

Hugging Face ofrece CPU gratuita por defecto, pero los modelos de Transformers exigen GPU por su costo computacional. Si intentas correrlos en CPU, vas a tener conflictos al descargar los pesos del modelo [04:30].

La opción recomendada para pruebas reales es la Nvidia T4, con un costo de 0,40 USD por hora [04:45]. Existe una X0 GPU que requiere membresía pro, así que queda fuera para cuentas estándar.

¿Cuándo me cobra Hugging Face por un Space con GPU? Solo mientras el space está activo. Si configuras un sleep time y pasa ese periodo sin uso, el space se apaga y deja de cobrar.

El parámetro de inactividad es clave para no gastar de más. Puedes definir que el space se duerma a los 5 minutos, 30 minutos o 1 hora sin actividad. Si es un demo de prueba, configurar 30 minutos y luego borrar el space es la forma más segura de controlar el gasto [05:20].

También decides si el space será público o privado. Privado lo limita a ti y a tu equipo, ideal mientras validas que todo corre bien.

¿Cómo subir los archivos y verificar el despliegue?

Una vez creado el space, Hugging Face te da dos rutas para cargar app.py y requirements.txt: Git o arrastrar los archivos desde la interfaz web en Files → Add file [06:00].

Al soltarlos, ocurre algo interesante por debajo: Hugging Face dockeriza tu aplicación. Es decir, empaqueta el código y las dependencias en una imagen de Docker y la despliega dentro de un contenedor aislado. Eso evita conflictos de versiones y garantiza que la app corra igual cada vez que se enciende [06:25].

¿Cuánto tarda en estar lista la aplicación?

El proceso completo de build y deploy puede tomar alrededor de cinco minutos. Mientras tanto, la pestaña App muestra un indicador de carga.

Cuando termina, vas a ver el símbolo running junto a la GPU que elegiste. En la pestaña de Logs puedes confirmar que el contenedor se construyó sin errores y que la interfaz, en este caso con secciones de análisis de texto y análisis de CSV, ya está activa [06:50].

Desde tu perfil, en My spaces, accedes a todos los proyectos desplegados, los enciendes, los pausas o los eliminas según los necesites.

Si te interesa seguir profundizando en NLP después de este flujo de despliegue, el siguiente paso natural son los LLMs o modelos de lenguaje, un área que sigue creciendo y que tiene un peso enorme en la industria. ¿Qué modelo te gustaría desplegar primero en tu propio Space?