subtitles/fr/33_the-push-to-hub-api-(pytorch).srt (135 lines of code) (raw):

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 !