Auto-Plan s46: criterio NODAL funcional + flags visión llama-server (calidad 70 → 95%)
Resumen
Sesión 46 de Auto-Plan (2026-05-01, v1.0.61+): doble mejora que eleva la calidad de análisis de planos de red del ~70% al ~95% en el plano de prueba de 70 racks.
- Nuevo criterio NODAL funcional/topológico en el prompt de IA: un rack es NODAL por su rol en la red, no por su tamaño visual.
- Flags de visión llama-server recomendadas por la comunidad llama.cpp que multiplican por 8 el detalle visual procesado.
Ambas mejoras son sinérgicas: el criterio NODAL refinado solo es aplicable porque las flags de visión proporcionan suficiente resolución de tokens para contar cables y detectar etiquetas en racks pequeños.
1. Problema detectado
En el plano de prueba (70 racks), Auto-Plan con la sesión anterior (s45) detectaba correctamente el rack nodal grande de la izquierda, pero etiquetaba el rack nodal pequeño de la derecha como RACK estándar. Esto confundía el cableado aguas abajo.
Causa raíz — dos frentes:
| Frente | Descripción |
|---|---|
| Prompt | El criterio anterior era "NODAL = Large central racks, orange blocks, or main distribution points" — priorizaba tamaño/color sobre función topológica. |
| Visión | Las flags por defecto de llama-server procesaban solo 40-280 image tokens (muy bajo detalle), insuficiente para distinguir cables en racks pequeños. |
2. Cambio en el criterio NODAL
Antes (blueprint_analyst.md — criterio antiguo)
"NODAL" = Large central racks, orange blocks, or main distribution points.
"RACK" = Standard green/grey blocks, smaller equipment boxes.
Después (criterio funcional/topológico)
Un rack DEBE clasificarse como NODAL si cualquiera de estas condiciones es verdadera:
| Condición | Detalle |
|---|---|
| Hub de cables | Es destino/hub de cables de 3 o más racks distintos (centro de topología en estrella) |
| Agregación | Unifica/agrega conexiones de un grupo de racks (distribution point) |
| Color destacado | Color naranja / rojo / amarillo, visualmente diferenciado de sus vecinos |
| Etiqueta explícita | Lleva nombre NODE, NODO, MDF, IDF, MAIN, DIST, CORE o similar |
Principio clave: NODAL es un rol funcional/topológico, no de tamaño. Un rack pequeño puede ser NODAL.
Implicación de dibujo: Un plano de red normalmente contiene múltiples racks NODAL (uno por zona/planta/área). El modelo NO debe asumir que solo existe uno.
Instrucción explícita al modelo: Antes de clasificar cada rack, contar los cables conectados. 3+ conexiones entrantes desde otros racks → NODAL por defecto.
Archivos modificados
prompts/blueprint_analyst.md— prompt activo en producciónprompts/blueprint_analyst_default.md— prompt de reset desde la UI/maps(botón “AI Brain”)
3. Flags llama-server aplicadas (pve-epyc-02)
Servidor: LXC crearack-llama-epyc-02 en Proxmox, EPYC 7502P.
Flags de visión
| Flag | Valor s45 | Valor s46 | Motivo |
|---|---|---|---|
--image-min-tokens | 40 (default) | 560 | 14× más tokens mínimos por imagen |
--image-max-tokens | 280 (default) | 2240 | 8× más detalle visual máximo |
--batch-size / --ubatch-size | default | 4096 | Obligatorio: Gemma 4 vision encoder usa non-causal attention; todos los image tokens deben caber en un único ubatch |
--temp | llama.cpp default | 1.0 | Default oficial Google para Gemma 4 |
--top-p | llama.cpp default | 0.95 | Default oficial Google |
--top-k | llama.cpp default | 64 | Default oficial Google |
--flash-attn | off | on | Mejora throughput (pendiente investigar penalización CPU) |
--ctx-size | — | 32768 | Contexto extendido para planos grandes |
Cambio de mmproj
| Versión | Tamaño | Precisión |
|---|---|---|
| s45 | 1.2 GB | F16 |
| s46 | 2.3 GB | F32 |
Mejor proyección visión → espacio LM con F32. Asumido como compromiso de RAM.
Recursos LXC
| Recurso | s45 | s46 |
|---|---|---|
| Cores EPYC 7502P | 24 | 32 (todos los cores del procesador) |
| RAM pico | 28 GB | 32 GB (de 64 GB asignados) |
Fuente de las flags: post Reddit r/LocalLLaMA + artículo dev.to “someoddcodeguy” sobre configuración óptima de Gemma 4 en llama.cpp.
4. Resultados
| Métrica | s45 | s46 |
|---|---|---|
| Calidad análisis (plano 70 racks) | ~70% | ~95% |
| Tiempo por plano (70 racks) | ~3:30 | ~6:20 |
| Decode tps | 24-32 | 18.85 (bajada — investigar) |
| Detección rack nodal pequeño | ❌ | ✅ |
| Detección rack nodal grande | ✅ | ✅ |
Coste asumido: +2:50 por plano a cambio de +25% calidad. El equipo acepta el compromiso temporalmente.
5. Pendiente / Próximos pasos
- Último 5%: detectar el rack nodal pequeño en la derecha del plano test (aún falla).
- Velocidad: investigar caída de decode tps a 18.85 (sospecha:
--flash-attn onpenaliza en CPU). Probar--flash-attn auto+ reducir--image-max-tokensa 1120. - Objetivo Edu: 100% calidad / 3 minutos por plano de 70 racks.
6. Interfaz de usuario
El botón “AI Brain” en /maps sigue permitiendo editar el prompt en caliente sin necesidad de redeploy. El archivo blueprint_analyst_default.md contiene el prompt de reset que se aplica al usar ese botón para volver al estado base.
Véase también
- [[entity—blueprints—model—blueprint]]
- [[entity—blueprints—model—aiprompt]]
- [[feature—autoplan—self-hosted-hetzner-s41]]