diff --git a/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.ipynb b/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.ipynb index e415680..7317050 100644 --- a/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.ipynb +++ b/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.ipynb @@ -565,7 +565,7 @@ "source": [ "  两个最常用的attention函数是:\n", "- 加法attention[(cite)](https://arxiv.org/abs/1409.0473)\n", - "- - 点积(乘法)attention\n", + "- 点积(乘法)attention\n", "\n", "除了缩放因子$\\frac{1}{\\sqrt{d_k}}$ ,点积Attention跟我们的平时的点乘算法一样。加法attention使用具有单个隐层的前馈网络计算相似度。虽然理论上点积attention和加法attention复杂度相似,但在实践中,点积attention可以使用高度优化的矩阵乘法来实现,因此点积attention计算更快、更节省空间。 \n", "当$d_k$ 的值比较小的时候,这两个机制的性能相近。当$d_k$比较大时,加法attention比不带缩放的点积attention性能好 [(cite)](https://arxiv.org/abs/1703.03906)。我们怀疑,对于很大的$d_k$值, 点积大幅度增长,将softmax函数推向具有极小梯度的区域。(为了说明为什么点积变大,假设q和k是独立的随机变量,均值为0,方差为1。那么它们的点积$q \\cdot k = \\sum_{i=1}^{d_k} q_ik_i$, 均值为0方差为$d_k$)。为了抵消这种影响,我们将点积缩小 $\\frac{1}{\\sqrt{d_k}}$倍。 \n", @@ -1464,7 +1464,7 @@ "cell_type": "markdown", "source": [ "# 真实场景示例\n", - "由于原始jupyter的真实数据场景需要多GPU训练,本教程暂时不将其纳入,感兴趣的读者可以继续阅读[原始教程](https://nlp.seas.harvard.edu/2018/04/03/attention.html)。另外由于真是数据原始url失效,原始教程应该也无法运行真是数据场景的代码。" + "由于原始jupyter的真实数据场景需要多GPU训练,本教程暂时不将其纳入,感兴趣的读者可以继续阅读[原始教程](https://nlp.seas.harvard.edu/2018/04/03/attention.html)。另外由于真实数据原始url失效,原始教程应该也无法运行真实数据场景的代码。" ], "metadata": {} }, diff --git a/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.md b/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.md index 4f38878..8d56ab5 100644 --- a/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.md +++ b/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.md @@ -339,7 +339,7 @@ def attention(query, key, value, mask=None, dropout=None):   两个最常用的attention函数是: - 加法attention[(cite)](https://arxiv.org/abs/1409.0473) -- - 点积(乘法)attention +- 点积(乘法)attention 除了缩放因子$\frac{1}{\sqrt{d_k}}$ ,点积Attention跟我们的平时的点乘算法一样。加法attention使用具有单个隐层的前馈网络计算相似度。虽然理论上点积attention和加法attention复杂度相似,但在实践中,点积attention可以使用高度优化的矩阵乘法来实现,因此点积attention计算更快、更节省空间。 当$d_k$ 的值比较小的时候,这两个机制的性能相近。当$d_k$比较大时,加法attention比不带缩放的点积attention性能好 [(cite)](https://arxiv.org/abs/1703.03906)。我们怀疑,对于很大的$d_k$值, 点积大幅度增长,将softmax函数推向具有极小梯度的区域。(为了说明为什么点积变大,假设q和k是独立的随机变量,均值为0,方差为1。那么它们的点积$q \cdot k = \sum_{i=1}^{d_k} q_ik_i$, 均值为0方差为$d_k$)。为了抵消这种影响,我们将点积缩小 $\frac{1}{\sqrt{d_k}}$倍。 @@ -896,7 +896,7 @@ print(greedy_decode(model, src, src_mask, max_len=10, start_symbol=1)) # 真实场景示例 -由于原始jupyter的真实数据场景需要多GPU训练,本教程暂时不将其纳入,感兴趣的读者可以继续阅读[原始教程](https://nlp.seas.harvard.edu/2018/04/03/attention.html)。另外由于真是数据原始url失效,原始教程应该也无法运行真是数据场景的代码。 +由于原始jupyter的真实数据场景需要多GPU训练,本教程暂时不将其纳入,感兴趣的读者可以继续阅读[原始教程](https://nlp.seas.harvard.edu/2018/04/03/attention.html)。另外由于真实数据原始url失效,原始教程应该也无法运行真实数据场景的代码。 # 结语