ICLR ICLR 2021 Spotlight Random Feature Attention
| Files | Last commit | Last update |
|---|---|---|
| 2 years ago | ||
| 2 years ago | ||
| 2 years ago | ||
| 2 years ago | ||
| 2 years ago | ||
| 2 years ago | ||
| 2 years ago |
长程竞技场(Long-Range Arena,简称 LRA,发音为 ELRA)
长程竞技场旨在对高效 Transformer 模型进行系统性评估。该项目致力于建立基准任务/数据集,通过评估模型的泛化能力、计算效率、内存占用等方面,以便我们能够以系统化的方式评估基于 Transformer 的模型。
长程竞技场还在 JAX 中使用 Flax 实现了不同变体的 Transformer 模型。
此初始版本包含了论文《Long Range Arena: A benchmark for Efficient Transformers》中的基准测试。
目前,我们已发布所有必要代码,以便开始并在标准 Transformer 上运行我们的基准测试。
V2 版本
更新 我们已发布实验中使用的 xformer 模型。
我们正在进行第二次更新,将为此基准测试套件发布更多模型和基线。敬请关注。
请参阅下文了解更多入门示例。
我们的实验
所有 xformer 模型在我们基准测试上的当前排行榜结果(截至 2020 年 11 月 8 日)
| 模型 | ListOps | Text | Retrieval | Image | Path | Path-X | 平均值 |
|---|---|---|---|---|---|---|---|
| Local Att | 15.82 | 52.98 | 53.39 | 41.46 | 66.63 | 失败 | 46.06 |
| Linear Trans. | 16.13 | 65.90 | 53.09 | 42.34 | 75.30 | 失败 | 50.55 |
| Reformer | 37.27 | 56.10 | 53.40 | 38.07 | 68.50 | 失败 | 50.67 |
| Sparse Trans. | 17.07 | 63.58 | 59.59 | 44.24 | 71.71 | 失败 | 51.24 |
| Sinkhorn Trans. | 33.67 | 61.20 | 53.83 | 41.23 | 67.45 | 失败 | 51.29 |
| Linformer | 35.70 | 53.94 | 52.27 | 38.56 | 76.34 | 失败 | 51.36 |
| Performer | 18.01 | 65.40 | 53.82 | 42.77 | 77.05 | 失败 | 51.41 |
| Synthesizer | 36.99 | 61.68 | 54.67 | 41.61 | 69.45 | 失败 | 52.88 |
| Longformer | 35.63 | 62.85 | 56.89 | 42.22 | 69.71 | 失败 | 53.46 |
| Transformer | 36.37 | 64.27 | 57.46 | 42.44 | 71.40 | 失败 | 54.39 |
| BigBird | 36.05 | 64.02 | 59.29 | 40.83 | 74.87 | 失败 | 55.01 |
公开外部条目
我们列出了其他使用我们LRA基准的论文和提交内容。
| 模型 | ListOps | 文本 | 检索 | 图像 | 路径 | Path-X | 平均值 |
|---|---|---|---|---|---|---|---|
| IGLOO | 39.23 | 82 | 75.5 | 47.0 | 67.50 | NA | 62.25 |
| TLB | 37.05 | 81.88 | 76.91 | 57.51 | 79.06 | FAIL | 66.48 |
IGLOO提交内容(由Vsevolod Sourkov提供)- https://github.com/redna11/lra-igloo
TLB(时间潜在瓶颈)- transformer_tlb
引用
如果您发现我们的工作有用,请引用我们的论文:
@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}
}
注意:也请引用这些数据集的原始来源!
将结果添加到排行榜
请将论文链接(arxiv 或已发表论文)发送给 Yi Tay 或 Mostafa Dehghani(论文中有邮箱),以便将您的新结果添加到排行榜。与上述情况类似,我们会将结果添加到排行榜的外部提交部分。这样做是为了避免鼓励针对排行榜进行“爬坡式”优化,而是促进有意义的横向比较。
关于评估和比较的说明
有意义的比较
我们希望此基准能充当检查模型行为的工具和套件。因此,如果您正在运行新的设置并且已经调整了超参数,建议同时运行所有其他模型。
严格可比设置
此设置适用于希望与我们已发表结果进行直接比较的研究人员。
使用默认超参数设置(现在每个基准都应有一个配置文件)。您不得更改新模型的超参数,例如嵌入大小、隐藏维度、层数等。
新模型的参数量最多只能比提供的配置文件中的基础 Transformer 模型多 10%。
自由设置
您可以运行任何大小的模型,并更改模型的任何超参数。但是,最终您将不被允许从我们的排行榜中报告结果,因为它们已不具备可比性。您可以选择在可比较的设置下重新运行我们库中的模型。
向此套件添加基准或模型
如果您开发了大量 xformer 基线,或者能从中受益,请随时告知我们您是否有兴趣构建新的基准。我们欢迎对现有套件中未涵盖的新模型或旧模型做出贡献。
如果我为现有模型找到了更好的配置怎么办?
在本文中,我们没有优先进行超参数搜索。如果您碰巧发现了与实现相关的问题,或者找到了能让模型在特定任务上表现更好的超参数,请提交 PR(或新的配置文件),我们将在内部重新运行该模型,并为现有模型报告新结果。
我有一个新的 Xyzformer,该如何将其添加到基准测试中?
官方结果仅适用于已在我们代码库中验证并运行的代码。所有外部提交的结果均会标记为“external”。您可以提交 PR,或发送电子邮件说明如何在我们的代码库中运行您的模型,我们将据此更新结果。(请注意,由于带宽限制,此过程将花费大量时间)。
示例用法
要运行任务,请在相应的任务目录中运行 train.py 文件。 (如适用,请查看如何获取某些任务的数据)。
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/
数据集设置
本节介绍获取 LRA 中的数据集和运行任务的方法。
要下载数据集,请从 gs://long-range-arena/lra_release 下载。如果权限出现问题,您可以通过 https://storage.googleapis.com/long-range-arena/lra_release.gz 下载完整的 gzip 压缩文件。
ListOps
此任务位于 /listops 目录下。我们实验中使用的数据集可在这些谷歌云存储桶中找到,格式为 TSV。
如果您希望使用更长或更短的序列长度,我们也支持生成自定义拆分,请运行以下命令:
PYTHONPATH="$(pwd)":"$PYTHON_PATH" python lra_benchmarks/data/listops.py -- \
--output_dir=$HOME/lra_data/listops/
文本分类
此任务可在 /text_classification 目录下找到。无需执行任何操作,因为该任务已包含在 tensorflow datasets 中。代码可直接运行。
文档检索
请从 (http://aan.how/download/) 下载数据集。请从我们的 google cloud bucket 下载训练/测试/开发集的划分文件。遗憾的是,我们无法重新分发此数据集,仅发布格式为 label paper1_id paper2_id 的标识符。您可以从原始来源下载数据并提取文本数据。
像素级图像分类
此任务可在 /image 目录下找到。无需执行任何操作,因为该任务已包含在 tensorflow datasets 中。它应该可以直接使用。
Pathfinder
请参阅 ./data 目录,其中包含 Pathfinder 数据集的 TFDS 构建器。我们使用 此处 提供的脚本生成了不同难度级别的 Pathfinder 任务数据集。您可以在 ./data/pathfinder 目录下的 TFDS 构建器代码中找到用于生成数据的参数信息。我们目前正在准备确切的数据划分以供发布。
免责声明
这不是 Google 的官方产品。