subtitles/fr/60_what-is-the-bleu-metric.srt (165 lines of code) (raw):

1 00:00:05,520 --> 00:00:12,080 Qu'est-ce que la métrique BLEU ? Pour de nombreuses tâches de NLP, nous pouvons utiliser des métriques courantes telles que la précision ou le score F1, 2 00:00:12,080 --> 00:00:15,280 mais que faites-vous lorsque vous souhaitez mesurer la qualité du texte généré à partir d'un 3 00:00:15,280 --> 00:00:19,680 modèle ? Dans cette vidéo, nous allons examiner une métrique largement utilisée pour la traduction automatique 4 00:00:19,680 --> 00:00:22,960 appelée BLEU. L'idée de base de 5 00:00:22,960 --> 00:00:27,280 BLEU est d'attribuer un score numérique unique à une traduction qui nous indique à quel point elle est bonne 6 00:00:27,280 --> 00:00:32,080 par rapport à une ou plusieurs traductions de référence. Dans cet exemple, nous avons une phrase en espagnol qui 7 00:00:32,080 --> 00:00:37,280 a été traduite en anglais par un modèle. Si nous comparons la traduction générée à certaines 8 00:00:37,280 --> 00:00:42,160 traductions humaines de référence, nous pouvons voir que le modèle est plutôt bon, mais a fait une erreur courante : 9 00:00:42,960 --> 00:00:48,000 le mot espagnol « tengo » signifie « avoir » en anglais et cette traduction un à un n'est pas tout à fait naturel. 10 00:00:49,680 --> 00:00:53,280 Alors, comment mesurer automatiquement la qualité d'une traduction générée ? 11 00:00:54,080 --> 00:00:58,000 L'approche adoptée par BLEU consiste à comparer les n-grammes de la traduction générée aux 12 00:00:58,000 --> 00:01:03,760 n-grammes des références. Un n-gramme n'est qu'une façon élégante de dire « un morceau de n mots ». 13 00:01:03,760 --> 00:01:07,280 Donc commençons par les unigrammes, qui correspondent aux mots individuels d'une phrase. 14 00:01:08,720 --> 00:01:12,160 Dans cet exemple, vous pouvez voir que quatre des mots de la traduction générée 15 00:01:12,160 --> 00:01:18,000 sont également trouvés dans l'une des traductions de référence. Maintenant que nous avons trouvé nos correspondances, 16 00:01:18,000 --> 00:01:21,920 une façon d'attribuer un score à la traduction consiste à calculer la précision des unigrammes. 17 00:01:22,880 --> 00:01:27,200 Cela signifie que nous comptons simplement le nombre de mots correspondants dans les traductions générées et de référence 18 00:01:27,200 --> 00:01:30,400 et que nous normalisons le nombre en divisant par le nombre de mots dans la génération. 19 00:01:31,600 --> 00:01:35,600 Dans cet exemple, nous avons trouvé 4 mots correspondants et notre génération a 5 mots, 20 00:01:36,960 --> 00:01:40,320 donc notre précision unigramme est de 4/5 ou 0,8. En général, la précision est comprise entre 0 et 1, et des 21 00:01:40,320 --> 00:01:48,160 scores de précision plus élevés signifient une meilleure traduction. L'un des problèmes de la précision des unigrammes est que les modèles de traduction restent 22 00:01:48,160 --> 00:01:51,840 parfois bloqués dans des schémas répétitifs et répètent plusieurs fois le même mot. 23 00:01:52,960 --> 00:01:56,240 Si nous comptons simplement le nombre de correspondances de mots, nous pouvons obtenir des scores de très haute précision 24 00:01:56,240 --> 00:01:58,720 même si la traduction est terrible d'un point de vue humain ! 25 00:01:59,840 --> 00:02:04,640 Par exemple, si notre modèle génère simplement le mot « six », nous obtenons un score de précision unigramme parfait. 26 00:02:07,040 --> 00:02:12,000 Pour gérer cela, BLEU utilise une précision modifiée qui limite le nombre de fois pour compter un mot, en 27 00:02:12,000 --> 00:02:14,960 fonction du nombre maximal de fois qu'il apparaît dans la traduction de référence. 28 00:02:16,160 --> 00:02:19,360 Dans cet exemple, le mot « six » n'apparaît qu'une seule fois dans la référence. 29 00:02:19,360 --> 00:02:23,840 Nous coupons donc le numérateur à un et la précision de l'unigramme modifié donne désormais un score beaucoup plus faible. 30 00:02:27,440 --> 00:02:31,600 Un autre problème avec la précision unigramme est qu'elle ne tient pas compte de l'ordre des 31 00:02:31,600 --> 00:02:37,200 mots dans les traductions. Par exemple, supposons que nous ayons demandé à Yoda de traduire notre phrase en espagnol, 32 00:02:37,200 --> 00:02:43,120 nous pourrions alors obtenir quelque chose à l'envers comme « années trente six j'ai ». Dans ce cas, 33 00:02:43,120 --> 00:02:46,560 la précision unigramme modifiée donne une haute précision qui n'est pas ce que nous voulons. 34 00:02:48,240 --> 00:02:52,400 Ainsi, pour traiter les problèmes d'ordre des mots, BLEU calcule en fait la précision pour plusieurs 35 00:02:52,400 --> 00:02:57,360 n-grammes différents, puis calcule la moyenne du résultat. Par exemple, si nous comparons 4-grammes, nous pouvons 36 00:02:57,360 --> 00:03:03,840 voir qu'il n'y a pas de blocs correspondants de 4 mots dans les traductions et donc la précision de 4-grammes est de 0. 37 00:03:05,440 --> 00:03:10,880 Pour calculer les scores BLEU dans la bibliothèque Datasets, c'est très simple : il suffit d'utiliser la fonction `load_metric(), 38 00:03:10,880 --> 00:03:13,840 fournir les prédictions de votre modèle avec les références et vous êtes prêt ! 39 00:03:16,240 --> 00:03:19,920 Le résultat contient plusieurs champs d'intérêt. Le champ `précisions` 40 00:03:19,920 --> 00:03:22,800 contient tous les scores de précision individuels pour chaque n-gramme. 41 00:03:24,800 --> 00:03:30,320 Le score `bleu` lui-même est ensuite calculé en prenant la moyenne géométrique des scores de précision. Par 42 00:03:30,320 --> 00:03:34,880 défaut, la moyenne des précisions des quatre n-grammes est rapportée, une métrique parfois également appelée 43 00:03:34,880 --> 00:03:40,480 BLEU-4. Dans cet exemple, nous pouvons voir que le score BLEU est égal à 0 car la précision du 4-grammes était de 0. 44 00:03:43,440 --> 00:03:46,640 La métrique BLEU a de belles propriétés, mais elle est loin d'être une métrique parfaite. 45 00:03:47,280 --> 00:03:51,520 Les bonnes propriétés sont qu'il est facile à calculer et largement utilisé dans la recherche afin que vous puissiez comparer 46 00:03:51,520 --> 00:03:56,560 votre modèle à d'autres sur un benchmark. D'autre part, il y a plusieurs problèmes avec BLEU, 47 00:03:56,560 --> 00:04:00,560 y compris le fait qu'elle n'intègre pas la sémantique et les difficultés sur les langues autres que l'anglais. 48 00:04:01,680 --> 00:04:04,560 Un autre problème avec BLEU est qu'elle suppose que les traductions humaines ont 49 00:04:04,560 --> 00:04:08,400 déjà été tokenisées, ce qui rend difficile la comparaison de modèles avec différents tokenizers. 50 00:04:11,200 --> 00:04:15,280 Comme nous avons vu, mesurer la qualité des textes reste un problème difficile et ouvert en recherche en NLP. 51 00:04:15,280 --> 00:04:17,680 Pour la traduction automatique, la recommandation actuelle est 52 00:04:17,680 --> 00:04:21,600 d'utiliser la métrique SacreBLEU qui résout les limites de tokenisation de BLEU. 53 00:04:22,640 --> 00:04:26,560 Comme vous pouvez le voir dans cet exemple, le calcul du score SacreBLEU est presque identique à celui 54 00:04:26,560 --> 00:04:30,800 du BLEU. La principale différence est que nous passons maintenant une liste de textes au lieu d'une liste 55 00:04:30,800 --> 00:04:41,200 de mots pour les traductions, et SacreBLEU s'occupe de la tokenisation sous le capot.