L'arène à longue portée est un effort pour l'évaluation systématique des modèles de transformateurs efficaces. Le projet vise à établir des tâches / dtasets de référence en utilisant lesquels nous pouvons évaluer les modèles basés sur le transformateur de manière systématique, en évaluant leur puissance de généralisation, leur efficacité de calcul, l'empreinte des pieds de mémoire, etc.
Arena à longue portée implémente également différentes variantes de modèles de transformateurs dans Jax, en utilisant le lin.
Cette première version initiale comprend les repères pour le papier "Long Range Arena: une référence pour les transformateurs efficaces.
Actuellement, nous avons publié tout le code nécessaire pour démarrer et exécuter nos repères sur Vanilla Transformers.
Mise à jour Nous avons publié les modèles XFORMER utilisés dans nos expériences.
Nous travaillons sur une 2ème mise à jour qui publiera plus de modèles et de lignes de base pour cette suite de référence. Restez à l'écoute.
Veuillez consulter ci-dessous pour plus d'exemples sur la façon de commencer.
Résultats actuels de classement de tous les résultats XFORMER sur nos résultats de référence. (au 8 novembre 2020)
| Modèle | Listes | Texte | Récupération | Image | Chemin | PATH-X | AVG |
|---|---|---|---|---|---|---|---|
| ATT local | 15.82 | 52.98 | 53.39 | 41.46 | 66.63 | ÉCHOUER | 46.06 |
| Trans linéaire. | 16.13 | 65.90 | 53.09 | 42.34 | 75.30 | ÉCHOUER | 50,55 |
| Réformateur | 37.27 | 56.10 | 53.40 | 38.07 | 68.50 | ÉCHOUER | 50.67 |
| SPARSE trans. | 17.07 | 63,58 | 59.59 | 44.24 | 71.71 | ÉCHOUER | 51.24 |
| Sinkhorn Trans. | 33.67 | 61.20 | 53,83 | 41.23 | 67.45 | ÉCHOUER | 51.29 |
| Réformeur de lin | 35,70 | 53.94 | 52.27 | 38,56 | 76.34 | ÉCHOUER | 51.36 |
| Interprète | 18.01 | 65.40 | 53,82 | 42.77 | 77.05 | ÉCHOUER | 51.41 |
| Synthétiseur | 36.99 | 61,68 | 54.67 | 41.61 | 69.45 | ÉCHOUER | 52.88 |
| Forgeron | 35.63 | 62.85 | 56.89 | 42.22 | 69.71 | ÉCHOUER | 53.46 |
| Transformateur | 36.37 | 64.27 | 57.46 | 42.44 | 71.40 | ÉCHOUER | 54.39 |
| Bigbird | 36.05 | 64.02 | 59.29 | 40.83 | 74.87 | ÉCHOUER | 55.01 |
Nous énumérons les entrées d'autres articles et soumissions qui ont utilisé notre référence LRA.
| Modèle | Listes | Texte | Récupération | Image | Chemin | PATH-X | AVG |
|---|---|---|---|---|---|---|---|
| IGLOU | 39.23 | 82 | 75,5 | 47.0 | 67.50 | N / A | 62.25 |
| TLB | 37.05 | 81.88 | 76.91 | 57,51 | 79.06 | ÉCHOUER | 66.48 |
Soumissions Igloo (par Vsevolod Sourkov) - https://github.com/redna11/lra-igloo
TLB (goulot d'étranglement latent temporel) - Transformer_tlb
Si vous découvrez le travail utile, veuillez citer notre article sur:
@inproceedings{
tay2021long,
title={Long Range Arena : A Benchmark for Efficient Transformers },
author={Yi Tay and Mostafa Dehghani and Samira Abnar and Yikang Shen and Dara Bahri and Philip Pham and Jinfeng Rao and Liu Yang and Sebastian Ruder and Donald Metzler},
booktitle={International Conference on Learning Representations},
year={2021},
url={https://openreview.net/forum?id=qVyeW-grC2k}
}
** Remarque: veuillez également citer les sources originales de ces ensembles de données! **
Veuillez envoyer le lien du journal (arXiv ou publié) au Yi Tay ou Mosfa Dehghani (e-mails en papier) pour inclure vos nouveaux résultats au classement. Tout comme ci-dessus, nous ajouterons des résultats à la partie de soumission externe du classement. C'est pour que nous n'encourageons pas l'escalade en colline dans le classement mais plutôt des comparaisons côte à côte significatives.
Nous avons l'intention que votre référence agisse comme un outil et une suite pour inspecter le comportement du modèle. En tant que tel, si vous exécutez une nouvelle configuration et que vous avez réglé Hparams, envisagez d'exécuter tous les autres modèles.
Ce paramètre est destiné aux gens qui souhaitent comparer directement avec nos résultats publiés.
La configuration de l'hyperparamètre par défaut (chaque référence doit avoir un fichier de configuration maintenant). Vous n'êtes pas autorisé à changer les hyperparamètres tels que la taille de l'intégration, les dimensions cachées, le nombre de couches du nouveau modèle.
Le nouveau modèle doit être au mieux 10% plus grand en termes de paramètres par rapport au modèle de transformateur de base dans le fichier de configuration fourni.
Vous êtes autorisé à exécuter n'importe quelle taille de modèle et à modifier n'importe quel hyperparamètre du modèle. Cependant, en fin de compte, vous ne serez pas autorisé à signaler les résultats de notre classement car ils ne sont plus comparables. Vous pouvez choisir de relancer des modèles à partir de notre bibliothèque dans un paramètre comparable.
Si vous développez ou pourriez bénéficier d'une vaste gamme de lignes de base XFormer, n'hésitez pas à nous faire savoir si vous êtes intéressé à construire de nouvelles références. Nous accueillons des contributions pour les modèles nouveaux ou anciens qui ne sont pas couverts dans la suite existante.
Dans cet article, nous n'avons pas priorisé les balayages de Hparam. Si vous trouvez un problème lié à l'implémentation ou un meilleur HPARAM qui permet à un modèle de faire mieux sur une certaine tâche, envoyez un PR (ou un nouveau fichier de configuration) et nous exécuterons à nouveau le modèle en interne et signalerons les nouveaux résultats pour le modèle existant.
Les résultats officiels sont uniquement pour le code qui ont été vérifiés et exécutés dans notre base de code. Nous rapportons toutes les soumissions externes comme externes . Soit soumettre un PR, un e-mail nous montrant comment exécuter votre modèle dans notre base de code et nous mettrons à jour les résultats en conséquence. (Remarque en raison des contraintes de bande passante Ce processus prendra un temps important).
Pour exécuter une tâche, exécutez le fichier Train.py dans le répertoire des tâches correspondant. (Veuillez voir comment obtenir les données pour certaines tâches le cas échéant).
PYTHONPATH="$(pwd)":"$PYTHON_PATH" python lra_benchmarks/listops/train.py
--config=lra_benchmarks/listops/configs/transformer_base.py
--model_dir=/tmp/listops
--task_name=basic
--data_dir=$HOME/lra_data/listops/
Cette section décrit les méthodes pour obtenir les ensembles de données et exécuter les tâches dans la LRA.
Pour télécharger les ensembles de données, veuillez le télécharger à partir de gs://long-range-arena/lra_release . Si les autorisations échouent, vous pouvez télécharger l'intégralité du fichier gziped sur https://storage.googleapis.com/long-range-arena/lra_release.gz.
Cette tâche peut être trouvée sur /listops . Les ensembles de données utilisés dans nos expériences peuvent être trouvés dans ces godets Google Cloud et sont au format TSV.
Si vous souhaitez passer à des durées de séquence plus longues / plus courtes, nous prenons également en charge la génération de votre propre scission, exécutez le commentaire suivant:
PYTHONPATH="$(pwd)":"$PYTHON_PATH" python lra_benchmarks/data/listops.py --
--output_dir=$HOME/lra_data/listops/
Cette tâche peut être trouvée sur /text_classification . Aucune action n'est requise car cette tâche est déjà trouvée dans les ensembles de données TensorFlow. Le code doit s'exécuter tel quel.
Veuillez télécharger l'ensemble de données sur (http://aan.how/download/). Veuillez télécharger le train / test / dev que les divisions à partir de notre godet Google Cloud. Malheureusement, nous n'avons pas pu redistribuer ces ensembles de données et libérer uniquement les ID dans l' label paper1_id paper2_id . Vous pouvez télécharger les données à partir de la source d'origine et extraire les données textuelles.
Cette tâche peut être trouvée à /image . Aucune action n'est requise car cette tâche est déjà trouvée dans les ensembles de données TensorFlow. Cela devrait fonctionner hors de la boîte.
Veuillez consulter le répertoire ./data , où le constructeur TFDS pour l'ensemble de données Pathfinder peut être trouvé. Nous avons généré différents ensembles de données pour la tâche Pathfinder, avec différents niveaux de difficulté à utiliser le script fourni ici. Vous pouvez trouver des informations sur les paramètres utilisés pour générer les données du code du générateur TFDS dans ./data/pathfinder . Nous préparons les divisions de données exactes pour la libération pour le moment.
Ce n'est pas un produit Google officiel.