← Retourner à la liste des articles
Image blog
Auteur

Par Équipe Blent

Data Scientist

Publié le 20 sept. 2022

Catégorie Machine Learning

Hugging Face : tout savoir sur la startup Deep Learning

Lorsqu'on travaille sur un problème de Machine Learning, l’adaptation et l'amélioration d’une solution existante et sa réutilisation peuvent aider à trouver des solutions de haute performance beaucoup plus rapidement. Utiliser des modèles existants est non seulement bénéfique pour les data scientists, mais aussi pour les entreprises. Cela leur permet d'économiser en matière de coûts de calcul et de gagner du temps. Aujourd'hui, il y existe plusieurs entreprises qui fournissent des bibliothèques open source contenant des modèles pré-formés et Hugging Face est l’un d’entre eux.

Hugging Face est une startup française qui s'est fait connaître grâce à l'infrastructure NLP qu'ils ont développée. Aujourd'hui, elle est sur le point de révolutionner le domaine du Machine Learning et traitement automatique du langage naturel.

Dans cet article, nous allons présenter Hugging Face et détailler les taches de base que cette librairie permet de réaliser. Nous allons également énumérer ses avantages et ses alternatifs.

Hugging Face : qu’est-ce que c’est ?

Hugging Face est une librairie de NLP open-source qui offre une API permettant d’accéder à plusieurs modèles pré-entraînés. Elle facilite l’apprentissage et l’expérimentation, car les modèles sont déjà entraînés et prêts à être utilisés. Elle propose également des outils pour gérer les données et les modèles, ainsi que pour développer et entraîner de nouveaux modèles.


À lire aussi : découvrez notre formation MLOps


Cette startup a été créée en 2015 en tant qu'entreprise nommée ItNest, fondée par Victor Sanh et Thomas Wolf, avec une mission de rendre l’intelligence artificielle accessible à tous. Elle a été rebaptisée Hugging Face en 2016.

En 2019, l’entreprise a levé 15 millions de dollars de financement de série A, avec Menlo Ventures comme principal investisseur. Pionnier de l’IA, elle a été nommée l’une des entreprises les plus innovantes du monde en 2020 par MIT Technology Review.

Hugging Face a développé une gamme de produits basés sur l’IA, notamment une librairie d’apprentissage en profondeur open source appelée Transformers. Elle propose également une plateforme de collaboration en ligne permettant aux utilisateurs de gérer, partager et développer leurs modèles d’IA.

HuggingFace Logo

La bibliothèque Hugging Face présente de multiples avantages. En voici quelques-uns :

  1. Elle offre une grande variété de modèles pré-entraînés pour différents types de tâches de NLP, y compris la classification de texte, la détection d'entités nommées, la génération de texte, etc.
  2. Elle est facile à utiliser et peut être intégré à d'autres frameworks et applications.
  3. Elle offre une bonne documentation et une communauté active.
  4. La plateforme propose également des outils pour simplifier le déploiement des modèles de NLP sur des serveurs et des appareils mobiles.

Les produits de Hugging Face

Au cours des dernières années, Hugging Face a lancé plusieurs produits, on en prendra quelques exemples :

Chatbots

Parmi ces principaux produits, on a ces applications de chatbot qui permettent aux utilisateurs d’interagir avec l’intelligence artificielle que l’entreprise a développé. Pour ce faire, Hugging Face a développé son propre modèle de traitement du langage naturel (NLP) appelé Hierarchical Multi-Task Learning (HMTL) et a géré une bibliothèque de modèles NLP pré-formés sous PyTorch-Transformers uniquement disponible sur iOS. Ces applications sont Chatty, Talking Dog, Talking Egg, et Boloss. Ces AI sont destinés à être un compagnon numérique qui peut divertir les utilisateurs.

Code

Bibliothèques de Python

Cette startup a également développé un ensemble d'outils dédié à sa communauté de développeurs afin de leur permettre de gérer, partager et développer leurs modèles de Machine Learning ;

  • Transformers: bibliothèque open-source pour entraîner et déployer modèles de NLP basée sur Python et qui expose une API à utiliser de nombreuses architectures de transformateurs bien connues, telles que BERT, RoBERTa, GPT-2 ou DistilBERT. Ces derniers obtiennent des résultats de pointe sur une variété de tâches NLP comme la classification de texte, l’extraction d’informations, réponse aux questions et génération de texte. Ces architectures sont pré-entrainés avec plusieurs ensembles de poids.

  • Datasets: bibliothèque open-source pour accéder à plus de 100 jeux de données NLP.

  • Tokenizers: bibliothèque open-source pour tokenizer plus de 40 langues.

  • Accelerate: est une API facile pour faire fonctionner des scripts avec une précision mitigée et dans n’importe quel type de configuration distribuée (multi-GPU, TPU, etc.) tout en permettant de coder ses propres boucles d’entraînement. Le même code peut alors s’exécuter facilement sur une machine locale pour le débogage ou un environnement d’entraînement. Accelerate fournit également un outil CLI qui permet de configurer et de tester rapidement les environnements d'entrainement, puis de lancer les scripts.

BLOOM

BLOOM est un modèle LLM (Large Language Model) open-source autorégressif entrainé pour compléter du texte. Il est capable de produire un texte cohérent en 46 langues tel que l’espagnol, le français et l’arabe. Et du code en 13 langages de programmation qui est très proche du texte écrit par les humains. BLOOM peut également être chargé d’effectuer des tâches de texte pour lesquelles il n’a pas été explicitement formé, en les projetant comme tâches de génération de texte.

