Potřebují jazykové modely spát?

Potřebují jazykové modely spát?

Nový preprint z CMU a UMD měří jednu věc odděleně: u hlubokého reasoningu nelimituje modely kapacita paměti, ale počet průchodů kontextem. ‚Spánek' je offline rekurentní fáze při evikci okna, ne vlastnost dnešních chatbotů.

Jakub Kontra
Jakub Kontra
Developer

Shrnutí

Paper z CMU a UMD ukazuje, že výkon SSM-attention hybridů na hlubokém reasoningu nelimituje kapacita paměti, ale počet průchodů kontextem. Mechanismus „spánku" provede při evikci okna N rekurentních průchodů a zkonsoliduje informaci do fast weights, takže hloubku výpočtu lze přesunout offline. Není to vlastnost dnešních chatbotů, jsou to experimentální modely a syntetické benchmarky, ale trend se škálováním N je čitelný a stojí za sledování.


„Potřebují jazykové modely spát?" zní jako titulek, co si koleduje o protočení očí. Jenže pod tou metaforou zůstane konkrétní inženýrské tvrzení: výkon hybridů na hlubokém reasoningu nelimituje to, kolik si pamatují, ale kolikrát si kontext stihnou přepočítat. A to přepočítání jde udělat offline, v okamžiku, kdy se zrovna nikdo neptá.

Spánek, který není spánek

Začněme přízemněním, ať si tu metaforu odbudeme. Žádný ChatGPT ani Claude dnes „nespí". Tohle je experimentální uspořádání s malými modely, řádově 1,4B až 2B parametrů a menší, na syntetických a malých benchmarcích. „Spánek" je název pro offline výpočetní fázi, ne pro stav vědomí.

Mechanismus se spouští při evikci kontextového okna. Evikce znamená, že se model chystá zahodit nakumulovaný kontext z aktivní paměti, z KV cache. A přesně proto má smysl spustit konsolidaci právě tady: těsně předtím, než se informace ztratí, ji model přepíše do trvalejšího stavu uvnitř SSM bloků. Evikce tedy není náhodný spouštěč, je to poslední okamžik, kdy je co konsolidovat.

Konkrétně: každých L tokenů, předtím než model vymaže KV cache, projede nakumulovaný kontext ještě jednou. Nebo dvakrát. Nebo N-krát. Gated update pravidlem (k němu se dostanu u rovnice níž) ten kontext zkonsoliduje do fast weights uvnitř SSM bloků, teprve pak KV cache zahodí. Fast weights jsou váhy, které se mění během inference, jsou to rychlá, dočasná paměť, na rozdíl od fixních natrénovaných (slow) vah, které zůstávají celou dobu stejné. Je to dávka výpočtu navíc, kterou si model vezme mezi vstupy, ne nějaká forma odpočinku. Metafora končí tady, dál už budeme mluvit o smyčkách a maticích.

Proč věčně rostoucí cache není odpověď

Když chci model lepší v uvažování, první instinkt je dát mu víc paměti. Větší cache, delší okno. Jenže ten instinkt naráží na čísla.

Attention compute roste s délkou kontextu kvadraticky. Paměť KV cache roste lineárně. To znamená, že „prostě přidat místo" je strategie, která se buď zadrhne na ceně výpočtu, nebo na velikosti cache, podle toho, co dojde dřív. U dlouhých kontextů narazíš vždycky. A i kdyby ti hardware stačil, pořád si neodpovíš na otázku, jestli ti víc paměti vůbec pomáhá s tím, co řešíš.

Skutečný strop je hloubka, ne kapacita

Tady přijde to nepříjemné zjištění. Autoři ukazují, že výkon vanilla hybridů klesá s rostoucí hloubkou reasoningu i ve chvíli, kdy množství informace k uložení zůstává konstantní.

Není to o tom, že by se do paměti nevešlo, co potřebuje. Informace se vejde. Problém je, kolik kroků uvažování nad ní musí model udělat. Hloubka řetězce, ne objem dat. To je úplně jiná osa než kapacita a běžná intuice „přidej paměť" na ni nesahá. Když roste počet kroků a mezivýpočtů, hybrid se sype, i když mu paměti zbývá dost.

Co se děje ve spánku

Mechanismus stojí na fast weights v SSM blocích, konkrétně na Gated Delta Networks (GDN, varianta SSM, kde se stav aktualizuje gated delta pravidlem). Připomenu, že fast weights jsou ta rychlá, během inference měnitelná paměť, ne natrénované slow váhy. Update je gated Hebbian-like outer-product pravidlo:

S_t = α_t · S_{t−1} + β_t · v_t · k_tᵀ

Stav S je matice. v_t a k_tᵀ jsou value a key vektory, stejně jako v attention, a právě jejich outer product v · kᵀ je důvod, proč je stav S matice, a ne vektor. α a β jsou gated, takže model selektivně zapisuje i zapomíná, nepřepisuje stav naslepo každým tokenem. Tohle je jádro, ke kterému se ještě vrátím, protože dává smysl celé konstrukci: paměť není rostoucí KV cache, ale fixní matrix-valued state, do kterého se rekurentně zapisuje.

