subtitles/fr/51_byte-pair-encoding-tokenization.srt (125 lines of code) (raw):

1 00:00:05,120 --> 00:00:07,440 Vous êtes au bon endroit si vous voulez 2 00:00:07,440 --> 00:00:15,360 comprendre ce qu'est l'algorithme de tokenisation en sous-mots « Byte Pair Encoding », comment l'entraîner 3 00:00:15,360 --> 00:00:18,640 et comment la tokenisation d'un texte est effectuée avec cet algorithme. 4 00:00:21,600 --> 00:00:25,920 L'algorithme BPE a été initialement proposé en tant qu'algorithme de compression de texte 5 00:00:26,640 --> 00:00:30,800 mais il est également très bien adapté en tant que tokenizer pour vos modèles de langage. 6 00:00:32,560 --> 00:00:38,720 L'idée de BPE est de diviser les mots en une séquence d'unités de sous-mots qui sont des unités 7 00:00:38,720 --> 00:00:44,400 qui apparaissent fréquemment dans un corpus de référence, qui est le corpus que nous avons utilisé pour l'entraîner. 8 00:00:46,560 --> 00:00:53,680 Comment un tokenizer BPE est-il entrapiné ? Tout d'abord, nous devons obtenir un corpus de textes. Nous n'entraînerons pas 9 00:00:54,480 --> 00:01:02,080 notre tokenizer sur ce texte brut, mais nous le normaliserons d'abord, puis le prétokeniserons. Comme la 10 00:01:02,080 --> 00:01:07,520 prétokénisation divise le texte en une liste de mots, nous pouvons représenter notre corpus d'une autre 11 00:01:07,520 --> 00:01:14,000 manière en rassemblant les mêmes mots et en maintenant un compteur, ici représenté en bleu. 12 00:01:17,120 --> 00:01:22,960 Pour comprendre le fonctionnement de l'entraînement, nous considérons ce corpus jouet composé des mots suivants : 13 00:01:23,520 --> 00:01:32,480 huggingface, hugging, hug, hugger, etc. BPE est un algorithme qui commence par un vocabulaire initial 14 00:01:32,480 --> 00:01:35,200 puis l'augmente jusqu'à la taille souhaitée. 15 00:01:36,240 --> 00:01:41,360 Pour construire le vocabulaire initial, on commence par séparer chaque mot du corpus 16 00:01:41,360 --> 00:01:46,640 en une liste d'unités élémentaires qui les composent, ici les caractères. 17 00:01:50,800 --> 00:01:50,900 18 00:01:51,360 --> 00:01:57,760 Nous listons dans notre vocabulaire tous les caractères qui apparaissent et qui constitueront notre vocabulaire initial ! 19 00:02:00,240 --> 00:02:09,840 Voyons maintenant comment l'augmenter. Nous revenons à notre corpus divisé, nous allons parcourir les mots 20 00:02:09,840 --> 00:02:18,480 un par un et compter toutes les occurrences de paires de tokens. La première paire est composée du token « h » 21 00:02:18,480 --> 00:02:26,080 et « u », la seconde « u » et « g », et nous continuons ainsi jusqu'à ce que nous ayons la liste complète. 22 00:02:35,440 --> 00:02:41,200 Une fois que nous connaissons tous les couples et leur fréquence d'apparition, nous choisirons celui qui 23 00:02:41,200 --> 00:02:49,840 apparaît le plus fréquemment : ici, il s'agit du couple composé des lettres « l » et « e ». 24 00:02:51,680 --> 00:02:57,040 Nous notons notre première règle de fusion et nous ajoutons le nouveau token à notre vocabulaire. 25 00:03:00,080 --> 00:03:04,080 Nous pouvons ensuite appliquer cette règle de fusion à nos divisions : 26 00:03:04,080 --> 00:03:09,280 vous pouvez voir que nous avons fusionné toutes les paires de tokens composées des tokens « l » et « e ». 27 00:03:13,840 --> 00:03:19,040 Et maintenant il ne nous reste plus qu'à reproduire les mêmes étapes avec nos nouvelles divisions : 28 00:03:21,520 --> 00:03:24,640 on calcule la fréquence d'occurrence de chaque paire de tokens, 29 00:03:27,760 --> 00:03:33,680 on sélectionne la paire avec la fréquence la plus élevée, on la note dans nos règles de fusion, 30 00:03:35,760 --> 00:03:38,720 on ajoute la nouvelle à le vocabulaire, 31 00:03:39,600 --> 00:03:46,160 puis nous fusionnons toutes les paires de tokens composées du token « le » et « a » dans nos divisions. 32 00:03:50,160 --> 00:03:59,840 Et nous pouvons répéter cette opération jusqu'à atteindre la taille de vocabulaire souhaitée. 33 00:04:05,600 --> 00:04:13,200 Ici, nous nous sommes arrêtés lorsque notre vocabulaire a atteint 21 tokens. Nous pouvons voir maintenant que les mots de notre 34 00:04:13,200 --> 00:04:20,560 corpus sont maintenant divisés en beaucoup moins de tokens qu'au début de la entraînement. Nous pouvons voir que 35 00:04:20,560 --> 00:04:27,840 notre algorithme a appris les radicaux « hug » et « learn » ainsi que la terminaison verbale « ing ». 36 00:04:29,760 --> 00:04:35,600 Maintenant que nous avons appris notre vocabulaire et nos règles de fusion, nous pouvons tokeniser de nouveaux textes. 37 00:04:37,840 --> 00:04:41,120 Par exemple, si nous voulons symboliser le mot 38 00:04:41,120 --> 00:04:48,480 « hugs » : nous allons d'abord le diviser en unités élémentaires afin qu'il devienne une séquence de caractères. 39 00:04:49,840 --> 00:04:53,680 Ensuite, nous passerons en revue nos règles de fusion jusqu'à ce que nous en ayons une que nous puissions appliquer. 40 00:04:54,480 --> 00:05:01,040 Ici, nous pouvons fusionner les lettres « h » et « u ». Et ici, nous pouvons fusionner 2 tokens pour obtenir le nouveau token « hug ». 41 00:05:02,240 --> 00:05:09,840 Lorsque nous arrivons à la fin de notre règle de fusion, la tokenisation est terminée. 42 00:05:10,640 --> 00:05:22,400 Et ça y est, j'espère que maintenant l'algorithme BPE n'a plus de secret pour vous !