Datamecum
Material

Tema 02: Ecosistema Hugging Face

2. El ecosistema de modelos de IA

Buscar, evaluar licencias y usar modelos fácilmente.

Hugging Face se ha convertido en el repositorio central de facto para modelos de IA modernos, datasets, demos interactivas y herramientas de desarrollo. Su ecosistema integrado permite descubrir, probar y desplegar modelos.

Logotipo de Hugging Face.

El ecosistema Hugging Face

Hugging Face no es solo un repositorio, es un ecosistema completo de cuatro pilares interconectados.

Model Hub

Catálogo con más de 500.000 modelos preentrenados para todas las tareas imaginables: visión, NLP, audio, multimodal.

Datasets

Más de 100.000 datasets públicos listos para entrenar y evaluar, con APIs unificadas de carga y procesamiento.

Spaces

Demos web interactivas con Gradio o Streamlit, desplegadas sin servidor. Prueba modelos en segundos con interfaz gráfica.

Transformers

Librería Python que unifica la API de carga, inferencia y fine-tuning para miles de arquitecturas diferentes.

El flujo típico

  1. Buscar modelo

  2. Probar en Space

  3. Descargar con Transformers

  4. Integrar en tu aplicación

Tarjeta del catálogo de modelos de Hugging Face.
huggingface.co/models

Cómo buscar modelos efectivamente

El Model Hub permite filtrar por múltiples criterios para encontrar exactamente lo que necesitas:

  • Tarea: object-detection, image-classification, text-generation, etc.
  • Licencia: Apache-2.0, MIT, CreativeML, Research-only.
  • Popularidad: número de descargas, likes, fecha de última actualización.

La Model Card es tu mejor amiga. Cada modelo debe incluir:

Descripción y uso

Para qué fue entrenado, qué tareas resuelve, cómo usarlo con código de ejemplo.

Limitaciones

Sesgos conocidos, casos donde falla, advertencias de seguridad y aspectos éticos.

Licencia

Términos legales de uso: ¿puedes usarlo comercialmente? ¿Debes atribuir autoría?

Archivos

Configuración JSON, pesos del modelo (.safetensors preferido), tokenizers, ejemplos.

Métricas

Resultados en benchmarks estándar, comparación con otros modelos.

Antes de descargar, lee la ficha

La Model Card contesta si el modelo sirve para tu caso antes de gastar tiempo.

Buscas un clasificador para imágenes médicas. ¿Qué debes hacer primero?

Licencias: evita problemas legales

La licencia del modelo determina cómo puedes usarlo legalmente. Ignorar este aspecto puede causar problemas serios en producción.

Comercial OK

  • Apache-2.0: muy permisiva, ideal para empresas.
  • MIT: similar a Apache, aún más simple.
  • BSD: variantes 2-clause y 3-clause, ambas permisivas.

Con restricciones

  • OpenRAIL/CreativeML: uso comercial OK, pero con cláusulas de uso responsable.
  • CC BY-SA: requiere compartir derivados bajo la misma licencia.

No comercial

  • Research Only: solo investigación académica.
  • CC BY-NC: prohibido uso comercial.

Caso especial AGPL: algunas familias YOLO populares usan AGPL, que obliga a publicar tu código fuente completo si integras el modelo en una aplicación web o servicio. Si no quieres publicar tu código, busca alternativas con Apache-2.0 como RT-DETR o RF-DETR.

Comprueba licencia y caso de uso

La misma licencia cambia de respuesta según lo que vayas a hacer con el modelo.

Permitido con condiciones

La cláusula de red obliga a publicar tu código fuente completo aunque solo lo ofrezcas por web. Alternativas Apache-2.0: RT-DETR o RF-DETR.

Orientación para buscar, no asesoramiento legal. La licencia real se lee en el artefacto y la versión que vayas a usar.

Código y pesos pueden diferir

Un repositorio permisivo no garantiza que los pesos lo sean.

Un repositorio tiene código permisivo, pero los pesos incluyen otra licencia. ¿Qué debes revisar?

Usar modelos

