#
Intégrations avec le Hub d'Hugging Face

Pour vous rendre la vie encore plus facile, Gradio s’intègre directement avec Hub et Spaces. Vous pouvez charger des démos depuis le Hub et les Spaces avec seulement une ligne de code.

###
Chargement de modèles depuis le Hub d'Hugging Face

Pour commencer, choisissez un des milliers de modèles qu’Hugging Face offre à travers le Hub, comme décrit dans le chapitre 4.

En utilisant la méthode spéciale `Interface.load()`, vous passez `"model/"` (ou, de manière équivalente, `"huggingface/"`) suivi du nom du modèle. Par exemple, voici le code pour construire une démo pour le GPT-J, un grand modèle de langue, ajouter quelques exemples d’entrées :

    import gradio as gr

    title = "GPT-J-6B"
    description = "Gradio Demo for GPT-J 6B, a transformer model trained using Ben Wang's Mesh Transformer JAX. 'GPT-J' refers to the class of model, while '6B' represents the number of trainable parameters. To use it, simply add your text, or click one of the examples to load them. Read more at the links below."
    # Démo Gradio pour GPT-J 6B, un modèle de transformer entraîné avec le Mesh Transformer JAX de Ben Wang. GPT-J fait référence à la classe du modèle, tandis que '6B' représente le nombre de paramètres entraînables. Pour l'utiliser, il suffit d'ajouter votre texte, ou de cliquer sur l'un des exemples pour le charger. Pour en savoir plus, consultez les liens ci-dessous.
    article = "<p style='text-align: center'><a href='https://github.com/kingoflolz/mesh-transformer-jax' target='_blank'>GPT-J-6B: A 6 Billion Parameter Autoregressive Language Model</a></p>"
    # GPT-J-6B : Un modèle linguistique autorégressif à 6 milliards de paramètres
    examples = [
        ["The tower is 324 metres (1,063 ft) tall,"],
        # La tour mesure 324 mètres (1 063 pieds) de haut,
        ["The Moon's orbit around Earth has"],
        # L'orbite de la Lune autour de la Terre a
        ["The smooth Borealis basin in the Northern Hemisphere covers 40%"],
        # Le bassin de Borealis dans l'hémisphère nord couvre 40 %.
    ]
    gr.Interface.load(
        "huggingface/EleutherAI/gpt-j-6B",
        inputs=gr.Textbox(lines=5, label="Input Text"),
        title=title,
        description=description,
        article=article,
        examples=examples,
        enable_queue=True,
    ).launch()

Le code ci-dessus produira l’interface ci-dessous :

Le chargement d’un modèle de cette manière utilise l’API d’Inference de Hugging Face au lieu de charger le modèle en mémoire. C’est idéal pour les modèles énormes comme GPT-J ou T0pp qui nécessitent beaucoup de RAM.

###
Chargement depuis Hugging Face Spaces

Pour charger n’importe quel Space depuis le Hub et le recréer localement, vous pouvez passer `spaces/` à l’`Interface`, suivi du nom du Space.

Vous vous souvenez de la démo de la section 1 qui supprime le fond d’une image ? Chargeons-la à partir de Hugging Face Spaces :

    gr.Interface.load("spaces/abidlabs/remove-bg").launch()

L’un des avantages du chargement de démos à partir du Hub ou de Spaces est que vous pouvez les personnaliser en remplaçant n’importe lequel des paramètres. Ici, nous ajoutons un titre et faisons en sorte qu’elle fonctionne avec une webcam à la place :

    gr.Interface.load(
        "spaces/abidlabs/remove-bg", inputs="webcam", title="Remove your webcam background!"
    ).launch()

Maintenant que nous avons exploré quelques façons d’intégrer Gradio avec le Hub, jetons un coup d’oeil à certaines fonctionnalités avancées de la classe `Interface`. C’est le sujet de la prochaine section !