1
00:00:02,560 --> 00:00:09,130
Dans cette vidéo, nous allons comprendre comment gérer un dépôt de modèles sur le Hub des

2
00:00:09,130 --> 00:00:10,920
modèles d'Hugging Face.

3
00:00:10,920 --> 00:00:15,370
Afin de gérer un dépôt, vous devez d'abord avoir un compte Hugging Face.

4
00:00:15,370 --> 00:00:20,310
Un lien pour créer un nouveau compte est disponible dans la description.

5
00:00:20,310 --> 00:00:26,279
Une fois connecté, vous pouvez créer un nouveau dépôt en cliquant sur l'option « New Model ».

6
00:00:26,279 --> 00:00:28,910
Vous devriez faire face à un modal similaire à celui-ci.

7
00:00:28,910 --> 00:00:34,900
Dans l'entrée « Owner », vous pouvez mettre votre propre nom d'espace ou l'un des

8
00:00:34,900 --> 00:00:36,719
noms d'espaces de votre organisation.

9
00:00:36,719 --> 00:00:41,739
Le nom du modèle est l'identifiant du modèle qui sera ensuite utilisé pour identifier votre modèle sur

10
00:00:41,739 --> 00:00:44,250
le nom d'espace que vous avez choisi.

11
00:00:44,250 --> 00:00:47,450
Le choix final se fait entre public et privé.

12
00:00:47,450 --> 00:00:50,100
Les modèles publics sont accessibles à tous.

13
00:00:50,100 --> 00:00:55,030
Il s'agit de l'option gratuite recommandée, car elle rend votre modèle facilement accessible et partageable.

14
00:00:55,030 --> 00:01:00,440
Les propriétaires de votre espace sont les seuls à pouvoir mettre à jour et modifier votre modèle.

15
00:01:00,440 --> 00:01:03,210
Une option plus avancée est l'option privée.

16
00:01:03,210 --> 00:01:08,460
Dans ce cas, seuls les propriétaires de votre espace auront une visibilité sur votre modèle.

17
00:01:08,460 --> 00:01:15,010
Les autres utilisateurs ne sauront pas qu'il existe et ne pourront pas l'utiliser.

18
00:01:15,010 --> 00:01:18,320
Créons un modèle factice avec lequel jouer.

19
00:01:18,320 --> 00:01:22,360
Une fois votre modèle créé, vient la gestion de ce modèle !

20
00:01:22,360 --> 00:01:24,170
Trois onglets s'offrent à vous.

21
00:01:24,170 --> 00:01:29,070
Vous faites face au premier, qui est la page de la carte du modèle. C'est la page utilisée pour

22
00:01:29,070 --> 00:01:31,170
présenter votre modèle au monde.

23
00:01:31,170 --> 00:01:34,600
Nous verrons comment cela peut être complété dans un instant.

24
00:01:34,600 --> 00:01:38,479
Le second est « Files and versions ».

25
00:01:38,479 --> 00:01:43,310
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,

26
00:01:43,310 --> 00:01:46,439
vous pouvez le considérer comme un dossier contenant des fichiers.

27
00:01:46,439 --> 00:01:51,000
Si vous n'avez jamais utilisé git auparavant, nous vous recommandons de consulter une introduction comme celle fournie

28
00:01:51,000 --> 00:01:53,960
dans la description de cette vidéo.

29
00:01:53,960 --> 00:01:59,020
Le dépôt git vous permet de voir les changements qui se produisent au fil du temps dans ce dossier, d'où

30
00:01:59,020 --> 00:02:00,960
le terme « versions ».

31
00:02:00,960 --> 00:02:07,130
Nous verrons plus loin comment ajouter des fichiers et des versions.

32
00:02:07,130 --> 00:02:12,069
Le dernier onglet est l'onglet « Seetings » qui vous permet de gérer la visibilité

33
00:02:12,069 --> 00:02:14,780
et la disponibilité de votre modèle.

34
00:02:14,780 --> 00:02:18,860
Commençons d'abord par ajouter des fichiers au dépôt.

35
00:02:18,860 --> 00:02:23,459
Les fichiers peuvent être ajoutés via l'interface web grâce au bouton « Add file ».

36
00:02:23,459 --> 00:02:28,849
Les fichiers ajoutés peuvent être de n'importe quel type : python, json, texte, etc.

37
00:02:28,849 --> 00:02:35,110
En plus de votre fichier ajouté et de son contenu, vous devez nommer votre modification ou commit.

38
00:02:35,110 --> 00:02:42,670
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.

39
00:02:42,670 --> 00:02:47,310
Nous allons montrer comment faire cela en utilisant la bibliothèque Python `huggingface-hub` 

40
00:02:47,310 --> 00:02:53,560
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.

41
00:02:53,560 --> 00:03:00.000
Premièrement, assurez-vous que vous êtes connecté à votre compte Hugging Face, soit par la ligne de commande, soit dans un runtime python.

42
00:03:04.000 --> 00:03:08.640
La première approche que nous allons examiner est l'utilisation de la méthode de téléchargement de fichiers.

43
00:03:08.64 --> 00:03:12.480
Il s'agit d'une API extrêmement simple permettant de télécharger des fichiers vers le Hub.

44
00:03:12.480 --> 00:03:18.400
Les trois paramètres requis sont l'emplacement actuel du fichier,

45
00:03:18.400 --> 00:03:23.040
le chemin de ce fichier dans le dépôt et l'identifiant du dépôt à pousser.

