Déployer Potato sur un Space Hugging Face
Lancez une tâche Potato dans un Space Docker Hugging Face avec potato deploy, avec sauvegarde des annotations dans un dataset privé toutes les cinq minutes.
potato deploy up --provider huggingface exécute une tâche d'annotation dans un Space Docker Hugging Face, avec HTTPS sur une adresse hf.space et rien à configurer sur un serveur. Il convient à une démo publique d'une tâche et à un laboratoire dont les données et les modèles se trouvent déjà sur le Hugging Face Hub. Le disque d'un Space est effacé à chaque redémarrage, si bien que Potato conserve les annotations dans un dataset Hugging Face privé qu'il crée en même temps que le Space. Il sauvegarde les annotations dans le dataset toutes les cinq minutes et les restaure au démarrage du Space. Cette page exige Potato 2.10 ou une version ultérieure et une configuration que vous avez déjà exécutée avec potato start.
Exigences et limites d'un Space
Les Spaces Potato sont des Spaces Docker, et la création d'un Space Docker nécessite un abonnement Hugging Face payant : PRO pour un compte personnel, Team ou Enterprise pour une organisation. Un compte ou une organisation sur l'offre gratuite de Hugging Face exécute en outre au plus trois Spaces à la fois. Un quatrième reste PAUSED, et contrairement à un Space en veille, un Space en pause ne se réveille jamais quand un visiteur l'ouvre.
Pour une étude qui dure des semaines avec des annotateurs nommément désignés, une machine virtuelle comme AWS Lightsail, Jetstream2 ou Hetzner conserve son disque d'un redémarrage à l'autre, si bien que les données ne dépendent pas d'une sauvegarde. Un Space convient le mieux quand les personnes que vous voulez atteindre ont déjà un compte Hugging Face, ou quand la tâche est une démonstration dont vous pouvez vous permettre de perdre les annotations.
Configurer un jeton Hugging Face
Potato crée le Space et le dataset avec votre jeton Hugging Face. Créez un jeton avec accès en écriture dans vos paramètres Hugging Face, puis installez l'extra Hugging Face et placez le jeton dans votre environnement :
pip install 'potato-annotation[huggingface]'
export HF_TOKEN=hf_...
potato deploy providers --verifyproviders --verify affiche le compte auquel appartient le jeton. Potato transmet le jeton au Space sous forme de secret du Space pour que la sauvegarde puisse écrire dans le dataset, et ne le commite jamais dans le dépôt du Space.
Décider qui peut se connecter
potato deploy ne modifie pas vos réglages de connexion, et un Space public peut être ouvert par quiconque possède son adresse. Si la configuration permet à n'importe qui de s'inscrire, l'exécution à blanc ci-dessous signale l'avertissement D003, « Anyone who finds the URL can register and annotate. » (Quiconque trouve l'URL peut s'inscrire et annoter.) L'inscription libre convient généralement à une démo. Pour des annotateurs nommément désignés, listez-les sous user_config.users avec allow_all_users: false (Gestion des mots de passe), ou faites-les se connecter avec leur compte Hugging Face, que Potato prend en charge comme fournisseur intégré sous authentication.providers (Authentification SSO et OAuth).
Vérifier le plan et déployer
Une exécution à blanc ne crée rien et affiche ce que le déploiement créerait :
potato deploy up myproject/config.yaml --provider huggingface --dry-runLe plan crée le dataset privé <account>/<name>-annotations, puis un Space Docker <account>/<name>, définit la clé de session, la clé d'administration et le jeton comme secrets du Space, et téléverse votre projet avec un Dockerfile et un README. Le Dockerfile part de l'image Potato publiée pour la version que vous avez installée, si bien que le Space ne contient que les fichiers de votre projet. --owner déploie sous une organisation, --private rend le Space lui-même privé, et --name remplace le nom tiré de la tâche.
Lancez la commande sans --dry-run et confirmez le plan :
potato deploy up myproject/config.yaml --provider huggingfaceLe déploiement attend que le Space soit en cours d'exécution et affiche son adresse, https://<account>-<name>.hf.space, ainsi que le chemin du fichier de la clé d'administration, .potato/secrets.json à côté de votre configuration. La clé d'administration ouvre le tableau de bord d'administration à /admin. Un Space sur du matériel gratuit se met en veille après 48 heures sans visiteur et se réveille quand quelqu'un l'ouvre, et les annotations reviennent du dataset à chaque fois.
Terminer l'étude
potato deploy pull télécharge le dataset de sauvegarde, qui contient tout ce que le Space a enregistré, plutôt que de lire le Space lui-même :
potato deploy pull myproject/config.yaml
potato deploy destroy myproject/config.yamldestroy supprime le Space et laisse le dataset en place, car on peut annuler la suppression d'un Space en le redéployant, alors que la suppression des annotations est définitive. Quand vous n'avez plus besoin du dataset, supprimez-le depuis sa page de paramètres sur le Hub.
Déployer sans sauvegarde
--demo déploie le Space sans dataset, pour une démonstration dont les annotations n'ont pas d'importance. L'exécution à blanc avertit alors que tout ce qui est collecté sera perdu au prochain redémarrage. Sans dataset, pull lit le Space en cours d'exécution par l'export d'administration, ce qui ne fonctionne que tant que le Space est en ligne.
Dépannage
Une erreur de paiement à la création signifie que le compte ou l'organisation n'a pas d'abonnement payant. Les Spaces Docker nécessitent PRO pour un compte personnel, ou Team ou Enterprise pour une organisation.
Le Space est PAUSED quand un compte de l'offre gratuite exécute déjà trois Spaces. Mettez-en un autre en pause, puis redémarrez celui-ci depuis sa page de paramètres. Redémarrer un Space existant ne nécessite pas d'abonnement payant.
Des annotations manquent après une reconstruction quand le Space n'a pas pu les restaurer depuis le dataset. Le journal du Space affiche une ligne RESTORED lors d'une restauration réussie, et son absence signifie généralement que le secret de Space HF_TOKEN manque ou n'a pas d'accès en écriture.
BUILD_ERROR est expliqué dans le journal de build à https://huggingface.co/spaces/<account>/<name>?logs=build.
Pour aller plus loin
- Exécuter Potato en local ou dans le cloud, pour les autres cibles cloud et les options de sauvegarde
- Déployer un serveur d'annotation, pour choisir un hébergeur
- Référence Hugging Face Spaces