Hub documentation

Aperçu des Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Aperçu des Spaces

Les Hugging Face Spaces vous permettent de créer et de déployer des démos propulsées par l'IA en quelques minutes. Regardez la vidéo suivante pour une introduction rapide aux Spaces :

Dans les sections suivantes, vous apprendrez les bases de la création d’un Space, de sa configuration et du déploiement de votre code dessus.

Créer un nouvel espace

Pour créer un nouvel espace, rendez-vous sur la page principale des espaces et cliquez sur Créer un nouvel espace. En plus de choisir un nom pour votre espace, de sélectionner une licence facultative et de définir la visibilité de votre espace (public, protégé ou privé), vous serez invité à choisir le SDK de votre espace. Le Hub propose trois options de SDK : Gradio, Docker et HTML statique. Si vous sélectionnez « Gradio » comme SDK, vous serez redirigé vers un nouveau dépôt affichant la page suivante :

Les Spaces statiques sont gratuits pour tous. Les Spaces Gradio et Docker fonctionnent sur des ressources de calcul et nécessitent un abonnement payant pour être créés : PRO pour les comptes personnels, Team ou Enterprise pour les organisations. Les comptes personnels gratuits en règle peuvent toujours héberger jusqu'à 2 Spaces Gradio fonctionnant sur ZeroGPU.

Sous le capot, Spaces stocke votre code dans un dépôt git, tout comme les dépôts de modèles et de jeux de données. Grâce à cela, les mêmes outils que nous utilisons pour tous les autres dépôts du Hub (git et git-xet) fonctionnent également pour les Spaces. Suivez le même processus que dans Getting Started with Repositories pour ajouter des fichiers à votre Space. À chaque fois qu'un nouveau commit est poussé, le Space se reconstruit et redémarre automatiquement.

Pour des tutoriels pas à pas sur la création de votre premier Space, consultez les guides ci-dessous :

Visibilité de l'espace

Vous pouvez définir la visibilité d’un Space depuis l’onglet Paramètres à l’aide du menu déroulant de visibilité. Les Spaces prennent en charge trois niveaux de visibilité : public, protégé et privé.

La visibilité protégée fait partie des plans PRO ou Team & Enterprise.

PublicProtégéPrivé
Code source sur le HubVisible par tousPrivé (propriétaire/collaborateurs uniquement)Privé (propriétaire/collaborateurs uniquement)
Application accessible via URL d'intégrationOuiOuiNon
Application accessible via domaine personnaliséOuiOuiNon
Clonable par d'autresOuiNonNon

Les Spaces Public sont entièrement ouverts : tout le monde peut consulter le code source, accéder à l'application en cours d'exécution et cloner le dépôt.

Les Spaces protégés gardent leur code source privé sur le Hub — seuls le propriétaire et les collaborateurs peuvent consulter ou cloner le dépôt. Toutefois, l'application en cours d'exécution est accessible publiquement via son URL d'intégration (https://<space-subdomain>.hf.space) ou via un domaine personnalisé lorsqu'un tel domaine est configuré. C'est particulièrement utile pour héberger des sites web ou des applications sans publier le code source.

Les Spaces privés sont entièrement privés : le code source et l’application en cours d’exécution ne sont accessibles qu’au propriétaire et aux collaborateurs. L’espace n’apparaîtra pas dans les résultats de recherche et les autres utilisateurs recevront une erreur 404 lorsqu’ils visiteront son URL.

Ressources matérielles

Chaque environnement Spaces est limité par défaut à 16 Go de RAM, 2 cœurs CPU et 50 Go d’espace disque (non persistant). Le matériel CPU Basic par défaut ne coûte rien à l’heure, mais la création d’un Space fonctionnant sur du calcul (Gradio ou Docker) nécessite un abonnement payant, tandis que les Spaces Static sont gratuits pour tous. Vous pouvez passer à un meilleur matériel, y compris une variété d’accélérateurs GPU, à un tarif compétitif. Pour demander une mise à niveau, cliquez sur le bouton Paramètres dans votre Space et sélectionnez l’environnement matériel de votre choix.

