⚙ Architecture
Inspirée de SLAM-ASR (Ma et al., 2024) : l’encodeur acoustique et le LLM restent gelés ; seul le projecteur (quelques couches linéaires) est entraîné pour aligner les deux espaces.
Projecteur : quelques couches linéaires qui projettent les vecteurs acoustiques de l’encodeur dans l’espace d’entrée du LLMGrand modèle de langue (Large Language Model) : pré-entraîné sur des milliards de mots, il génère ici la traduction anglaise. → glossaire. C’est le seul composant entraîné (mode B1). L’entraînement est rapide (20k updates, 1–6 h).
Format dialogue : le modèle est entraîné avec une consigne (prompt)Texte d’instruction passé au LLM avant l’audio pour guider sa réponse : traduire en anglais, ne pas commenter, etc. → glossaire côté USER et la traduction attendue côté ASSISTANT. Le LLM génère l’anglais comme dans une conversation. La consigne est un hyperparamètre important.
Contrainte de longueur : max_new_tokensNombre maximal de sous-mots (tokens) que le modèle peut générer. Trop élevé → traduction trop longue → score BLEU chute malgré une traduction correcte. → glossaire: 48 est le réglage qui donne 15 BLEUScore standard mesurant la qualité d’une traduction (0–100, plus c’est élevé, mieux c’est). → glossaire utterance (run_012, run_013). Les configs à 128 tokens produisent des hypothèses 3× trop longues et chutent à 5–6 BLEU (run_017, run_021).
⚡ Hyperparamètres
| Paramètre | Explication simple | Valeurs / options | Impact sur les résultats | État |
|---|---|---|---|---|
| max_new_tokensNombre maximal de sous-mots (tokens) que le modèle peut générer par traduction. → glossaire | Limite la longueur de la traduction produite. Trop haute → le modèle « déborde » et génère du texte inutile, ce qui fait chuter le score. | 48 (recommandé) / 128 (à éviter) |
128 tok → hypothèses 3× trop longues → BLEU 5–6 au lieu de 15 | configs v2/v3 à 128 tok — utiliser 48 |
| Taille de l’encodeurModèle audio qui convertit le signal sonore en vecteurs numériques. Plus il est grand, meilleure est la représentation — mais plus lent. → glossaire | Quelle version du modèle audio utiliser. Les versions plus grandes capturent plus de détails de la parole mais consomment plus de mémoire et de temps de calcul. | B-1k / L-14k / L-114k |
B-1k 7,5 → L-14k/L-114k 15 BLEU utterance | ok |
| Gel / dégelGelé = poids du modèle figés pendant l’entraînement (il ne modifie pas ses paramètres). Dégelé = il peut s’adapter. → glossaire de l’encodeur | Pendant l’entraînement du projecteur, autorise-t-on le modèle audio à modifier ses paramètres internes ? Geler stabilise l’entraînement ; dégeler peut améliorer les performances mais est risqué. | frozen (défaut) / unfrozen |
Dégel risqué en utterance (3,7 test) ; meilleur résultat gelé (15) | ok |
| Choix du LLMGrand modèle de langue (Large Language Model) qui génère la traduction en anglais à partir des vecteurs audio. → glossaire | Quel modèle de texte génératif utiliser pour produire la traduction. Chacun a ses forces et ses faiblesses selon la tâche. | Phi-2 (défaut) · Qwen2.5-3B · Llama-3.2-3B · Mistral | Qwen2.5-3B 13 test (run_018) ; Llama-3.2-3B 16,3 test (run_052) — au-dessus de Phi-2 (run_012 15 test) |
Llama ok |
| Beam searchLors de la génération, nombre de pistes de traduction explorées en parallèle avant de choisir la meilleure. Beam trop grand → répétitions. → glossaire | Combien d’hypothèses de traduction le modèle explore-t-il simultanément ? Un beam plus grand est plus lent et peut créer des boucles de répétition avec ce modèle. | beam ≤ 3 (beam ≥ 4 → boucles de répétition) |
Attention aux boucles ; greedy ou beam 1–3 recommandé | sensible au réglage |
| Consigne (prompt)Texte d’instruction donné au LLM pour guider sa réponse : « traduis en anglais », « ne commente pas », etc. → glossaire | Texte d’instruction qu’on place avant l’audio pour dire au modèle ce qu’on attend de lui. Une mauvaise consigne peut faire produire du français ou du texte hors-sujet. | Format USER/ASSISTANT — texte libre | Qualité de la consigne influe sur la langue de sortie et la verbosité | à affiner |
| Warmup LRLe taux d’apprentissage monte progressivement en début d’entraînement pour éviter des mises à jour trop brusques. → glossaire | La « vitesse d’apprentissage » monte doucement au début de l’entraînement pour éviter des ajustements trop violents qui déstabiliseraient le modèle. | Déjà implémenté dans 2_speechLLM/train.py |
Conforme au PRD | ok |
| Durée d’entraînement | Nombre total de mini-lots de données traités avant d’arrêter l’entraînement. 20 000 ici, ce qui représente plusieurs passages sur l’ensemble du corpus. | 20k updates | Convergence rapide par rapport à la variante 1 | ok |
📊 Résultats
| RunIdentifiant d’une expérience. Chaque run teste une combinaison précise de paramètres (encodeur, segmentation, LLM…). → glossaire | EncodeurModèle audio utilisé (B-1k / L-14k / L-114k) et si ses poids étaient gelés ou dégelés pendant l’entraînement. → glossaire | SegmentationComment l’audio de test a été découpé : par énoncé (utterance) ou en pseudo-phrases (sentence_like). Les deux modes ne se comparent pas directement. → glossaire | BLEU testScore BLEU mesuré sur le jeu de test. 0–100 ; plus c’est élevé, meilleure est la traduction. → glossaire | Durée GPUTemps de calcul sur carte graphique (entraînement + évaluation). → glossaire | Notes |
|---|---|---|---|---|---|
run_005 |
B-1k (dégeléL’encodeur a pu modifier ses paramètres pendant l’entraînement. → glossaire) | sentence_likeSegmentation qui regroupe plusieurs énoncés en pseudo-phrases plus longues. Les scores ne se comparent pas directement aux scores utterance. → glossaire | 19 | 2 h | Meilleur global B1 ; encodeur dégelé |
run_013 |
L-114k (geléL’encodeur n’a pas modifié ses paramètres : seul le projecteur a été entraîné. → glossaire) | utteranceSegmentation par énoncé : chaque segment correspond à une phrase parlée complète. → glossaire | 15,2 | 4–6 h | 48 tok ; meilleur utterance |
run_012 |
L-14k (gelé) | utterance | 15,0 | 1,4 h | 48 tok |
run_018 |
L-14k + Qwen2.5-3B | utterance | 13,0 | ~2,7 h | Sous Phi-2 (run_012) |
run_047 |
L-14k couche 9 (gelé) | utterance | 14,0 | ~2,5 h | Piste J — sous run_012 |
run_050 |
L-14k (gelé, seed 2) | utterance | 14,0 | ~3,5 h | Réplicabilité — sous run_012 |
run_051 |
L-14k contrôle couche -1 | utterance | 13,6 | ~2,9 h | Piste J clos — sous run_012 |
run_052 |
L-14k + Llama-3.2-3B | utterance | 16,3 | ~2,7 h | Meilleur speechLLM — au-dessus run_013 (15,2) |
run_054 |
L-14k + Mistral-7B 4-bit | utterance | 14,2 | ~14 h | Sous Phi-2 (15,0) et Llama — ablation B2bis clos |
run_002 |
B-1k (gelé) | sentence_like | 16 | 2 h | Encodeur gelé |
run_003 |
B-1k | utterance | 7,5 | 2 h | B-1k ; bas |
run_015 |
L-14k (dégelé) | utterance | 3,7 | 2–3 h | Dégel encodeur en utterance — sous run_012 gelé |
run_017 |
L-114k | utterance | 5,6 | 15 h | échec 128 tok — hypothèses 3× trop longues |
run_021 |
L-14k | utterance | 5,5 | 4 h | échec 128 tok — même problème que run_017 |
max_new_tokens: 48 (comme run_012 et run_013). Les configs à 128 tokens produisent des hypothèses beaucoup trop longues et font chuter le BLEUScore de qualité de traduction (0–100). Une hypothèse trop longue est pénalisée même si le début est correct. → glossaire à 5–6. Les scores utterance et sentence_like ne sont pas directement comparables.
🔧 Pistes d’amélioration
-
1
Fixer
max_new_tokens: 48dans toutes les nouvelles configs utterance — les valeurs à 128 (run_017,run_021) produisent des hypothèses 3× trop longues. -
2
Lire les hypothèses produites (
eval/dev_predictions.txt) : répétitions, longueur des sorties, erreurs récurrentes — diagnostiquer avant d’ajuster les hyperparamètres. -
3
Tester d’autres LLM gelés —
run_052Llama-3.2-3B 16,3 test (meilleur speechLLM) ;run_059Phi-2 IMAG 14,8 ;run_055Llama seed 1 OVH 13,7 ;run_054Mistral 14,2. -
4
Affiner la consigne (promptTexte d’instruction donné au LLM pour guider sa réponse. → glossaire) : instruction explicite pour produire de l’anglais uniquement, sans commentaire, longueur cible. Tester plusieurs variantes de prompt.
-
5
Explorer le mode B2 : dégel partiel du LLM (pas seulement du projecteur). Risqué mais potentiellement plus performant si fait avec un LR très faible.
-
6
Réplication de
run_013(run_032, ok — 14,15 test, 48 tok — sous run_013).SpecAugmentTechnique d’augmentation de données audio : on masque aléatoirement des bandes de fréquences ou des intervalles de temps dans le spectrogramme pendant l’entraînement. → glossaire L-14k (run_039, ok — 13,84 test, sous run_023).