subtitles/fr/01_the-pipeline-function.srt (147 lines of code) (raw):

1 0:00:05.680 --> 0:00:09.360 La fonction pipeline. 2 0:00:09.360 --> 0:00:13.840 La fonction pipeline est l'API de plus haut niveau de la bibliothèque Transformers. 3 0:00:13.840 --> 0:00:20.960 Elle regroupe toutes les étapes pour passer des textes bruts à des prédictions utilisables. Le modèle utilisé 4 0:00:20.960 --> 0:00:26.480 est au cœur d'un pipeline mais ce dernier comprend également tous les pré-traitements nécessaires 5 0:00:26.480 --> 0:00:30.000 (puisque le modèle n'attend pas des textes, mais des chiffres) 6 0:00:30.000 --> 0:00:35.680 ainsi qu'un post-traitement pour rendre la sortie du modèle lisible par l'homme. 7 0:00:35.680 --> 0:00:41.200 Prenons un premier exemple avec le pipeline d'analyse des sentiments. Ce pipeline 8 0:00:41.200 --> 0:00:47.760 effectue une classification de texte sur une entrée donnée et détermine si elle est positive ou négative. 9 0:00:47.760 --> 0:00:55.440 Ici, il a attribué l'étiquette positive sur le texte donné, avec une confiance de 95%. 10 0:00:55.440 --> 0:00:59.520 Vous pouvez transmettre plusieurs textes au même pipeline qui seront traités 11 0:00:59.520 --> 0:01:05.840 et passés ensembe dans le modèle, comme un batch. La sortie est une liste de résultats individuels, 12 0:01:05.840 --> 0:01:12.080 dans le même ordre que les textes en entrée. Ici, nous trouvons la même étiquette et le même score pour le premier texte 13 0:01:12.080 --> 0:01:18.480 et le second texte est jugé négatif avec un niveau de confiance de 99,99%. 14 0:01:18.480 --> 0:01:23.360 Le pipeline de classification « zero-shot » est un pipeline de classification de texte plus général 15 0:01:23.360 --> 0:01:28.320 qui permet de fournir les étiquettes que vous voulez. Ici, nous voulons classer notre entrée 16 0:01:28.320 --> 0:01:35.360 textuelle le long des étiquettes « éducation », « politique » et « affaires ». Le pipeline reconnaît avec succès 17 0:01:35.360 --> 0:01:41.440 qu'il s'agit davantage d'« éducation » que des autres étiquettes, avec un taux de confiance de 84%. 18 0:01:41.440 --> 0:01:47.200 Pour passer à d'autres tâches, le pipeline de génération de texte complétera automatiquement un « prompt » donné. 19 0:01:47.200 --> 0:01:49.760 La sortie est générée avec un peu de hasard, 20 0:01:49.760 --> 0:01:54.800 de sorte qu'il change chaque fois que vous appelez l'objet générateur sur un « prompt » donné. 21 0:01:54.800 --> 0:02:00.080 Jusqu'à présent, nous avons utilisé l'API de pipeline avec le modèle par défaut associé à chaque tâche, 22 0:02:00.080 --> 0:02:06.320 mais vous pouvez l'utiliser avec n'importe quel modèle qui a été pré-entraîné ou finetuné pour cette tâche. 23 0:02:06.320 --> 0:02:10.080 En allant sur le Hub des modèles (https://huggingface.co/models), 24 0:02:10.080 --> 0:02:14.320 vous pouvez filtrer les modèles disponibles par tâche. Le modèle par défaut utilisé dans notre 25 0:02:14.320 --> 0:02:21.280 exemple précédent était le GPT-2, mais il existe de nombreux autres modèles disponibles, et pas seulement en anglais ! 26 0:02:21.280 --> 0:02:27.120 Revenons au pipeline de génération de texte et chargeons-le avec un autre modèle, le distilgpt2. C'est 27 0:02:27.120 --> 0:02:33.120 une version allégée de GPT-2 créée par l'équipe d'Hugging Face. Lorsque l'on applique le pipeline à un 28 0:02:33.120 --> 0:02:39.280 « prompt », nous pouvons spécifier plusieurs arguments, tels que la longueur maximale des textes générés, ou 29 0:02:39.280 --> 0:02:45.920 le nombre de phrases que l'on veut retourner (puisqu'il y a une part d'aléatoire dans la génération). 30 0:02:45.920 --> 0:02:51.200 Générer du texte en devinant le mot suivant dans une phrase était l'objectif de pré-entraînement de GPT-2, 31 0:02:51.200 --> 0:02:54.880 le pipeline de masques de remplissage est l'objectif de pré-entraînement de BERT 32 0:02:54.880 --> 0:03:00.960 consiste à deviner la valeur du mot masqué. Dans ce cas, nous demandons les deux valeurs les plus probables pour 33 0:03:00.960 --> 0:03:08.000 les mots manquants (selon le modèle) et obtenons des réponses mathématiques ou informatiques comme réponses possibles. 34 0:03:08.000 --> 0:03:12.480 Une autre tâche que les transformers peuvent effectuer est de classer chaque mot de la phrase 35 0:03:12.480 --> 0:03:18.640 au lieu de la phrase dans son ensemble. La reconnaissance des entités nommées en est un exemple. Il s'agit 36 0:03:18.640 --> 0:03:27.200 de la tâche consistant à identifier des entités, telles que des personnes, des organisations ou des lieux, dans une phrase. Ici, 37 0:03:27.200 --> 0:03:30.240 le modèle trouve correctement la personne (Sylvain), 38 0:03:30.240 --> 0:03:37.440 l'organisation (Hugging Face) ainsi que la localisation (Brooklyn) dans le texte d'entrée. 39 0:03:37.440 --> 0:03:42.080 L'argument « grouped_entities=True » est utilisé pour que le pipeline regroupe 40 0:03:42.080 --> 0:03:48.000 les différents mots liés à une même entité (comme « Hugging » et « Face » ici). 41 0:03:48.000 --> 0:03:52.720 Une autre tâche disponible avec l'API de pipeline est la réponse aux questions. 42 0:03:52.720 --> 0:03:57.280 En fournissant un contexte et une question, le modèle identifiera dans le contexte 43 0:03:57.280 --> 0:04:01.440 l'étendue du texte contenant la réponse à la question. 44 0:04:01.440 --> 0:04:03.920 Obtenir de courts résumés de très longs articles est 45 0:04:03.920 --> 0:04:09.360 aussi quelque chose que la bibliothèque Transformers peut aider, avec le pipeline de résumé. 46 0:04:09.360 --> 0:04:15.040 Enfin, la dernière tâche prise en charge par l'API de pipeline est la traduction. Ici, nous utilisons un 47 0:04:15.040 --> 0:04:21.360 modèle français/anglais trouvé sur le Hub des modèles pour obtenir la traduction en anglais de notre texte d'entrée. 48 0:04:21.360 --> 0:04:25.280 Voici un bref résumé de toutes les tâches que nous avons examinées dans cette vidéo. 49 0:04:25.280 --> 0:04:28.280 Essayez grâce aux widgets d'inférence du Hub des modèles !