La librería Transformers hace que cargar y usar modelos sea muy sencillo. El modelo mental clave:

  1. Hub remoto

    El modelo vive en Hugging Face Hub identificado por su nombre (ej: «facebook/detr-resnet-50»).

  2. Descarga a caché

    Primera ejecución: descarga config.json, pesos .safetensors, y metadatos a ~/.cache/huggingface/

  3. Carga en memoria

    El modelo se instancia en RAM/VRAM según el dispositivo (CPU/GPU) que especifiques.

  4. Inferencia

    Procesas inputs y obtienes predicciones. Puedes usar GPU y mixed precision para acelerar.

Buenas prácticas

  • Seguridad: prefiere .safetensors sobre .bin (formato más seguro).
  • Offline: predescarga con snapshot_download, controla cache_dir.
  • Rendimiento: usa float16 y device="cuda" cuando tengas GPU.
  • Pipelines: para pruebas rápidas, usa pipeline("task"); en producción, clases específicas dan más control.

Inferencia en 3 líneas de código

from transformers import pipeline

# 1. Cargar modelo (automáticamente baja config y pesos)
detector = pipeline("object-detection", model="PekingU/rtdetr_r50vd")

# 2. Inferencia
results = detector("imagen.jpg")

# 3. Resultado
print(results)  # [{'label': 'cat', 'score': 0.99, 'box': {...}}]

La librería transformers maneja la descarga, el pre-procesamiento y la inferencia automáticamente.

Arma tu pipeline

Elige qué quieres hacer y dónde vas a ejecutarlo. El código de abajo es el que se pega en el cuaderno, con el modelo del Hub que corresponde a esa tarea.

Qué quieres hacer
Dónde lo ejecutas
from transformers import pipeline

pipe = pipeline(
    "image-classification",
    model="google/vit-base-patch16-224",
    device="cpu",
)
salida = pipe("foto.jpg")
print(salida[:3])

ViT base, 86 M de parámetros. Devuelve etiquetas de las 1.000 de ImageNet, así que solo sirve si tus clases están ahí. Arranca en cualquier portátil. Cuenta con segundos por imagen.

Qué te ahorra un pipeline

Conviene saber qué pasos quedan ocultos antes de llevarlo a producción.

¿Qué simplifica un pipeline de Transformers?

Del Hub a tu código

Dos formas de cargar el mismo modelo: rápida para probar, específica para producción.

# Para probar: el pipeline resuelve pre y posprocesado
from transformers import pipeline

detector = pipeline("object-detection", model="PekingU/rtdetr_r50vd")
print(detector("mi_imagen.jpg"))

# Para producción: control sobre dispositivo, precisión y salida
import torch
from transformers import AutoImageProcessor, AutoModelForObjectDetection

model_id = "PekingU/rtdetr_r50vd"
processor = AutoImageProcessor.from_pretrained(model_id, revision="main")
model = AutoModelForObjectDetection.from_pretrained(model_id, revision="main")
model = model.to("cuda").eval()
  • Fija revision si quieres poder reproducir el resultado dentro de seis meses.
  • Descarga a caché la primera vez, a ~/.cache/huggingface/. Para entornos sin red, snapshot_download antes.
  • Prefiere los pesos en .safetensors cuando el repositorio los ofrezca.

¿Me cabe en la GPU?

Primera pregunta al elegir modelo, y se responde con una multiplicación.

  • T4 · 16 GB
  • L4 · 24 GB
  • A100 · 40 GB
  • Colab gratis · 15 GB
  • Portátil · 8 GB

Memoria estimada para inferencia0,8 GB

Solo los pesos0,6 GB

Cabe en 5 de las 5 tarjetas de la lista, contando solo inferencia.

Pesos por precisión más un 35 % de margen para activaciones y fragmentación, con lotes pequeños. Entrenar necesita bastante más, porque además guarda gradientes y estados del optimizador.

Candidatos reales para visión

Filtra por tarea y por licencia, que son los dos criterios que descartan antes.

Modelos visibles: 7

