#
Quiz de fin de chapitre

Testons ce que vous avez appris dans ce chapitre !

###
1. Dans quel ordre devez-vous lire un traceback Python ?

De haut en bas De bas en haut

###
2. Qu’est-ce qu’un exemple minimal reproductible ?

Une implémentation simmple d'un transformer à partir d'un article de recherche. Un bloc de code compact et autonome qui peut être exécuté sans aucune dépendance externe sur des fichiers ou des données privées. Une capture d'écran de la traceback Python Un notebook qui contient toute votre analyse, y compris les parties sans rapport avec l'erreur.

###
3. Supposons que vous essayez d’exécuter le code suivant, qui génère une erreur :

    from transformers import GPT3ForSequenceClassification

    # ImportError: cannot import name 'GPT3ForSequenceClassification' from 'transformers' (/Users/lewtun/miniconda3/envs/huggingface/lib/python3.8/site-packages/transformers/__init__.py)
    # ---------------------------------------------------------------------------
    # ImportError                               Traceback (most recent call last)
    # /var/folders/28/k4cy5q7s2hs92xq7_h89_vgm0000gn/T/ipykernel_30848/333858878.py in <module>
    # ----> 1 from transformers import GPT3ForSequenceClassification

    # ImportError: cannot import name 'GPT3ForSequenceClassification' from 'transformers' (/Users/lewtun/miniconda3/envs/huggingface/lib/python3.8/site-packages/transformers/__init__.py)

Lequel des éléments suivants pourrait être un bon choix pour le titre d’un sujet de forum pour demander de l’aide ?

`ImportError: cannot import name 'GPT3ForSequenceClassification' from 'transformers' (/Users/lewtun/miniconda3/envs/huggingface/lib/python3.8/site-packages/transformers/__init__.py)` Problème avec `from transformers import GPT3ForSequenceClassification` Pourquoi je ne peux pas importer `GPT3ForSequenceClassification`? Le GPT-3 est-il pris en charge dans 🤗 Transformers ?

###
4. Supposons que vous ayez essayé d’exécuter `trainer.train()` et que vous soyez confronté à une erreur énigmatique qui ne vous dit pas exactement d’où vient l’erreur. Quel est le premier endroit où vous devez chercher les erreurs dans votre pipeline d’entraînement ?

L'étape d'optimisation où nous calculons les gradients et effectuons la rétropropagation. L'étape d'évaluation où nous calculons les métriques Les jeux de données Les chargeurs de données

###
5. Quelle est la meilleure façon de déboguer une erreur CUDA ?

Postez le message d'erreur sur les forums ou sur GitHub. Exécutez le même code sur le CPU. Lisez la traceback pour découvrir ce qui a causé l'erreur. Réduisez la taille du batch. Redémarrez le noyau Jupyter.

###
6. Quelle est la meilleure façon de faire corriger un problème sur GitHub ?

Postez un exemple complet et reproductible du bug. Demandez chaque jour une mise à jour. Inspectez le code source autour du bogue et essayez de trouver la raison pour laquelle il se produit. Postez les résultats dans le problème.

###
7. Pourquoi le surapprentissage à un batch est-il généralement une bonne technique de débogage ?

Ce n'est pas le cas. Le surapprentissage est toujours mauvais et doit être évité. Elle nous permet de vérifier que le modèle est capable de réduire la perte à zéro. Il nous permet de vérifier que les formes tensorielles de nos entrées et de nos étiquettes sont correctes.

###
8. Pourquoi est-ce une bonne idée d’inclure des détails sur votre environnement de calcul avec `transformers-cli env` lorsque vous créez une nouvelle question dans le dépôt 🤗 Transformers ?

Cela permet aux mainteneurs de comprendre quelle version de la bibliothèque vous utilisez. Il permet aux mainteneurs de savoir si vous exécutez le code sous Windows, macOS ou Linux. Il permet aux mainteneurs de savoir si le code est exécuté sur un GPU ou un CPU.