Projet de recherche sur la compréhension du langage naturel (NLU), consistant à construire un système zero-shot multilingue capable de résoudre conjointement la détection d'intention et le remplissage de slots — entraîné en anglais, évalué en français sans aucune donnée française d'entraînement.
La plupart des systèmes NLU ont besoin de grandes quantités de données annotées pour chaque langue, ce qui rend la couverture multilingue coûteuse. Le transfert zero-shot contourne ça en entraînant sur une seule langue riche en ressources (l'anglais) et en évaluant directement sur une autre (le français), sans aucune donnée française à l'entraînement. La difficulté, c'est d'apprendre des représentations qui restent pertinentes d'une langue à l'autre, tout en tirant parti de la résolution conjointe des deux tâches.
Chaque fichier par langue contient plus de 16 000 énoncés avec les champs : label d'intention, énoncé annoté (Annot_utt avec tags de slots), scénario et métadonnées de jugement. Seuls l'intention et l'Annot_utt ont été conservés pour l'entraînement.
Le remplissage de slots est formulé comme un étiquetage de séquence. Chaque token reçoit une étiquette B-slot (début), I-slot (continuation) ou O (hors entité). Les tokenizers multilingues (WordPiece / BPE) fractionnent les mots en sous-tokens, nécessitant un alignement entre les annotations au niveau des mots et les entrées au niveau des tokens. Plutôt que d'aligner par frontières de mots (qui échoue sur les sous-tokens comme "9h30" → ["9", "##h", "30"]), l'alignement est effectué sur les offsets de caractères de l'énoncé original, garantissant une robustesse indépendante de la langue et du schéma de tokenisation.
Encodeur partagé (XLM-RoBERTa-base, pré-entraîné sur 100 langues) avec deux têtes indépendantes : l'intention depuis le token CLS, les slots depuis les représentations par token. Perte conjointe combinant l'entropie croisée des deux tâches. L'entraînement a été fait exclusivement en anglais pour respecter la contrainte zero-shot. Les limites matérielles nous ont contraints à 1 epoch, ce qui se voit dans les résultats : 77% de précision d'intent, 34% de F1 slot.
Une approche plus légère : petit transformer (8,2M paramètres, deux têtes d'attention) avec des embeddings FastText. On a commencé à 250 dimensions puis réduit à 100 pour limiter le surapprentissage, et appliqué des poids de classe pour compenser le fort déséquilibre des labels de slots (la majorité sont des O). Le F1 intent est tombé à 0,23, mais le F1 slot a atteint 0,80.
GRU bidirectionnel (3,12M paramètres, FastText 100 dimensions, dropout 0,1). Lire dans les deux sens donne à chaque token le contexte complet à gauche et à droite. L'intention vient de l'état caché final, les slots des états cachés par token, les deux têtes partageant le même encodeur. C'est notre meilleur modèle au final : F1 intent 0,64, F1 slot 0,88.
| Model | Intent F1 | Slot F1 | |
|---|---|---|---|
| Transformer XLM-RoBERTa (1 epoch) | — | 0.34 | Hardware limited |
| Transformer + FastText | 0.23 | 0.80 | |
| GRU + FastText | 0.64 | 0.88 | Best overall |
Polytech Paris-Saclay · ET5 IIM · Équipe : Antonin Djouder-Fey, Matys Grangaud
← Fermer le panneau pour revenir à la scène 3D.