La banca opera bajo restricciones regulatorias estrictas: secreto bancario, normativas de
protección de datos y requisitos de auditoría. Enviar información de clientes o documentos
internos a una API de terceros genera riesgos legales y de compliance que muchos equipos
jurídicos no están dispuestos a asumir. Un modelo on-premise elimina esa fricción desde
el origen.
Comparativa entre API en la nube y LLM on-premise en contexto bancario
Dimensión
API en la nube
LLM on-premise
Privacidad de datos
Datos enviados a terceros
Datos nunca salen de la infraestructura
Costo por inferencia
Variable, por token
Costo fijo de hardware (amortizable)
Latencia
Depende de red y carga del proveedor
Determinista, sin cola de terceros
Control del modelo
Versión controlada por el proveedor
Versión exacta bajo control propio
Límites de uso
Rate limits, quotas, interrupciones
Sin límites externos
Alineación regulatoria
Requiere evaluación jurídica por jurisdicción
Secreto bancario y protección de datos por defecto
Reto técnico
Modelo de 35B parámetros en 16 GB de VRAM
El modelo pesa ~22 GB en disco. Una GPU de 16 GB no puede cargarlo íntegro. La solución
combina tres tecnologías: arquitectura
MoE,
cuantización
GGUF
y offloading híbrido GPU/CPU con control fino por capa.
Mixture of Experts — 256 expertos en total, solo 8 activos por token → velocidad de un modelo de ~3B parámetros con capacidad semántica de 35B. El chip de silicio solo calcula los 8 expertos elegidos por el router.
Formato GGUF — optimizado para inferencia local. Q4_K_M = cuantización a ~4.5 bits: 22 GB en disco vs ~70 GB a 16 bits completos. La pérdida de calidad es mínima en la práctica.
KV cache — almacena los estados de atención de tokens ya procesados. Con GQA (solo 2 cabezas KV en este modelo) el cache crece muy lentamente con el contexto, permitiendo 256K tokens sin colapsar la VRAM.
Offloading híbrido — el modelo (~22 GB) no cabe íntegro en 16 GB de VRAM. Los expertos MoE de las primeras N capas se mantienen en RAM/CPU con --n-cpu-moe N. El resto corre en GPU. N es el parámetro de control principal.
Distribución de memoria
GPU VRAM (RTX 5060 Ti)14.2 / 16 GB
RAM del sistema (~31 GB)
Expertos MoE capas 1–
22
en CPU
(offloading híbrido)
Driver diario — código y repos completos: --n-cpu-moe 22 libera casi 2 GB de VRAM para el KV cache a 128K. Con GQA (solo 2 KV heads) el cache crece muy lentamente. Velocidad de ~56 tok/s perfectamente usable para sesiones largas de programación.
El
KV cache
es el recurso escaso en contextos largos. Gracias a GQA (solo 2 cabezas KV en lugar de
las 16 de atención completa), el cache crece a un ritmo muy bajo — por eso 256K tokens
es factible en 16 GB de VRAM.
Comando real — perfil daily driver (128K, ~56 tok/s)
bashllama-server — work profile
# llama.cpp Unsloth build (CUDA 13 Blackwell)/home/benjamin/.unsloth/llama.cpp/build/bin/llama-server \
--model/mnt/nvme/hot/models/Qwen3.6-35B-A3B-UD-Q4_K_M.gguf \
--port8093 \
--aliasqwen3.6-35b-a3b \
--ctx-size131072# 128K tokens--n-gpu-layers999# todas las capas a GPU (excepto las MoE en CPU)--n-cpu-moe22# expertos de capas 1-22 en RAM/CPU--threads10# 10 cores físicos del i5-14400F--threads-batch16# 16 hilos lógicos para prompt processing--cache-type-kq8_0# KV cache cuantizado → menor VRAM--cache-type-vq8_0 \
--ubatch-size2048# micro-batch → 2.8x speedup en prompt processing--batch-size2048 \
--load-modenone \
--spec-typedraft-mtp# speculative decoding con draft weights MTP--spec-draft-n-max3 \
--no-reasoning-preserve# elimina el bloque <think>--top-p0.95--top-k20--min-p0.0
Mediciones
Rendimiento medido
Velocidad de generación y procesamiento de prompts medidos directamente con
llama.cpp sobre hardware real. Sin simulaciones.
Velocidad de generación por perfil de contexto (tok/s)
Ver datos en tabla — velocidad de generación
Perfil de contexto
--n-cpu-moe
VRAM usada
Velocidad (tok/s)
16K tokens
16
15.1 GB / 16 GB
~64 tok/s
64K tokens
20
~14.8 GB / 16 GB
~60 tok/s
128K tokens
22
14.2 GB / 16 GB
~56 tok/s
256K tokens
28
13.5 GB / 16 GB
~57 tok/s
Prompt processing
Optimización de --ubatch-size
Medido el 20 de septiembre de 2026 sobre un prompt de 6,317 tokens.
La velocidad de generación es casi constante de 64K a 256K tokens.
~1 tok/s
diferencia entre 256K y 128K
Por qué: GQA con solo
2 KV heads
hace que el cache crezca muy lentamente. Más contexto, casi el mismo costo de memoria.
Procesamiento de prompts: baseline vs optimizado (tok/s — 6,317 tokens)
Ver datos en tabla — prompt processing
Configuración
Velocidad (tok/s)
Prompt de referencia
Baseline
~500 tok/s
6,317 tokens
Optimizado (--ubatch-size 2048)
~1,400 tok/s
6,317 tokens
Evaluación objetiva
Harness de benchmark multi-agente
Un sistema propio en Python puro (sin frameworks de agentes) para comparar modelos
en tareas reales de programación con gates automáticos. Reproducible, auditado y
extensible a cualquier task de negocio.
Arquitectura del sistema
Haz clic en cada nodo para ver su descripción detallada.
banco.py — Orquestador
Lee agentes/*.yaml → resuelve ruta del modelo → levanta llama-server en el puerto configurado → clona el sandbox del proyecto → ejecuta runner.py → recoge stats del log → imprime tabla comparativa con resultados de todos los agentes.
Configuraciones de agentes (6 total)
Agente
Modelo
Propósito
Credencial
obrero
Qwen3.6-35B-A3B, Q4_K_M
Titular — arquitectura hexagonal multi-fase
trampas 13/13 en 65s; hexagonal 7/7; fonda y lavandería 10/10 mypy limpio
obrero-mtp
Qwen3.6-35B-A3B + MTP activo
A/B vs obrero — medir speedup real de speculative decoding en MoE
Presiona ▶ para ver la ejecución simulada paso a paso.
bash — ~/proyectos/u113
Recreación representativa — modelos y tiempos son reales
Lo aprendido
Hallazgos principales
Cuatro conclusiones técnicas concretas, derivadas de la experimentación directa.
1
MoE hace exactamente lo que promete
35B parámetros en un GPU de 16 GB — posible porque solo
8 de 256 expertos (~3B parámetros activos)
se activan por token. El router de MoE convierte un modelo gigante en uno eficiente
en tiempo de inferencia. Sin esta arquitectura, este experimento no sería posible
con este hardware.
2
MTP en MoE: resultado a validar
Speculative decoding con los draft weights MTP embebidos en el modelo se implementó
como experimento A/B
(obrero vs obrero-mtp). La documentación de Unsloth advierte que los MoE normalmente
no se benefician de MTP — el benchmark medirá si hay ganancia real o es neutral
en este caso concreto.
3
El KV cache es el cuello de botella real
Con GQA
(solo 2 KV heads vs 16 de atención completa), el KV cache crece a una fracción del
costo normal. Por eso 256K tokens corre a
~57 tok/s —
casi idéntico a 128K (~56 tok/s). El cuello de botella no es el contexto, sino
la VRAM total disponible para el modelo.
4
Prompt processing 2.8× más rápido
De ~500 tok/s a
~1,400 tok/s en prompts de código
(6,317 tokens) solo ajustando --ubatch-size 2048 y
--threads-batch 16. El micro-batch size controla cuántos tokens se
procesan en paralelo antes de una inferencia — un parámetro ignorado por defecto
que tiene impacto directo en el tiempo hasta primer token.
Casos de uso
Aplicación en entornos bancarios
Tres vectores concretos donde esta infraestructura resuelve problemas reales del sector.
🔒
Asistente interno confidencial
Análisis de contratos, interpretación de normativas internas, soporte a equipos
legales y de riesgo con documentos sensibles — sin enviar nada fuera del perímetro
corporativo. El modelo corre en infraestructura propia con acceso restringido.
Secreto bancario garantizado por arquitectura, no por política.
📄
Procesamiento de documentos on-premise
Extracción estructurada de datos de estados de cuenta, informes regulatorios y
documentación de créditos. El harness actúa como pipeline reproducible y auditado:
cada ejecución tiene gates verificables, historial de turnos y conteo exacto de
tokens. Trazabilidad completa para auditoría interna.
📊
Evaluación objetiva de modelos
El harness como "banco de pruebas" reproducible: comparar modelos sobre tasks
reales de negocio antes de adoptarlos, con métricas concretas — gates pasados,
turnos utilizados, tokens consumidos, tiempo de ejecución. Decisiones de adopción
basadas en datos, no en benchmarks de marketing.
Este laboratorio documenta trabajo técnico real —
no tutoriales ni demostraciones sintéticas. Cada número en este reporte
fue medido en el hardware listado.