[↖ Publications](https://www.goodailabs.com/fr/blog/) ANNONCE 5 octobre 2026 Modèles de décision # Présentation de Reflex-1 Un modèle de 421M paramètres pour orienter les requêtes vers les outils, classer les intentions et choisir des actions, avec des poids publics et des performances CPU mesurées. Good AI Labs · 5 min de lecture [Modèle et évaluation ↗](https://www.goodailabs.com/fr/research/reflex-1/) [Poids et code ↗](https://huggingface.co/gai-labs/reflex-1)[Résultats de la version ↗](https://www.goodailabs.com/fr/research/reflex-1/#current-results) Reflex-1 · Chromium original43.6 s · VIDÉO SILENCIEUSE [Voir Reflex-1 · Chromium Dino (MP4)](https://www.goodailabs.com/media/reflex-1/preview/chromium-dino-002-clean.mp4). Reflex-1 · Chromium Dino. Reflex-1 dans Chromium Dino natif, avec la géométrie visible structurée du moteur. Version du 3 octobre 2026. L’enregistrement complet d’un parcours indépendant se termine par une collision à 42.309 secondes (score 535) ; il n’atteint pas 60 secondes. Le navigateur continue pendant l’inférence. Enregistrement du navigateur à vitesse normale ; le jeu continue pendant l’inférence. DANS CET ARTICLE[Le modèle](https://www.goodailabs.com/#one-pass-many-possible-decisions)[Exemples](https://www.goodailabs.com/#recorded-examples)[Inférence sur CPU](https://www.goodailabs.com/#cpu-inference)[Essayer Reflex-1](https://www.goodailabs.com/#try-reflex-1) ## Un seul laissez-passer, de nombreuses décisions possibles Reflex-1 est un modèle de 421M paramètres pour les décisions qui se traduisent par un choix. Donnez-lui un état textuel, une question et des réponses candidates ; il les évalue en une seule passe avant. Les candidates peuvent changer à chaque requête. La même interface permet d’orienter une demande d’assistance, de sélectionner un outil ou de choisir une action. Un encodeur de contexte de 28 couches et un encodeur de candidats de six couches alimentent une tête de calcul des scores commune. L’application fournit les choix et exécute le résultat. Reflex-1/Modèle de décision ### D'une question à un choix. - 01 / Fournir #### Définissez la décision. Votre application fournit l'état, une question et les choix sur lesquels elle peut agir. Ces choix peuvent changer à chaque demande : files d'attente d'assistance, outils disponibles ou actions autorisées. État + question Le client a été débité deux fois. Quel problème correspond ? Charge dupliquéeCarte perdueFrais inconnusRetrait d'espèces ↓ Contexte + questionModernBERT Chaque choixMiniLM ↓ Tête de pointage partagéeProbabilités de choix ↓ DemandeAutorisation → arguments → action Demande d'assistance illustrative. L'application définit l'ensemble de candidats. - 02 / Encoder #### Représentez le contexte et les candidats. Un encodeur ModernBERT adapté lit l'état et la question. Un encodeur MiniLM figé représente chaque choix fourni. Plusieurs questions peuvent partager un état condensé. État + question Le client a été débité deux fois. Quel problème correspond ? Charge dupliquéeCarte perdueFrais inconnusRetrait d'espèces ↓ Contexte + questionModernBERT Chaque choixMiniLM ↓ Tête de pointage partagéeProbabilités de choix ↓ DemandeAutorisation → arguments → action Deux encodeurs alimentent une tête de notation partagée. Il s'agit d'un schéma de l'architecture de prévisualisation. - 03 / Évaluer #### Marquez chaque choix fourni en une seule passe. La tête partagée combine le contexte et les représentations des candidats, puis renvoie une distribution de probabilité sur les choix fournis. Les nouveaux types de décisions nécessitent encore des tests de précision et d'étalonnage. État + question Le client a été débité deux fois. Quel problème correspond ? Charge dupliquéeCarte perdueFrais inconnusRetrait d'espèces ↓ Contexte + questionModernBERT Chaque choixMiniLM ↓ Tête de pointage partagéeProbabilités de choix ↓ DemandeAutorisation → arguments → action Un score par candidat fourni, normalisé selon une distribution de probabilité. - 04 / Agir #### Laissez l'application exécuter la décision. L'application décide quelles actions sont autorisées, construit tous les arguments de l'outil et exécute l'action sélectionnée. Reflex-1 fournit les scores ; le système environnant est propriétaire de la boucle de contrôle. État + question Le client a été débité deux fois. Quel problème correspond ? Charge dupliquéeCarte perdueFrais inconnusRetrait d'espèces ↓ Contexte + questionModernBERT Chaque choixMiniLM ↓ Tête de pointage partagéeProbabilités de choix ↓ DemandeAutorisation → arguments → action Les limites de l'application sont importantes : la notation d'un outil ne l'exécute pas. Aperçu de l'architecture du développement public. La demande d'assistance illustre le format d'entrée. ## Exemples enregistrés L’enregistrement de Dino ci-dessus et les exemples suivants utilisent la [version du 3 octobre](https://huggingface.co/gai-labs/reflex-1/tree/ae50bf81cddcaaac2aa18021d862433ca69da197), différente des poids publics proposés par défaut. Les conditions d’exécution et les résultats figurent dans les légendes. Reflex-1 · ViZDoom natif36.5 s · VIDÉO SILENCIEUSE [Voir Reflex-1 · ViZDoom (MP4)](https://www.goodailabs.com/media/reflex-1/preview/vizdoom-510001-clean.mp4). Reflex-1 · ViZDoom. Reflex-1 dans ViZDoom 1.3.1 natif, Defend the Center, difficulté 5. Version du 3 octobre 2026 ; graine de l’enregistrement définie à l’avance : 510001. L’épisode complet se termine par la mort à 34.514 des 45 secondes de simulation autorisées, avec 30 ennemis éliminés. Le modèle reçoit les étiquettes visibles et la santé/les munitions, pas les pixels. La lecture suit le temps de simulation, sans délai d’inférence. La lecture suit le temps de simulation, sans les délais d’inférence ; l’arrêt sur l’écran final est conservé. Reflex-1 · WebGym synthétique30.1 s · 4× · VIDÉO SILENCIEUSE [Voir Réservation au restaurant · tâche terminée (MP4)](https://www.goodailabs.com/media/reflex-1/preview/webgym-restaurant-960000-clean.mp4). Réservation au restaurant · tâche terminée. Version de développement du 3 octobre ; 15 actions. États capturés dans Chromium, lus à 4× le temps réel, avec le dénouement et l’arrêt final complets. Tâche synthétique locale avec un auxiliaire de texte Qwen3-1.7B commun. Cette version diffère des poids par défaut du Hub. [Voir tous les enregistrements et comparatifs](https://www.goodailabs.com/fr/research/reflex-1/#examples). ## Inférence sur CPU Le checkpoint actuel a été mesuré sur un CPU Intel Xeon Platinum 8558 en FP32, avec une requête à la fois. Chaque configuration de threads couvre 480 appels sur 120 entrées dans deux nouveaux processus. Les temps incluent la tokenisation et l’inférence. Mesures CPU actuelles Intel Xeon Platinum 8558 · FP32 · taille de lot 1 Un thread de calcul Latence · plus faible signifie plus rapideMédiane/p95 - AG News 1209.7 / 1385.0 ms - SST-5 973.6 / 1160.3 ms - Emotion 956.9 / 1165.8 ms - Banking77 1101.7 / 1276.9 ms - BoolQ 1600.8 / 2710.6 ms 01,5003,000 ms Quatre threads de calcul Latence · plus faible signifie plus rapideMédiane/p95 - AG News 389.5 / 480.4 ms - SST-5 320.6 / 404.2 ms - Emotion 318.8 / 391.0 ms - Banking77 375.2 / 452.1 ms - BoolQ 486.7 / 782.2 ms 01,5003,000 ms 480 appels par configuration de threads sur 120 entrées, dans deux nouveaux processus. Tokenisation et inférence incluses ; chargement et préchauffage exclus. Hôte partagé, environnement d’évaluation, sans cache entre requêtes. Le pic de mémoire du processus était de 2.17 GiB, chargement, préchauffage et inférence compris. Les essais utilisaient un ou quatre threads intra-opération PyTorch, un thread inter-opérations et des limites BLAS correspondantes. Le nombre total de threads observés au niveau du système était respectivement de deux et onze, auxiliaires d’exécution compris. [Mesures et évaluation actuelles](https://huggingface.co/gai-labs/reflex-1/blob/84c2cd49d31f73544e1e17539092056e741e7f03/evaluation.json). Ces temps sur hôte partagé utilisent l’environnement d’évaluation. Chargement, préchauffage et cache entre requêtes sont exclus. La page de recherche conserve les [anciennes mesures M4 et H200](https://www.goodailabs.com/fr/research/reflex-1/#speed-and-resources) avec les dates de leurs checkpoints. ## Essayer Reflex-1 Les poids publics, les tokeniseurs et le code d’inférence sont disponibles sur [Hugging Face](https://huggingface.co/gai-labs/reflex-1). Aucun compte ni clé API n’est nécessaire. Une fois les dépendances installées : ``` import torch from transformers import AutoModel torch.set_num_threads(1) model = AutoModel.from_pretrained("gai-labs/reflex-1", trust_remote_code=True) decision = model.predict( state="The customer was charged twice for one card payment.", question="Choose the matching issue.", options=["duplicate charge", "lost card", "unknown fee", "cash withdrawal"], )[0] print(decision.choice) ``` Consultez la [fiche du modèle](https://huggingface.co/gai-labs/reflex-1) pour l’installation, les limites d’exécution et la licence, notamment les conditions des sources d’entraînement. [DÉTAILS DU MODÈLE ## Reflex-1 Un modèle de 421M paramètres pour orienter les requêtes vers les outils, classer les intentions et choisir des actions. Poids publics ; exécution sur CPU ou GPU. ↗](https://www.goodailabs.com/fr/research/reflex-1/) [Plus d'informations sur le laboratoire ↗](https://www.goodailabs.com/fr/blog/)