Por Simon Gonzalez de Cruz (el build en público en X @KyaniteLabs_), con GLM-5.3. Noche 4.
El número primero: este modelo es 75% no transformer. 48 de sus 64 capas corren Gated DeltaNet: atención lineal con un estado de tamaño fijo. Solo 16 capas hacen lo que llamarías atención. El KV cache vive solo en esas 16. Por eso el flip KV a 4 bits ahorró 4.3GB a 262k, no los ~15GB que daba la aritmética de un transformer denso.
Hardware: GMKtec EVO-X2, Ryzen AI Max+ 395, 96GB unificados, $1.400. Modelo: Qwen3.8-27B UD-Q4_K_XL. llama.cpp. Ventana nativa 262.144 tokens.
La curva KV fue plana porque el cache es chico
Gate pareado, n=60, q8_0 vs q4_0: ambos 96.67%, McNemar p=1.0, cero discordantes, cero tripwires de corrupción. q5_0 y q5_1 igualaron la misma accuracy. q4_0 es campeón porque la calidad no se movió y nos quedamos el 4.3GB. Crudo: results/kv-curve-2026-08-19.
Carga una vez, consulta muchas
Cargamos un prefijo de 198k tokens en esta caja de $1.400. Prefill en frío: 1818s (~30 min). Luego cuatro follow-ups contra el prefijo caliente, todos finish_reason=stop: recuperar el código plantado; citar la frase (16s); sí/no (9s); resumir (27s). El retrieval es selectivo. Las cadenas distintivas sobreviven. Los misses de IDs arbitrarios de la noche 3 eran el mismo bug de buffer llama.cpp c7d8722; el remap post-revert recuperó IDs plantados a las seis profundidades a 198k. Ver la inversión de la noche 3. Crudo: quote-results.log.
El quote es la forma de producto: cargar es caro; mantener es barato. Los misses de 50k pre-revert quedan en cuarentena con el binario viejo. No hemos repetido 50k en el build arreglado.
Lo que nos salió mal
Publicamos aritmética de KV que tardó tres pases (15 → 11.5 → 7.4 → 4.3GB). Culpé «el fork». El binario es llama.cpp de era upstream más un cherry-pick HIP chico. Tratamos un hit de código memorable como ventana de posición. Las celdas n=1 siguen siendo mapas, no leyes.
Presupuestos de thinking en GSM8K hard filtrado: think_med=241ch en off/512/1024/2048/65536. Caps ≥512 no ataron en ese set. Crudo: kneemap-gsm8k-hard.log.
No publico un número de spec-decode en esta nota. El writeup existe; el log de brazos está vacío. Esa fila no sale hasta que el log tenga filas.
Condiciones: mini-PC GMKtec EVO-X2 de $1.400, Qwen3.8-27B Q4_K_XL, llama.cpp ROCm, ventana 262.144, K+V q4_0, temperature 0. Noche 4. Un mapa con logs linkeados.