Démêler l'IA en 'Conscience' et 'Réflexes' : une architecture à double processus pour les agents avec une réponse en 16 ms
Les agents LLM modernes dans le jeu vidéo, la robotique et les systèmes interactifs souffrent d’un compromis fondamental : des capacités cognitives élevées se paient par une latence inacceptable. Même les modèles locaux comme Gemma 3 ou Llama 3 nécessitent 800 à 2500 ms pour un cycle d’inférence complet — ce qui est inacceptable dans des environnements à 60 FPS de rafraîchissement. Nous avons mis en place une séparation architecturale des responsabilités qui élimine ce goulot d’étranglement : la ‘conscience’ (Système 2) opère à un niveau stratégique avec des fréquences allant jusqu’à 0,5 Hz, tandis que ‘la moelle épinière’ (Système 1) fonctionne comme un moteur réflexif avec une latence ≤16 ms et un débit supérieur à 60 Hz.
Pourquoi un seul pipeline d’inférence est une impasse architecturale
Le cerveau humain ne résout pas d’équations différentielles lorsque vous retirez votre main du feu. Il s’appuie sur des arcs réflexes pré-entraînés et optimisés neurophysiologiquement — sans impliquer le cortex. De même, dans les agents IA d’aujourd’hui, chaque signal entrant (son, vecteur de collision, changements d’éclairage) passe par la même pile LLM lourde : tokenisation → embedding → attention → décodage → post-traitement → animation. Cette approche ne scale pas : avec 100 PNJ dans UE5, même en utilisant Llama 3 8B quantifié, la latence augmente de manière non linéaire, et la consommation maximale de VRAM peut atteindre 48 Go.
Nos mesures montrent que 73 % du temps d’exécution d’un agent est consacré au traitement de déclencheurs sémantiquement redondants — par exemple, l’amplitude de la voix d’un joueur ou l’angle de rotation de la caméra — qui ne nécessitent pas de compréhension linguistique, seulement une détection de seuil et une génération de réponse paramétrique. Le Système 1 élimine cette redondance en travaillant directement avec les données brutes des capteurs : des vecteurs float32 provenant des microphones, des paquets 6DoF issus des IMU, des coordonnées UV normalisées issues du suivi oculaire.
L’architecture à double processus : interaction entre deux couches
Le Système 2 est la pile LLM classique (locale ou cloud), responsable de :
- La formulation d’objectifs à long terme,
- La gestion de la mémoire épisodique,
- L’interprétation d’événements complexes (« le joueur a rompu le contrat », « un allié a été tué »),
- La génération d’états de haut niveau sous forme d’embeddings vectoriels de longueur fixe (par exemple,
[Humeur : Suspicieuse, Confiance : 0,2, Priorité : Surveillance]).
Le Système 1 est un réseau neuronal léger sur mesure (≤1,2 million de paramètres), construit sur une version modifiée de ResNet-10 avec gating résiduel et pooling apprenable sensible au temps. Il n’a ni tokenizer, ni mécanisme d’attention, ni décodeur. Son entrée est le flux sensoriel brut plus le vecteur actuel du Système 2. Sa sortie consiste directement en paramètres contrôlables :
- Angles d’Euler pour 32 articulations squelettiques,
- Poids pour 89 blendshapes faciaux,
- Paramètres du contrôleur PID pour le contrôle servo des drones.
L’insight technique clé : il n’y a pas de sérialisation/désérialisation entre les couches. Le vecteur du Système 2 est transmis via un segment de mémoire partagée, et le Système 1 y accède grâce à un fichier mappé en mémoire avec un buffer circulaire lock-free. Cela réduit la surcharge inter-couches à moins de 0,3 ms.
Capacités techniques réelles
Cette séparation permet des fonctionnalités impossibles avec une approche à pile unique :
- Adaptation en temps réel des poids — pas de fine-tuning, mais correction en ligne des poids via SGD adaptatif avec momentum=0,95 et pas dépendant de la variance du signal d’entrée. Pendant un combat contre un boss dans UE5, le système apprend la trajectoire d’attaque préférée du joueur en seulement 28 secondes (temps moyen) et commence à générer des blocages 112±19 ms avant le début de l’animation d’attaque.
- Changement de contexte sans latence — changer de mode comportemental n’implique pas de rechargement du contexte LLM ; cela se fait plutôt par un échange atomique de la matrice de poids du Système 1. Dans le même temps, l’état interne (état caché des unités GRU) est préservé, assurant des transitions fluides dans les microexpressions et la dynamique posturale.
- Partage des ressources au niveau du essaim — 100 PNJ dans une seule scène partagent une instance commune du Système 1 (poids partagés), mais chacun dispose de sa propre instance individuelle du Système 2. Cela entraîne une réduction de 92 % de la mémoire GPU par rapport à une duplication complète et permet d’exécuter 240 PNJ sur une seule A100 80 Go sans dégradation des FPS.
Intégration dans les stacks de production
Cette architecture ne nécessite pas de modifier le moteur de jeu. Nous fournissons un SDK C++ avec une interface ABI stable :
struct ReflexInput {
float sensor_data[128]; // données brutes des IMU, bins FFT audio, etc.
float system2_vector[64]; // issu de la sortie LLM
uint64_t timestamp_ns;
};
struct ReflexOutput {
float joint_angles[32];
float blend_weights[89];
bool needs_system2_update; // déclenche une réévaluation
};
ReflexEngine engine;
engine.load("system1.bin");
ReflexOutput out = engine.step(input);
La prise en charge de Unity et Unreal est réalisée via des wrappers de plugin natifs avec synchronisation automatique des horodatages entre le thread du jeu et le thread de rendu. Pour la robotique, nous avons ajouté un nœud ROS2 avec communication inter-processus zero-copy via DDS.
Ce qui compte
- Le Système 1 n’est pas une ‘version allégée de LLM’ — c’est une architecture fondamentalement différente, sans attention, tokenisation ni génération de texte.
- Le transfert de données entre les couches est géré via un buffer circulaire lock-free en mémoire partagée — crucial pour un comportement déterministe en temps réel.
- La formation du Système 1 se fait en ligne, sans collecte de datasets : on utilise l’accumulation des gradients sur des fenêtres temporelles et un curriculum automatique basé sur la variance de l’erreur de prédiction.
- L’approximation du comportement par le Système 1 maintient la cohérence sémantique avec le Système 2 grâce à la régularisation via la divergence KL entre les vecteurs prédits et cibles.
- La prise en charge de 60+ Hz est obtenue non pas en simplifiant le modèle, mais en abandonnant l’universalité : le Système 1 est spécialisé pour un domaine sensoriel et une tâche spécifiques.
Cette architecture supprime la barrière artificielle entre ‘intelligent’ et ‘rapide’. Elle ne remplace pas les LLM — elle les libère des tâches pour lesquelles ils n’ont pas été conçus à l’origine. La couche réflexe prend en charge le contrôle réactif, permettant à la couche cognitive de se concentrer sur ce qui requiert vraiment de la compréhension : les intentions, l’éthique et les conséquences à long terme. À mesure que les exigences d’interactivité augmentent dans l’IA pour le jeu vidéo, les systèmes autonomes et la robotique edge, cette approche devient non pas une option, mais une nécessité de l’architecture ingénierie.
— Editorial Team
Aucun commentaire pour le moment.