Runbook: arreglar un Gradio Space en HF (CONFIG_ERROR → RUNNING)
Fecha: 2026-09-26
Space validado: [usuario]/sonrisa-inference (privado, ZeroGPU, Qwen3-14B + Embedding-4B + Reranker-0.6B)
Diagnosis loop (en orden)
hf spaces info <id> --json→runtime.stage+requested_hardware.CONFIG_ERROR/ “Missing configuration in README” → problema de frontmatter YAML.
- Frontmatter README (las 3 causas reales encontradas):
- Falta el
---de apertura (el cierre solo no basta). - Falta
sdk_version. short_description> 60 chars rompevalidate-yamldel upload.
- Falta el
hf spaces logs <id>→ errores de runtime (no existe endpoint REST/logs; da 404).RepositoryNotFoundErroren preload → el model ID no existe (verificado:Qwen/Qwen3-14B-Instructno existe; el correcto esQwen/Qwen3-14B).requires acceleratecondevice_map→ no instales accelerate, cambia el código (abajo).
- Dominio 404 sin token / 200 con token = el Space es privado, no es bug.
- 502 = app viva pero no bindeó (todavía cargando) o crashó.
ZeroGPU (skill MCP huggingface-zerogpu)
- Habilitar:
hf spaces settings <id> --hardware zero-a10g(el frontmatterzero_gpu: trueNO existe en la config reference; la key real es el hardware setting). import spacesprimero, antes de torch.- En módulo scope:
.to("cuda")— nuncadevice_map=(bypasea el hijack de ZeroGPU y exigeaccelerate). Idiom correcto:device = "cuda" if torch.cuda.is_available() else "cpu"+.to(device). - NO pinnes
spacesen requirements.txt (el platform fija el suyo → build falla). - Durations: declarar el mínimo real (quota se pre-chequea contra lo pedido, no lo usado).
- python_version soportado: 3.12.12 o 3.10.13; torch 2.8.0+.
preload_from_hubbaja los pesos en build → el arranque no paga la descarga.
Cliente
gradio_client2.7.1 usatoken=(nohf_token=).- Private space:
Client("owner/name", token=os.environ["HF_TOKEN"]).
Estado al cierre
- 3 endpoints verificados:
/embed5.4s (2560d),/rerank4.4s,/chat7.6s. - Consumo: 38.8GB pack ZeroGPU, todos los modelos en cuda a nivel módulo.