BLOOM sera le premier modèle de langue avec plus de 100 billions paramètres jamais créés.

Code

Une formation en NLP

En plus de la documentation, Hugging Face propose une formation en NLP en utilisant des bibliothèques de l’écosystème Hugging Face tels que le biliotheque Transformers, Datasets, Tokenizers, et Accelerate, ainsi que le Hugging Face Hub.

Code

La formation est complètement gratuite et sans publicité.

Démarrer avec Hugging Face

Hugging Face offre plusieurs transformateurs et modèles spécifiques à des tâches particulières.

Sur leur site Web, sur la page "Models" nous voyons une liste de tâches, bibliothèques, ensembles de données, langues, etc.

Cette interface permet de filtrer les modèles facilement, il suffit de sélectionner ce qui convient à notre cas d'utilisation.

Code

Supposons que nous sommes à la recherche de modèles qui peuvent satisfaire les exigences ci-dessous :

  • Traduit le texte d’une langue à une autre
  • Adapté à PyTorch

Une fois que nous avons sélectionné ces filtres, nous obtenons une liste de modèles pré-entrainés comme ci-dessous :

Code

Une fois que nous avons sélectionné un modèle dans la liste, nous pouvons commencer à configurer notre environnement de travail. Nous allons donc installer Pytorch et la bibliothèque Transformers de Hugging Face.

!pip install torch
!pip install transformers

Nous allons ensuite cliquer sur notre modèle de choix, et ensuite sur "Use in Transformers"

Code

Il suffit maintenant de copier le code et l'exécuter.

Code

from transformers import AutoTokenizer, AutoModelWithLMHead
tokenizer = AutoTokenizer.from_pretrained("t5-base")
model = AutoModelWithLMHead.from_pretrained("t5-base")

Code

Une fois le modèle est téléchargé, il est prêt à être utiliser. La plupart des modèles sur la plateforme sont importés de la même manière.


À lire aussi : découvrez notre formation MLOps


Les limitations et les alternatives de Hugging Face

Malgré la qualité de ses modèles et sa richesse fonctionnelle, Hugging Face a des lacunes importantes :

  • Il ne prend pas en charge le traitement de tous les types de données textuelles, y compris le texte non structuré.

  • Il ne fournit pas de fonctionnalités de prédiction en ligne, les modèles doivent être importés en locale pour les utiliser, ce qui limite son utilisation à des fins de production.

  • Il est aussi un peu difficile de trouver des modèles pré-entraînés. Cela est dû au fait que les modèles sont entraînés par différentes personnes et qu'il n'y a pas de dépositoire centralisé. De plus, il est extrêmement difficile de comparer les performances de différents modèles, car il n'y a pas de benchmarking standard.

Il y a également quelques limitations à l'utilisation de Hugging Face Transformers. La principale est qu'il s'agit d'un projet open source, ce qui signifie qu'il n'y a pas de support officiel. En plus, La documentation est parfois peu claire. Cela peut être un problème pour certains utilisateurs, surtout ceux qui ne sont pas à l'aise avec le code.

De plus, Transformers est assez nouveau et il y a encore quelques fonctionnalités manquantes. Par exemple, il n'y a pas de prise en charge des architectures de réseaux de neurones récurrents (RNN). Cela signifie que si vous avez besoin d'une architecture RNN pour votre projet NLP, vous devrez probablement utiliser une autre bibliothèque.

Enfin, il y a quelques alternatives à Hugging Face Transformers qui pourraient mieux vous convenir. TensorFlow est une bibliothèque open source pour l'apprentissage automatique, qui prend également en charge les RNN.

D'autres alternatives à Hugging Face incluent Google's AutoML, IBM Watson, et Microsoft Azure.

La plateforme Hugging Face offre à chacun la possibilité, par le biais de ses dépositoires open-source, de démarrer avec les problèmes du NLP. Ils ont également plusieurs tutoriels complets sur leur site Web pour guider les membres de sa communauté à utiliser leur bibliothèque. Donc si vous êtes un développeur qui souhaite se lancer dans le NLP, Hugging Face est une excellente option, car elle simplifie le processus d’apprentissage et d’expérimentation.

Articles similaires

Blog

12 juil. 2022

Machine Learning

spaCy est une bibliothèque open-source pour le traitement avancé du langage naturel. Elle est conçue spécifiquement pour une utilisation en production et permet de construire des applications qui traitent et comprennent de grands volumes de texte.

Nada Belaidi

Équipe Blent

Data Scientist

Lire l'article

Blog

4 juil. 2022

Machine Learning

Un auto-encodeur est une structure de réseaux neuronaux profonds qui s'entraîne pour réduire la quantité de données nécessaires pour représenter une donnée d'entrée. Ils sont couramment utilisés en apprentissage automatique pour effectuer des tâches de compression de données, d'apprentissage de représentations et de détection de motifs.

Nada Belaidi

Équipe Blent

Data Scientist

Lire l'article

Blog

28 juin 2022

Machine Learning

Les réseaux neuronaux récurrents ou les RNNs en abrégé sont une variante des réseaux neuronaux artificiels qui peuvent traiter des données séquentielles et peuvent être entrainés pour détenir les connaissances sur le passé. Les RNNs sont couramment utilisés dans les domaines de l'apprentissage automatique, de traitement de langage naturel et de reconnaissance de formes.

Nada Belaidi

Équipe Blent

Data Scientist

Lire l'article