Tous les projets
RELATION INTELLIGENCEModèle V1 évalué
ENSAI

RelationScope NLP

Identifier les relations entre entités, calibrer la confiance et s’abstenir face à une relation inconnue. Un projet issu d’un travail ENSAI avec Maxime Ferret.

Indicateur clé
89.16%

Macro-F1 · test des 56 relations connues du protocole open-set

Exemple illustratif · extraction de relation

Marie CurieHEAD a découvert le poloniumTAIL.

open-setKNOWNUNKNOWN → abstain

Une décision calibrée, avec la possibilité de s’abstenir.

Architecture

RelationScope NLP

Les composants, les flux de données et les frontières de confiance du système.

ClientPublic · Cloud RunPrivate · Cloud RunStorage & queue · GCPModel lifecycle · offlineHTTPSID tokenloadlogitsthresholdexplaintelemetrybatch jobOIDCBrowsersentence or documentNext.js webserver-side proxyFastAPIentity validationWord occlusioninfluence mapRelation | UNKNOWNcalibrated abstentionModernBERTmarkers · pair poolingCalibrationtemperature · thresholdBatch workerinternal callbackModel bucketreleases · currentOps buckettelemetry · 90-day TTLCloud TasksOIDC · durable jobsFewRel56 known · 16 unseenTrainingPyTorch · offline onlyFrozen evaluationopen-set protocolPromotion gatesSHA-256 manifestTerraformIAM · Artifact Registry

Faites défiler le schéma →

Technologies

  • PyTorch
  • ModernBERT · HF
  • FastAPI
  • Next.js
  • TypeScript
  • Cloud Run
  • Cloud Storage
  • Cloud Tasks
  • Terraform
  • Docker
  • GitHub Actions

Choix d’architecture

  1. 01

    Seule l’application Next.js est publique ; elle obtient côté serveur un jeton d’identité Google pour l’API privée, le navigateur ne voit jamais d’identifiant.

  2. 02

    Deux buckets aux droits distincts : lecture seule pour les modèles, écriture pour la télémétrie et les jobs, avec une rétention de 90 jours.

  3. 03

    Cycle de vie explicite : entraînement → évaluation figée → seuils de promotion → enregistrement → promotion. Le trafic de production ne déclenche jamais de réentraînement.

  4. 04

    Respect de la vie privée : ni phrase ni entité dans les logs, texte brut des retours uniquement avec consentement explicite.

Ce que j’ai construit

Marqueurs d’entités, pooling de paires, calibration par température et seuil d’abstention. Serving FastAPI/Next.js, explication par occlusion de mots, revue humaine et traitements asynchrones durables.

Résultat et compromis

Profil équilibré : 84,45 % de rejet des relations inconnues et 61,25 % d’acceptation des exemples connus. Le protocole garde 16 relations inédites pour le test final, séparées de la calibration.

Périmètre et limites

L’occlusion apporte un indice de sensibilité, pas une explication causale. Les métriques du classifieur ne mesurent pas la qualité de détection automatique des entités. Les évolutions V3 sont présentées séparément du benchmark V1.
Projet suivant
EviSuff Finance