Dans cette vidéo, nous allons comprendre comment gérer un dépôt de modèles sur le Hub des
modèles d'Hugging Face.
Afin de gérer un dépôt, vous devez d'abord avoir un compte Hugging Face.
Un lien pour créer un nouveau compte est disponible dans la description.
Une fois connecté, vous pouvez créer un nouveau dépôt en cliquant sur l'option « New Model ».
Vous devriez faire face à un modal similaire à celui-ci.
Dans l'entrée « Owner », vous pouvez mettre votre propre nom d'espace ou l'un des
noms d'espaces de votre organisation.
Le nom du modèle est l'identifiant du modèle qui sera ensuite utilisé pour identifier votre modèle sur
le nom d'espace que vous avez choisi.
Le choix final se fait entre public et privé.
Les modèles publics sont accessibles à tous.
Il s'agit de l'option gratuite recommandée, car elle rend votre modèle facilement accessible et partageable.
Les propriétaires de votre espace sont les seuls à pouvoir mettre à jour et modifier votre modèle.
Une option plus avancée est l'option privée.
Dans ce cas, seuls les propriétaires de votre espace auront une visibilité sur votre modèle.
Les autres utilisateurs ne sauront pas qu'il existe et ne pourront pas l'utiliser.
Créons un modèle factice avec lequel jouer.
Une fois votre modèle créé, vient la gestion de ce modèle !
Trois onglets s'offrent à vous.
Vous faites face au premier, qui est la page de la carte du modèle. C'est la page utilisée pour
présenter votre modèle au monde.
Nous verrons comment cela peut être complété dans un instant.
Le second est « Files and versions ».
Votre modèle lui-même est un dépôt git. Si vous ne savez pas ce qu'est un dépôt git,
vous pouvez le considérer comme un dossier contenant des fichiers.
Si vous n'avez jamais utilisé git auparavant, nous vous recommandons de consulter une introduction comme celle fournie
dans la description de cette vidéo.
Le dépôt git vous permet de voir les changements qui se produisent au fil du temps dans ce dossier, d'où
le terme « versions ».
Nous verrons plus loin comment ajouter des fichiers et des versions.
Le dernier onglet est l'onglet « Seetings » qui vous permet de gérer la visibilité
et la disponibilité de votre modèle.
Commençons d'abord par ajouter des fichiers au dépôt.
Les fichiers peuvent être ajoutés via l'interface web grâce au bouton « Add file ».
Les fichiers ajoutés peuvent être de n'importe quel type : python, json, texte, etc.
En plus de votre fichier ajouté et de son contenu, vous devez nommer votre modification ou commit.
Généralement, l'ajout de fichiers est plus simple lorsque vous utilisez la bibliothèque Python `huggingface-hub` ou en utilisant la ligne de commande.
Nous allons montrer comment faire cela en utilisant la bibliothèque Python `huggingface-hub`
Il y a un lien dans la description d'une vidéo précédente montrant comment faire en utilisant git ou une ligne de commande.
Premièrement, assurez-vous que vous êtes connecté à votre compte Hugging Face, soit par la ligne de commande, soit dans un runtime python.
La première approche que nous allons examiner est l'utilisation de la méthode de téléchargement de fichiers.
Il s'agit d'une API extrêmement simple permettant de télécharger des fichiers vers le Hub.
Les trois paramètres requis sont l'emplacement actuel du fichier,
le chemin de ce fichier dans le dépôt et l'identifiant du dépôt à pousser.
Il y a quelques paramètres supplémentaires.
Le paramètre `token` si vous souhaitez spécifier un token différent de celui enregistré dans votre cache avec votre login.
Le paramètre `repo_type` si vous voulez pousser vers un `dataset` ou un `space`.
On va télécharger un fichier appelé readme.md dans le dépôt en utilisant cette méthode.
Nous commençons par enregistrer un fichier avec ce nom qui contient quelques informations sur le dépôt lui-même, ici un titre.
Maintenant que le fichier est enregistré, utilisons la méthode `upload_file` pour le télécharger sur le Hub.
Si nous passons à l'interface web pendant une seconde et rafraîchissons la page, nous verrons que le fichier readme est affiché.
Le téléchargement du fichier a été un succès.
Parallèlement à cette méthode, il existe une méthode `delete_file` qui vous permet de gérer entièrement votre dépôt.
Nous allons l'utiliser pour supprimer le fichier que nous venons de créer.
Si nous rafraîchissons à nouveau la page, le fichier a bien été supprimé.
Cette approche utilisant uniquement ces deux méthodes est super simple.
Il n'est pas nécessaire d'installer git ou git-lfs mais il y a une limitation.
La taille maximale des fichiers que l'on peut télécharger est limitée à 5 gigaoctets.
Pour surmonter cette limite, examinons la deuxième méthode qui consiste à utiliser l'utilitaire de dépôt.
Cette classe est une enveloppe sur les méthodes git et git-lfs qui abstrait la plupart de la complexité et offre une api flexible pour gérer vos dépôts en ligne.
Voyons comment cela fonctionne.
Nous commençons par instancier l'utilitaire de dépôt.
Nous fournissons le paramètre `clone_from` afin de cloner le dépôt que nous venons de créer.
Le dépôt est maintenant cloné dans le dossier local_folder.
L'objet repo que nous venons d'initialiser offre un certain nombre de méthodes qui nous sont utiles.
Nous sommes intéressés par pousser un modèle sur le Hub.
Je vais commencer par charger un modèle et un tokenizer que j'ai entraîné il y a quelques heures.
Nous allons maintenant suivre l'approche traditionnelle de git en commençant par extraire les derniers changements en utilisant la méthode `git_pull`.
Nous venons de cloner le dépôt, donc à moins qu'il s'agisse d'un dépôt super actif, il est peu probable que de nouvelles modifications soient disponibles.
Mais c'est toujours une bonne idée de récupérer les dernières modifications avant de faire quelque chose de nouveau.
Maintenant que nous avons récupéré le dépôt, je vais sauvegarder le modèle et le tokenizer dans ce dossier.
Cela inclut le fichier de configuration des poids du modèle et les fichiers du tokenizer.
Maintenant que le modèle est sauvegardé, nous allons continuer avec l'approche traditionnelle de git et le pousser vers le dépôt distant.
Si nous utilisions la ligne de commande, il y a quelques commandes spécifiques à git lfs que nous devrions invoquer.
Mais ici, le package `huggingface-hub` s'occupe de tout cela. On comme par mettre en scène les fichiers en utilisant la méthode `git_add`.
Nous allons ensuite commiter ces changements en utilisant la méthode `git_commit` et en fournissant un message de commit utile.
Enfin, nous poussons les changements vers le site distant en utilisant la méthode `git_push`.
Si nous revenons à l'onglet « Files and versions », nous pouvons maintenant voir les fichiers nouvellement commités.
Nous pouvons même jouer avec le modèle dans l'api d'inférence.
Malheureusement, la page d'accueil de notre modèle est encore très vide.
Ajoutons un fichier markdown readme pour la compléter un peu.
Ce fichier readme est connu sous le nom de carte de modèle et il est sans doute aussi important que les fichiers de modèle et de tokenizer dans un dépôt de modèles.
Il s'agit de la définition et de la documentation centrale de votre modèle.
Assurer la réutilisation par les autres membres de la communauté et la reproductibilité des résultats,
fournissant une plateforme sur laquelle les autres membres peuvent construire leurs artefacts.
Pour des raisons de simplicité, nous n'ajouterons qu'un titre et une petite description, mais nous vous encourageons à ajouter des informations sur la manière dont le modèle a été entraîné,
son utilisation prévue et ses limites, ainsi que ses biais potentiels identifiés, les résultats de l'évaluation et des exemples de code sur la façon d'utiliser votre modèle.
Excellent travail de contribution d'un modèle au Hub des modèles. Ce modèle peut maintenant être utilisé dans les bibliothèques en aval en spécifiant simplement l'identifiant de votre modèle.