MatérielCPUMémoireMémoire GPUPrix horaire
CPU de base2 vCPU16 GoGRATUIT
Mise à niveau du CPU8 vCPU32 Go$0.03
Nvidia T4 - petit4 vCPU15 Go16 Go$0.40
Nvidia T4 - moyen8 vCPU30 Go16 Go$0.60
1x Nvidia L48 vCPU30 Go24 Go$0.80
4x Nvidia L448 vCPU186 Go96 Go$3.80
1x Nvidia L40S8 vCPU62 Go48 Go$1.80
4x Nvidia L40S48 vCPU382 Go192 Go$8.30
8x Nvidia L40S192 vCPU1534 Go384 Go$23.50
1x Nvidia RTX PRO 600023 vCPU256 Go96 Go$2.75
2x Nvidia RTX PRO 600046 vCPU512 Go192 Go$5.50
4x Nvidia RTX PRO 600092 vCPU1024 Go384 Go$11.00
8x Nvidia RTX PRO 6000184 vCPU2048 Go768 Go$22.00
Nvidia A10G - petit4 vCPU15 Go24 Go$1.00
Nvidia A10G - grande12 vCPU46 Go24 Go$1.50
2x Nvidia A10G - grand24 vCPU92 Go48 Go$3.00
4x Nvidia A10G - grand48 vCPU184 Go96 Go$5.00
Nvidia A100 - grande12 vCPU142 Go80 Go$2.50
4x Nvidia A10048 vCPU568 Go320 Go$10.00
8x Nvidia A10096 vCPU1136 Go640 Go$20.00

Remarque : Retrouvez des informations tarifaires plus détaillées et complètes sur notre page de tarification.

Vous avez un Space génial mais avez besoin d'aide pour couvrir les coûts de la mise à niveau du matériel ? Nous adorons soutenir les créateurs de Spaces innovants, n'hésitez donc pas à postuler pour une subvention GPU communautaire en utilisant le lien dans l'onglet Paramètres de votre Space et voyez si le vôtre est retenu !

En savoir plus dans nos sections dédiées aux Spaces GPU Upgrades et aux Spaces Disk Usage & Storage.

Gérer les secrets et les variables d'environnement

Si votre application nécessite des variables d’environnement (par exemple, des clés secrètes ou des jetons), ne les codez pas en dur dans votre application ! Rendez-vous plutôt à la page Paramètres de votre dépôt Space et ajoutez une nouvelle variable ou un secret. Utilisez les variables pour stocker des valeurs de configuration non sensibles et les secrets pour stocker des jetons d’accès, des clés API ou toute valeur sensible ou identifiants.

Vous pouvez utiliser :

  • Variables si vous devez stocker des valeurs de configuration non sensibles. Elles sont accessibles et consultables publiquement et seront automatiquement ajoutées aux Spaces dupliqués à partir des vôtres.
  • Secrets pour stocker des jetons d’accès, des clés API ou toute autre valeur sensible ou identifiants. Ils sont privés et leur valeur ne peut pas être lue depuis la page de paramètres de l’espace une fois définie. Ils ne seront pas ajoutés aux espaces dupliqués à partir de votre dépôt.

L'accès aux secrets et aux variables diffère selon votre SDK Space :

Pour les autres Spaces, les deux sont exposés à votre application sous forme de variables d’environnement. Voici un exemple très simple d’accès à la variable MODEL_REPO_ID déclarée précédemment en Python (il en serait de même pour les secrets) :

import os
print(os.getenv('MODEL_REPO_ID'))

Les propriétaires de Spaces sont avertis lorsque notre Spaces Secrets Scanner détecte des secrets codés en dur.

Dupliquer un Space

Dupliquer un Space peut être utile si vous souhaitez créer une nouvelle démonstration en utilisant une autre comme modèle initial. Les Spaces dupliqués peuvent également être utiles si vous souhaitez disposer d'un Space Upgraded individuel pour votre usage, avec une inférence rapide.

Si vous souhaitez dupliquer un Space, vous pouvez cliquer sur les trois points en haut à droite de l’espace puis sur Duplicate this Space. Une fois cela fait, vous pourrez modifier les attributs suivants :

  • Propriétaire : l'Espace dupliqué peut se trouver sous votre compte ou sous n'importe quelle organisation dans laquelle vous avez un accès en écriture
  • Nom de l'espace
  • Visibilité : L'Espace est privé par défaut. En savoir plus sur les options de visibilité ici.
  • Matériel : vous pouvez choisir le matériel sur lequel l'espace sera exécuté. En savoir plus sur les mises à niveau matérielles ici.
  • Stockage : si le dépôt d’origine utilise un bucket de stockage, vous serez invité à configurer le stockage. En savoir plus sur l’utilisation du disque et le stockage ici.
  • Secrets et variables : si le dépôt d’origine a défini certains secrets et variables, vous pourrez les définir lors de la duplication du dépôt.