46
00:03:25.440 --> 00:03:27.760
Il y a quelques paramètres supplémentaires.

47
00:03:27.760 --> 00:03:34.640
Le paramètre `token` si vous souhaitez spécifier un token différent de celui enregistré dans votre cache avec votre login.

48
00:03:34.640 --> 00:03:42.080
Le paramètre `repo_type` si vous voulez pousser vers un `dataset` ou un `space`.

49
00:03:42.080 --> 00:03:47.040
On va télécharger un fichier appelé readme.md dans le dépôt en utilisant cette méthode.

50
00:03:47.040 --> 00:03:55.760
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.

51
00:03:55.760 --> 00:04:01.360
Maintenant que le fichier est enregistré, utilisons la méthode `upload_file` pour le télécharger sur le Hub.

52
00:04:01.360 --> 00:04:06.879
Si nous passons à l'interface web pendant une seconde et rafraîchissons la page, nous verrons que le fichier readme est affiché.

53
00:04:06.879 --> 00:04:10.000
Le téléchargement du fichier a été un succès.

54
00:04:10.000 --> 00:04:16.000
Parallèlement à cette méthode, il existe une méthode `delete_file` qui vous permet de gérer entièrement votre dépôt.

55
00:04:16.000 --> 00:04:18.639
Nous allons l'utiliser pour supprimer le fichier que nous venons de créer.

56
00:04:22.639 --> 00:04:27.500
Si nous rafraîchissons à nouveau la page, le fichier a bien été supprimé.

57
00:04:28.880 --> 00:04:30.639
Cette approche utilisant uniquement ces deux méthodes est super simple.

58
00:04:30.639 --> 00:04:37.440
Il n'est pas nécessaire d'installer git ou git-lfs mais il y a une limitation.

59
00:04:37.440 --> 00:04:42.160
La taille maximale des fichiers que l'on peut télécharger est limitée à 5 gigaoctets.

60
00:04:42.160 --> 00:04:48.400
Pour surmonter cette limite, examinons la deuxième méthode qui consiste à utiliser l'utilitaire de dépôt.

61
00:04:48.400 --> 00:04:57.759
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.

62
00:04:57.759 --> 00:04:59.999
Voyons comment cela fonctionne.

63
00:05:03.680 --> 00:05:07.919
Nous commençons par instancier l'utilitaire de dépôt.

64
00:05:07.919 --> 00:05:14.240
Nous fournissons le paramètre `clone_from` afin de cloner le dépôt que nous venons de créer.

65
00:05:14.240 --> 00:05:16.240
Le dépôt est maintenant cloné dans le dossier local_folder.

66
00:05:16.240 --> 00:05:25.759
L'objet repo que nous venons d'initialiser offre un certain nombre de méthodes qui nous sont utiles.

67
00:05:25.759 --> 00:05:28.560
Nous sommes intéressés par pousser un modèle sur le Hub.

68
00:05:28.560 --> 00:05:34.240
Je vais commencer par charger un modèle et un tokenizer que j'ai entraîné il y a quelques heures.

69
00:05:34.240 --> 00:05:40.800
Nous allons maintenant suivre l'approche traditionnelle de git en commençant par extraire les derniers changements en utilisant la méthode `git_pull`.

70
00:05:40.800 --> 00:05:48.400
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.

71
00:05:48.400 --> 00:05:53.039
Mais c'est toujours une bonne idée de récupérer les dernières modifications avant de faire quelque chose de nouveau.

72
00:05:53.039 --> 00:05:58.500
Maintenant que nous avons récupéré le dépôt, je vais sauvegarder le modèle et le tokenizer dans ce dossier.

73
00:05:58.500 --> 00:06:02.919
Cela inclut le fichier de configuration des poids du modèle et les fichiers du tokenizer.

74
00:06:04.240 --> 00:06:10.479
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.

75
00:06:10.479 --> 00:06:15.160
Si nous utilisions la ligne de commande, il y a quelques commandes spécifiques à git lfs que nous devrions invoquer.

76
00:06:15.160 --> 00:06:24.240
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`.

77
00:06:24.240 --> 00:06:30.639
Nous allons ensuite commiter ces changements en utilisant la méthode `git_commit` et en fournissant un message de commit utile.

78
00:06:30.639 --> 00:06:34.960
Enfin, nous poussons les changements vers le site distant en utilisant la méthode `git_push`.

79
00:06:44.960 --> 00:06:49.759
Si nous revenons à l'onglet « Files and versions », nous pouvons maintenant voir les fichiers nouvellement commités.

80
00:06:49.759 --> 00:06:53.599
Nous pouvons même jouer avec le modèle dans l'api d'inférence.

81
00:06:53.599 --> 00:06:57.360
Malheureusement, la page d'accueil de notre modèle est encore très vide.

82
00:06:57.360 --> 00:07:01.520
Ajoutons un fichier markdown readme pour la compléter un peu.

83
00:07:01.520 --> 00:07:08.919
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.

84
00:07:08.919 --> 00:07:13.759
Il s'agit de la définition et de la documentation centrale de votre modèle.

85
00:07:13.759 --> 00:07:18.000
Assurer la réutilisation par les autres membres de la communauté et la reproductibilité des résultats,

86
00:07:18.000 --> 00:07:23.039
fournissant une plateforme sur laquelle les autres membres peuvent construire leurs artefacts.

87
00:07:23.039 --> 00:07:30.800
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é,

88
00:07:30.800 --> 00:07:41.280
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.

89
00:07:41.280 --> 00:07:46.879
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.