PekingU/rtdetr_r50vdDetección COCO, tiempo realApache-2.0~42 M
facebook/detr-resnet-50El DETR original, de referenciaApache-2.0~41 M
hustvl/yolos-smallDetección con ViT puroApache-2.0~31 M
IDEA-Research/grounding-dino-baseCajas a partir de una fraseApache-2.0~233 M
google/owlv2-base-patch16Vocabulario abierto por textoApache-2.0~154 M
facebook/sam2.1-hiera-largeSegmentación con prompts, imagen y vídeoApache-2.0~224 M
facebook/dinov2-baseFeatures densas sin etiquetasApache-2.0~86 M
openai/clip-vit-base-patch32Imagen y texto en un espacio comúnMIT~151 M
briaai/RMBG-1.4Recorte de fondo con canal alfaNo comercial~44 M

Pruébalo ahora, sin instalar nada

Un Space es el modelo ya montado y corriendo en el navegador. Arrastras tu foto y ves la salida, sin entorno, sin pesos y sin GPU.

Quitar el fondo

Sube una foto de producto y descarga el recorte con transparencia. Es el modelo del tema 6 puesto a trabajar.

Space de BRIA RMBG 1.4

Profundidad de una sola foto

Sube cualquier foto y mira el mapa de distancias. Prueba con una imagen con espejos o cristales y verás dónde falla.

Space de Depth Anything V2

Detectar escribiendo la clase

Página de la tarea, con los modelos, los datasets y los Spaces que están vivos hoy. Escribe «una caja de cartón» y mira qué encuentra.

Tarea: detección zero-shot

Segmentar

La misma idea para máscaras: modelos de segmentación semántica, de instancias y promptable, con demos que puedes abrir al momento.

Tarea: segmentación de imagen

Puntos clave

Pose de personas y puntos de interés para matching, con los 413 modelos que hay publicados y sus demos.

Tarea: detección de puntos clave

Preguntar sobre una imagen

Los modelos que reciben imagen y texto y responden. Sube una foto de una etiqueta y pídele los campos en JSON.

Tarea: imagen y texto a texto

El reto de diez minutos

  • Busca por tarea, no por nombreEntra en la página de la tarea que te interesa y ordena por descargas del último mes.
  • Abre un Space y sube una foto tuyaUna de tu trabajo, no una de internet. Lo que falle aquí va a fallar en producción.
  • Mira la licencia antes de emocionarteEstá en la ficha del modelo, no en la del Space. Si pone AGPL o «research only», anótalo.
  • Copia el fragmento de la fichaCasi todas traen tres líneas listas para pegar en el cuaderno.
  • Apunta el tamaño y la fechaParámetros y última actualización. Un modelo abandonado hace tres años es una deuda, no un atajo.

Dos avisos antes de subir nada. Un Space público procesa tu imagen en el servidor de quien lo publicó, así que ahí no van fotos de cliente, de personas identificables ni de piezas bajo acuerdo de confidencialidad. Y los Spaces se duermen, se rompen y desaparecen: por eso los enlaces de arriba apuntan a la página de la tarea, que sigue viva aunque una demo concreta caiga.

Antes de quedarte con un modelo del Hub

Siete comprobaciones que evitan rehacer el trabajo.

  1. La tarea coincideLa etiqueta del Hub dice lo que necesitas, no algo parecido.
  2. La licencia permite tu usoComprobada en el repositorio y en los pesos, para la versión que vas a usar.
  3. La ficha declara limitacionesSesgos, casos donde falla, datos de entrenamiento. Si no dice nada, desconfía.
  4. Cabe en tu hardwareCon la precisión que vas a usar y con margen para el lote.
  5. Formato de pesos seguro.safetensors antes que .bin.
  6. Revisión anotadaIdentificador y revisión guardados para poder reproducir.
  7. Probado con tus datosUna decena de imágenes tuyas dicen más que cualquier métrica publicada.

Busca y prueba un modelo

Compara la documentación con lo que observas al ejecutar el cuaderno.

  1. Guarda una copia en Drive.
  2. Ejecuta el modelo propuesto.
  3. Elige otro y justifica la decisión.
Abrir en Colab