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 !