Při evikci okna model nad nakumulovaným kontextem provede N takových rekurentních průchodů a tím konsoliduje informaci do toho stavu. Co se mezi průchody děje: model opakovaně projíždí tytéž nakumulované tokeny stejnými vahami a pokaždé aplikuje výše uvedené update pravidlo. Každý další průchod čte stav S z toho předchozího, takže se do něj postupně „usadí" víc struktury kontextu, aniž by se měnily natrénované váhy. Žádný gradient, jen víc průchodů nad stejnými vahami.

Klíčový detail: při N=1 se celý mechanismus redukuje na běžný SSM-attention hybrid. „Spánek" je tedy hodnota navíc nad baseline, ne jiná architektura. Stačí posunout N z jedničky výš a sledovat, co se stane.

Stojí za to to odlišit od test-time-training metod. Ty typicky udělají jeden gradient step na chunk. Tady žádný gradient v inference není, memory-update je naučený rekurentní forward pass. Model se nedoučuje, jen víckrát přepočítá to, co už umí.

Čísla, která tomu dávají smysl

Obecný trend je monotónní: víc smyček N znamená lépe, a největší zisk vidíš u úloh s dlouhým reasoning řetězcem. Shrnutí čtyř benchmarků:

BenchmarkModelNPřed → po
Cellular automaton (Rule 110, t=32)4vrstvý GDN-attention hybrid, hidden dim 2561 → 4~10 % → přes 30 %
k-hop graph retrieval (16-hop)10vrstvý Jet-Nemotron, d=5121 → 4zlepšení až se 4 smyčkami
GSM-Infinite (6-op, L=2000)Jet-Nemotron 2B, SSM-attention hybrid1 → 60,742 → 0,812
GSM-Infinite (8-op, L=2000)Jet-Nemotron 2B, SSM-attention hybrid1 → 60,351 → 0,388
GSM-Infinite (6-op)Ouro 1,4B, depth-recurrent attention-only1 → 40,419 → 0,615
Sliding-window eviction (L=512)Ouro 1,4B1 → 40,596 → 0,905

Pár slov k tabulce. Jet-Nemotron a Ouro jsou experimentální jazykové modely (Jet-Nemotron jako SSM-attention hybrid, Ouro jako depth-recurrent model jen s attention), které autoři používají jako základ pro měření. U cellular automatonu, predikce stavu pravidla Rule 110 po t krocích, model bez spánku při t=32 trefí jen kolem 10 % exact accuracy, a to i po zhruba 5B trénovacích tokenech, kdežto se třemi až čtyřmi smyčkami přeskočí 30 %. Trojnásobek baseline jen tím, že kontext přepočítáš víckrát. Úloha na k-hop graph retrieval, vyhledávání přes k skoků v grafu (cykly až do 75 uzlů, k z množiny {1, 2, 4, 8, 16}), se na nejtěžší 16-skokové variantě začíná zlepšovat až se čtyřmi smyčkami. Mělčí varianty na to nestačí, což přesně sedí na tezi o hloubce.

Nejsilnější demonstrovaný efekt je u sliding-window evikce. Okno má L=512 tokenů, zatímco sekvence je řádově 2000 až 3000 tokenů dlouhá, okno je tedy 4 až 6krát menší než celá sekvence. Ouro 1,4B s N=4 jde z 0,596 na 0,905, relativní zlepšení o 52 %. Tady model paměť eviktuje agresivně a právě tam, kde mu nejvíc chybí kapacita, mu rekurence pomůže nejvíc.

Jedna poznámka k poctivosti čtení těch čísel. Absolutní accuracy je často nízká, 8-operační úloha skončí kolem 0,39 a pořád to není dobré. Příběh tady není absolutní výkon, ale trend se škálováním N. To je to měřitelné.

Kde to drhne

Zadarmo to není a autoři to sami přiznávají. Cena se nezruší, jen se přesune.

Trénink je rekurentní napříč okny, což znamená, že ho nejde plně paralelizovat podél sekvence. Trénovací cena roste zhruba lineárně s N. N hlubších forward a backward průchodů dělá trénink pomalý a nestabilní. U sliding-window evikce je navíc potřeba warm-up, kdy se nejdřív jednu epochu trénují jen SSM vrstvy, teprve pak celý model.

Sečteno: výkon na inferenci kupuješ dražším a křehčím tréninkem. Přesouváš výpočet z doby, kdy se uživatel ptá, do doby, kdy model stavíš.

Co si z toho odnést

Tohle není produkt. Je to bod v krajině, kde už stojí test-time-training a lineární attention, a kde se architektury pomalu odpoutávají od myšlenky, že paměť musí být rostoucí KV cache. Lineární attention a SSM se dají číst jako recurrent update nad fixní maticí, jako fast weight memory. Tahle práce do té krajiny přidává čistý experiment.

A ten experiment poprvé měří jednu věc odděleně: hloubka uvažování je vlastní výpočetní rozpočet, nezávislý na kapacitě paměti. „Spánek" jen přesouvá výpočet z inference do tréninku a zdražuje ho, lineárně s N, pomalu a nestabilně. Ale rozpočet, který umíš změřit, umíš taky plánovat. Klidně na dobu, kdy se zrovna nikdo neptá.

Paper: Sangyun Lee, Sean McLeish, Tom Goldstein, Giulia Fanti, „Do Language Models Need Sleep? Offline Recurrence for Improved Online Inference", CMU a University of Maryland, arXiv 2605.26099. Jde o čerstvý preprint z května 2026, tedy novou a ještě nerecenzovanou práci.