La arena de largo alcance es un esfuerzo hacia la evaluación sistemática de modelos de transformadores eficientes. El proyecto tiene como objetivo establecer tareas de referencia/dtasets utilizando los que podemos evaluar los modelos basados en transformadores de manera sistemática, evaluando su potencia de generalización, eficiencia computacional, impresión del pie de memoria, etc.
La arena de largo alcance también implementa diferentes variantes de modelos de transformadores en Jax, usando Listra.
Esta primera versión inicial incluye los puntos de referencia para el documento "Long Range Arena: un punto de referencia para transformadores eficientes.
Actualmente hemos lanzado todo el código necesario para comenzar y ejecutar nuestros puntos de referencia en Vanilla Transformers.
Actualización Hemos lanzado los modelos Xformer utilizados en nuestros experimentos.
Estamos trabajando en una segunda actualización que lanzará más modelos y líneas de base para esta suite de referencia. Manténganse al tanto.
Consulte a continuación para obtener más ejemplos sobre cómo comenzar.
Resultados actuales de la tabla de clasificación de todos los resultados de Xformer en nuestros resultados de referencia. (A partir del 8 de noviembre de 2020)
| Modelo | Listops | Texto | Recuperación | Imagen | Camino | Ruta x | Aviso |
|---|---|---|---|---|---|---|---|
| ATT local | 15.82 | 52.98 | 53.39 | 41.46 | 66.63 | FALLAR | 46.06 |
| Trans. Lineal. | 16.13 | 65.90 | 53.09 | 42.34 | 75.30 | FALLAR | 50.55 |
| Reformador | 37.27 | 56.10 | 53.40 | 38.07 | 68.50 | FALLAR | 50.67 |
| SPARSE TRAN. | 17.07 | 63.58 | 59.59 | 44.24 | 71.71 | FALLAR | 51.24 |
| Sinkhorn trans. | 33.67 | 61.20 | 53.83 | 41.23 | 67.45 | FALLAR | 51.29 |
| Linformer | 35.70 | 53.94 | 52.27 | 38.56 | 76.34 | FALLAR | 51.36 |
| Ejecutante | 18.01 | 65.40 | 53.82 | 42.77 | 77.05 | FALLAR | 51.41 |
| Sintetizador | 36.99 | 61.68 | 54.67 | 41.61 | 69.45 | FALLAR | 52.88 |
| Formador largo | 35.63 | 62.85 | 56.89 | 42.22 | 69.71 | FALLAR | 53.46 |
| Transformador | 36.37 | 64.27 | 57.46 | 42.44 | 71.40 | FALLAR | 54.39 |
| Pájaro grande | 36.05 | 64.02 | 59.29 | 40.83 | 74.87 | FALLAR | 55.01 |
Enumeramos las entradas de otros documentos y presentaciones que utilizaron nuestro punto de referencia LRA.
| Modelo | Listops | Texto | Recuperación | Imagen | Camino | Ruta x | Aviso |
|---|---|---|---|---|---|---|---|
| IGLÚ | 39.23 | 82 | 75.5 | 47.0 | 67.50 | N / A | 62.25 |
| TLB | 37.05 | 81.88 | 76.91 | 57.51 | 79.06 | FALLAR | 66.48 |
Envíos de iglú (por Vsevolod Sourkov) - https://github.com/redna11/lra-igloo
TLB (cuello de botella latente temporal) - Transformer_tlb
Si considera útil el trabajo, cita nuestro artículo en:
@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}
}
** Nota: ¡también cita las fuentes originales de estos conjuntos de datos! **
Envíe el enlace del documento (ARXIV, o publicado) al Yi Tay o Mostafa Dehghani (correos electrónicos en papel) para incluir sus nuevos resultados en la clasificación. Al igual que anteriormente, agregaremos resultados a la parte de envío externa de la tabla de clasificación. Esto es para que no fomentemos las escalas de colinas en la tabla de clasificación, sino comparaciones de lado a lado.
Tenemos la intención de que su punto de referencia actúe como una herramienta y suite para inspeccionar el comportamiento del modelo. Como tal, si está ejecutando una nueva configuración y ha sintonizado HPARAMS, considere ejecutar todos los demás modelos.
Esta configuración es para personas que desean compararse con nuestros resultados publicados directamente .
La configuración predeterminada de hiperparameter (cada punto de referencia debe tener un archivo de configuración ahora). No se le permite cambiar los hiperparámetros, como el tamaño de la incrustación, las dimensiones ocultas, el número de capas del nuevo modelo.
El nuevo modelo debe estar dentro del mejor de 10% más grande en términos de parámetros en comparación con el modelo de transformador base en el archivo de configuración proporcionado.
Puede ejecutar cualquier tamaño del modelo y cambiar cualquier hiperparámetro del modelo. Sin embargo, al final, no se le permitirá informar los resultados de nuestra clasificación porque ya no son comparables. Puede optar por volver a transmitir modelos de nuestra biblioteca en una configuración comparable.
Si se desarrolla o podría beneficiarse de una extensa variedad de líneas de base Xformer, no dude en informarnos si está interesado en construir nuevos puntos de referencia. Agradecemos las contribuciones para modelos nuevos o anteriores que no están cubiertos en la suite existente.
En este artículo, no priorizamos hacer barridos de Hparam. Si encuentra un problema relacionado con la implementación o un mejor HPARAM que permite que un modelo mejore en una tarea determinada, envíe un PR (o un nuevo archivo de configuración) e volveremos a ejecutar el modelo internamente e informaremos nuevos resultados para el modelo existente.
Los resultados oficiales son solo para el código que se ha verificado y ejecutado en nuestra base de código. Reportamos todas las presentaciones externas como externas . Envíe un PR, un correo electrónico que nos muestra cómo ejecutar su modelo en nuestra base de código y actualizaremos los resultados en consecuencia. (Nota debido a restricciones de ancho de banda Este proceso tomará una cantidad sustancial de tiempo).
Para ejecutar una tarea, ejecute el archivo Train.py en el directorio de tareas correspondiente. (Consulte cómo obtener los datos para ciertas tareas si corresponde).
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/
Esta sección describe los métodos para obtener los conjuntos de datos y ejecutar las tareas en LRA.
Para descargar los conjuntos de datos, descargarlo de gs://long-range-arena/lra_release . Si los permisos fallan, puede descargar todo el archivo gziped en https://storage.googleapis.com/long-range-arena/lra_release.gz.
Esta tarea se puede encontrar en /listops . Los conjuntos de datos utilizados en nuestros experimentos se pueden encontrar en estos cubos de nubes de Google y están en formato TSV.
Si desea llegar a longitudes de secuencia más largas/más cortas, también admitimos generar su propia división, ejecute el siguiente comentario:
PYTHONPATH="$(pwd)":"$PYTHON_PATH" python lra_benchmarks/data/listops.py --
--output_dir=$HOME/lra_data/listops/
Esta tarea se puede encontrar en /text_classification . No se requiere acción porque esta tarea ya se encuentra en los conjuntos de datos TensorFlow. El código debe ejecutarse como está.
Descargue el conjunto de datos en (http://aan.how/download/). Descargue las divisiones Train/Test/Dev de nuestro Bucket de Google Cloud. Desafortunadamente, no pudimos redistribuir estos conjuntos de datos y solo estamos liberando las ID en la label paper1_id paper2_id . Puede descargar los datos de la fuente original y extraer los datos textuales.
Esta tarea se puede encontrar en /image . No se requiere acción porque esta tarea ya se encuentra en los conjuntos de datos TensorFlow. Debería funcionar fuera de la caja.
Consulte el directorio ./data , donde se puede encontrar el constructor TFDS para el conjunto de datos Pathfinder. Generamos diferentes conjuntos de datos para la tarea PathFinder, con diferentes niveles de dificultad utilizando el script proporcionado aquí. Puede encontrar información sobre los parámetros utilizados para generar los datos en el código TFDS Builder en ./data/pathfinder . Estamos preparando las divisiones de datos exactas para su lanzamiento en este momento.
Este no es un producto oficial de Google.