Perception multimodale
Au-delà du texte : comment Nika OS perçoit la vidéo, les images et les séries temporelles via des embeddings prédictifs (famille JEPA), projetés dans le même espace que la mémoire textuelle.
Pourquoi une couche de perception
Le RAG textuel se souvient de ce qui a été écrit. Mais un système opérationnel produit et reçoit bien plus que du texte : vidéos de procédé, photos de plans, captures d’écran, séries temporelles de capteurs, tableaux de mesures. Un OS sémantique qui ne perçoit que le texte est borgne.
Nika OS traite la perception comme une primitive, avec la même discipline que le reste du système : embeddings versionnés, gates de qualité, et un espace de requête unifié.
Les embeddings prédictifs (famille JEPA)
Pour la perception non textuelle, Nika OS s’appuie sur la famille JEPA (Joint-Embedding Predictive Architecture, recherche publique Meta AI) : des encodeurs qui apprennent en prédisant des représentations dans l’espace latent, plutôt qu’en reconstruisant des pixels.
- Vidéo — un encodeur V-JEPA transforme un clip en latents qui capturent le contenu et la dynamique temporelle. Le prédicteur génératif du checkpoint permet en plus de prédire un futur latent et de comparer prédiction vs réalité.
- Séries temporelles et tabulaire — le même principe s’applique aux données de capteurs et aux tables de mesures : embedding prédictif, retrieval par similarité, détection de régime.
Ces encodeurs tournent sur GPU serverless à la demande (dispatch via la primitive compute), payés à la seconde d’inférence — zéro coût au repos.
Les projecteurs : un seul espace de requête
Le problème classique du multimodal : chaque modalité vit dans son propre espace vectoriel, donc chaque modalité exige son propre index et ses propres requêtes. Nika OS résout ça par des projecteurs : des adaptateurs entraînés qui projettent les latents de perception dans le même espace 384d que la mémoire textuelle.
Conséquence directe : une question en texte peut retrouver un moment de
vidéo, une image de plan, ou un épisode de série temporelle — via la même
cascade WATERFALL RETRIEVAL que le reste de la mémoire. La perception
devient interrogeable par l’outil search_perception, au même titre que
n’importe quelle connaissance.
flowchart LR
V["🎥 Vidéo"] --> E1["Encodeur V-JEPA<br/>latents"]
T["📈 Séries temporelles"] --> E2["Encodeur JEPA<br/>latents"]
E1 --> P["Projecteurs entraînés<br/>→ espace texte 384d"]
E2 --> P
Q["❓ Question texte"] --> S["Espace unifié<br/>Qdrant"]
P --> S
S --> R["Retrieval cross-modal"]
classDef modal fill:#F3EADE,color:#2C3E42,stroke:#7DB5A5,stroke-width:1.5px;
classDef enc fill:#FAF5EC,color:#2C3E42,stroke:#A86640,stroke-width:1.5px;
classDef proj fill:#E99971,color:#FDFBF8,stroke:#C97A55,stroke-width:2px;
classDef store fill:#7DB5A5,color:#FDFBF8,stroke:#5E9384,stroke-width:2px;
class V,T,Q modal;
class E1,E2 enc;
class P proj;
class S,R store;
Discipline de release : manifest, golden check, canary
Un modèle de perception est un composant qui peut régresser silencieusement. Nika OS applique donc à la perception la même rigueur qu’à un déploiement logiciel :
| Mécanisme | Rôle |
|---|---|
| Manifest versionné | Chaque version de projecteur/encodeur est déclarée dans un manifest (perception_versions) : modèle, dimensions, dataset d’entraînement, métriques |
| Golden check fail-closed | Un jeu de référence figé doit reproduire ses scores à chaque release. Échec ou baseline absente → la release s’arrête, elle ne se « saute » pas |
| Canary + rollback | Une nouvelle version sert d’abord une fraction du trafic ; régression observée → rollback automatique vers la version précédente |
Le principe fail-closed est central : un gate de qualité qui, faute de baseline, laisse passer par défaut est un bug plus grave que la régression qu’il devait attraper — parce qu’il transforme une régression visible en régression silencieuse.
Le benchmark honnête comme doctrine
Chaque brique de perception doit gagner sa place contre une baseline, sur des données réelles, et les défaites sont documentées au même titre que les victoires. Deux exemples de verdicts réellement enregistrés :
- Sur un benchmark public de maintenance prédictive, l’embedding JEPA tabulaire gagne en régime pauvre en labels (≤ 50 exemples annotés), mais le gradient boosting classique domine dès ~100 labels. Verdict retenu : la primitive est routée vers les cas few-label uniquement.
- En vidéo, l’embedding capte l’ordre temporel là où un « sac d’images » n’y arrive pas — mais le signal de contenu reste dominant. Verdict : la dynamique se lit dans les latents prédits, pas dans une moyenne.
Ces verdicts négatifs ne sont pas des échecs : ce sont des règles de routage. La doctrine algos comme tools s’applique à la perception comme au reste — le meilleur outil pour le régime de données observé, pas le plus récent.
Voir aussi
- Système mémoire — l’espace texte 384d dans lequel les projecteurs atterrissent, et le RAG multimodal.
- Méta-curateur et évolution — qui décide de ré-entraîner les modèles de perception, et sous quel gate.
- Doctrines — algos comme tools et l’antifragilité s’appliquent aux choix de perception.