diff --git a/docs/source/zh/_toctree.yml b/docs/source/zh/_toctree.yml index 07c97e51550c..7ebddf033914 100644 --- a/docs/source/zh/_toctree.yml +++ b/docs/source/zh/_toctree.yml @@ -86,6 +86,8 @@ title: 🤗Transformers能做什么 - local: tokenizer_summary title: 分词器的摘要 + - local: attention + title: 注意力机制 title: 概念指南 - sections: - sections: diff --git a/docs/source/zh/attention.md b/docs/source/zh/attention.md new file mode 100644 index 000000000000..357a574a2d2e --- /dev/null +++ b/docs/source/zh/attention.md @@ -0,0 +1,37 @@ + + +# 注意力机制 + +大多数 transformer 模型使用完全注意力机制,该机制采用正方形的注意力矩阵。当输入很长的文本时,这将导致巨大的计算瓶颈。Longformer 和 Reformer 是提高注意力机制效率的改进模型,它们使用稀疏化的注意力矩阵来加速训练。 + +## 局部敏感哈希注意力机制(LSH attention) + +[Reformer](model_doc/reformer)使用LSH(局部敏感哈希)的注意力机制。在计算softmax(QK^t)时,只有矩阵QK^t中的最大元素(在softmax维度上)会做出有用的贡献。所以对于Q中的每个查询q,我们只需要考虑K中与q接近的键k,这里使用了一个哈希函数来确定q和k是否接近。注意力掩码被修改以掩盖当前的词符(token)(除了第一个位置之外),因为这样会使得查询和键相等(因此非常相似)。由于哈希可能会有些随机性,所以在实践中使用多个哈希函数(由n_rounds参数确定),然后一起求平均。 + +## 局部注意力机制(Local attention) +[Longformer](model_doc/longformer)使用局部注意力机制:通常情况下,局部上下文(例如,左边和右边的两个词符是什么?)对于给定词符的操作已经足够了。此外,通过堆叠具有小窗口的注意力层,最后一层将拥有不仅仅是窗口内词符的感受野,这使得它们能构建整个句子的表示。 + +一些预先选定的输入词符也被赋予全局注意力:对于这些少数词符,注意力矩阵可以访问所有词符(tokens),并且这个过程是对称的:所有其他词符除了它们局部窗口内的词符之外,也可以访问这些特定的词符。这在论文的图2d中有展示,下面是一个样本注意力掩码: + +