Qu’est-ce que Hugging Face ?
Le Hub Hugging Face est une plateforme de collaboration qui héberge une vaste collection de modèles et de jeux de données open-source pour l’apprentissage automatique, pensez-y comme à Github pour le ML. Le hub facilite le partage et la collaboration en vous permettant de découvrir, d’apprendre et d’interagir facilement avec des ressources ML utiles de la communauté open-source. Le hub s’intègre et est utilisé en conjonction avec la bibliothèque Transformers, car les modèles déployés à l’aide de la bibliothèque Transformers sont téléchargés depuis le hub.
Concepts autour de Hugging Face
Hugging Face Transformers
Hugging Face Transformers est une bibliothèque Python open-source qui donne accès à des milliers de modèles Transformers pré-entraînés pour le traitement du langage naturel (NLP), la vision par ordinateur, les tâches audio, et plus encore. Elle simplifie le processus de mise en œuvre des modèles Transformer en abstraitant la complexité de l’entraînement ou du déploiement des modèles dans des frameworks ML de bas niveau comme PyTorch, TensorFlow et JAX.
Hugging Face Spaces
Spaces de Hugging Face est un service disponible sur le Hub Hugging Face qui fournit une interface graphique facile à utiliser pour créer et déployer des démonstrations et des applications ML hébergées sur le web. Le service vous permet de créer rapidement des démonstrations ML, de télécharger vos propres applications à héberger, ou même de sélectionner un certain nombre d’applications ML préconfigurées à déployer instantanément.
Déployons une application ML sur Hugging Face
Étape 1 : Créer un compte Hugging Face
Allez sur hf.co, cliquez sur “Sign Up” et créez un compte. Ajoutez vos informations de facturation : Dans votre compte HF, allez dans Paramètres > Facturation, ajoutez votre carte de crédit dans la section des informations de paiement.
Nous avons besoin d’un NVIDIA T4 small pour exécuter le modèle de résumé dans ce tutoriel.
Étape 2 : Créer l’espace
Une fois connecté, dans l’onglet “Spaces”. Créez un nouvel espace Streamlit avec du matériel NVIDIA T4 small. Choisissez le temps de sommeil pour éviter la facturation lorsque votre application est inactive. Rendez l’espace public ou privé. Une fois l’espace créé (hello-world dans cet exemple), vous pouvez le cloner avec git et votre code.
git clone git@hf.co:spaces/doveaia/hello-world
Il y a un README.md dans le dépôt contenant un bloc d’en-tête yaml décrivant l’espace.
---
title: Hello World
emoji: 🐢
colorFrom: red
colorTo: gray
sdk: streamlit
sdk_version: 1.41.1
app_file: app.py
pinned: false
---
L’élément clé dans ces métadonnées est que le fichier de l’application est nommé app.py
Étape 3 : Le code de l’application
import streamlit as st
from transformers import pipeline
st.title("💬 Chatbot")
if "messages" not in st.session_state:
st.session_state["messages"] = [{"role": "assistant", "content": "Bonjour. Je peux résumer du texte."}]
for msg in st.session_state.messages:
st.chat_message(msg["role"]).write(msg["content"])
if prompt := st.chat_input():
summarizer = pipeline("summarization")
st.session_state.messages.append({"role": "user", "content": prompt})
st.chat_message("user").write(prompt)
summary = summarizer(prompt)
msg = summary[0]["summary_text"]
st.session_state.messages.append({"role": "assistant", "content": msg})
st.chat_message("assistant").write(msg)
Dans ce code, nous utilisons pipeline dans la bibliothèque transformers pour charger le modèle de résumé. Les dépendances Python sont listées dans le fichier requirements.txt.
Étape 4 : Tester l’application
Pour tester l’application, allez à l’URL de l’espace : https://huggingface.co/spaces/doveaia/hello-world