🚀 YOSO
YOSO 是用于序列长度为 4096 的掩码语言建模(MLM)的模型,能够高效处理长序列的语言建模任务,为自然语言处理领域提供了新的解决方案。
🚀 快速开始
你可以按照以下示例代码使用 YOSO 模型进行掩码填充任务:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='uw-madison/yoso-4096')
>>> unmasker("Paris is the [MASK] of France.")
[{'score': 0.024274500086903572,
'token': 812,
'token_str': ' capital',
'sequence': 'Paris is the capital of France.'},
{'score': 0.022863076999783516,
'token': 3497,
'token_str': ' Republic',
'sequence': 'Paris is the Republic of France.'},
{'score': 0.01383623294532299,
'token': 1515,
'token_str': ' French',
'sequence': 'Paris is the French of France.'},
{'score': 0.013550693169236183,
'token': 2201,
'token_str': ' Paris',
'sequence': 'Paris is the Paris of France.'},
{'score': 0.011591030284762383,
'token': 270,
'token_str': ' President',
'sequence': 'Paris is the President of France.'}]
✨ 主要特性
YOSO 模型由 Zhanpeng Zeng、Yunyang Xiong、Sathya N. Ravi、Shailesh Acharya、Glenn Fung 和 Vikas Singh 等人在论文 You Only Sample (Almost) Once: Linear Cost Self-Attention Via Bernoulli Sampling 中提出。该模型具有以下重要特性:
- 高效的注意力机制:基于局部敏感哈希(LSH)的伯努利采样注意力机制,将模型的二次复杂度降低为线性,有效解决了长序列训练成本高的问题。
- 性能表现出色:在 GLUE 基准测试(标准序列长度 512)中表现良好;在 Long Range Arena(LRA)基准测试中,处理长序列时能取得与软最大化自注意力相当的结果,同时具有显著的速度提升和内存节省,并且常常优于其他高效自注意力方法。
论文摘要
基于 Transformer 的模型在自然语言处理(NLP)中被广泛使用。Transformer 模型的核心是自注意力机制,它捕获输入序列中 token 对之间的交互,并且其复杂度与序列长度呈二次关系。在更长的序列上训练此类模型成本高昂。在本文中,我们表明基于局部敏感哈希(LSH)的伯努利采样注意力机制可以将此类模型的二次复杂度降低为线性。我们将自注意力视为与伯努利随机变量相关的单个 token 的总和,原则上可以通过单个哈希一次性采样(尽管在实践中,这个数量可能是一个小常数),从而绕过了二次成本。这导致了一种有效的采样方案来估计自注意力,该方案依赖于对 LSH 的特定修改(以便在 GPU 架构上部署)。我们在 GLUE 基准测试(标准序列长度 512)上评估了我们的算法,相对于标准预训练的 Transformer,我们看到了良好的性能。在 Long Range Arena(LRA)基准测试中,为了评估在长序列上的性能,我们的方法取得了与软最大化自注意力一致的结果,但具有显著的速度提升和内存节省,并且常常优于其他高效自注意力方法。我们的代码可在该 URL 获得。