Zero-shot learning en NLP pour la classification de texte

Qu'est-ce que le zero-shot learning, et comment peut-il être appliqué efficacement, en NLP, à la classification de texte, grâce à Hugging Face Transformers ?

Qu'est-ce que le zero-shot learning ?

Grâce aux récents modèles NLP de pointe basés sur des transformers, le zero-shot learning a gagné beaucoup en popularité dans le monde du NLP. L'idée est qu'un modèle peut maintenant reconnaître certaines classes, même s'il n'a pas été entraîné pour cela.

C'est ce que font naturellement les êtres humains. Par exemple, si votre enfant sait ce qu'est un chameau, il suffit de lui dire qu'il existe un autre animal appelé dromadaire, très semblable à un chameau, sauf qu'il a 1 bosse sur le dos au lieu de 2 ! La prochaine fois que votre enfant verra une photo d'un dromadaire, il saura ce que c'est alors que c'est la première fois qu'il en verra un.

Les techniques Zero-Shot associent des classes observées et non observées à travers une forme d'information dite "auxiliaire", qui code les propriétés distinctives des objets. C'est une technique très répandue analyse d'image depuis longtemps, et qui est maintenant de plus en plus utilisée en NLP.

Zero-shot learning et classification de texte

Le zero-shot learning fonctionne très bien pour la classification de texte. La classification de texte consiste à appliquer une ou plusieurs catégories à un morceau de texte (espace, business, sport, etc.).

Jusqu'à récemment, les modèles de classification textuelle ne pouvaient classer que des morceaux de texte avec un nombre prédéfini de catégories candidates. Ces catégories devaient être établies à l'avance au cours de l'entraînement du modèle. C'était fastidieux parce que cela signifiait que, chaque fois que vous vouliez ajouter une catégorie, vous deviez ré-entraîner votre modèle avec plus d'exemples.

Depuis la création de modèles NLP beaucoup plus grands (la plupart du temps basés sur Transformers), il a été possible d'entraîner les modèles uniquement sur une liste spécifique de catégories, puis laisser les utilisateurs créer de nouvelles catégories à la volée sans avoir à ré-entraîner le modèle.

Par exemple, disons que votre modèle de classification de texte zero-shot a été entraîné pour reconnaître seulement 3 catégories : l'espace, la nature et le sport. Vous pouvez toujours l'utiliser pour catégoriser des textes pour d'autres catégories, comme par exemple le business, l'alimentation ou la science.

C'est une technique très puissante qui permet beaucoup de flexibilité tout en donnant de très bons résultats.

Les meilleurs modèles de classification zero-shot

Il existe d'excellents modèles NLP open-source, basés sur Hugging Face Transformers, qui fonctionnent vraiment bien pour la classification de texte zéro-shot.

Chez NLP Cloud, nous avons sélectionné ces 2 modèles qui, à notre avis, sont les meilleurs modèles à la pointe de la technologie pour la classification de texte zero-shot pour le moment :

Même si leur précision est impressionnante et leur latence est assez bonne, ces 2 modèles restent des modèles gourmands en calcul, et la latence peut facilement augmenter si le texte que vous voulez analyser devient trop grand ou le nombre de catégories candidates est trop élevé. Si la précision n'est pas votre principale préoccupation, et que vous préférerez un modèle plus rapide et moins exigeant en ressources, vous pouvez facilement choisir un autre modèle. Par exemple, des versions distillées de Bart existent, appelé "DistilBart", et elles sont parfaites pour cela.

Conclusion

Le zero-shot learning, utilisé avec le few-shot learning, sont des techniques modernes qui sont apparues avec la création des modèles NLP de très grande taille. Ils donnent beaucoup de flexibilité et rendent le traitement automatique du langage de plus en plus impressionnant !

N'hésitez pas à essayer la classification zero-shot et voyez ce que vous en pensez.

Julien Salinas
CTO chez NLP Cloud