La fonction pipeline.
La fonction pipeline est l'API de plus haut niveau de la bibliothèque Transformers.
Elle regroupe toutes les étapes pour passer des textes bruts à des prédictions utilisables. Le modèle utilisé
est au cœur d'un pipeline mais ce dernier comprend également tous les pré-traitements nécessaires
(puisque le modèle n'attend pas des textes, mais des chiffres)
ainsi qu'un post-traitement pour rendre la sortie du modèle lisible par l'homme.
Prenons un premier exemple avec le pipeline d'analyse des sentiments. Ce pipeline
effectue une classification de texte sur une entrée donnée et détermine si elle est positive ou négative.
Ici, il a attribué l'étiquette positive sur le texte donné, avec une confiance de 95%.
Vous pouvez transmettre plusieurs textes au même pipeline qui seront traités
et passés ensembe dans le modèle, comme un batch. La sortie est une liste de résultats individuels,
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
et le second texte est jugé négatif avec un niveau de confiance de 99,99%.
Le pipeline de classification « zero-shot » est un pipeline de classification de texte plus général
qui permet de fournir les étiquettes que vous voulez. Ici, nous voulons classer notre entrée
textuelle le long des étiquettes « éducation », « politique » et « affaires ». Le pipeline reconnaît avec succès
qu'il s'agit davantage d'« éducation » que des autres étiquettes, avec un taux de confiance de 84%.
Pour passer à d'autres tâches, le pipeline de génération de texte complétera automatiquement un « prompt » donné.
La sortie est générée avec un peu de hasard,
de sorte qu'il change chaque fois que vous appelez l'objet générateur sur un « prompt » donné.
Jusqu'à présent, nous avons utilisé l'API de pipeline avec le modèle par défaut associé à chaque tâche,
mais vous pouvez l'utiliser avec n'importe quel modèle qui a été pré-entraîné ou finetuné pour cette tâche.
En allant sur le Hub des modèles (https://huggingface.co/models),
vous pouvez filtrer les modèles disponibles par tâche. Le modèle par défaut utilisé dans notre
exemple précédent était le GPT-2, mais il existe de nombreux autres modèles disponibles, et pas seulement en anglais !
Revenons au pipeline de génération de texte et chargeons-le avec un autre modèle, le distilgpt2. C'est
une version allégée de GPT-2 créée par l'équipe d'Hugging Face. Lorsque l'on applique le pipeline à un
« prompt », nous pouvons spécifier plusieurs arguments, tels que la longueur maximale des textes générés, ou
le nombre de phrases que l'on veut retourner (puisqu'il y a une part d'aléatoire dans la génération).
Générer du texte en devinant le mot suivant dans une phrase était l'objectif de pré-entraînement de GPT-2,
le pipeline de masques de remplissage est l'objectif de pré-entraînement de BERT
consiste à deviner la valeur du mot masqué. Dans ce cas, nous demandons les deux valeurs les plus probables pour
les mots manquants (selon le modèle) et obtenons des réponses mathématiques ou informatiques comme réponses possibles.
Une autre tâche que les transformers peuvent effectuer est de classer chaque mot de la phrase
au lieu de la phrase dans son ensemble. La reconnaissance des entités nommées en est un exemple. Il s'agit
de la tâche consistant à identifier des entités, telles que des personnes, des organisations ou des lieux, dans une phrase. Ici,
le modèle trouve correctement la personne (Sylvain),
l'organisation (Hugging Face) ainsi que la localisation (Brooklyn) dans le texte d'entrée.
L'argument « grouped_entities=True » est utilisé pour que le pipeline regroupe
les différents mots liés à une même entité (comme « Hugging » et « Face » ici).
Une autre tâche disponible avec l'API de pipeline est la réponse aux questions.
En fournissant un contexte et une question, le modèle identifiera dans le contexte
l'étendue du texte contenant la réponse à la question.
Obtenir de courts résumés de très longs articles est
aussi quelque chose que la bibliothèque Transformers peut aider, avec le pipeline de résumé.
Enfin, la dernière tâche prise en charge par l'API de pipeline est la traduction. Ici, nous utilisons un
modèle français/anglais trouvé sur le Hub des modèles pour obtenir la traduction en anglais de notre texte d'entrée.
Voici un bref résumé de toutes les tâches que nous avons examinées dans cette vidéo.
Essayez grâce aux widgets d'inférence du Hub des modèles !