Certains Spaces peuvent comporter des variables d’environnement que vous devrez peut-être configurer. Dans ce cas, le processus de duplication remplit automatiquement les Variables publiques à partir du Space source et vous avertit de la nécessité de configurer les Secrets. Le Space dupliqué utilise par défaut le matériel CPU Basic, mais vous pouvez le mettre à niveau ultérieurement si nécessaire. La duplication suit les mêmes règles que la création d’un nouveau Space : dupliquer un Space Gradio ou Docker nécessite un plan payant pour le compte ou l’organisation cible (avec la même exception ZeroGPU free tier pour les comptes personnels).

Réseau

Si votre Space doit effectuer des requêtes réseau, vous pouvez passer par les ports HTTP et HTTPS standard (80 et 443) ainsi que le port 8080. Toute requête adressée à d'autres ports sera bloquée.

Gestion du cycle de vie

Sur du matériel gratuit, votre Space « s’endort » et cesse de s’exécuter après une période d’inactivité. Si vous souhaitez que votre Space fonctionne indéfiniment, envisagez de passer à un matériel payant. Vous pouvez également mettre manuellement votre Space en pause depuis l’onglet Paramètres. Un Space en pause cesse de s’exécuter jusqu’à ce qu’une personne disposant des droits d’écriture le relance. Le temps en pause n’est pas facturé.

Variables d'environnement intégrées

Dans certains cas, vous pourriez souhaiter accéder de manière programmatique au nom de l'auteur ou du dépôt du Space. Cette fonctionnalité est particulièrement utile lorsque vous prévoyez que les utilisateurs dupliqueront votre Space. Pour vous y aider, les Spaces exposent différentes variables d'environnement à l'exécution (voir également variables d'environnement intégrées dans Jobs). Pour un Space osanseviero/i-like-flan :

  • ACCELERATOR : le type d'accélérateur disponible (par exemple, t4-medium, a10g-small), ou none pour les Spaces uniquement CPU.
  • CPU_CORES: 4
  • MEMORY : 15Gi
  • SPACE_AUTHOR_NAME : osanseviero
  • SPACE_REPO_NAME : i-like-flan
  • SPACE_TITLE : I Like Flan (spécifié dans le fichier README)
  • SPACE_ID: osanseviero/i-like-flan
  • SPACE_HOST: osanseviero-i-like-flan.hf.space
  • SPACE_CREATOR_USER_ID : 6032802e1f993496bc14d9e3 - Il s'agit de l'identifiant de l'utilisateur ayant initialement créé le Space. C'est utile si le Space est rattaché à une organisation. Vous pouvez obtenir les informations de l'utilisateur via un appel API à https://huggingface.co/api/users/{SPACE_CREATOR_USER_ID}/overview.
  • SPACE_SIGNING_SECRET : un secret aléatoire unique à votre Space, exposé en tant que secret. Il reste identique au fil des redémarrages, reconstructions et répliques, ce qui vous permet de l’utiliser pour signer des éléments tels que des cookies, l’état OAuth ou des jetons CSRF. Pour utiliser votre propre valeur à la place, ajoutez un secret nommé SPACE_SIGNING_SECRET dans les paramètres de votre Space.

Si OAuth est activé pour votre Space, les variables suivantes seront également disponibles :

  • OAUTH_CLIENT_ID : l'identifiant client de votre application OAuth (public)
  • OAUTH_CLIENT_SECRET : le secret client de votre application OAuth
  • OAUTH_SCOPES : les scopes accessibles par votre application OAuth. Actuellement, c'est toujours "openid profile".
  • OPENID_PROVIDER_URL : l’URL du fournisseur OpenID. Les métadonnées OpenID seront disponibles à l’adresse {OPENID_PROVIDER_URL}/.well-known/openid-configuration.

Cloner le dépôt

Vous pouvez facilement cloner le dépôt de votre Space localement. Commencez par cliquer sur le menu déroulant situé en haut à droite de la page de votre Space :

Sélectionnez « Clone repository », puis suivez les instructions pour cloner le dépôt du Space sur votre machine locale en utilisant HTTPS ou SSH.

Lier des modèles et des jeux de données sur le Hub

Vous pouvez mettre en avant tous les modèles et jeux de données auxquels votre Space est lié en ajoutant leur identifiant dans les métadonnées du README de votre Space. Pour ce faire, vous pouvez les définir sous les clés models et datasets. En plus de les lister dans le fichier README, vous pouvez également les consigner dans tout fichier .py, .ini ou .html. Nous les analyserons automatiquement !

Voici un exemple reliant deux modèles d’un espace :

title: My lovely space
emoji: 🤗
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
models:
- reach-vb/musicgen-large-fp16-endpoint
- reach-vb/wav2vec2-large-xls-r-1B-common_voice7-lt-ft
Update on GitHub