【问题标题】:BigBird, or Sparse self-attention: How to implement a sparse matrix?BigBird 或 Sparse self-attention:如何实现稀疏矩阵?
【发布时间】:2021-04-03 14:35:04
【问题描述】:

这个问题与新论文有关:Big Bird: Transformers for Longer Sequences。主要是关于稀疏注意力的实现(在Supplemental material, part D中指定)。目前,我正在尝试在 PyTorch 中实现它。

他们提出了一种通过阻止原始查询和关键矩阵来加速计算的新方法(见下文)

当您在步骤 (b) 中进行矩阵乘法运算时,您最终会得到类似的结果: .

所以我想知道:你将如何从该表示(上图)到稀疏矩阵(使用 PyTorch,见下文)?在论文中,他们只是说:“只需重塑结果”,我不知道有什么简单的方法可以做到这一点(特别是当我在不同位置有多个块时(参见第一张图片上的步骤 (c))。

解决方案: Huggingface 在 pytorch 中实现了 BigBird。

【问题讨论】:

    标签: neural-network pytorch tensor bert-language-model attention-model


    【解决方案1】:

    我最终遵循了论文中的指导方针。当涉及到我使用的结果解包时:torch.sparse_coo_tensor

    编辑:稀疏张量仍然需要大量内存! more efficient solution 在这里描述

    【讨论】:

    • 你有稀疏注意力机制的实现吗?
    • 可以看deepspeed实现
    • 更新:Huggingface 在 pytorch 中实现了 BigBird(你可以查看他们的代码)
    • 谢谢,我去查一下,我也在找一个简单的自监督学习技术,如果有相关信息请告诉我
    猜你喜欢
    • 1970-01-01
    • 2012-09-04
    • 2021-11-23
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 2013-06-16
    相关资源
    最近更新 更多