A arena de longo alcance é um esforço para a avaliação sistemática de modelos de transformadores eficientes. O projeto visa estabelecer tarefas/dtasets de referência usando, que podemos avaliar os modelos baseados em transformadores de maneira sistemática, avaliando seu poder de generalização, eficiência computacional, impressão a pé da memória etc.
A arena de longo alcance também implementa diferentes variantes de modelos de transformadores no JAX, usando linho.
Esta primeira versão inicial inclui os benchmarks para o artigo "Long Range Arena: uma referência para transformadores eficientes.
Atualmente, lançamos todo o código necessário para começar e executar nossos benchmarks em transformadores de baunilha.
Atualização , lançamos os modelos Xformer usados em nossos experimentos.
Estamos trabalhando em uma segunda atualização que lançará mais modelos e linhas de base para este conjunto de benchmark. Fique atento.
Por favor, veja abaixo mais exemplos sobre como começar.
Resultados atuais da tabela de classificação de todos os resultados do Xformer em nossos resultados de referência. (a partir de 8 de novembro de 2020)
| Modelo | Lista | Texto | Recuperação | Imagem | Caminho | Path-x | Avg |
|---|---|---|---|---|---|---|---|
| ATT local | 15.82 | 52.98 | 53.39 | 41.46 | 66.63 | FALHAR | 46.06 |
| Trans. | 16.13 | 65.90 | 53.09 | 42.34 | 75.30 | FALHAR | 50.55 |
| Reformador | 37.27 | 56.10 | 53.40 | 38.07 | 68,50 | FALHAR | 50.67 |
| Trans. | 17.07 | 63.58 | 59.59 | 44.24 | 71.71 | FALHAR | 51.24 |
| Sinkhorn Trans. | 33.67 | 61.20 | 53.83 | 41.23 | 67.45 | FALHAR | 51.29 |
| Linformer | 35.70 | 53.94 | 52.27 | 38.56 | 76.34 | FALHAR | 51.36 |
| Artista | 18.01 | 65.40 | 53.82 | 42.77 | 77.05 | FALHAR | 51.41 |
| Sintetizador | 36.99 | 61.68 | 54.67 | 41.61 | 69.45 | FALHAR | 52.88 |
| Longformer | 35.63 | 62.85 | 56,89 | 42.22 | 69.71 | FALHAR | 53.46 |
| Transformador | 36.37 | 64.27 | 57.46 | 42.44 | 71.40 | FALHAR | 54.39 |
| BigBird | 36.05 | 64.02 | 59.29 | 40.83 | 74.87 | FALHAR | 55.01 |
Listamos as entradas de outros documentos e envios que usaram nosso benchmark LRA.
| Modelo | Lista | Texto | Recuperação | Imagem | Caminho | Path-x | Avg |
|---|---|---|---|---|---|---|---|
| IGLU | 39.23 | 82 | 75.5 | 47.0 | 67.50 | N / D | 62.25 |
| Tlb | 37.05 | 81,88 | 76.91 | 57.51 | 79.06 | FALHAR | 66.48 |
Submissões Igloo (de Vsevolod Sourkov) - https://github.com/redna11/lra-igloo
TLB (gargalo latente temporal) - Transformer_tlb
Se você descobrir o trabalho útil, cite nosso artigo em:
@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: Cite também as fontes originais desses conjuntos de dados! **
Envie o link do artigo (Arxiv, ou publicado) para o Yi Tay ou o Mostafa Dehghani (e -mails em papel) para incluir seus novos resultados na tabela de classificação. Assim como acima, adicionaremos resultados à parte de envio externo da tabela de classificação. Isso é para que não incentivemos a escalada na tabela de classificação, mas como comparações lado a lado significativas.
Pretendemos que sua referência atue como uma ferramenta e suíte para inspecionar o comportamento do modelo. Como tal, se você estiver executando uma nova configuração e tiver tuned hparams, considere executar todos os outros modelos.
Essa configuração é para pessoas que desejam comparar diretamente com nossos resultados publicados.
A configuração padrão do hyperparameter (cada referência deve ter um arquivo de configuração agora). Você não tem permissão para alterar hiperparâmetros, como tamanho de incorporação, dimensões ocultas, número de camadas do novo modelo.
O novo modelo deve estar dentro da melhor das hipóteses 10% maiores em termos de parâmetros em comparação com o modelo de transformador base no arquivo de configuração fornecido.
Você pode executar qualquer tamanho do modelo e alterar qualquer hiperparâmetro do modelo. No entanto, no final, você não poderá relatar resultados de nossa tabela de classificação porque eles não são mais comparáveis. Você pode optar por executar os modelos de nossa biblioteca em uma configuração comparável.
Se você se desenvolver ou se beneficiar de uma extensa variedade de linhas de base do Xformer, sinta -se à vontade para nos informar se você estiver interessado em criar novos benchmarks. Congratulamo -nos com contribuições para modelos novos ou mais antigos que não são abordados na suíte existente.
Neste artigo, não priorizamos fazer varreduras de HPARAM. Se você encontrar um problema relacionado à implementação ou um HPARAM melhor que permita que um modelo faça melhor em uma determinada tarefa, envie um PR (ou um novo arquivo de configuração) e executaremos o modelo novamente internamente e relataremos novos resultados para o modelo existente.
Os resultados oficiais são apenas para código que foi verificado e executado em nossa base de código. Relatamos todos os envios externos como externos . Envie um PR, um email mostrando -nos como executar seu modelo em nossa base de código e atualizaremos os resultados de acordo. (Nota devido às restrições de largura de banda, esse processo levará uma quantidade substancial de tempo).
Para executar uma tarefa, execute o arquivo Train.py no diretório de tarefas correspondente. (Consulte como obter os dados para determinadas tarefas, se aplicável).
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 seção descreve os métodos para obter os conjuntos de dados e executar as tarefas no LRA.
Para baixar os conjuntos de dados, faça o download de gs://long-range-arena/lra_release . Se as permissões falharem, você poderá baixar todo o arquivo gziped em https://storage.googleapis.com/long-range-arena/lra_release.gz.
Esta tarefa pode ser encontrada em /listops . Os conjuntos de dados usados em nossos experimentos podem ser encontrados nesses baldes do Google Cloud e estão no formato TSV.
Se você deseja ir a comprimentos de sequência mais longos/mais curtos, também apoiamos a geração de sua própria divisão, execute o seguinte comentário:
PYTHONPATH="$(pwd)":"$PYTHON_PATH" python lra_benchmarks/data/listops.py --
--output_dir=$HOME/lra_data/listops/
Esta tarefa pode ser encontrada em /text_classification . Nenhuma ação é necessária porque essa tarefa já foi encontrada nos conjuntos de dados do TensorFlow. O código deve ser executado como está.
Faça o download do conjunto de dados em (http://aan.how/download/). Faça o download da divisão de trem/teste/dev do nosso bucket do Google Cloud. Infelizmente, não conseguimos redistribuir esses conjuntos de dados e estamos liberando apenas os IDs no formato label paper1_id paper2_id . Você pode baixar os dados da fonte original e extrair os dados textuais.
Esta tarefa pode ser encontrada em /image . Nenhuma ação é necessária porque essa tarefa já foi encontrada nos conjuntos de dados do TensorFlow. Deve funcionar fora da caixa.
Consulte o diretório ./data , onde o construtor TFDS para o conjunto de dados Pathfinder pode ser encontrado. Geramos conjuntos de dados diferentes para a tarefa Pathfinder, com diferentes níveis de dificuldade usando o script fornecido aqui. Você pode encontrar informações sobre os parâmetros usados para gerar os dados no código do construtor TFDS em ./data/pathfinder . Estamos preparando as divisões exatas de dados para liberação no momento.
Este não é um produto oficial do Google.