1
00:00:05,130 --> 00:00:06,130
L'API `push_to_hub`.

2
00:00:06,130 --> 00:00:10,310
Jetons un coup d'œil à l'API `push_to_hub`.

3
00:00:10,310 --> 00:00:16,209
Vous devrez être connecté avec votre compte Hugging Face, ce que vous pouvez faire en exécutant

4
00:00:16,209 --> 00:00:22,220
cette première cellule ou en tapant `huggingface-cli login` dans un terminal.

5
00:00:22,220 --> 00:00:27,480
Entrez simplement votre nom d'utilisateur et votre mot de passe et cliquez sur connexion. Cela stockera un

6
00:00:27,480 --> 00:00:31,230
jeton d'authentification dans le cache de la machine que vous utilisez.

7
00:00:31,230 --> 00:00:37,990
Maintenant, lançons le finetuning d'un modèle BERT sur le jeu de données GLUE COLA.

8
00:00:37,990 --> 00:00:41,900
Nous n'aborderons pas le code du finetuning car vous pouvez le trouver dans n'importe quel tutoriel sur Transformers

9
00:00:41,900 --> 00:00:44,350
ou en regardant les vidéos liées ci-dessous.

10
00:00:44,350 --> 00:00:49,920
Ce qui nous intéresse ici, c'est comment nous pouvons tirer parti du Hub de modèles pendant l'entraînement.

11
00:00:49,920 --> 00:00:56,500
Cela se fait avec le `push_to_hub=True` passé dans vos `TrainingArguments`. Cela

12
00:00:56,500 --> 00:01:02,149
téléchargera automatiquement votre modèle sur le Hub chaque fois qu'il est enregistré (donc à chaque époque dans notre cas), ce

13
00:01:02,149 --> 00:01:08,260
qui vous permet de reprendre l'entraînement à partir d'une machine différente si la machine actuelle est interrompue.

14
00:01:08,260 --> 00:01:13,610
Le modèle sera téléchargé dans votre espace, avec le nom du dépôt de sortie comme

15
00:01:13,610 --> 00:01:14,690
nom de dépôt.

16
00:01:14,690 --> 00:01:20,580
Vous pouvez choisir un autre nom en le transmettant à l'argument `hub_model_id` et vous pouvez aussi

17
00:01:20,580 --> 00:01:32,420
pousser à l'intérieur d'une organisation dont vous êtes membre en transmettant un nom de dépôt complet.

18
00:01:32,420 --> 00:01:43,290
Ceci fait, nous pouvons simplement lancer l'entraînement et attendre un peu.

19
00:01:43,290 --> 00:01:47,820
Notez que le modèle est poussé de manière asynchrone, ce qui signifie que l'entraînement se poursuit pendant que

20
00:01:47,820 --> 00:01:50,119
votre modèle est téléchargé sur le Hub.

21
00:01:50,119 --> 00:02:02,399
Lorsque votre premier commit est terminé, vous pouvez aller inspecter votre modèle sur le Hub et même

22
00:02:02,399 --> 00:02:11,000
commencer à jouer avec son widget d'inférence pendant qu'il s'entraîne !

23
00:02:11,000 --> 00:02:27,370
Il y a quelque chose qui ne va pas avec les étiquettes, mais nous corrigerons cela plus tard dans cette vidéo.

24
00:02:27,370 --> 00:02:33,590
Lorsque l'entraînement est terminé, nous devrions faire un dernier push avec `trainer.push_to_hub` pour

25
00:02:33,590 --> 00:02:35,330
deux raisons.

26
00:02:35,330 --> 00:02:39,980
Cela garantira que nous téléchargeons la version finale de nos modèles si nous ne l'avons pas déjà fait

27
00:02:39,980 --> 00:02:45,860
(par exemple, si nous avons enregistré toutes les n étapes au lieu de toutes les époques).

28
00:02:45,860 --> 00:02:51,310
Deuxièmement, cela rédigera une carte de modèle qui sera la page de destination de votre dépôt de modèles.

29
00:02:51,310 --> 00:03:00,000
Quand le commit est fait, revenons à la page du modèle et rafraichissons. Vous pouvez voir le brouillon d'une carte de modèle qui inclus des informations sur quel modèle pré-entraîné nous avons finetuné,

30
00:03:00,000 --> 00:03:15,350
Les hyperparamètres utilisés, les résultats intermédiaires de l'entraînement et les versions des frameworks utilisés pour que les autres personnes puissent reproduirent facilement les résultats.

31
00:03:15,350 --> 00:03:22,120
En haut de toutes ces informations, le `Trainer` fournit aussi des métadonnées qui sont interprétées par le site web d'Hugging Face dans la carte du modèle.

32
00:03:22,120 --> 00:03:26,770
On obtient les valeurs des métriques affichées automatiquement dans un petit widget, et un lien vers

33
00:03:26,770 --> 00:03:28,860
un classement dans Paper with Code.

34
00:03:28,860 --> 00:03:36,000
Les exécutions de Tensorboard ont aussi été poussées vers ce dépôt et nous pouvons les consulter directement depuis le Hub.

35
00:03:36,000 --> 00:03:43,709
Si vous n'utilisiez pas l'API `Trainer` pour finetuner votre modèle, vous pouvez utiliser la méthode

36
00:03:43,709 --> 00:03:45,319
`push_to_hub` directement sur le modèle et le tokenizer.

37
00:03:45,319 --> 00:03:49,340
Testons cela pour corriger nos étiquettes dans le widget d'inférence !

38
00:03:49,340 --> 00:03:54,140
Le widget d'inférence utilisait des noms par défaut pour les étiquettes car nous n'indiquions pas la

39
00:03:54,140 --> 00:03:57,100
correspondance entre les entiers et les noms d'étiquettes.

40
00:03:57,100 --> 00:04:02,909
Nous pouvons corriger la configuration en définissant les champs `label2id` et `id2label` à leur

41
00:04:02,909 --> 00:04:07,370
valeur appropriée, puis nous pouvons pousser la configuration fixe vers notre dépôt en utilisant la méthode `push_to_hub`.

43
00:04:07,370 --> 00:04:13,440
Une fois que cela est fait et que nous pouvons vérifier sur le site web, le modèle affiche maintenant les bonnes étiquettes !

44
00:04:13,440 --> 00:04:22,370
Maintenant que le modèle est sur le Hub, nous pouvons l'utiliser de n'importe où avec la méthode `from_pretrained` ou la fonction `pipeline`.

45
00:04:35,000 --> 00:04:39,880
Nous n'avons qu'à utiliser l'identifiant du Hub et nous pouvons voir que la configuration et les poids du modèle sont automatiquement téléchargés.

46
00:04:53,949 --> 00:04:57,999
Essayez l'API `push_to_hub` lors de votre prochain entraînement pour partager facilement votre modèle avec le reste du monde !