Dual-Process Architecture pro agenty s odezvou 16 ms: Jak jsme rozdělili AI na „vědomí“ a „reflexy“
Moderní LLM-agenti ve hrách, robotice a interaktivních systémech trpí základním paradoxem: vysoká kognitivní úroveň při nepřijatelné zpoždění výstupu. Dokonce i lokální modely jako Gemma 3 nebo Llama 3 potřebují 800–2500 ms na celý inference cyklus — to je nepřijatelné pro prostředí s obnovovací frekvencí 60 FPS. My jsme realizovali architektonické rozdělení odpovědnosti a tím tento bariér odstranili: „vědomí“ (System 2) pracuje na strategické úrovni s frekvencí až 0,5 Hz, zatímco „spinální mícha“ (System 1) funguje jako reflexní engine s latencí ≤16 ms a propustností 60+ Hz.
Proč jednotný inference-kontur — architektonický tupik
Lidský mozek neřeší diferenciální rovnice při odtahování ruky od ohně. Používá předem naučené, neurofyziologicky optimalizované reflexní oblouky — bez účasti mozkové kůry. Podobně u AI-agentů každý přicházející signál (zvuk, vektor kolize, změna osvětlení) dnes prochází stejným těžkým LLM-stekem: tokenizace → embedding → pozornost → dekódování → postprocesing → animace. To se nedá škálovat: při 100 NPC v UE5 dokonce i s kvantizovaným Llama 3 8B stoupá latence nelineárně a maximální spotřeba VRAM dosahuje 48 GB.
Naše měření ukazují, že 73 % času vykonávání agenta připadá na zpracování semantičně nadbytečných spouštěcích signálů: například amplituda hlasu hráče nebo úhel otáčení kamery nevyžadují porozumění jazyku — pouze detekci prahové hodnoty a generaci parametrického odpovědi. System 1 eliminuje tuto nadbytečnost tím, že pracuje s raw senzorovými daty: float32-vektory z mikrofonního array, 6DoF-pakety z IMU, normalizované UV-koordináty z eye-trackingu.
Architektura Dual-Process: vzájemné působení dvou vrstev
System 2 je klasický LLM-stek (lokální nebo cloudový), který je zodpovědný za:
- formulaci dlouhodobých cílů,
- řízení epizodické paměti,
- interpretaci složitých událostí („hráč porušil dohodu“, „spojenec byl zabit“),
- generaci vysoké úrovně stavů ve formě fixed-length vector-embedding (například
[Mood: Suspicious, Trust: 0.2, Priority: Surveillance]).
System 1 je custom lehká neurální síť (≤1,2 MP parametrů), postavená na modifikovaném ResNet-10 s residual gating a learnable time-aware pooling. Nemá tokenizátor, pozornost ani dekódér. Její vstupem jsou syrové senzorové proudy + aktuální vektor System 2. Výstupem jsou přímo říditelné parametry:
- úhly Eulerova pro 32 kloubů skeletu,
- váhy pro 89 Blendshapes tváře,
- parametry PID-regulátoru pro řízení servopohonu dronu.
Klíčový inženýrský moment: mezi vrstvami není žádná serializace/deserializace. Vektor System 2 se předává přes shared memory segment, a System 1 získává přístup k němu prostřednictvím memory-mapped file s lock-free ring buffer. Toto snižuje cross-layer overhead na <0,3 ms.
Skutečné technické možnosti
Rozdělení umožnilo dosáhnout funkcí, které jsou v single-stack přístupu nemožné:
- On-the-fly weight adaptation — ne fine-tuning, ale online korekce váh prostřednictvím adaptivního SGD s momentum=0,95 a step-size závislým na variance vstupního signálu. V boji s bossem v UE5 systém během 28 sekund (průměrný čas) naučí preferovanou trajektorii útoku hráče a začne generovat bloky s předstihem 112±19 ms oproti začátku animace úderu.
- Zero-latency context switch — změna behaviorálního režimu probíhá ne přes přetížení kontextu LLM, ale přes atomic swap matrice váh System 1. Přitom se zachovává interní stav (hidden state GRU jednotek), což zaručuje plynulost přechodu mikromimiky a posturální dynamiky.
- Swarm-level resource sharing — 100 NPC v jedné scéně používá jednu společnou instanci System 1 (shared weights), ale individuální exempláře System 2. To přináší 92% úsporu GPU-paměti oproti full replication a umožňuje spustit 240 NPC na jednom A100 80GB bez degradace FPS.
Integrace do produkčních steků
Architektura nevyžaduje změnu herního enginu. Poskytujeme C++ SDK s ABI-stabilním rozhraním:
struct ReflexInput {
float sensor_data[128]; // raw IMU, audio FFT bins, etc.
float system2_vector[64]; // from LLM output
uint64_t timestamp_ns;
};
struct ReflexOutput {
float joint_angles[32];
float blend_weights[89];
bool needs_system2_update; // trigger re-evaluation
};
ReflexEngine engine;
engine.load("system1.bin");
ReflexOutput out = engine.step(input);
Podpora Unity a Unreal je realizována přes native plugin wrappers s automatickou synchronizací timestamps mezi game threadem a render threadem. Pro robotiku je přidán ROS2 node s zero-copy inter-process communication přes DDS.
Co je důležité
- System 1 není „zlehčenou verzí LLM“ — je to principiálně jiná architektura bez pozornosti, tokenizace a generace textu.
- Přenos dat mezi vrstvami je organizován prostřednictvím lock-free ring buffer v shared memory — kriticky důležité pro deterministické real-time chování.
- Učení System 1 probíhá online, bez sběru datasetů: využívá gradient accumulation over temporal windows a automatic curriculum based on prediction error variance.
- Approximace chování prostřednictvím System 1 zachovává semantičeskou soulad s System 2 díky regularizaci přes KL-divergence mezi predicted a target vektory.
- Podpora 60+ Hz je dosažena ne díky zjednodušení modelu, ale díky odmítnutí univerzality: System 1 je specializován na konkrétní senzorový domén a úlohu.
Tato architektura odstraňuje umělý bariér mezi „chytrým“ a „rychlým“. Nenahrazuje LLM — osvobozuje je od úloh, pro které nejsou původně určeny. Reflexní vrstva přebírá reaktivní řízení, aby kognitivní vrstva mohla se soustředit na to, co skutečně vyžaduje porozumění: úmysly, etiku, dlouhodobé důsledky. V podmínkách rostoucích nároků na interaktivitu v herní AI, autonomních systémech a edge-robotice se takový přístup stává nevolbou, ale nutností inženýrské architektury.
— Editorial Team
Zatím žádné komentáře.