FR
Contact
Menu
Publications

ANNONCE

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

Reflex-1 · Chromium original43.6 s VIDÉO SILENCIEUSE
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.

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.

  1. 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.
  2. 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.
  3. 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é.
  4. 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, 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
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
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.

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
  1. AG News 1209.7 / 1385.0 ms
  2. SST-5 973.6 / 1160.3 ms
  3. Emotion 956.9 / 1165.8 ms
  4. Banking77 1101.7 / 1276.9 ms
  5. BoolQ 1600.8 / 2710.6 ms

Quatre threads de calcul

Latence · plus faible signifie plus rapideMédiane/p95
  1. AG News 389.5 / 480.4 ms
  2. SST-5 320.6 / 404.2 ms
  3. Emotion 318.8 / 391.0 ms
  4. Banking77 375.2 / 452.1 ms
  5. BoolQ 486.7 / 782.2 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. 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 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. 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 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.