Representation
Module Représentation (L’Espace Latent)
Le sous-module Représentation est le cœur de l’abstraction. Il structure l’information perçue pour la rendre manipulable par des algorithmes de raisonnement.
Il est implémenté dans quantizer.rs.
🎯 Objectif
Transformer les vecteurs continus (flous) issus de la Perception en symboles discrets (concepts). C’est ce qui permet au World Model de “parler” un langage proche de celui du model_engine.
Analogie : C’est la zone du cerveau qui classifie. Elle ne voit plus “une forme grise avec 4 pattes” (Perception), elle reconnaît le concept “Chat” (Représentation).
Technologie : Vector Quantization (VQ)
Nous utilisons une Quantification Vectorielle (approche VQ-VAE) pour discrétiser l’espace latent.
Algorithme (VectorQuantizer)
L’implémentation repose sur la recherche du plus proche voisin dans un dictionnaire de vecteurs appris (Codebook).
- Le Codebook (Embedding Table) :
Stocké sous forme de matrice
[K, D]viacandle_nn::Embedding.- : Nombre de concepts (Vocabulaire).
- : Dimension des vecteurs (Embedding Dim).
- Tokenization (Encodage) : Pour un vecteur d’entrée , on calcule la distance avec tous les vecteurs du codebook : Optimisation mathématique : Le calcul utilise la décomposition pour profiter des accélérations matricielles.
- Décodage (Reconstruction) : À partir d’un index , on récupère le vecteur prototype .
Pourquoi c’est vital pour RAISE ?
L’ingénierie système repose sur des états discrets (Validé/Non-Validé, Connecté/Déconnecté).
- Un réseau de neurones standard sort une probabilité continue (ex:
0.98). - Ce module force cette sortie à devenir un état ferme (ex:
State::Connected, Token #42). - Cela permet d’appliquer les Validateurs symboliques de
model_enginedirectement sur les prédictions de l’IA.
Flux de Données
graph LR
Input["Vecteur Continu\n(Sortie Perception)"] -->|Tokenize| VQ[Vector Quantizer]
subgraph "Mécanique Interne"
VQ --"Distance L2"--> Search{Recherche Voisin}
Codebook[("Codebook\n(Matrice Embedding)")] -.-> Search
end
Search -->|Argmin| Token["Token Index (Entier)\n(Concept Discret)"]
Token -->|Decode| Output["Vecteur Prototype\n(Entrée Dynamique)"]
Implémentation Technique
- Fichier :
src-tauri/src/ai/world_model/representation/quantizer.rs - Struct :
VectorQuantizer - Dépendances :
candle-nn(Module Embedding).
Évolutions Futures
- Codebook dynamique : Ajouter des concepts au dictionnaire à la volée si l’erreur de reconstruction dépasse un seuil (Apprentissage continu de nouveaux concepts).
- Entraînement : Implémenter le “Straight-Through Estimator” pour permettre la rétro-propagation du gradient à travers l’opération discrète
argmin.