Implémentation simple du transformateur à partir de zéro dans Pytorch. Voir http://peterbloem.nl/blog/transformers pour une explication en profondeur.
Les modèles mis en œuvre ici sont conçus pour montrer la simplicité des modèles de transformateurs et de l'administration de soi. En tant que tels, ils ne vont pas évoluer en ce qui concerne les plus gros transformateurs. Pour cela, vous aurez besoin d'un certain nombre d'astuces qui compliquent le code (voir le billet de blog pour plus de détails).
Tous les modèles du référentiel sont constitués d'une seule pile de blocs de transformateurs (c'est-à-dire pas de structures d'encodeur / décodeur). Il s'avère que cette configuration simple fonctionne souvent le mieux.
Tout d'abord, téléchargez ou clonez le référentiel. Ensuite, dans le répertoire qui contient setup.py, exécutez
pip install -e .
Le commutateur -e garantit que lorsque vous modifiez le code, l'emballage installé est également modifié. Cela signifie que vous pouvez, par exemple, ajouter des instructions d'impression au code pour voir comment cela fonctionne.
Ensuite, à partir du même répertoire, exécutez:
python experiments/classify.py
Cela exécutera une expérience de classification simple sur l'ensemble de données IMDB.
Les hyperparamètres sont passés sous forme d'arguments de ligne de commande. Les valeurs par défaut devraient bien fonctionner. Les données de classification sont automatiquement téléchargées et les données Wikipedia sont incluses dans le référentiel.
Python 3.6+ est requis. La commande PIP ci-dessus doit installer tous les packages requis. Vous pourriez également avoir besoin pip install future en fonction de la version Python exacte.
Le fichier environment.yml décrit un environnement conda complet avec toutes les dépendances. Après le clonage ou le téléchargement du projet, vous créez l'environnement comme suit:
conda env create -f environment.yml --name former
conda activate former