Code du billet de blog The Annotated Transformer :
http://nlp.seas.harvard.edu/annotated-transformer/
Utilisez requirements.txt
pour installer les dépendances de la bibliothèque avec pip :
pip install -r requirements.txt
Le transformateur annoté est créé à l'aide de jupytext.
Les notebooks classiques posent des problèmes pour le contrôle des sources : les sorties des cellules se retrouvent dans l'historique du dépôt et les différences entre les validations sont difficiles à examiner. En utilisant jupytext, il existe un script python (fichier .py
) qui est automatiquement synchronisé avec le fichier notebook par le plugin jupytext.
Le script Python est validé, contient tout le contenu de la cellule et peut être utilisé pour générer le fichier notebook. Le script Python est un fichier source Python standard, les sections de démarque sont incluses à l'aide d'une convention de commentaires standard et les sorties ne sont pas enregistrées. Le notebook lui-même est traité comme un artefact de build et n'est pas validé dans le référentiel git.
Avant d'utiliser ce dépôt, assurez-vous que jupytext est installé en suivant les instructions d'installation ici.
Pour produire le fichier notebook .ipynb
à l'aide de la source markdown, exécutez (sous le capot, la cible de construction notebook
exécute simplement jupytext --to ipynb the_annotated_transformer.py
) :
make notebook
Pour produire la version HTML du notebook, exécutez :
make html
make html
est juste un raccourci pour générer le bloc-notes avec jupytext --to ipynb the_annotated_transformer.py
suivi de l'utilisation de la commande jupyter nbconvert pour produire du HTML en utilisant jupyter nbconvert --to html the_annotated_transformer.ipynb
Pour garder le formatage du code propre, le dépôt git du transformateur annoté a une action git pour vérifier que le code est conforme aux normes de codage PEP8.
Pour faciliter cela, il existe deux cibles de construction Makefile
pour exécuter le formatage automatique du code avec black et flake8.
Assurez-vous d'installer black et flake8.
Vous pouvez alors exécuter :
make black
(ou bien appelez manuellement black black --line-length 79 the_annotated_transformer.py
) pour formater automatiquement le code en utilisant le noir et :
make flake
(ou appelez manuellement flake8 `flake8 --show-source the_annotated_transformer.py) pour vérifier les violations PEP8.
Il est recommandé d'exécuter ces deux commandes et de corriger toutes les erreurs flake8 qui surviennent lors de la soumission d'un PR, sinon le CI des actions github signalera une erreur.