diff --git a/docs/README.md b/docs/README.md index 8629214..6edb00a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -22,8 +22,7 @@ Natural Language Processing with transformers. - 蔡杰,北京大学,篇章4 - hlzhang,麦吉尔大学,篇章4 - 台运鹏 篇章2 - -其他: +- 张红旭 篇章2 本项目总结和学习了多篇优秀文档和分享,在各个章节均有标注来源,如有侵权,请及时联系项目成员,谢谢。去[Github点完Star](https://github.com/datawhalechina/learn-nlp-with-transformers)再学习事半功倍哦😄,谢谢。 @@ -35,7 +34,8 @@ Natural Language Processing with transformers. ## 篇章2-Transformer相关原理 * [2.1-图解attention](./篇章2-Transformer相关原理/2.1-图解attention.md) * [2.2-图解transformer](./篇章2-Transformer相关原理/2.2-图解transformer.md) -* [2.2.1-Pytorch编写完整的Transformer](./篇章2-Transformer相关原理/2.2.1-Pytorch编写完整的Transformer.md) +* [2.2.1-Pytorch编写Transformer.md](./篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.md) +* [2.2.2-Pytorch编写Transformer-选读.md](./篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer-选读.md) * [2.3-图解BERT](./篇章2-Transformer相关原理/2.3-图解BERT.md) * [2.4-图解GPT](./篇章2-Transformer相关原理/2.4-图解GPT.md) * [2.5-篇章小测](./篇章2-Transformer相关原理/2.5-篇章小测.md) diff --git a/docs/_sidebar.md b/docs/_sidebar.md index cc08396..631d4e5 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -5,7 +5,8 @@ [篇章2-Transformer相关原理](./篇章2-Transformer相关原理/2.0-前言.md) * [2.1-图解attention](./篇章2-Transformer相关原理/2.1-图解attention.md) * [2.2-图解transformer](./篇章2-Transformer相关原理/2.2-图解transformer.md) -* [2.2.1-Pytorch编写完整的Transformer](./篇章2-Transformer相关原理/2.2.1-Pytorch编写完整的Transformer.md) +* [2.2.1-Pytorch编写Transformer.md](./篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.md) +* [2.2.2-Pytorch编写Transformer-选读.md](./篇章2-Transformer相关原理/2.2.2-Pytorch编写Transformer-选读.md) * [2.3-图解BERT](./篇章2-Transformer相关原理/2.3-图解BERT.md) * [2.4-图解GPT](./篇章2-Transformer相关原理/2.4-图解GPT.md) * [2.5-篇章小测](./篇章2-Transformer相关原理/2.5-篇章小测.md) diff --git a/docs/篇章2-Transformer相关原理/2.0-前言.md b/docs/篇章2-Transformer相关原理/2.0-前言.md index d193008..efc7735 100644 --- a/docs/篇章2-Transformer相关原理/2.0-前言.md +++ b/docs/篇章2-Transformer相关原理/2.0-前言.md @@ -2,7 +2,8 @@ 本章节将会对Transformer相关的原理进行深入讲解,主要涉及的内容有:attention,transformer和两个经典模型BERT和GPT。 * [2.1-图解attention](./篇章2-Transformer相关原理/2.1-图解attention.md) * [2.2-图解transformer](./篇章2-Transformer相关原理/2.2-图解transformer.md) -* [2.2.1-Pytorch编写完整的Transformer](./篇章2-Transformer相关原理/2.2.1-Pytorch编写完整的Transformer.md) +* [2.2.1-Pytorch编写Transformer.md](./篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.md) +* [2.2.2-Pytorch编写Transformer-选读.md](./篇章2-Transformer相关原理/2.2.2-Pytorch编写Transformer-选读.md) * [2.3-图解BERT](./篇章2-Transformer相关原理/2.3-图解BERT.md) * [2.4-图解GPT](./篇章2-Transformer相关原理/2.4-图解GPT.md) * [2.5-篇章小测](./篇章2-Transformer相关原理/2.5-篇章小测.md) diff --git a/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.ipynb b/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.ipynb new file mode 100644 index 0000000..e415680 --- /dev/null +++ b/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.ipynb @@ -0,0 +1,1540 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "source": [ + "from IPython.display import Image\n", + "Image(filename='pictures/transformer.png')" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj8AAAJjCAYAAADj4HC7AAAgAElEQVR4XuzddVxU2RvH8Q+I2IGuLdiKtYooujYKBnag2Bhro4jdYmOLhYUdKBhrJwqKSdg/uxYRXRFXQWBh+L1mAJUyRnSZ5eFPuPfOmfdz5twv5557Rys6Ojoa+REBERABERABERCBNCKgJeEnjVRa3qYIiIAIiIAIiIBKQMKPdAQREAEREAEREIE0JSDhJ02VW96sCIiACIiACIiAhB/pAyIgAiIgAiIgAmlKQMJPmiq3vFkREAEREAEREAEJP9IHREAEREAEREAE0pSAhJ80VW55syIgAiIgAiIgAhJ+pA+IgAiIgAiIgAikKQEJP2mq3PJmRUAEREAEREAEJPxIHxABERABERABEUhTAj80/GhpaaUpTHmzIiACIiACIiAC3y/wo795S8LP99dIjiACIiACIiACIpCCAhJ+UhBTDiUCIiACIiACIpD6BST8pP4aSQtFQAREQAREQARSUEDCTwpiyqFEQAREQAREQARSv4CEn9RfI2mhCIiACIiACIhACgpodPhJQQc5lAiIgAiIgAiIgAikiMAPvdsrRVooBxEBERABERABERCBFBSQ8JOCmHIoERABERABERCB1C8g4Sf110haKAIiIAIiIAIikIICEn5SEFMOJQIiIAIiIAIikPoFJPyk/hpJC0VABERABERABFJQQMJPCmLKoURABERABERABFK/gISf1F8jaaEIiIAIiIAIiEAKCkj4SUFMOZQIiIAIiIAIiEDqF5Dwk/prJC0UAREQAREQARFIQQEJPymIKYcSAREQAREQARFI/QISflJ/jaSFIiACIiACIiACKSgg4ScFMeVQIiACIiACIiACqV9Awk/qr5G0UAREQAREQAREIAUFJPykIKYcSgREQAREQAREIPULSPhJ/TWSFoqACIiACIiACKSggISfFMSUQ4mACIiACIiACKR+AQk/qb9G0kIREAEREAEREIEUFJDwk4KYcigREAEREAEREIHULyDhJ/XXSFooAiIgAiIgAiKQggISflIQUw4lAiIgAiIgAiKQ+gUk/KT+GkkLRUAEREAEREAEUlBAwk8KYsqhREAEREAEREAEUr+AhJ/UXyNpoQiIgAiIgAiIQAoKSPhJQUw5VAoLvDvM8JZuVNu2Eqt82il88FRyOMUzDtkPZspefwq1nsrySY3J/2+91aj77JmzirNBiqRx0uXDdNAwLPTTpTjeu8PDaelWjW0rrUi21JHX2DJ1E37vo2NfX4cSrcbQv3YOIq9tYeomPz7+qQStxvSndo6kmxrpu4HJ264TEXeoeJvpUKb9RPpUzwxE4L1+Cttv/PPJFjqUbjue33/LmuIOyR0w6s4uZq89R/CH0miRroApNrZNKRSvv0TxeP8Clp9+wccqpqNo85EMqpf7J7Q3lAtrpuF6O/Lja2nnoHqvsbQvk/L95ie8IXmJ/6iAhJ//aGE1/20peLGxPYY9D1N+ti+nRpbh64bOSB4c2sHjSlaYFkwiRUQ+4NCOx1SyMiWpP/9It8gHh9jxuBJWpgWJa1nEGTsqmi7kjvJcoVOWUWf8cKiu+yOb8ZljhxN4zZPjB52Zab+dm3FJQluP2nbLmd2rDhVKFSKHTgo3T/GCje0N6Xm4PLN9TzEy2ZNkCA+PzKBbh9mc/VuZWnQxXXyP40P00Q55yJEZ3egw+ywxfzJl8b3jDNFPJkm+vceJjdMYOmoTN0LjEpA2eVstYLdDe8oVKUTOjDHvM+TZNbzP78Vh8BQOvS6B1exlTOnRgNI5f2JKDX3AQYff6TnDnRdRse3Vzkmdacc4PK4qypgW9xMRdA/vE1uZZjeVIyHVsV06l0EW1Sme8+s+Qd9b3bDn1/DaP5+BAzagykDpCvH7/vusapLhew8t+4tAiglI+EkxSjlQigpEPWCReUXs3ENJZzgCD7+5/PYVY+e7c5NpaLGTeof8mFMjYYh4x7nJDbHYWY9DfnNI9OcUfQMJDvbuHJMbWrCz3iH85tQgrmWR3hOp+tsMrvwTjZZuVaZcPsekiimdLr7xjUXdZnbtiow9HzPboZWpBc4Bf2CdzCzKNx490eZRDxZhXtEO99B0GI7wwG/ubyRb6kg/JlczYaqfsm2fhB8g0m8y1UymEvOnL4QfVSsi+d+iRtQY7s4b1TSJFpnrzMHHfQSJ8leEJ8MqNMWj40nOTjMhNhd971v/xv2D8RzdgEZzfQmLzT9auqXo5eLBqtb5PwTqmINGcm1KdWr72fLnnm5k+8ZX+u7NQ3fQsYAVO5RJVMLPd3PKAVJeQMJPypvKEVNAIPLKZEyqTcP3H+XgWZAerjdZ3/rzZ19F4F761rHE+WFJRngmDD8KAvf2pY6lMw9LjsDzZ4YfRSB7+9bB0vkhJUd4xgs/EMzlNVOZfygQ/VajmNi90s8/USWsl+IJixqWYtipiJjwk7U9WwN3YvXp9EIK1DjuJH1lsgnVpvkSU+oeuN5cT7KljrzGlOrG2PskEX6uTaG6sT0xf/qa8AOEnWesST0crkWgyhPpitDnjyustojf14L2WFN1gh7O5xdS/+dd7UqkHLanO/rtNvMqOprouAmgX8yYf3I/thXjR8YXTk2oeLo3D7dZxpsZSrHSfe5AoTvpVKgj24Ml/PwUb3mRbxaQ8PPNZLLDjxcI49SQCpgvuU/MygEtcjR14sb+vgnWN3xsiSLwGGNbdWDehWAUOmUZGS/8KAg8NpZWHeZxIViBTtmRPy/8KAI5NrYVHeZdIFihQ9mRCcPPj9f85lf4meEn7BRDKpiz5H7sGhGtHDR1usH+voUSzGTEvouUDj8oeOnaAyOrzfhHxfS1zLVmcen0aMrFXSUKu8SkOt15Nvksq5rnSrpd34ys3g7K8FNiri6tI3fidPHv2HU9WmQsP4jd7otpkufjpbiXq5pSwb2XhB/1qGWv/7iAhJ//eIE18u0Fu9G91jqii19i6/6YhZvKS0L23ueYWCHxJSFF4CGGN+2Io+/bmJOBth5GrdpinFuXyr0X0P71WJp2dMT3bcwSUG09I1q1NSa3bmV6Lxr04fJXxKNDLHV0wePaY15HZaJghcb0HTsY0wLKs2AUD1ynMufIM1TnSOVx8pszcnwN7i+ZymLXizyJyk3put0YP9EaYz1tUARyaHhTOjr6EvPS2ugZtaKtcW50K/dmTo3rTFh5gZAP63eL0WbyGCw+XfEc/oCDy1fg5nmFB0GRZMpfBmPzbthY1ySv6uSsRru+1Cm+IvxEPD3BkplL2X/5KWE5C1PKsBIVc/tzN+8IVg00/NIrfPh7sFt3aq2Lpvilrex/oao0ulXt8T43kSRKDSkefpSEd1hkXg07979jZ38K0dXlChva5UabSG4taESbS31x32JFgU+W+YQ/OMjyFW54XnlAUGQm8pcxxrybDdY188asT4vwZs2olVz4UOD0/Go9D5vqD9k0zhGP1x+XJOuU68qcYfW+OOunCj/LTDi/Kicj6vVk59PImDaTjvzNl+Hu1g/D2GuqyYafiEccWuqIi8c1Hr+OIlPBCjTuO5bBpgXir6v72u14x7Xt81m60x3vx2BQw5IR4/KwpLyVzPx89SdBNvzZAhJ+fra4vN4XBBQ8W9Ma8/P98OhyhOqNlhAzKaBDCZtjXHesn2i9RdSTkzhvdcZx0hauKy95pMtPQ5thNCmkS0mLAVR5vpGtzo5M2nKdmD83xGZYEwrplsRicGvK6Sh4fmwyVt1mc0arJWvP76CLrhvWJp3Zqd2MhQd2MrCCLop399g3qg2WK2KOo1OyE0OMr7L3bg6yB/ri5/+eaLTJZbGcy3/0oxhPOOm8FWfHSWyJaRj5G9owrEkhdEtaMLj5L/gt70tLu70EKBNVehNmXPFiXNmYKYeIey7YdR6Ek09G2q0/y6bOubg80RTz2df5pfFENqwfS/282t/eri+te/1C+FE83Urnmj3YldWaLXvm0bbIG9wXDqDX5GPkHnsRX/vKX9fLFc9Y09qc8/086HKkOo3iZvp0SmBz7DqO9ZNYWfMjwg8QemYE1Ros4Kby2htaZDCexHmvKfz63Jl2jfZgcXg3vxeNg4vgnosdnQc54ZOxHevPbqJzrstMNDVn9vVfaDxxA+vH1ievdiQvLjhg1XgS7qpFRRlotvY5+3tl593jMyzs1YopJ4NVgV3XfDlPDg9I/k63WNG48HP5yGAynx1PQ4tZeL+LWwCUBaMR+zk5pz45gaTCj+L5MSZbdWP2GS1arj3Pji66uFmb0HmnNs0WHmDnwAqq9Whfu50y4B+f0BYrh3O8italWMOetC8bxEW/uzy96MeDcLns9XUfBtnqZwtI+PnZ4vJ6nxeIus2cBpYETLvEwpq3sa9RDXvvmPUY2nk6svXWdjomdcfu2/W0zNOTfeExd03Fv+wFb9e3JE/PfcT8Of5lL8VLV7obWbHFP5pcVtt5tM2SbISxu1th2m8OIluT5Vw90B8DbQjd0ZGCVjt4Ew1a6YvTwWkfzr3KoXtjGr8ZTeKyMuOkr8LkyxeY8qtyluot61vmoWdMwxJd9oq6P5d6ZUdxVrXfJ+En7DwTazVkhk8o2vr9OHTXCfMMoHiymIalhnEqQov8bddxYWd3Ndv1mTJ8NvxE4DG0HA0dH5ClzUYe7uqKnupQbzgxqAajf9nG5a8MP1G359DAMoBplxZS87Y9NarZ462691ybPB23cmt7RxKV+geFH+VJ3KWLEV22B8TM7Gnnod16dzqd6MjySjs5MqwscXOOYecnUqvhDHxCtdHvd4i7TuZkQMGTxQ0pNewUEVr5abvuAju7G6Ad4cWIivWYr7qdLy78KKNJJJfGGVFrVkyQVif8FNCO5L5zB+r13YN/7B1gWjqFabvmNC49ihOU8LKX4iWu3Y2w2uJPdC4rtj/ahmU2CNvdjcLtNxOUrQnLrx6gf+FXX7edgTZBf/Sictt1PI3SIn2lMZw9P5NqGSH0/Fh+q+vAVdVCLrnbS4b91Ccg4Sf11SRNtyji4jhqDNRh7fmpGOkoeLysMRVsjqP651YrCw0WX+OoTbHEt72rHX4UPF5iTrmhJwmN1qHc6LP4zjZBlwjO2FXAdOFdojKZs+z+YQYU0CZ0ZycKddyOah2nwQCO3FlOQ+U60zA3uhTswFblpYx0heiz7z6rmyr/8IXw82Ae9Q1HciZe+NGKvc1/N8rD6Zo68uC4Tcx6p/Bj9C/VlJVPo9BKX4ExZ3yZaaKjRrvUDT/BODfPT+8D4Wil18d89CIWj26LYVaIerCPLfeN6W5e8Cv6cAQXx9VgoM5azk81QkfxmGWNK2Bz/J0q6GplacDia0exKZZgmupHhR/l1a//zaNBtVF4xHQ2dPIXRL9YX9zcJ2EUt5Y47rb83a9RKO82c3zAcZuY9Unhx/pTqunKmCBQYQxnfGdiojjHyF/rMk91z3f88OM9oQq/zbj2HeFHOUXzmpOjGtBigR9xd+xrZ6/OhMPHGHytQ7w1P4rHSzAvN5STodHolBvNWd/ZmOiC8nELFUwXcjcqE+bL7nPQwpXGX7Hd4X7RrGluSP9Db4lWBvtRnvg5xN7JKAuev+IzIJv8mwISfv5NfXntBAIhHOlfhRnF/8B9VOxzfYJcsDLsjMvLmPUg6SuN59zlaRgnXPqjdvgJYUfHwljtCCaadBQ2H0SvmnpoEc0Lj1Wscn9OVDoD+h++wwqzDPFDRpEBHLkdF3720sOgLRuV7dQuSO99D1hjoW74Ccetiz4dtgahQIuMLdfxcm8PVDcZRVxgdOXazLmlPJmmx2TGFS6MK6tGu9QNPxGcG12ZenNvqe7OUtYkU5H69Bo9hbG961Loax9RFHKE/lVmUPwPd0bF3lce5GKFYWcXYkqdnkrjz3F5mvGHGRdVi39g+IEQTtsaY+54O/a9paemw008RpX8GLZD3eii34GtygdBamWk5bqX7O0Rc/tXxIXRVK49h5jSxM7ilbj4Y8OP6oVvs7J9fQbtf07MBJAW6Yt1Zon1Sybd6vNhwXPIjo4UttoRE9wLmzOoV030tCD6hQerVrnzPCodBv0P42u6mhJfsd2d+X/T28CSLa9UF+4wX/GUw/3zxiwIl/Ajo3sqF5Dwk8oLlKaa92o7HcuPJcR6IPV/0Yp96xFc3zqDjb6hsYtRDfh93w1WNU1wv7G64UfxFEezkgx1V97WrU3OukOY3inBAxW1dClp3gOz4unUCBlqzPyUeY6jWfHYNmmR3XIbATs6xtyuHO/kH3OyerzCTI12qRt+QPHqCKMadWShz5uPTxHWSkfuGnZsdJ2NxVc8PfLV9o6UHxuC9cD6fCz1dbbO2Ihv7BRGOoPf2XdjFfFK/UPDD4S5dqZAh22qgKAMl7Xm3OL0yBIfwo/C3xGz4kNRdRet7FhuC2BHx5hnAER+eqt9XGCu6/Pjw49yAujVEYbVb8OS68p1Z8ofbTJlyUiGFuvxV93qruCpoxklh7qj6uk56zJkeqcEzzPSQrdkQxrc7EuZL25nTrdyB2lSzIaTKovMtNn8kl2dY5+HIOEnTQ3dmvhmJfxoYtX+k21W8GS5BTXX56NHY4P4txO/9WbzskM8Ui181kavjTO3XHvEXxyqbvjhJSub6NP/iHJNjhaZWjjz7A9r1YLRpH7iXfb6YTM/b3FuXoA+B8KIRovsHbYR4BIXfj59yJ8Ope1OcXt+rZ8aflQub66wefo4pq08zN23ig93HBXsvA3/LZaf76GKJyy3qMn6fD1orFxI9cnPW+/NLDv0KOYRB9p6tHG+hWuPfB/7w78cfgh2pnmBPhxQPmVQKzsdtgXgEhd+Pn3Iok5p7E5dY341758SfpRc4TeW0MrUliOqqTPljxY5rVxiww+8XNkE/f5HVOveVA+ufPYH1kl09K/dTvF8OY2LDOK4KvxkpIXzC/6wjn2cooSf/+Qo/V96UxJ+/kvV1OT3Enmd6bVb8GDcVZxbJngebdT/cKhrxFgvZRhQDtw1me3jwSjDT9aDqB1+wjllUxazpQ9VC111Sthw7IYj9ZN5xPDPCT/ReE805rfpV1XrQTI0dyZwX09Uj937dAGtVk7abHzArq56Py/8KF5zdusJcnRoTwXlehF/d5aOG8HMrb68iowmXcHeRPqv+WxPjLw+ndotHjDuqjOJS+1AXaOxeKkeYaxFppqz8fEYxYdS/9vhJ9Kbica/Mf2qqjI0dw5kX8+YByJGeI2gYr35qq8q0crZho0PdtE1yw9e8xNPWsGLA4Oo124l/1PeZZUg/ISfsqGs2VIexnR0bI7dwDGJjv612xF+iN9LtGCN6gFJutSdfxt3u6Jy2UuTx+E01HYJP2mo2Kn5rYaeGoJRzzAW31hFk0RPElbgv7wxpQcfj13UqUOpIcfxW1zv45Nr44WfUtievM7CWn9xwvUWZds3JNvGT+72KmXLyesLqfXXCVxvlcWCGfzaeHnMSSFdAdqu9WJHj6IxlzqUDymcMgHvpksY81tGNUJG/MtepWxPcn1hLf464cqtsu2pH7YgiQXP6Yi6OZs6Vcdx7n006avP4OrZcTEBIMSVzgYd2RakIF0ha9yuraOVnnKJxScLsb9qRuozvUHxmIUNSmN3Ou4Jz+3YEuhKJ2Vdoh4wr2Fj7o7xY2WTLLEHCefq1DqYTLlEVImh/HN30WcOHsqpIUb0DFvMjVVNEj95WOHP8salGXw89jKnTimGHPdjcb3YTvGDw0+oSwfyd9rJ29jLXtVnXuPs2E8vg0Zxc3Ydqo47x/vo9FSfcZWz4wxVfSXEtTMGHbcRpEhHIWs3rq1rhV6kLxOrVmf6lZgnUpste8yRgcqvoojg/KjK1Jl7SzXLpdtwGY+PDvzil9qG7epK0UWV8XIfQfEkH1kQxtUFzWkw8gSvFPFnfgg9waAKjVke09Ep0HYtXjt6EHMHv/JBoFOY4N2UJUNCGf41240py8FuZbHc/BwF2uTu7MKjLe1Va9MUjxwxK2eLu/L74eLdAJCaRyFpW1oSkPCTlqqdWt9r+E0WNK3FOO3pPDw6KN6D5OKaHG8xqWq5hSnzzh/Frmzsyufw4wwo3QSnJ1GqxbLFLGzpVvASXgUc2GdvgtbxAZRu4kTMn4thYduNgpe8KOCwD3vjQDZZ1aK3m79qoatW5tI07dODxkXDuXnEDa8Ckzm01lJ1t1WQc3MK9zmg+vZw7TxdcX24iTbKDBC8ibYGPditPGtq69HJ5Slb2yv/EM7xAaVp4vSEKNVCVAtsuxXkklcBHPbZU+X2ZKpVi/0+Kp3yjDnrxywT5XsK4eJMC5pO8uR15iY4/W8/fQtqE3p6KJXNHLmnUwrrje6ssYy50+jb2/WZzvDuOAMrNWHFg9jHOaY3Zor3eSYrv3NMGX7ql2VyyBAOHHegfi7lqyt4tqIppQadotiIE1yfUzvZg4ffXEDTWuPQnv6Qo4MKJPG05AgujK5M7TkxoUA5e5HddB7nj9qhKnW4OzZlzVmqOoGnp8rky1yY8qtqUXS4uw1lzWNnNuI9buBrO34kV6dUp6q9j2rGTRkQCvXaza21LeI/fDDkIjMtmjLJ8zWZmzjxv/19KagdyumhlTFzvIdOKWs2uq/BUnV73jsO/l6OlmueEqVaUzaaNfam/HN2NdPn7eVmcMxjHNIV7Yrz/sV0L5/rM42N4Ma02lRxLMgKHzd66SfzwCZFAHv61qej810yd/x42Uv5QMzHm6yo1dsN/5iOTummfejRuCjhN4/g5lWAyYfWYlko+iu30ybi2hzM6ozF840Crey/MX6vG8NL3GRJrx7MOPWM8Ejl62Skqt0utk9sRIkcX3rI1NfWSrYTge8TkPDzfX6y93cKKJ7uxKbNYFb7vCBSKxv6Rr/RbOgSlnQrHfuU3MusGDidbadP43U/OPZulpiTYgb9OgxauIn57QxUz0256WRJU9u9PAmPRks7O2U6L2L3mp4YKi9hRd7EybIptnufEB6thXb2MnRetJs1PQ1jvkQz/CG7x/dgoOMZnsfcxoRWpsLUG7iEdbNbU1QnivsbetHabhs3gv6JWeOipUuBGmPYesCUk02tmH0x8MMdUJkN6jLCeR/2DbMRedMJy6a27H0STrSWNtnLdGbR7jV0+XsxzS3tOf4kdpYDbbKV7sySg+vpUUJ5kgjjzs5x9B22ktsGVvRprMeVravwTN+USSuXMrRWHrRRv12JShd5i7V9f2fOH5e4GxTx4bujVLd9Zy1IWZNWjHGy5VmfWqyJKEaGf3Lya81K5A725sAfl9FpNINNzoOpmuR3Xyl4utOGNoNX4/MiEq1s+hj91oyhS5bQrXTsQx0vr2Dg9G2cPu3F/eCo2HVESucM6NcZxMK17bjbtwP2p/xjv9hTC+0cZeiyeD9rDHfSpJ09p/xjLo2ipU2OMl1YvH9drOXnOqqCl4fsGTBnB+5nbhOkPGHH/mhpZ6NodVOaD5jDwm6fzACF3WHnuL4MW3kbA6s+NNa7wtZVnqRvOomVS4dS65OvmVA83YVN6z6s9H2t6r9a6fNTa/ACRmSej+VMP3RyF6VcxbIUL96YHWsGJ9nQiEuO9By5jINn7xIcCelzG1K7pS2LV/Ulye/BDfVmdlNzHAqu/LDmJ+bA4TzcPZ4eAx058zyuH2eicL2BLFk3m9ZF426j/NrtFASdnUPXTlM4/FTZv5U1qUSfRYNRTO7H2j8zkKdYWcoblqRCu4k4Wpf/zhFDdheBlBGQ8JMyjnKUVCLw7qkf3v/7i/T6lTAxzBP/Nmne8dTPm//9lR79SiYY5kniqzJCnnHjsi8P32enRGUTyuf/iq+S/5r3/u4pft7/46/0+lQyMSSJl/7MUcJ5edsXn/vvyVehKhUNsiV+ztHXtCFFtgnhzvm7ZDepTH7tCF7d8+Hy7RD0ylSmcsncH76tPkVeShMOEv6S274+3H+fjwpVK2KQLZmZjYhX3PHx4c6b7JSuWpnSuTPw9oE3dyhOxeJ6P8RN8ew023zz07FZmQSfA+VkXQjPblzG9+F7speojEn5/DH/BCT8+drtot7y2PcCN9/loYJxBfSzBPO/y/5kLlMOgxyJP2eaUFpp439bQMLPf7u+8u5EQAREQAREQAQSCEj4kS4hAiIgAiIgAiKQpgQk/KSpcsubFQEREAEREAERkPAjfUAEREAEREAERCBNCUj4SVPlljcrAiIgAiIgAiIg4Uf6gAiIgAiIgAiIQJoSkPCTpsotb1YEREAEREAEREDCj/QBERABERABERCBNCUg4SdNlVverAiIgAiIgAiIgIQf6QMiIAIiIAIiIAJpSkDCT5oqt7xZERABERABERABCT/SB0RABERABERABNKUgISfNFVuebMiIAIiIAIiIAISfqQPiIAIiIAIiIAIpCkBCT9pqtzyZkVABERABERABCT8SB8QAREQAREQARFIUwISftJUueXNioAIiIAIiIAISPiRPiACIiACIiACIpCmBCT8pKlyy5sVAREQAREQARH4oeHHwcFBhEVABERABERABETgmwRGjx79Tdt/68Y/NPyUKFHiW9sj24uACIiACIiACKRxgfv37/9QgR8afn5oy+XgIiACIiACIiACIqCGgIQfNdBkFxEQAREQAREQAc0VkPCjubWTlouACIiACIiACKghIOFHDTTZRQREQAREQAREQHMFJPxobu2k5SIgAiIgAiIgAmoISPhRA012EQEREAEREAER0FwBCT+aWztpuQiIgAiIgAiIgBoCEn7UQJNdREAEREAEREAENFdAwo/m1k5aLgIiIAIiIAIioIaAhB810GQXERABERABERABzRWQ8KO5tZOWi4AIiIAIiIAIqCEg4UcNNNlFBERABERABERAcwUk/Ghu7aTlIiACIiACIiACaghI+FEDTXYRAREQAREQARHQXAEJP5pbO2m5CIiACIiACIiAGgISftRAk11EQAREQAREQAQ0V8A9b+IAACAASURBVEDCj+bWTlouAiIgAiIgAiKghoCEHzXQZBcREAEREAEREAHNFZDwo7m1k5aLgAiIgAiIgAioISDhRw002UUEREAEREAEREBzBST8aG7tpOUiIAIiIAIiIAJqCEj4UQNNdhEBERABERABEdBcAQk/mls7abkIiIAIiIAIiIAaAhJ+1ECTXURABERABERABDRXQMKP5tZOWi4CIiACIiACIqCGgIQfNdBkFxEQAREQAREQAc0VkPCjubWTlouACIiACIiACKghIOFHDTTZRQREQAREQAREQHMFJPxobu2k5SIgAiIgAiIgAmoISPhRA012EQEREAEREAER0FwBCT+aWztpuQiIgAiIgAiIgBoCEn7UQJNdREAEREAEREAENFdAwo/m1k5aLgIiIAIiIAIioIaAhB810GQXERABERABERABzRWQ8KO5tZOWi4AIiIAIiIAIqCEg4UcNNNlFBERABERABERAcwUk/Ghu7aTlIiACIiACIiACaghI+FEDTXYRAREQAREQARHQXAEJP5pbO2m5CIiACIiACIiAGgISftRAk11EQAREQAREQAQ0V0DCj+bWTlouAiIgAiIgAiKghoCEHzXQZBcREAEREAEREAHNFZDwo7m1k5aLgAiIgAiIgAioISDhRw002UUEREAEREAEREBzBST8aG7tpOUiIAIiIAIiIAJqCEj4UQNNdhEBERABERABEdBcAQk/mls7abkIiIAIiIAIiIAaAhJ+1ECTXURABERABERABDRXQMKP5tZOWi4CIiACIiACIqCGgIQfNdBkFxEQAREQAREQAc0VkPCjubWTlouACIiACIiACKghIOFHDTTZRQREQAREQAREQHMFJPxobu2k5SIgAiIgAiIgAmoISPhRA012EQEREAEREAER0FwBCT+aWztpuQiIgAiIgAiIgBoCEn7UQJNdREAEREAEREAENFdAwo/m1k5aLgIiIAIiIAIioIaAhB810GQXERABERABERABzRWQ8KO5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" + }, + "metadata": {}, + "execution_count": 1 + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "本文翻译自哈佛NLP[The Annotated Transformer](https://nlp.seas.harvard.edu/2018/04/03/attention.html)\n", + "本文主要由Harvard NLP的学者在2018年初撰写,以逐行实现的形式呈现了论文的“注释”版本,对原始论文进行了重排,并在整个过程中添加了评论和注释。本文的note book可以在[篇章2](https://github.com/datawhalechina/learn-nlp-with-transformers/tree/main/docs/%E7%AF%87%E7%AB%A02-Transformer%E7%9B%B8%E5%85%B3%E5%8E%9F%E7%90%86)下载。\n", + "\n", + "内容组织:\n", + "- Pytorch编写完整的Transformer\n", + " - 背景\n", + " - 模型架构\n", + " - Encoder部分和Decoder部分\n", + " - Encoder\n", + " - Decoder\n", + " - Attention\n", + " - 模型中Attention的应用\n", + " - 基于位置的前馈网络\n", + " - Embeddings和softmax\n", + " - 位置编码\n", + " - 完整模型\n", + "- 训练\n", + " - 批处理和mask\n", + " - Traning Loop\n", + " - 训练数据和批处理\n", + " - 硬件和训练时间\n", + " - 优化器\n", + " - 正则化\n", + " - 标签平滑\n", + "- 实例\n", + " - 合成数据\n", + " - 损失函数计算\n", + " - 贪婪解码\n", + "- 真实场景例\n", + "- 结语\n", + "- 致谢\n" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "# 预备工作" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 2, + "source": [ + "# !pip install http://download.pytorch.org/whl/cu80/torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl numpy matplotlib spacy torchtext seaborn " + ], + "outputs": [], + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + } + }, + { + "cell_type": "code", + "execution_count": 3, + "source": [ + "import numpy as np\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "import math, copy, time\n", + "from torch.autograd import Variable\n", + "import matplotlib.pyplot as plt\n", + "import seaborn\n", + "seaborn.set_context(context=\"talk\")\n", + "%matplotlib inline" + ], + "outputs": [], + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Table of Contents\n", + "\n", + "\n", + "* Table of Contents \n", + "{:toc} " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "# 背景" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "关于Transformer的更多背景知识读者可以阅读本项目的[篇章2.2图解Transformer](https://github.com/datawhalechina/learn-nlp-with-transformers/blob/main/docs/%E7%AF%87%E7%AB%A02-Transformer%E7%9B%B8%E5%85%B3%E5%8E%9F%E7%90%86/2.2-%E5%9B%BE%E8%A7%A3transformer.md)进行学习。" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "# 模型架构" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "大部分序列到序列(seq2seq)模型都使用编码器-解码器结构 [(引用)](https://arxiv.org/abs/1409.0473)。编码器把一个输入序列$(x_{1},...x_{n})$映射到一个连续的表示$z=(z_{1},...z_{n})$中。解码器对z中的每个元素,生成输出序列$(y_{1},...y_{m})$。解码器一个时间步生成一个输出。在每一步中,模型都是自回归的[(引用)](https://arxiv.org/abs/1308.0850),在生成下一个结果时,会将先前生成的结果加入输入序列来一起预测。现在我们先构建一个EncoderDecoder类来搭建一个seq2seq架构:" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 4, + "source": [ + "class EncoderDecoder(nn.Module):\n", + " \"\"\"\n", + " 基础的Encoder-Decoder结构。\n", + " A standard Encoder-Decoder architecture. Base for this and many \n", + " other models.\n", + " \"\"\"\n", + " def __init__(self, encoder, decoder, src_embed, tgt_embed, generator):\n", + " super(EncoderDecoder, self).__init__()\n", + " self.encoder = encoder\n", + " self.decoder = decoder\n", + " self.src_embed = src_embed\n", + " self.tgt_embed = tgt_embed\n", + " self.generator = generator\n", + " \n", + " def forward(self, src, tgt, src_mask, tgt_mask):\n", + " \"Take in and process masked src and target sequences.\"\n", + " return self.decode(self.encode(src, src_mask), src_mask,\n", + " tgt, tgt_mask)\n", + " \n", + " def encode(self, src, src_mask):\n", + " return self.encoder(self.src_embed(src), src_mask)\n", + " \n", + " def decode(self, memory, src_mask, tgt, tgt_mask):\n", + " return self.decoder(self.tgt_embed(tgt), memory, src_mask, tgt_mask)" + ], + "outputs": [], + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + } + }, + { + "cell_type": "code", + "execution_count": 5, + "source": [ + "class Generator(nn.Module):\n", + " \"定义生成器,由linear和softmax组成\"\n", + " \"Define standard linear + softmax generation step.\"\n", + " def __init__(self, d_model, vocab):\n", + " super(Generator, self).__init__()\n", + " self.proj = nn.Linear(d_model, vocab)\n", + "\n", + " def forward(self, x):\n", + " return F.log_softmax(self.proj(x), dim=-1)" + ], + "outputs": [], + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + } + }, + { + "cell_type": "markdown", + "source": [ + "TTransformer的编码器和解码器都使用self-attention和全连接层堆叠而成。如下图的左、右两边所示。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 6, + "source": [ + "Image(filename='./pictures/2-transformer.png')" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/png": "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" + }, + "metadata": {}, + "execution_count": 6 + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Encoder部分和Decoder部分\n", + "\n", + "### Encoder\n", + "\n", + "编码器由N = 6个完全相同的层组成。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 7, + "source": [ + "def clones(module, N):\n", + " \"产生N个完全相同的网络层\"\n", + " \"Produce N identical layers.\"\n", + " return nn.ModuleList([copy.deepcopy(module) for _ in range(N)])" + ], + "outputs": [], + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + } + }, + { + "cell_type": "code", + "execution_count": 8, + "source": [ + "class Encoder(nn.Module):\n", + " \"完整的Encoder包含N层\"\n", + " def __init__(self, layer, N):\n", + " super(Encoder, self).__init__()\n", + " self.layers = clones(layer, N)\n", + " self.norm = LayerNorm(layer.size)\n", + " \n", + " def forward(self, x, mask):\n", + " \"每一层的输入是x和mask\"\n", + " for layer in self.layers:\n", + " x = layer(x, mask)\n", + " return self.norm(x)" + ], + "outputs": [], + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + } + }, + { + "cell_type": "markdown", + "source": [ + "编码器的每层encoder包含Self Attention 子层和FFNN子层,每个子层都使用了残差连接[(cite)](https://arxiv.org/abs/1512.03385),和层标准化(layer-normalization) [(cite)](https://arxiv.org/abs/1607.06450)。先实现一下层标准化:" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 9, + "source": [ + "class LayerNorm(nn.Module):\n", + " \"Construct a layernorm module (See citation for details).\"\n", + " def __init__(self, features, eps=1e-6):\n", + " super(LayerNorm, self).__init__()\n", + " self.a_2 = nn.Parameter(torch.ones(features))\n", + " self.b_2 = nn.Parameter(torch.zeros(features))\n", + " self.eps = eps\n", + "\n", + " def forward(self, x):\n", + " mean = x.mean(-1, keepdim=True)\n", + " std = x.std(-1, keepdim=True)\n", + " return self.a_2 * (x - mean) / (std + self.eps) + self.b_2" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "我们称呼子层为:$\\mathrm{Sublayer}(x)$,每个子层的最终输出是$\\mathrm{LayerNorm}(x + \\mathrm{Sublayer}(x))$。 dropout [(cite)](http://jmlr.org/papers/v15/srivastava14a.html)被加在Sublayer上。\n", + "\n", + "为了便于进行残差连接,模型中的所有子层以及embedding层产生的输出的维度都为 $d_{\\text{model}}=512$。\n", + "\n", + "下面的SublayerConnection类用来处理单个Sublayer的输出,该输出将继续被输入下一个Sublayer:" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 10, + "source": [ + "class SublayerConnection(nn.Module):\n", + " \"\"\"\n", + " A residual connection followed by a layer norm.\n", + " Note for code simplicity the norm is first as opposed to last.\n", + " \"\"\"\n", + " def __init__(self, size, dropout):\n", + " super(SublayerConnection, self).__init__()\n", + " self.norm = LayerNorm(size)\n", + " self.dropout = nn.Dropout(dropout)\n", + "\n", + " def forward(self, x, sublayer):\n", + " \"Apply residual connection to any sublayer with the same size.\"\n", + " return x + self.dropout(sublayer(self.norm(x)))" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "每一层encoder都有两个子层。 第一层是一个multi-head self-attention层,第二层是一个简单的全连接前馈网络,对于这两层都需要使用SublayerConnection类进行处理。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 11, + "source": [ + "class EncoderLayer(nn.Module):\n", + " \"Encoder is made up of self-attn and feed forward (defined below)\"\n", + " def __init__(self, size, self_attn, feed_forward, dropout):\n", + " super(EncoderLayer, self).__init__()\n", + " self.self_attn = self_attn\n", + " self.feed_forward = feed_forward\n", + " self.sublayer = clones(SublayerConnection(size, dropout), 2)\n", + " self.size = size\n", + "\n", + " def forward(self, x, mask):\n", + " \"Follow Figure 1 (left) for connections.\"\n", + " x = self.sublayer[0](x, lambda x: self.self_attn(x, x, x, mask))\n", + " return self.sublayer[1](x, self.feed_forward)" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "### Decoder\n", + "\n", + "解码器也是由N = 6 个完全相同的decoder层组成。 " + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 12, + "source": [ + "class Decoder(nn.Module):\n", + " \"Generic N layer decoder with masking.\"\n", + " def __init__(self, layer, N):\n", + " super(Decoder, self).__init__()\n", + " self.layers = clones(layer, N)\n", + " self.norm = LayerNorm(layer.size)\n", + " \n", + " def forward(self, x, memory, src_mask, tgt_mask):\n", + " for layer in self.layers:\n", + " x = layer(x, memory, src_mask, tgt_mask)\n", + " return self.norm(x)" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "单层decoder与单层encoder相比,decoder还有第三个子层,该层对encoder的输出执行attention:即encoder-decoder-attention层,q向量来自decoder上一层的输出,k和v向量是encoder最后层的输出向量。与encoder类似,我们在每个子层再采用残差连接,然后进行层标准化。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 13, + "source": [ + "class DecoderLayer(nn.Module):\n", + " \"Decoder is made of self-attn, src-attn, and feed forward (defined below)\"\n", + " def __init__(self, size, self_attn, src_attn, feed_forward, dropout):\n", + " super(DecoderLayer, self).__init__()\n", + " self.size = size\n", + " self.self_attn = self_attn\n", + " self.src_attn = src_attn\n", + " self.feed_forward = feed_forward\n", + " self.sublayer = clones(SublayerConnection(size, dropout), 3)\n", + " \n", + " def forward(self, x, memory, src_mask, tgt_mask):\n", + " \"Follow Figure 1 (right) for connections.\"\n", + " m = memory\n", + " x = self.sublayer[0](x, lambda x: self.self_attn(x, x, x, tgt_mask))\n", + " x = self.sublayer[1](x, lambda x: self.src_attn(x, m, m, src_mask))\n", + " return self.sublayer[2](x, self.feed_forward)" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "对于单层decoder中的self-attention子层,我们需要使用mask机制,以防止在当前位置关注到后面的位置。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 14, + "source": [ + "def subsequent_mask(size):\n", + " \"Mask out subsequent positions.\"\n", + " attn_shape = (1, size, size)\n", + " subsequent_mask = np.triu(np.ones(attn_shape), k=1).astype('uint8')\n", + " return torch.from_numpy(subsequent_mask) == 0" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "> 下面的attention mask显示了每个tgt单词(行)允许查看(列)的位置。在训练时将当前单词的未来信息屏蔽掉,阻止此单词关注到后面的单词。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 15, + "source": [ + "\n", + "plt.figure(figsize=(5,5))\n", + "plt.imshow(subsequent_mask(20)[0])\n", + "None" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/svg+xml": "\n\n\n \n \n \n \n 2021-09-02T09:06:48.026243\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Attention\n", + "\n", + "Attention功能可以描述为将query和一组key-value映射到输出,其中query、key、value和输出都是向量。输出为value的加权和,其中每个value的权重通过query与相应key的计算得到。 \n", + "我们将particular attention称之为“缩放的点积Attention”(Scaled Dot-Product Attention\")。其输入为query、key(维度是$d_k$)以及values(维度是$d_v$)。我们计算query和所有key的点积,然后对每个除以 $\\sqrt{d_k}$, 最后用softmax函数获得value的权重。 \n", + " " + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "code", + "execution_count": 16, + "source": [ + "Image(filename='./pictures/transformer-self-attention.png')" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/png": "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" + }, + "metadata": {}, + "execution_count": 16 + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "\n", + "在实践中,我们同时计算一组query的attention函数,并将它们组合成一个矩阵$Q$。key和value也一起组成矩阵$K$和$V$。 我们计算的输出矩阵为:\n", + " \n", + "$$ \n", + " \\mathrm{Attention}(Q, K, V) = \\mathrm{softmax}(\\frac{QK^T}{\\sqrt{d_k}})V \n", + "$$ " + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 17, + "source": [ + "def attention(query, key, value, mask=None, dropout=None):\n", + " \"Compute 'Scaled Dot Product Attention'\"\n", + " d_k = query.size(-1)\n", + " scores = torch.matmul(query, key.transpose(-2, -1)) \\\n", + " / math.sqrt(d_k)\n", + " if mask is not None:\n", + " scores = scores.masked_fill(mask == 0, -1e9)\n", + " p_attn = F.softmax(scores, dim = -1)\n", + " if dropout is not None:\n", + " p_attn = dropout(p_attn)\n", + " return torch.matmul(p_attn, value), p_attn" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "  两个最常用的attention函数是:\n", + "- 加法attention[(cite)](https://arxiv.org/abs/1409.0473)\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", + "\n", + "在此引用苏剑林文章[《浅谈Transformer的初始化、参数化与标准化》](https://zhuanlan.zhihu.com/p/400925524?utm_source=wechat_session&utm_medium=social&utm_oi=1400823417357139968&utm_campaign=shareopn)中谈到的,为什么Attention中除以$\\sqrt{d}$这么重要?" + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + " " + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 18, + "source": [ + "Image(filename='pictures/transformer-linear.png')" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/png": "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EARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARBEARB9Mv/Bz6brE8CEbLeAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTA0LTAyVDAwOjAzOjMwLTA0OjAwkXGZ5AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0wNC0wMlQwMDowMzozMC0wNDowMOAsIVgAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAAElFTkSuQmCC" + }, + "metadata": {}, + "execution_count": 18 + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Multi-head attention允许模型同时关注来自不同位置的不同表示子空间的信息,如果只有一个attention head,向量的表示能力会下降。\n", + "\n", + "$$ \n", + "\\mathrm{MultiHead}(Q, K, V) = \\mathrm{Concat}(\\mathrm{head_1}, ..., \\mathrm{head_h})W^O \\\\ \n", + " \\text{where}~\\mathrm{head_i} = \\mathrm{Attention}(QW^Q_i, KW^K_i, VW^V_i) \n", + "$$ \n", + "\n", + "其中映射由权重矩阵完成:$W^Q_i \\in \\mathbb{R}^{d_{\\text{model}} \\times d_k}$, $W^K_i \\in \\mathbb{R}^{d_{\\text{model}} \\times d_k}$, $W^V_i \\in \\mathbb{R}^{d_{\\text{model}} \\times d_v}$ and $W^O \\in \\mathbb{R}^{hd_v \\times d_{\\text{model}}}$。 \n", + "\n", + " 在这项工作中,我们采用$h=8$个平行attention层或者叫head。对于这些head中的每一个,我们使用$d_k=d_v=d_{\\text{model}}/h=64$。由于每个head的维度减小,总计算成本与具有全部维度的单个head attention相似。 " + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 19, + "source": [ + "class MultiHeadedAttention(nn.Module):\n", + " def __init__(self, h, d_model, dropout=0.1):\n", + " \"Take in model size and number of heads.\"\n", + " super(MultiHeadedAttention, self).__init__()\n", + " assert d_model % h == 0\n", + " # We assume d_v always equals d_k\n", + " self.d_k = d_model // h\n", + " self.h = h\n", + " self.linears = clones(nn.Linear(d_model, d_model), 4)\n", + " self.attn = None\n", + " self.dropout = nn.Dropout(p=dropout)\n", + " \n", + " def forward(self, query, key, value, mask=None):\n", + " \"Implements Figure 2\"\n", + " if mask is not None:\n", + " # Same mask applied to all h heads.\n", + " mask = mask.unsqueeze(1)\n", + " nbatches = query.size(0)\n", + " \n", + " # 1) Do all the linear projections in batch from d_model => h x d_k \n", + " query, key, value = \\\n", + " [l(x).view(nbatches, -1, self.h, self.d_k).transpose(1, 2)\n", + " for l, x in zip(self.linears, (query, key, value))]\n", + " \n", + " # 2) Apply attention on all the projected vectors in batch. \n", + " x, self.attn = attention(query, key, value, mask=mask, \n", + " dropout=self.dropout)\n", + " \n", + " # 3) \"Concat\" using a view and apply a final linear. \n", + " x = x.transpose(1, 2).contiguous() \\\n", + " .view(nbatches, -1, self.h * self.d_k)\n", + " return self.linears[-1](x)" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "### 模型中Attention的应用\n", + "\n", + "multi-head attention在Transformer中有三种不同的使用方式: \n", + "- 在encoder-decoder attention层中,queries来自前面的decoder层,而keys和values来自encoder的输出。这使得decoder中的每个位置都能关注到输入序列中的所有位置。这是模仿序列到序列模型中典型的编码器—解码器的attention机制,例如 [(cite)](https://arxiv.org/abs/1609.08144). \n", + "\n", + "\n", + "- encoder包含self-attention层。在self-attention层中,所有key,value和query来自同一个地方,即encoder中前一层的输出。在这种情况下,encoder中的每个位置都可以关注到encoder上一层的所有位置。\n", + "\n", + "\n", + "- 类似地,decoder中的self-attention层允许decoder中的每个位置都关注decoder层中当前位置之前的所有位置(包括当前位置)。 为了保持解码器的自回归特性,需要防止解码器中的信息向左流动。我们在缩放点积attention的内部,通过屏蔽softmax输入中所有的非法连接值(设置为$-\\infty$)实现了这一点。 " + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "### 基于位置的前馈网络\n", + "\n", + "除了attention子层之外,我们的编码器和解码器中的每个层都包含一个全连接的前馈网络,该网络在每个层的位置相同(都在每个encoder-layer或者decoder-layer的最后)。该前馈网络包括两个线性变换,并在两个线性变换中间有一个ReLU激活函数。\n", + "\n", + "$$\\mathrm{FFN}(x)=\\max(0, xW_1 + b_1) W_2 + b_2$$ \n", + "\n", + "尽管两层都是线性变换,但它们在层与层之间使用不同的参数。另一种描述方式是两个内核大小为1的卷积。 输入和输出的维度都是 $d_{\\text{model}}=512$, 内层维度是$d_{ff}=2048$。(也就是第一层输入512维,输出2048维;第二层输入2048维,输出512维)" + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "code", + "execution_count": 20, + "source": [ + "class PositionwiseFeedForward(nn.Module):\n", + " \"Implements FFN equation.\"\n", + " def __init__(self, d_model, d_ff, dropout=0.1):\n", + " super(PositionwiseFeedForward, self).__init__()\n", + " self.w_1 = nn.Linear(d_model, d_ff)\n", + " self.w_2 = nn.Linear(d_ff, d_model)\n", + " self.dropout = nn.Dropout(dropout)\n", + "\n", + " def forward(self, x):\n", + " return self.w_2(self.dropout(F.relu(self.w_1(x))))" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "## Embeddings and Softmax \n", + "\n", + "与其他seq2seq模型类似,我们使用学习到的embedding将输入token和输出token转换为$d_{\\text{model}}$维的向量。我们还使用普通的线性变换和softmax函数将解码器输出转换为预测的下一个token的概率 在我们的模型中,两个嵌入层之间和pre-softmax线性变换共享相同的权重矩阵,类似于[(cite)](https://arxiv.org/abs/1608.05859)。在embedding层中,我们将这些权重乘以$\\sqrt{d_{\\text{model}}}$。 " + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "code", + "execution_count": 21, + "source": [ + "class Embeddings(nn.Module):\n", + " def __init__(self, d_model, vocab):\n", + " super(Embeddings, self).__init__()\n", + " self.lut = nn.Embedding(vocab, d_model)\n", + " self.d_model = d_model\n", + "\n", + " def forward(self, x):\n", + " return self.lut(x) * math.sqrt(self.d_model)" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "## 位置编码 \n", + "  由于我们的模型不包含循环和卷积,为了让模型利用序列的顺序,我们必须加入一些序列中token的相对或者绝对位置的信息。为此,我们将“位置编码”添加到编码器和解码器堆栈底部的输入embeddinng中。位置编码和embedding的维度相同,也是$d_{\\text{model}}$ , 所以这两个向量可以相加。有多种位置编码可以选择,例如通过学习得到的位置编码和固定的位置编码 [(cite)](https://arxiv.org/pdf/1705.03122.pdf)。\n", + "\n", + "  在这项工作中,我们使用不同频率的正弦和余弦函数: $$PE_{(pos,2i)} = sin(pos / 10000^{2i/d_{\\text{model}}})$$\n", + "\n", + "$$PE_{(pos,2i+1)} = cos(pos / 10000^{2i/d_{\\text{model}}})$$ \n", + "  其中$pos$ 是位置,$i$ 是维度。也就是说,位置编码的每个维度对应于一个正弦曲线。 这些波长形成一个从$2\\pi$ 到 $10000 \\cdot 2\\pi$的集合级数。我们选择这个函数是因为我们假设它会让模型很容易学习对相对位置的关注,因为对任意确定的偏移$k$, $PE_{pos+k}$ 可以表示为 $PE_{pos}$的线性函数。\n", + "\n", + "  此外,我们会将编码器和解码器堆栈中的embedding和位置编码的和再加一个dropout。对于基本模型,我们使用的dropout比例是$P_{drop}=0.1$。\n", + " \n" + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "code", + "execution_count": 22, + "source": [ + "class PositionalEncoding(nn.Module):\n", + " \"Implement the PE function.\"\n", + " def __init__(self, d_model, dropout, max_len=5000):\n", + " super(PositionalEncoding, self).__init__()\n", + " self.dropout = nn.Dropout(p=dropout)\n", + " \n", + " # Compute the positional encodings once in log space.\n", + " pe = torch.zeros(max_len, d_model)\n", + " position = torch.arange(0, max_len).unsqueeze(1)\n", + " div_term = torch.exp(torch.arange(0, d_model, 2) *\n", + " -(math.log(10000.0) / d_model))\n", + " pe[:, 0::2] = torch.sin(position * div_term)\n", + " pe[:, 1::2] = torch.cos(position * div_term)\n", + " pe = pe.unsqueeze(0)\n", + " self.register_buffer('pe', pe)\n", + " \n", + " def forward(self, x):\n", + " x = x + Variable(self.pe[:, :x.size(1)], \n", + " requires_grad=False)\n", + " return self.dropout(x)" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "> 如下图,位置编码将根据位置添加正弦波。波的频率和偏移对于每个维度都是不同的。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 23, + "source": [ + "plt.figure(figsize=(15, 5))\n", + "pe = PositionalEncoding(20, 0)\n", + "y = pe.forward(Variable(torch.zeros(1, 100, 20)))\n", + "plt.plot(np.arange(100), y[0, :, 4:8].data.numpy())\n", + "plt.legend([\"dim %d\"%p for p in [4,5,6,7]])\n", + "None" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/svg+xml": "\n\n\n \n \n \n \n 2021-09-02T09:06:48.660640\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "我们还尝试使用学习的位置embeddings[(cite)](https://arxiv.org/pdf/1705.03122.pdf)来代替固定的位置编码,结果发现两种方法产生了几乎相同的效果。于是我们选择了正弦版本,因为它可能允许模型外推到,比训练时遇到的序列更长的序列。" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## 完整模型\n", + "\n", + "> 在这里,我们定义了一个从超参数到完整模型的函数。" + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "code", + "execution_count": 24, + "source": [ + "def make_model(src_vocab, tgt_vocab, N=6, \n", + " d_model=512, d_ff=2048, h=8, dropout=0.1):\n", + " \"Helper: Construct a model from hyperparameters.\"\n", + " c = copy.deepcopy\n", + " attn = MultiHeadedAttention(h, d_model)\n", + " ff = PositionwiseFeedForward(d_model, d_ff, dropout)\n", + " position = PositionalEncoding(d_model, dropout)\n", + " model = EncoderDecoder(\n", + " Encoder(EncoderLayer(d_model, c(attn), c(ff), dropout), N),\n", + " Decoder(DecoderLayer(d_model, c(attn), c(attn), \n", + " c(ff), dropout), N),\n", + " nn.Sequential(Embeddings(d_model, src_vocab), c(position)),\n", + " nn.Sequential(Embeddings(d_model, tgt_vocab), c(position)),\n", + " Generator(d_model, tgt_vocab))\n", + " \n", + " # This was important from their code. \n", + " # Initialize parameters with Glorot / fan_avg.\n", + " for p in model.parameters():\n", + " if p.dim() > 1:\n", + " nn.init.xavier_uniform(p)\n", + " return model" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "code", + "execution_count": 25, + "source": [ + "# Small example model.\n", + "tmp_model = make_model(10, 10, 2)\n", + "None" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/var/folders/2k/x3py0v857kgcwqvvl00xxhxw0000gn/T/ipykernel_27532/2289673833.py:20: UserWarning: nn.init.xavier_uniform is now deprecated in favor of nn.init.xavier_uniform_.\n", + " nn.init.xavier_uniform(p)\n" + ] + } + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "# 训练\n", + "\n", + "本节描述了我们模型的训练机制。" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "> 我们在这快速地介绍一些工具,这些工具用于训练一个标准的encoder-decoder模型。首先,我们定义一个批处理对象,其中包含用于训练的 src 和目标句子,以及构建掩码。" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## 批处理和掩码" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 26, + "source": [ + "class Batch:\n", + " \"Object for holding a batch of data with mask during training.\"\n", + " def __init__(self, src, trg=None, pad=0):\n", + " self.src = src\n", + " self.src_mask = (src != pad).unsqueeze(-2)\n", + " if trg is not None:\n", + " self.trg = trg[:, :-1]\n", + " self.trg_y = trg[:, 1:]\n", + " self.trg_mask = \\\n", + " self.make_std_mask(self.trg, pad)\n", + " self.ntokens = (self.trg_y != pad).data.sum()\n", + " \n", + " @staticmethod\n", + " def make_std_mask(tgt, pad):\n", + " \"Create a mask to hide padding and future words.\"\n", + " tgt_mask = (tgt != pad).unsqueeze(-2)\n", + " tgt_mask = tgt_mask & Variable(\n", + " subsequent_mask(tgt.size(-1)).type_as(tgt_mask.data))\n", + " return tgt_mask" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "> 接下来我们创建一个通用的训练和评估函数来跟踪损失。我们传入一个通用的损失函数,也用它来进行参数更新。" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Training Loop" + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "code", + "execution_count": 27, + "source": [ + "def run_epoch(data_iter, model, loss_compute):\n", + " \"Standard Training and Logging Function\"\n", + " start = time.time()\n", + " total_tokens = 0\n", + " total_loss = 0\n", + " tokens = 0\n", + " for i, batch in enumerate(data_iter):\n", + " out = model.forward(batch.src, batch.trg, \n", + " batch.src_mask, batch.trg_mask)\n", + " loss = loss_compute(out, batch.trg_y, batch.ntokens)\n", + " total_loss += loss\n", + " total_tokens += batch.ntokens\n", + " tokens += batch.ntokens\n", + " if i % 50 == 1:\n", + " elapsed = time.time() - start\n", + " print(\"Epoch Step: %d Loss: %f Tokens per Sec: %f\" %\n", + " (i, loss / batch.ntokens, tokens / elapsed))\n", + " start = time.time()\n", + " tokens = 0\n", + " return total_loss / total_tokens" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "## 训练数据和批处理\n", + "  我们在包含约450万个句子对的标准WMT 2014英语-德语数据集上进行了训练。这些句子使用字节对编码进行编码,源语句和目标语句共享大约37000个token的词汇表。对于英语-法语翻译,我们使用了明显更大的WMT 2014英语-法语数据集,该数据集由 3600 万个句子组成,并将token拆分为32000个word-piece词表。
\n", + "每个训练批次包含一组句子对,句子对按相近序列长度来分批处理。每个训练批次的句子对包含大约25000个源语言的tokens和25000个目标语言的tokens。" + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "> 我们将使用torch text进行批处理(后文会进行更详细地讨论)。在这里,我们在torchtext函数中创建批处理,以确保我们填充到最大值的批处理大小不会超过阈值(如果我们有8个gpu,则为25000)。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 28, + "source": [ + "global max_src_in_batch, max_tgt_in_batch\n", + "def batch_size_fn(new, count, sofar):\n", + " \"Keep augmenting batch and calculate total number of tokens + padding.\"\n", + " global max_src_in_batch, max_tgt_in_batch\n", + " if count == 1:\n", + " max_src_in_batch = 0\n", + " max_tgt_in_batch = 0\n", + " max_src_in_batch = max(max_src_in_batch, len(new.src))\n", + " max_tgt_in_batch = max(max_tgt_in_batch, len(new.trg) + 2)\n", + " src_elements = count * max_src_in_batch\n", + " tgt_elements = count * max_tgt_in_batch\n", + " return max(src_elements, tgt_elements)" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "## 硬件和训练时间\n", + "我们在一台配备8个 NVIDIA P100 GPU 的机器上训练我们的模型。使用论文中描述的超参数的base models,每个训练step大约需要0.4秒。我们对base models进行了总共10万steps或12小时的训练。而对于big models,每个step训练时间为1.0秒,big models训练了30万steps(3.5 天)。" + ], + "metadata": { + "jp-MarkdownHeadingCollapsed": true, + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "## Optimizer\n", + "\n", + "我们使用Adam优化器[(cite)](https://arxiv.org/abs/1412.6980),其中 $\\beta_1=0.9$, $\\beta_2=0.98$并且$\\epsilon=10^{-9}$。我们根据以下公式在训练过程中改变学习率: \n", + "$$ \n", + "lrate = d_{\\text{model}}^{-0.5} \\cdot \n", + " \\min({step\\_num}^{-0.5}, \n", + " {step\\_num} \\cdot {warmup\\_steps}^{-1.5}) \n", + "$$ \n", + "这对应于在第一次$warmup\\_steps$步中线性地增加学习速率,并且随后将其与步数的平方根成比例地减小。我们使用$warmup\\_steps=4000$。 " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "> 注意:这部分非常重要。需要使用此模型设置进行训练。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 29, + "source": [ + "\n", + "class NoamOpt:\n", + " \"Optim wrapper that implements rate.\"\n", + " def __init__(self, model_size, factor, warmup, optimizer):\n", + " self.optimizer = optimizer\n", + " self._step = 0\n", + " self.warmup = warmup\n", + " self.factor = factor\n", + " self.model_size = model_size\n", + " self._rate = 0\n", + " \n", + " def step(self):\n", + " \"Update parameters and rate\"\n", + " self._step += 1\n", + " rate = self.rate()\n", + " for p in self.optimizer.param_groups:\n", + " p['lr'] = rate\n", + " self._rate = rate\n", + " self.optimizer.step()\n", + " \n", + " def rate(self, step = None):\n", + " \"Implement `lrate` above\"\n", + " if step is None:\n", + " step = self._step\n", + " return self.factor * \\\n", + " (self.model_size ** (-0.5) *\n", + " min(step ** (-0.5), step * self.warmup ** (-1.5)))\n", + " \n", + "def get_std_opt(model):\n", + " return NoamOpt(model.src_embed[0].d_model, 2, 4000,\n", + " torch.optim.Adam(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9))" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "\n", + "> 以下是此模型针对不同模型大小和优化超参数的曲线示例。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 30, + "source": [ + "# Three settings of the lrate hyperparameters.\n", + "opts = [NoamOpt(512, 1, 4000, None), \n", + " NoamOpt(512, 1, 8000, None),\n", + " NoamOpt(256, 1, 4000, None)]\n", + "plt.plot(np.arange(1, 20000), [[opt.rate(i) for opt in opts] for i in range(1, 20000)])\n", + "plt.legend([\"512:4000\", \"512:8000\", \"256:4000\"])\n", + "None" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/svg+xml": "\n\n\n \n \n \n \n 2021-09-02T09:06:49.359881\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## 正则化\n", + "### 标签平滑\n", + "\n", + "在训练过程中,我们使用的label平滑的值为$\\epsilon_{ls}=0.1$ [(cite)](https://arxiv.org/abs/1512.00567)。虽然对label进行平滑会让模型困惑,但提高了准确性和BLEU得分。" + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "> 我们使用KL div损失实现标签平滑。我们没有使用one-hot独热分布,而是创建了一个分布,该分布设定目标分布为1-smoothing,将剩余概率分配给词表中的其他单词。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 31, + "source": [ + "class LabelSmoothing(nn.Module):\n", + " \"Implement label smoothing.\"\n", + " def __init__(self, size, padding_idx, smoothing=0.0):\n", + " super(LabelSmoothing, self).__init__()\n", + " self.criterion = nn.KLDivLoss(size_average=False)\n", + " self.padding_idx = padding_idx\n", + " self.confidence = 1.0 - smoothing\n", + " self.smoothing = smoothing\n", + " self.size = size\n", + " self.true_dist = None\n", + " \n", + " def forward(self, x, target):\n", + " assert x.size(1) == self.size\n", + " true_dist = x.data.clone()\n", + " true_dist.fill_(self.smoothing / (self.size - 2))\n", + " true_dist.scatter_(1, target.data.unsqueeze(1), self.confidence)\n", + " true_dist[:, self.padding_idx] = 0\n", + " mask = torch.nonzero(target.data == self.padding_idx)\n", + " if mask.dim() > 0:\n", + " true_dist.index_fill_(0, mask.squeeze(), 0.0)\n", + " self.true_dist = true_dist\n", + " return self.criterion(x, Variable(true_dist, requires_grad=False))" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "下面我们看一个例子,看看平滑后的真实概率分布。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 32, + "source": [ + "#Example of label smoothing.\n", + "crit = LabelSmoothing(5, 0, 0.4)\n", + "predict = torch.FloatTensor([[0, 0.2, 0.7, 0.1, 0],\n", + " [0, 0.2, 0.7, 0.1, 0], \n", + " [0, 0.2, 0.7, 0.1, 0]])\n", + "v = crit(Variable(predict.log()), \n", + " Variable(torch.LongTensor([2, 1, 0])))\n", + "\n", + "# Show the target distributions expected by the system.\n", + "plt.imshow(crit.true_dist)\n", + "None" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/Users/niepig/Desktop/zhihu/learn-nlp-with-transformers/venv/lib/python3.8/site-packages/torch/nn/_reduction.py:42: UserWarning: size_average and reduce args will be deprecated, please use reduction='sum' instead.\n", + " warnings.warn(warning.format(ret))\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/svg+xml": "\n\n\n \n \n \n \n 2021-09-02T09:06:49.815472\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 33, + "source": [ + "print(crit.true_dist)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "tensor([[0.0000, 0.1333, 0.6000, 0.1333, 0.1333],\n", + " [0.0000, 0.6000, 0.1333, 0.1333, 0.1333],\n", + " [0.0000, 0.0000, 0.0000, 0.0000, 0.0000]])\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "由于标签平滑的存在,如果模型对于某个单词特别有信心,输出特别大的概率,会被惩罚。如下代码所示,随着输入x的增大,x/d会越来越大,1/d会越来越小,但是loss并不是一直降低的。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 34, + "source": [ + "crit = LabelSmoothing(5, 0, 0.1)\n", + "def loss(x):\n", + " d = x + 3 * 1\n", + " predict = torch.FloatTensor([[0, x / d, 1 / d, 1 / d, 1 / d],\n", + " ])\n", + " #print(predict)\n", + " return crit(Variable(predict.log()),\n", + " Variable(torch.LongTensor([1]))).item()\n", + "\n", + "y = [loss(x) for x in range(1, 100)]\n", + "x = np.arange(1, 100)\n", + "plt.plot(x, y)\n" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[]" + ] + }, + "metadata": {}, + "execution_count": 34 + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/svg+xml": "\n\n\n \n \n \n \n 2021-09-02T09:06:50.103888\n image/svg+xml\n \n \n Matplotlib v3.4.3, https://matplotlib.org/\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "# 实例\n", + "\n", + "> 我们可以从尝试一个简单的复制任务开始。给定来自小词汇表的一组随机输入符号symbols,目标是生成这些相同的符号。" + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "## 合成数据" + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "code", + "execution_count": 35, + "source": [ + "def data_gen(V, batch, nbatches):\n", + " \"Generate random data for a src-tgt copy task.\"\n", + " for i in range(nbatches):\n", + " data = torch.from_numpy(np.random.randint(1, V, size=(batch, 10)))\n", + " data[:, 0] = 1\n", + " src = Variable(data, requires_grad=False)\n", + " tgt = Variable(data, requires_grad=False)\n", + " yield Batch(src, tgt, 0)" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "## 损失函数计算" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 36, + "source": [ + "class SimpleLossCompute:\n", + " \"A simple loss compute and train function.\"\n", + " def __init__(self, generator, criterion, opt=None):\n", + " self.generator = generator\n", + " self.criterion = criterion\n", + " self.opt = opt\n", + " \n", + " def __call__(self, x, y, norm):\n", + " x = self.generator(x)\n", + " loss = self.criterion(x.contiguous().view(-1, x.size(-1)), \n", + " y.contiguous().view(-1)) / norm\n", + " loss.backward()\n", + " if self.opt is not None:\n", + " self.opt.step()\n", + " self.opt.optimizer.zero_grad()\n", + " return loss.item() * norm" + ], + "outputs": [], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "markdown", + "source": [ + "## 贪婪解码" + ], + "metadata": { + "tags": [] + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Train the simple copy task.\n", + "V = 11\n", + "criterion = LabelSmoothing(size=V, padding_idx=0, smoothing=0.0)\n", + "model = make_model(V, V, N=2)\n", + "model_opt = NoamOpt(model.src_embed[0].d_model, 1, 400,\n", + " torch.optim.Adam(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9))\n", + "\n", + "for epoch in range(10):\n", + " model.train()\n", + " run_epoch(data_gen(V, 30, 20), model, \n", + " SimpleLossCompute(model.generator, criterion, model_opt))\n", + " model.eval()\n", + " print(run_epoch(data_gen(V, 30, 5), model, \n", + " SimpleLossCompute(model.generator, criterion, None)))" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "> 为了简单起见,此代码使用贪婪解码来预测翻译。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "def greedy_decode(model, src, src_mask, max_len, start_symbol):\n", + " memory = model.encode(src, src_mask)\n", + " ys = torch.ones(1, 1).fill_(start_symbol).type_as(src.data)\n", + " for i in range(max_len-1):\n", + " out = model.decode(memory, src_mask, \n", + " Variable(ys), \n", + " Variable(subsequent_mask(ys.size(1))\n", + " .type_as(src.data)))\n", + " prob = model.generator(out[:, -1])\n", + " _, next_word = torch.max(prob, dim = 1)\n", + " next_word = next_word.data[0]\n", + " ys = torch.cat([ys, \n", + " torch.ones(1, 1).type_as(src.data).fill_(next_word)], dim=1)\n", + " return ys\n", + "\n", + "model.eval()\n", + "src = Variable(torch.LongTensor([[1,2,3,4,5,6,7,8,9,10]]) )\n", + "src_mask = Variable(torch.ones(1, 1, 10) )\n", + "print(greedy_decode(model, src, src_mask, max_len=10, start_symbol=1))" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "tensor([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "# 真实场景示例\n", + "由于原始jupyter的真实数据场景需要多GPU训练,本教程暂时不将其纳入,感兴趣的读者可以继续阅读[原始教程](https://nlp.seas.harvard.edu/2018/04/03/attention.html)。另外由于真是数据原始url失效,原始教程应该也无法运行真是数据场景的代码。" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "# 结语\n", + "\n", + "到目前为止,我们逐行实现了一个完整的Transformer,并使用合成的数据对其进行了训练和预测,希望这个教程能对你有帮助。" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "# 致谢\n", + "本文由张红旭同学翻译,由多多同学整理,原始jupyter来源于哈佛NLP [The annotated Transformer](https://nlp.seas.harvard.edu/2018/04/03/attention.html)。" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "
\n", + "\n", + "" + ], + "metadata": {} + } + ], + "metadata": { + "kernelspec": { + "name": "python3", + "display_name": "Python 3.8.10 64-bit ('venv': virtualenv)" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + }, + "interpreter": { + "hash": "3bfce0b4c492a35815b5705a19fe374a7eea0baaa08b34d90450caf1fe9ce20b" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.md b/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.md new file mode 100644 index 0000000..4f38878 --- /dev/null +++ b/docs/篇章2-Transformer相关原理/2.2.1-Pytorch编写Transformer.md @@ -0,0 +1,929 @@ +```python +from IPython.display import Image +Image(filename='pictures/transformer.png') +``` + + + + + +![png](2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_files/2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_0_0.png) + + + + +本文翻译自哈佛NLP[The Annotated Transformer](https://nlp.seas.harvard.edu/2018/04/03/attention.html) +本文主要由Harvard NLP的学者在2018年初撰写,以逐行实现的形式呈现了论文的“注释”版本,对原始论文进行了重排,并在整个过程中添加了评论和注释。本文的note book可以在[篇章2](https://github.com/datawhalechina/learn-nlp-with-transformers/tree/main/docs/%E7%AF%87%E7%AB%A02-Transformer%E7%9B%B8%E5%85%B3%E5%8E%9F%E7%90%86)下载。 + +内容组织: +- Pytorch编写完整的Transformer + - 背景 + - 模型架构 + - Encoder部分和Decoder部分 + - Encoder + - Decoder + - Attention + - 模型中Attention的应用 + - 基于位置的前馈网络 + - Embeddings和softmax + - 位置编码 + - 完整模型 +- 训练 + - 批处理和mask + - Traning Loop + - 训练数据和批处理 + - 硬件和训练时间 + - 优化器 + - 正则化 + - 标签平滑 +- 实例 + - 合成数据 + - 损失函数计算 + - 贪婪解码 +- 真实场景例 +- 结语 +- 致谢 + + +# 预备工作 + + +```python +# !pip install http://download.pytorch.org/whl/cu80/torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl numpy matplotlib spacy torchtext seaborn +``` + + +```python +import numpy as np +import torch +import torch.nn as nn +import torch.nn.functional as F +import math, copy, time +from torch.autograd import Variable +import matplotlib.pyplot as plt +import seaborn +seaborn.set_context(context="talk") +%matplotlib inline +``` + +Table of Contents + + +* Table of Contents +{:toc} + +# 背景 + +关于Transformer的更多背景知识读者可以阅读本项目的[篇章2.2图解Transformer](https://github.com/datawhalechina/learn-nlp-with-transformers/blob/main/docs/%E7%AF%87%E7%AB%A02-Transformer%E7%9B%B8%E5%85%B3%E5%8E%9F%E7%90%86/2.2-%E5%9B%BE%E8%A7%A3transformer.md)进行学习。 + +# 模型架构 + +大部分序列到序列(seq2seq)模型都使用编码器-解码器结构 [(引用)](https://arxiv.org/abs/1409.0473)。编码器把一个输入序列$(x_{1},...x_{n})$映射到一个连续的表示$z=(z_{1},...z_{n})$中。解码器对z中的每个元素,生成输出序列$(y_{1},...y_{m})$。解码器一个时间步生成一个输出。在每一步中,模型都是自回归的[(引用)](https://arxiv.org/abs/1308.0850),在生成下一个结果时,会将先前生成的结果加入输入序列来一起预测。现在我们先构建一个EncoderDecoder类来搭建一个seq2seq架构: + + +```python +class EncoderDecoder(nn.Module): + """ + 基础的Encoder-Decoder结构。 + A standard Encoder-Decoder architecture. Base for this and many + other models. + """ + def __init__(self, encoder, decoder, src_embed, tgt_embed, generator): + super(EncoderDecoder, self).__init__() + self.encoder = encoder + self.decoder = decoder + self.src_embed = src_embed + self.tgt_embed = tgt_embed + self.generator = generator + + def forward(self, src, tgt, src_mask, tgt_mask): + "Take in and process masked src and target sequences." + return self.decode(self.encode(src, src_mask), src_mask, + tgt, tgt_mask) + + def encode(self, src, src_mask): + return self.encoder(self.src_embed(src), src_mask) + + def decode(self, memory, src_mask, tgt, tgt_mask): + return self.decoder(self.tgt_embed(tgt), memory, src_mask, tgt_mask) +``` + + +```python +class Generator(nn.Module): + "定义生成器,由linear和softmax组成" + "Define standard linear + softmax generation step." + def __init__(self, d_model, vocab): + super(Generator, self).__init__() + self.proj = nn.Linear(d_model, vocab) + + def forward(self, x): + return F.log_softmax(self.proj(x), dim=-1) +``` + +TTransformer的编码器和解码器都使用self-attention和全连接层堆叠而成。如下图的左、右两边所示。 + + +```python +Image(filename='./pictures/2-transformer.png') +``` + + + + + +![png](2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_files/2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_13_0.png) + + + + +## Encoder部分和Decoder部分 + +### Encoder + +编码器由N = 6个完全相同的层组成。 + + +```python +def clones(module, N): + "产生N个完全相同的网络层" + "Produce N identical layers." + return nn.ModuleList([copy.deepcopy(module) for _ in range(N)]) +``` + + +```python +class Encoder(nn.Module): + "完整的Encoder包含N层" + def __init__(self, layer, N): + super(Encoder, self).__init__() + self.layers = clones(layer, N) + self.norm = LayerNorm(layer.size) + + def forward(self, x, mask): + "每一层的输入是x和mask" + for layer in self.layers: + x = layer(x, mask) + return self.norm(x) +``` + +编码器的每层encoder包含Self Attention 子层和FFNN子层,每个子层都使用了残差连接[(cite)](https://arxiv.org/abs/1512.03385),和层标准化(layer-normalization) [(cite)](https://arxiv.org/abs/1607.06450)。先实现一下层标准化: + + +```python +class LayerNorm(nn.Module): + "Construct a layernorm module (See citation for details)." + def __init__(self, features, eps=1e-6): + super(LayerNorm, self).__init__() + self.a_2 = nn.Parameter(torch.ones(features)) + self.b_2 = nn.Parameter(torch.zeros(features)) + self.eps = eps + + def forward(self, x): + mean = x.mean(-1, keepdim=True) + std = x.std(-1, keepdim=True) + return self.a_2 * (x - mean) / (std + self.eps) + self.b_2 +``` + +我们称呼子层为:$\mathrm{Sublayer}(x)$,每个子层的最终输出是$\mathrm{LayerNorm}(x + \mathrm{Sublayer}(x))$。 dropout [(cite)](http://jmlr.org/papers/v15/srivastava14a.html)被加在Sublayer上。 + +为了便于进行残差连接,模型中的所有子层以及embedding层产生的输出的维度都为 $d_{\text{model}}=512$。 + +下面的SublayerConnection类用来处理单个Sublayer的输出,该输出将继续被输入下一个Sublayer: + + +```python +class SublayerConnection(nn.Module): + """ + A residual connection followed by a layer norm. + Note for code simplicity the norm is first as opposed to last. + """ + def __init__(self, size, dropout): + super(SublayerConnection, self).__init__() + self.norm = LayerNorm(size) + self.dropout = nn.Dropout(dropout) + + def forward(self, x, sublayer): + "Apply residual connection to any sublayer with the same size." + return x + self.dropout(sublayer(self.norm(x))) +``` + +每一层encoder都有两个子层。 第一层是一个multi-head self-attention层,第二层是一个简单的全连接前馈网络,对于这两层都需要使用SublayerConnection类进行处理。 + + +```python +class EncoderLayer(nn.Module): + "Encoder is made up of self-attn and feed forward (defined below)" + def __init__(self, size, self_attn, feed_forward, dropout): + super(EncoderLayer, self).__init__() + self.self_attn = self_attn + self.feed_forward = feed_forward + self.sublayer = clones(SublayerConnection(size, dropout), 2) + self.size = size + + def forward(self, x, mask): + "Follow Figure 1 (left) for connections." + x = self.sublayer[0](x, lambda x: self.self_attn(x, x, x, mask)) + return self.sublayer[1](x, self.feed_forward) +``` + +### Decoder + +解码器也是由N = 6 个完全相同的decoder层组成。 + + +```python +class Decoder(nn.Module): + "Generic N layer decoder with masking." + def __init__(self, layer, N): + super(Decoder, self).__init__() + self.layers = clones(layer, N) + self.norm = LayerNorm(layer.size) + + def forward(self, x, memory, src_mask, tgt_mask): + for layer in self.layers: + x = layer(x, memory, src_mask, tgt_mask) + return self.norm(x) +``` + +单层decoder与单层encoder相比,decoder还有第三个子层,该层对encoder的输出执行attention:即encoder-decoder-attention层,q向量来自decoder上一层的输出,k和v向量是encoder最后层的输出向量。与encoder类似,我们在每个子层再采用残差连接,然后进行层标准化。 + + +```python +class DecoderLayer(nn.Module): + "Decoder is made of self-attn, src-attn, and feed forward (defined below)" + def __init__(self, size, self_attn, src_attn, feed_forward, dropout): + super(DecoderLayer, self).__init__() + self.size = size + self.self_attn = self_attn + self.src_attn = src_attn + self.feed_forward = feed_forward + self.sublayer = clones(SublayerConnection(size, dropout), 3) + + def forward(self, x, memory, src_mask, tgt_mask): + "Follow Figure 1 (right) for connections." + m = memory + x = self.sublayer[0](x, lambda x: self.self_attn(x, x, x, tgt_mask)) + x = self.sublayer[1](x, lambda x: self.src_attn(x, m, m, src_mask)) + return self.sublayer[2](x, self.feed_forward) +``` + +对于单层decoder中的self-attention子层,我们需要使用mask机制,以防止在当前位置关注到后面的位置。 + + +```python +def subsequent_mask(size): + "Mask out subsequent positions." + attn_shape = (1, size, size) + subsequent_mask = np.triu(np.ones(attn_shape), k=1).astype('uint8') + return torch.from_numpy(subsequent_mask) == 0 +``` + +> 下面的attention mask显示了每个tgt单词(行)允许查看(列)的位置。在训练时将当前单词的未来信息屏蔽掉,阻止此单词关注到后面的单词。 + + +```python + +plt.figure(figsize=(5,5)) +plt.imshow(subsequent_mask(20)[0]) +None +``` + + + +![svg](2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_files/2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_30_0.svg) + + + +### Attention + +Attention功能可以描述为将query和一组key-value映射到输出,其中query、key、value和输出都是向量。输出为value的加权和,其中每个value的权重通过query与相应key的计算得到。 +我们将particular attention称之为“缩放的点积Attention”(Scaled Dot-Product Attention")。其输入为query、key(维度是$d_k$)以及values(维度是$d_v$)。我们计算query和所有key的点积,然后对每个除以 $\sqrt{d_k}$, 最后用softmax函数获得value的权重。 + + + +```python +Image(filename='./pictures/transformer-self-attention.png') +``` + + + + + +![png](2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_files/2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_32_0.png) + + + + + +在实践中,我们同时计算一组query的attention函数,并将它们组合成一个矩阵$Q$。key和value也一起组成矩阵$K$和$V$。 我们计算的输出矩阵为: + +$$ + \mathrm{Attention}(Q, K, V) = \mathrm{softmax}(\frac{QK^T}{\sqrt{d_k}})V +$$ + + +```python +def attention(query, key, value, mask=None, dropout=None): + "Compute 'Scaled Dot Product Attention'" + d_k = query.size(-1) + scores = torch.matmul(query, key.transpose(-2, -1)) \ + / math.sqrt(d_k) + if mask is not None: + scores = scores.masked_fill(mask == 0, -1e9) + p_attn = F.softmax(scores, dim = -1) + if dropout is not None: + p_attn = dropout(p_attn) + return torch.matmul(p_attn, value), p_attn +``` + +  两个最常用的attention函数是: +- 加法attention[(cite)](https://arxiv.org/abs/1409.0473) +- - 点积(乘法)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}}$倍。 + +在此引用苏剑林文章[《浅谈Transformer的初始化、参数化与标准化》](https://zhuanlan.zhihu.com/p/400925524?utm_source=wechat_session&utm_medium=social&utm_oi=1400823417357139968&utm_campaign=shareopn)中谈到的,为什么Attention中除以$\sqrt{d}$这么重要? + + + + +```python +Image(filename='pictures/transformer-linear.png') +``` + + + + + +![png](2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_files/2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_37_0.png) + + + + +Multi-head attention允许模型同时关注来自不同位置的不同表示子空间的信息,如果只有一个attention head,向量的表示能力会下降。 + +$$ +\mathrm{MultiHead}(Q, K, V) = \mathrm{Concat}(\mathrm{head_1}, ..., \mathrm{head_h})W^O \\ + \text{where}~\mathrm{head_i} = \mathrm{Attention}(QW^Q_i, KW^K_i, VW^V_i) +$$ + +其中映射由权重矩阵完成:$W^Q_i \in \mathbb{R}^{d_{\text{model}} \times d_k}$, $W^K_i \in \mathbb{R}^{d_{\text{model}} \times d_k}$, $W^V_i \in \mathbb{R}^{d_{\text{model}} \times d_v}$ and $W^O \in \mathbb{R}^{hd_v \times d_{\text{model}}}$。 + + 在这项工作中,我们采用$h=8$个平行attention层或者叫head。对于这些head中的每一个,我们使用$d_k=d_v=d_{\text{model}}/h=64$。由于每个head的维度减小,总计算成本与具有全部维度的单个head attention相似。 + + +```python +class MultiHeadedAttention(nn.Module): + def __init__(self, h, d_model, dropout=0.1): + "Take in model size and number of heads." + super(MultiHeadedAttention, self).__init__() + assert d_model % h == 0 + # We assume d_v always equals d_k + self.d_k = d_model // h + self.h = h + self.linears = clones(nn.Linear(d_model, d_model), 4) + self.attn = None + self.dropout = nn.Dropout(p=dropout) + + def forward(self, query, key, value, mask=None): + "Implements Figure 2" + if mask is not None: + # Same mask applied to all h heads. + mask = mask.unsqueeze(1) + nbatches = query.size(0) + + # 1) Do all the linear projections in batch from d_model => h x d_k + query, key, value = \ + [l(x).view(nbatches, -1, self.h, self.d_k).transpose(1, 2) + for l, x in zip(self.linears, (query, key, value))] + + # 2) Apply attention on all the projected vectors in batch. + x, self.attn = attention(query, key, value, mask=mask, + dropout=self.dropout) + + # 3) "Concat" using a view and apply a final linear. + x = x.transpose(1, 2).contiguous() \ + .view(nbatches, -1, self.h * self.d_k) + return self.linears[-1](x) +``` + +### 模型中Attention的应用 + +multi-head attention在Transformer中有三种不同的使用方式: +- 在encoder-decoder attention层中,queries来自前面的decoder层,而keys和values来自encoder的输出。这使得decoder中的每个位置都能关注到输入序列中的所有位置。这是模仿序列到序列模型中典型的编码器—解码器的attention机制,例如 [(cite)](https://arxiv.org/abs/1609.08144). + + +- encoder包含self-attention层。在self-attention层中,所有key,value和query来自同一个地方,即encoder中前一层的输出。在这种情况下,encoder中的每个位置都可以关注到encoder上一层的所有位置。 + + +- 类似地,decoder中的self-attention层允许decoder中的每个位置都关注decoder层中当前位置之前的所有位置(包括当前位置)。 为了保持解码器的自回归特性,需要防止解码器中的信息向左流动。我们在缩放点积attention的内部,通过屏蔽softmax输入中所有的非法连接值(设置为$-\infty$)实现了这一点。 + +### 基于位置的前馈网络 + +除了attention子层之外,我们的编码器和解码器中的每个层都包含一个全连接的前馈网络,该网络在每个层的位置相同(都在每个encoder-layer或者decoder-layer的最后)。该前馈网络包括两个线性变换,并在两个线性变换中间有一个ReLU激活函数。 + +$$\mathrm{FFN}(x)=\max(0, xW_1 + b_1) W_2 + b_2$$ + +尽管两层都是线性变换,但它们在层与层之间使用不同的参数。另一种描述方式是两个内核大小为1的卷积。 输入和输出的维度都是 $d_{\text{model}}=512$, 内层维度是$d_{ff}=2048$。(也就是第一层输入512维,输出2048维;第二层输入2048维,输出512维) + + +```python +class PositionwiseFeedForward(nn.Module): + "Implements FFN equation." + def __init__(self, d_model, d_ff, dropout=0.1): + super(PositionwiseFeedForward, self).__init__() + self.w_1 = nn.Linear(d_model, d_ff) + self.w_2 = nn.Linear(d_ff, d_model) + self.dropout = nn.Dropout(dropout) + + def forward(self, x): + return self.w_2(self.dropout(F.relu(self.w_1(x)))) +``` + +## Embeddings and Softmax + +与其他seq2seq模型类似,我们使用学习到的embedding将输入token和输出token转换为$d_{\text{model}}$维的向量。我们还使用普通的线性变换和softmax函数将解码器输出转换为预测的下一个token的概率 在我们的模型中,两个嵌入层之间和pre-softmax线性变换共享相同的权重矩阵,类似于[(cite)](https://arxiv.org/abs/1608.05859)。在embedding层中,我们将这些权重乘以$\sqrt{d_{\text{model}}}$。 + + +```python +class Embeddings(nn.Module): + def __init__(self, d_model, vocab): + super(Embeddings, self).__init__() + self.lut = nn.Embedding(vocab, d_model) + self.d_model = d_model + + def forward(self, x): + return self.lut(x) * math.sqrt(self.d_model) +``` + +## 位置编码 +  由于我们的模型不包含循环和卷积,为了让模型利用序列的顺序,我们必须加入一些序列中token的相对或者绝对位置的信息。为此,我们将“位置编码”添加到编码器和解码器堆栈底部的输入embeddinng中。位置编码和embedding的维度相同,也是$d_{\text{model}}$ , 所以这两个向量可以相加。有多种位置编码可以选择,例如通过学习得到的位置编码和固定的位置编码 [(cite)](https://arxiv.org/pdf/1705.03122.pdf)。 + +  在这项工作中,我们使用不同频率的正弦和余弦函数: $$PE_{(pos,2i)} = sin(pos / 10000^{2i/d_{\text{model}}})$$ + +$$PE_{(pos,2i+1)} = cos(pos / 10000^{2i/d_{\text{model}}})$$ +  其中$pos$ 是位置,$i$ 是维度。也就是说,位置编码的每个维度对应于一个正弦曲线。 这些波长形成一个从$2\pi$ 到 $10000 \cdot 2\pi$的集合级数。我们选择这个函数是因为我们假设它会让模型很容易学习对相对位置的关注,因为对任意确定的偏移$k$, $PE_{pos+k}$ 可以表示为 $PE_{pos}$的线性函数。 + +  此外,我们会将编码器和解码器堆栈中的embedding和位置编码的和再加一个dropout。对于基本模型,我们使用的dropout比例是$P_{drop}=0.1$。 + + + + +```python +class PositionalEncoding(nn.Module): + "Implement the PE function." + def __init__(self, d_model, dropout, max_len=5000): + super(PositionalEncoding, self).__init__() + self.dropout = nn.Dropout(p=dropout) + + # Compute the positional encodings once in log space. + pe = torch.zeros(max_len, d_model) + position = torch.arange(0, max_len).unsqueeze(1) + div_term = torch.exp(torch.arange(0, d_model, 2) * + -(math.log(10000.0) / d_model)) + pe[:, 0::2] = torch.sin(position * div_term) + pe[:, 1::2] = torch.cos(position * div_term) + pe = pe.unsqueeze(0) + self.register_buffer('pe', pe) + + def forward(self, x): + x = x + Variable(self.pe[:, :x.size(1)], + requires_grad=False) + return self.dropout(x) +``` + +> 如下图,位置编码将根据位置添加正弦波。波的频率和偏移对于每个维度都是不同的。 + + +```python +plt.figure(figsize=(15, 5)) +pe = PositionalEncoding(20, 0) +y = pe.forward(Variable(torch.zeros(1, 100, 20))) +plt.plot(np.arange(100), y[0, :, 4:8].data.numpy()) +plt.legend(["dim %d"%p for p in [4,5,6,7]]) +None +``` + + + +![svg](2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_files/2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_48_0.svg) + + + +我们还尝试使用学习的位置embeddings[(cite)](https://arxiv.org/pdf/1705.03122.pdf)来代替固定的位置编码,结果发现两种方法产生了几乎相同的效果。于是我们选择了正弦版本,因为它可能允许模型外推到,比训练时遇到的序列更长的序列。 + +## 完整模型 + +> 在这里,我们定义了一个从超参数到完整模型的函数。 + + +```python +def make_model(src_vocab, tgt_vocab, N=6, + d_model=512, d_ff=2048, h=8, dropout=0.1): + "Helper: Construct a model from hyperparameters." + c = copy.deepcopy + attn = MultiHeadedAttention(h, d_model) + ff = PositionwiseFeedForward(d_model, d_ff, dropout) + position = PositionalEncoding(d_model, dropout) + model = EncoderDecoder( + Encoder(EncoderLayer(d_model, c(attn), c(ff), dropout), N), + Decoder(DecoderLayer(d_model, c(attn), c(attn), + c(ff), dropout), N), + nn.Sequential(Embeddings(d_model, src_vocab), c(position)), + nn.Sequential(Embeddings(d_model, tgt_vocab), c(position)), + Generator(d_model, tgt_vocab)) + + # This was important from their code. + # Initialize parameters with Glorot / fan_avg. + for p in model.parameters(): + if p.dim() > 1: + nn.init.xavier_uniform(p) + return model +``` + + +```python +# Small example model. +tmp_model = make_model(10, 10, 2) +None +``` + + /var/folders/2k/x3py0v857kgcwqvvl00xxhxw0000gn/T/ipykernel_27532/2289673833.py:20: UserWarning: nn.init.xavier_uniform is now deprecated in favor of nn.init.xavier_uniform_. + nn.init.xavier_uniform(p) + + +# 训练 + +本节描述了我们模型的训练机制。 + +> 我们在这快速地介绍一些工具,这些工具用于训练一个标准的encoder-decoder模型。首先,我们定义一个批处理对象,其中包含用于训练的 src 和目标句子,以及构建掩码。 + +## 批处理和掩码 + + +```python +class Batch: + "Object for holding a batch of data with mask during training." + def __init__(self, src, trg=None, pad=0): + self.src = src + self.src_mask = (src != pad).unsqueeze(-2) + if trg is not None: + self.trg = trg[:, :-1] + self.trg_y = trg[:, 1:] + self.trg_mask = \ + self.make_std_mask(self.trg, pad) + self.ntokens = (self.trg_y != pad).data.sum() + + @staticmethod + def make_std_mask(tgt, pad): + "Create a mask to hide padding and future words." + tgt_mask = (tgt != pad).unsqueeze(-2) + tgt_mask = tgt_mask & Variable( + subsequent_mask(tgt.size(-1)).type_as(tgt_mask.data)) + return tgt_mask +``` + +> 接下来我们创建一个通用的训练和评估函数来跟踪损失。我们传入一个通用的损失函数,也用它来进行参数更新。 + +## Training Loop + + +```python +def run_epoch(data_iter, model, loss_compute): + "Standard Training and Logging Function" + start = time.time() + total_tokens = 0 + total_loss = 0 + tokens = 0 + for i, batch in enumerate(data_iter): + out = model.forward(batch.src, batch.trg, + batch.src_mask, batch.trg_mask) + loss = loss_compute(out, batch.trg_y, batch.ntokens) + total_loss += loss + total_tokens += batch.ntokens + tokens += batch.ntokens + if i % 50 == 1: + elapsed = time.time() - start + print("Epoch Step: %d Loss: %f Tokens per Sec: %f" % + (i, loss / batch.ntokens, tokens / elapsed)) + start = time.time() + tokens = 0 + return total_loss / total_tokens +``` + +## 训练数据和批处理 +  我们在包含约450万个句子对的标准WMT 2014英语-德语数据集上进行了训练。这些句子使用字节对编码进行编码,源语句和目标语句共享大约37000个token的词汇表。对于英语-法语翻译,我们使用了明显更大的WMT 2014英语-法语数据集,该数据集由 3600 万个句子组成,并将token拆分为32000个word-piece词表。
+每个训练批次包含一组句子对,句子对按相近序列长度来分批处理。每个训练批次的句子对包含大约25000个源语言的tokens和25000个目标语言的tokens。 + +> 我们将使用torch text进行批处理(后文会进行更详细地讨论)。在这里,我们在torchtext函数中创建批处理,以确保我们填充到最大值的批处理大小不会超过阈值(如果我们有8个gpu,则为25000)。 + + +```python +global max_src_in_batch, max_tgt_in_batch +def batch_size_fn(new, count, sofar): + "Keep augmenting batch and calculate total number of tokens + padding." + global max_src_in_batch, max_tgt_in_batch + if count == 1: + max_src_in_batch = 0 + max_tgt_in_batch = 0 + max_src_in_batch = max(max_src_in_batch, len(new.src)) + max_tgt_in_batch = max(max_tgt_in_batch, len(new.trg) + 2) + src_elements = count * max_src_in_batch + tgt_elements = count * max_tgt_in_batch + return max(src_elements, tgt_elements) +``` + +## 硬件和训练时间 +我们在一台配备8个 NVIDIA P100 GPU 的机器上训练我们的模型。使用论文中描述的超参数的base models,每个训练step大约需要0.4秒。我们对base models进行了总共10万steps或12小时的训练。而对于big models,每个step训练时间为1.0秒,big models训练了30万steps(3.5 天)。 + +## Optimizer + +我们使用Adam优化器[(cite)](https://arxiv.org/abs/1412.6980),其中 $\beta_1=0.9$, $\beta_2=0.98$并且$\epsilon=10^{-9}$。我们根据以下公式在训练过程中改变学习率: +$$ +lrate = d_{\text{model}}^{-0.5} \cdot + \min({step\_num}^{-0.5}, + {step\_num} \cdot {warmup\_steps}^{-1.5}) +$$ +这对应于在第一次$warmup\_steps$步中线性地增加学习速率,并且随后将其与步数的平方根成比例地减小。我们使用$warmup\_steps=4000$。 + +> 注意:这部分非常重要。需要使用此模型设置进行训练。 + + +```python + +class NoamOpt: + "Optim wrapper that implements rate." + def __init__(self, model_size, factor, warmup, optimizer): + self.optimizer = optimizer + self._step = 0 + self.warmup = warmup + self.factor = factor + self.model_size = model_size + self._rate = 0 + + def step(self): + "Update parameters and rate" + self._step += 1 + rate = self.rate() + for p in self.optimizer.param_groups: + p['lr'] = rate + self._rate = rate + self.optimizer.step() + + def rate(self, step = None): + "Implement `lrate` above" + if step is None: + step = self._step + return self.factor * \ + (self.model_size ** (-0.5) * + min(step ** (-0.5), step * self.warmup ** (-1.5))) + +def get_std_opt(model): + return NoamOpt(model.src_embed[0].d_model, 2, 4000, + torch.optim.Adam(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9)) +``` + + +> 以下是此模型针对不同模型大小和优化超参数的曲线示例。 + + +```python +# Three settings of the lrate hyperparameters. +opts = [NoamOpt(512, 1, 4000, None), + NoamOpt(512, 1, 8000, None), + NoamOpt(256, 1, 4000, None)] +plt.plot(np.arange(1, 20000), [[opt.rate(i) for opt in opts] for i in range(1, 20000)]) +plt.legend(["512:4000", "512:8000", "256:4000"]) +None +``` + + + +![svg](2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_files/2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_68_0.svg) + + + +## 正则化 +### 标签平滑 + +在训练过程中,我们使用的label平滑的值为$\epsilon_{ls}=0.1$ [(cite)](https://arxiv.org/abs/1512.00567)。虽然对label进行平滑会让模型困惑,但提高了准确性和BLEU得分。 + +> 我们使用KL div损失实现标签平滑。我们没有使用one-hot独热分布,而是创建了一个分布,该分布设定目标分布为1-smoothing,将剩余概率分配给词表中的其他单词。 + + +```python +class LabelSmoothing(nn.Module): + "Implement label smoothing." + def __init__(self, size, padding_idx, smoothing=0.0): + super(LabelSmoothing, self).__init__() + self.criterion = nn.KLDivLoss(size_average=False) + self.padding_idx = padding_idx + self.confidence = 1.0 - smoothing + self.smoothing = smoothing + self.size = size + self.true_dist = None + + def forward(self, x, target): + assert x.size(1) == self.size + true_dist = x.data.clone() + true_dist.fill_(self.smoothing / (self.size - 2)) + true_dist.scatter_(1, target.data.unsqueeze(1), self.confidence) + true_dist[:, self.padding_idx] = 0 + mask = torch.nonzero(target.data == self.padding_idx) + if mask.dim() > 0: + true_dist.index_fill_(0, mask.squeeze(), 0.0) + self.true_dist = true_dist + return self.criterion(x, Variable(true_dist, requires_grad=False)) +``` + +下面我们看一个例子,看看平滑后的真实概率分布。 + + +```python +#Example of label smoothing. +crit = LabelSmoothing(5, 0, 0.4) +predict = torch.FloatTensor([[0, 0.2, 0.7, 0.1, 0], + [0, 0.2, 0.7, 0.1, 0], + [0, 0.2, 0.7, 0.1, 0]]) +v = crit(Variable(predict.log()), + Variable(torch.LongTensor([2, 1, 0]))) + +# Show the target distributions expected by the system. +plt.imshow(crit.true_dist) +None +``` + + /Users/niepig/Desktop/zhihu/learn-nlp-with-transformers/venv/lib/python3.8/site-packages/torch/nn/_reduction.py:42: UserWarning: size_average and reduce args will be deprecated, please use reduction='sum' instead. + warnings.warn(warning.format(ret)) + + + + +![svg](2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_files/2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_73_1.svg) + + + + +```python +print(crit.true_dist) +``` + + tensor([[0.0000, 0.1333, 0.6000, 0.1333, 0.1333], + [0.0000, 0.6000, 0.1333, 0.1333, 0.1333], + [0.0000, 0.0000, 0.0000, 0.0000, 0.0000]]) + + +由于标签平滑的存在,如果模型对于某个单词特别有信心,输出特别大的概率,会被惩罚。如下代码所示,随着输入x的增大,x/d会越来越大,1/d会越来越小,但是loss并不是一直降低的。 + + +```python +crit = LabelSmoothing(5, 0, 0.1) +def loss(x): + d = x + 3 * 1 + predict = torch.FloatTensor([[0, x / d, 1 / d, 1 / d, 1 / d], + ]) + #print(predict) + return crit(Variable(predict.log()), + Variable(torch.LongTensor([1]))).item() + +y = [loss(x) for x in range(1, 100)] +x = np.arange(1, 100) +plt.plot(x, y) + +``` + + + + + [] + + + + + +![svg](2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_files/2.2.1-Pytorch%E7%BC%96%E5%86%99Transformer_76_1.svg) + + + +# 实例 + +> 我们可以从尝试一个简单的复制任务开始。给定来自小词汇表的一组随机输入符号symbols,目标是生成这些相同的符号。 + +## 合成数据 + + +```python +def data_gen(V, batch, nbatches): + "Generate random data for a src-tgt copy task." + for i in range(nbatches): + data = torch.from_numpy(np.random.randint(1, V, size=(batch, 10))) + data[:, 0] = 1 + src = Variable(data, requires_grad=False) + tgt = Variable(data, requires_grad=False) + yield Batch(src, tgt, 0) +``` + +## 损失函数计算 + + +```python +class SimpleLossCompute: + "A simple loss compute and train function." + def __init__(self, generator, criterion, opt=None): + self.generator = generator + self.criterion = criterion + self.opt = opt + + def __call__(self, x, y, norm): + x = self.generator(x) + loss = self.criterion(x.contiguous().view(-1, x.size(-1)), + y.contiguous().view(-1)) / norm + loss.backward() + if self.opt is not None: + self.opt.step() + self.opt.optimizer.zero_grad() + return loss.item() * norm +``` + +## 贪婪解码 + + +```python +# Train the simple copy task. +V = 11 +criterion = LabelSmoothing(size=V, padding_idx=0, smoothing=0.0) +model = make_model(V, V, N=2) +model_opt = NoamOpt(model.src_embed[0].d_model, 1, 400, + torch.optim.Adam(model.parameters(), lr=0, betas=(0.9, 0.98), eps=1e-9)) + +for epoch in range(10): + model.train() + run_epoch(data_gen(V, 30, 20), model, + SimpleLossCompute(model.generator, criterion, model_opt)) + model.eval() + print(run_epoch(data_gen(V, 30, 5), model, + SimpleLossCompute(model.generator, criterion, None))) +``` + +> 为了简单起见,此代码使用贪婪解码来预测翻译。 + + +```python +def greedy_decode(model, src, src_mask, max_len, start_symbol): + memory = model.encode(src, src_mask) + ys = torch.ones(1, 1).fill_(start_symbol).type_as(src.data) + for i in range(max_len-1): + out = model.decode(memory, src_mask, + Variable(ys), + Variable(subsequent_mask(ys.size(1)) + .type_as(src.data))) + prob = model.generator(out[:, -1]) + _, next_word = torch.max(prob, dim = 1) + next_word = next_word.data[0] + ys = torch.cat([ys, + torch.ones(1, 1).type_as(src.data).fill_(next_word)], dim=1) + return ys + +model.eval() +src = Variable(torch.LongTensor([[1,2,3,4,5,6,7,8,9,10]]) ) +src_mask = Variable(torch.ones(1, 1, 10) ) +print(greedy_decode(model, src, src_mask, max_len=10, start_symbol=1)) +``` + + tensor([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]) + + +# 真实场景示例 +由于原始jupyter的真实数据场景需要多GPU训练,本教程暂时不将其纳入,感兴趣的读者可以继续阅读[原始教程](https://nlp.seas.harvard.edu/2018/04/03/attention.html)。另外由于真是数据原始url失效,原始教程应该也无法运行真是数据场景的代码。 + +# 结语 + +到目前为止,我们逐行实现了一个完整的Transformer,并使用合成的数据对其进行了训练和预测,希望这个教程能对你有帮助。 + +# 致谢 +本文由张红旭同学翻译,由多多同学整理,原始jupyter来源于哈佛NLP [The annotated Transformer](https://nlp.seas.harvard.edu/2018/04/03/attention.html)。 + +
+ + diff --git a/docs/篇章2-Transformer相关原理/2.2.2-Pytorch编写Transformer-选读.ipynb b/docs/篇章2-Transformer相关原理/2.2.2-Pytorch编写Transformer-选读.ipynb new file mode 100644 index 0000000..4d1a06e --- /dev/null +++ b/docs/篇章2-Transformer相关原理/2.2.2-Pytorch编写Transformer-选读.ipynb @@ -0,0 +1,1173 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Transformer源代码解释之PyTorch篇\n", + "在阅读完[2.2-图解transformer](./篇章2-Transformer相关原理/2.2-图解transformer.md)之后,希望大家能对transformer各个模块的设计和计算有一个形象的认识,本小节我们基于pytorch来实现一个Transformer,帮助大家进一步学习这个复杂的模型。与2.2.1不同的是,本文实现Transformer的时候是按照输入-模型-输出的顺序依次实现的。供大家参考。\n", + "**章节**\n", + "\n", + "- [词嵌入](#embed)\n", + "- [位置编码](#pos)\n", + "- [多头注意力](#multihead)\n", + "- [搭建Transformer](#build)\n", + "\n", + "![](./pictures/0-1-transformer-arc.png)\n", + "\n", + "图:Transformer结构图" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## **
词嵌入
**\n", + "\n", + "如上图所示,Transformer图里左边的是Encoder,右边是Decoder部分。Encoder输入源语言序列,Decoder里面输入需要被翻译的语言文本(在训练时)。一个文本常有许多序列组成,常见操作为将序列进行一些预处理(如词切分等)变成列表,一个序列的列表的元素通常为词表中不可切分的最小词,整个文本就是一个大列表,元素为一个一个由序列组成的列表。如一个序列经过切分后变为[\"am\", \"##ro\", \"##zi\", \"meets\", \"his\", \"father\"],接下来按照它们在词表中对应的索引进行转换,假设结果如[23, 94, 13, 41, 27, 96]。假如整个文本一共100个句子,那么就有100个列表为它的元素,因为每个序列的长度不一,需要设定最大长度,这里不妨设为128,那么将整个文本转换为数组之后,形状即为100 x 128,这就对应着batch_size和seq_length。\n", + "\n", + "输入之后,紧接着进行词嵌入处理,词嵌入就是将每一个词用预先训练好的向量进行映射。\n", + "\n", + "词嵌入在torch里基于`torch.nn.Embedding`实现,实例化时需要设置的参数为词表的大小和被映射的向量的维度比如`embed = nn.Embedding(10,8)`。向量的维度通俗来说就是向量里面有多少个数。注意,第一个参数是词表的大小,如果你目前最多有8个词,通常填写10(多一个位置留给unk和pad),你后面万一进入与这8个词不同的词就映射到unk上,序列padding的部分就映射到pad上。\n", + "\n", + "假如我们打算映射到8维(num_features或者embed_dim),那么,整个文本的形状变为100 x 128 x 8。接下来举个小例子解释一下:假设我们词表一共有10个词(算上unk和pad),文本里有2个句子,每个句子有4个词,我们想要把每个词映射到8维的向量。于是2,4,8对应于batch_size, seq_length, embed_dim(如果batch在第一维的话)。\n", + "\n", + "另外,一般深度学习任务只改变num_features,所以讲维度一般是针对最后特征所在的维度。\n", + "\n", + "开始编程:\n", + "\n", + "所有需要的包的导入:" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 1, + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "from torch.nn.parameter import Parameter\n", + "from torch.nn.init import xavier_uniform_\n", + "from torch.nn.init import constant_\n", + "from torch.nn.init import xavier_normal_\n", + "import torch.nn.functional as F\n", + "from typing import Optional, Tuple, Any\n", + "from typing import List, Optional, Tuple\n", + "import math\n", + "import warnings" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 2, + "source": [ + "X = torch.zeros((2,4),dtype=torch.long)\n", + "embed = nn.Embedding(10,8)\n", + "print(embed(X).shape)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "torch.Size([2, 4, 8])\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## **
位置编码
**\n", + "\n", + "词嵌入之后紧接着就是位置编码,位置编码用以区分不同词以及同词不同特征之间的关系。代码中需要注意:X_只是初始化的矩阵,并不是输入进来的;完成位置编码之后会加一个dropout。另外,位置编码是最后加上去的,因此输入输出形状不变。\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 3, + "source": [ + "Tensor = torch.Tensor\n", + "def positional_encoding(X, num_features, dropout_p=0.1, max_len=512) -> Tensor:\n", + " r'''\n", + " 给输入加入位置编码\n", + " 参数:\n", + " - num_features: 输入进来的维度\n", + " - dropout_p: dropout的概率,当其为非零时执行dropout\n", + " - max_len: 句子的最大长度,默认512\n", + " \n", + " 形状:\n", + " - 输入: [batch_size, seq_length, num_features]\n", + " - 输出: [batch_size, seq_length, num_features]\n", + "\n", + " 例子:\n", + " >>> X = torch.randn((2,4,10))\n", + " >>> X = positional_encoding(X, 10)\n", + " >>> print(X.shape)\n", + " >>> torch.Size([2, 4, 10])\n", + " '''\n", + "\n", + " dropout = nn.Dropout(dropout_p)\n", + " P = torch.zeros((1,max_len,num_features))\n", + " X_ = torch.arange(max_len,dtype=torch.float32).reshape(-1,1) / torch.pow(\n", + " 10000,\n", + " torch.arange(0,num_features,2,dtype=torch.float32) /num_features)\n", + " P[:,:,0::2] = torch.sin(X_)\n", + " P[:,:,1::2] = torch.cos(X_)\n", + " X = X + P[:,:X.shape[1],:].to(X.device)\n", + " return dropout(X)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 4, + "source": [ + "# 位置编码例子\n", + "X = torch.randn((2,4,10))\n", + "X = positional_encoding(X, 10)\n", + "print(X.shape)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "torch.Size([2, 4, 10])\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## **
多头注意力
**" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### 拆开看多头注意力机制\n", + "**完整版本可运行的多头注意里机制的class在后面,先看一下完整的: 多头注意力机制-MultiheadAttention 小节再回来依次看下面的解释。**\n", + "\n", + "多头注意力类主要成分是:参数初始化、multi_head_attention_forward\n", + "\n", + "#### 初始化参数\n", + "```python\n", + "if self._qkv_same_embed_dim is False:\n", + " # 初始化前后形状维持不变\n", + " # (seq_length x embed_dim) x (embed_dim x embed_dim) ==> (seq_length x embed_dim)\n", + " self.q_proj_weight = Parameter(torch.empty((embed_dim, embed_dim)))\n", + " self.k_proj_weight = Parameter(torch.empty((embed_dim, self.kdim)))\n", + " self.v_proj_weight = Parameter(torch.empty((embed_dim, self.vdim)))\n", + " self.register_parameter('in_proj_weight', None)\n", + "else:\n", + " self.in_proj_weight = Parameter(torch.empty((3 * embed_dim, embed_dim)))\n", + " self.register_parameter('q_proj_weight', None)\n", + " self.register_parameter('k_proj_weight', None)\n", + " self.register_parameter('v_proj_weight', None)\n", + "\n", + "if bias:\n", + " self.in_proj_bias = Parameter(torch.empty(3 * embed_dim))\n", + "else:\n", + " self.register_parameter('in_proj_bias', None)\n", + "# 后期会将所有头的注意力拼接在一起然后乘上权重矩阵输出\n", + "# out_proj是为了后期准备的\n", + "self.out_proj = nn.Linear(embed_dim, embed_dim, bias=bias)\n", + "self._reset_parameters()\n", + "```\n", + "\n", + "torch.empty是按照所给的形状形成对应的tensor,特点是填充的值还未初始化,类比torch.randn(标准正态分布),这就是一种初始化的方式。在PyTorch中,变量类型是tensor的话是无法修改值的,而Parameter()函数可以看作为一种类型转变函数,将不可改值的tensor转换为可训练可修改的模型参数,即与model.parameters绑定在一起,register_parameter的意思是是否将这个参数放到model.parameters,None的意思是没有这个参数。\n", + "\n", + "这里有个if判断,用以判断q,k,v的最后一维是否一致,若一致,则一个大的权重矩阵全部乘然后分割出来,若不是,则各初始化各的,其实初始化是不会改变原来的形状的(如![](http://latex.codecogs.com/svg.latex?q=qW_q+b_q),见注释)。\n", + "\n", + "可以发现最后有一个_reset_parameters()函数,这个是用来初始化参数数值的。xavier_uniform意思是从[连续型均匀分布](https://zh.wikipedia.org/wiki/%E9%80%A3%E7%BA%8C%E5%9E%8B%E5%9D%87%E5%8B%BB%E5%88%86%E5%B8%83)里面随机取样出值来作为初始化的值,xavier_normal_取样的分布是正态分布。正因为初始化值在训练神经网络的时候很重要,所以才需要这两个函数。\n", + "\n", + "constant_意思是用所给值来填充输入的向量。\n", + "\n", + "另外,在PyTorch的源码里,似乎projection代表是一种线性变换的意思,in_proj_bias的意思就是一开始的线性变换的偏置\n", + "\n", + "```python\n", + "def _reset_parameters(self):\n", + " if self._qkv_same_embed_dim:\n", + " xavier_uniform_(self.in_proj_weight)\n", + " else:\n", + " xavier_uniform_(self.q_proj_weight)\n", + " xavier_uniform_(self.k_proj_weight)\n", + " xavier_uniform_(self.v_proj_weight)\n", + " if self.in_proj_bias is not None:\n", + " constant_(self.in_proj_bias, 0.)\n", + " constant_(self.out_proj.bias, 0.)\n", + "\n", + "```\n", + "\n" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "#### multi_head_attention_forward\n", + "这个函数如下代码所示,主要分成3个部分:\n", + "- query, key, value通过_in_projection_packed变换得到q,k,v\n", + "- 遮挡机制\n", + "- 点积注意力" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 5, + "source": [ + "import torch\n", + "Tensor = torch.Tensor\n", + "def multi_head_attention_forward(\n", + " query: Tensor,\n", + " key: Tensor,\n", + " value: Tensor,\n", + " num_heads: int,\n", + " in_proj_weight: Tensor,\n", + " in_proj_bias: Optional[Tensor],\n", + " dropout_p: float,\n", + " out_proj_weight: Tensor,\n", + " out_proj_bias: Optional[Tensor],\n", + " training: bool = True,\n", + " key_padding_mask: Optional[Tensor] = None,\n", + " need_weights: bool = True,\n", + " attn_mask: Optional[Tensor] = None,\n", + " use_seperate_proj_weight = None,\n", + " q_proj_weight: Optional[Tensor] = None,\n", + " k_proj_weight: Optional[Tensor] = None,\n", + " v_proj_weight: Optional[Tensor] = None,\n", + ") -> Tuple[Tensor, Optional[Tensor]]:\n", + " r'''\n", + " 形状:\n", + " 输入:\n", + " - query:`(L, N, E)`\n", + " - key: `(S, N, E)`\n", + " - value: `(S, N, E)`\n", + " - key_padding_mask: `(N, S)`\n", + " - attn_mask: `(L, S)` or `(N * num_heads, L, S)`\n", + " 输出:\n", + " - attn_output:`(L, N, E)`\n", + " - attn_output_weights:`(N, L, S)`\n", + " '''\n", + " tgt_len, bsz, embed_dim = query.shape\n", + " src_len, _, _ = key.shape\n", + " head_dim = embed_dim // num_heads\n", + " q, k, v = _in_projection_packed(query, key, value, in_proj_weight, in_proj_bias)\n", + "\n", + " if attn_mask is not None:\n", + " if attn_mask.dtype == torch.uint8:\n", + " warnings.warn(\"Byte tensor for attn_mask in nn.MultiheadAttention is deprecated. Use bool tensor instead.\")\n", + " attn_mask = attn_mask.to(torch.bool)\n", + " else:\n", + " assert attn_mask.is_floating_point() or attn_mask.dtype == torch.bool, \\\n", + " f\"Only float, byte, and bool types are supported for attn_mask, not {attn_mask.dtype}\"\n", + "\n", + " if attn_mask.dim() == 2:\n", + " correct_2d_size = (tgt_len, src_len)\n", + " if attn_mask.shape != correct_2d_size:\n", + " raise RuntimeError(f\"The shape of the 2D attn_mask is {attn_mask.shape}, but should be {correct_2d_size}.\")\n", + " attn_mask = attn_mask.unsqueeze(0)\n", + " elif attn_mask.dim() == 3:\n", + " correct_3d_size = (bsz * num_heads, tgt_len, src_len)\n", + " if attn_mask.shape != correct_3d_size:\n", + " raise RuntimeError(f\"The shape of the 3D attn_mask is {attn_mask.shape}, but should be {correct_3d_size}.\")\n", + " else:\n", + " raise RuntimeError(f\"attn_mask's dimension {attn_mask.dim()} is not supported\")\n", + "\n", + " if key_padding_mask is not None and key_padding_mask.dtype == torch.uint8:\n", + " warnings.warn(\"Byte tensor for key_padding_mask in nn.MultiheadAttention is deprecated. Use bool tensor instead.\")\n", + " key_padding_mask = key_padding_mask.to(torch.bool)\n", + " \n", + " # reshape q,k,v将Batch放在第一维以适合点积注意力\n", + " # 同时为多头机制,将不同的头拼在一起组成一层\n", + " q = q.contiguous().view(tgt_len, bsz * num_heads, head_dim).transpose(0, 1)\n", + " k = k.contiguous().view(-1, bsz * num_heads, head_dim).transpose(0, 1)\n", + " v = v.contiguous().view(-1, bsz * num_heads, head_dim).transpose(0, 1)\n", + " if key_padding_mask is not None:\n", + " assert key_padding_mask.shape == (bsz, src_len), \\\n", + " f\"expecting key_padding_mask shape of {(bsz, src_len)}, but got {key_padding_mask.shape}\"\n", + " key_padding_mask = key_padding_mask.view(bsz, 1, 1, src_len). \\\n", + " expand(-1, num_heads, -1, -1).reshape(bsz * num_heads, 1, src_len)\n", + " if attn_mask is None:\n", + " attn_mask = key_padding_mask\n", + " elif attn_mask.dtype == torch.bool:\n", + " attn_mask = attn_mask.logical_or(key_padding_mask)\n", + " else:\n", + " attn_mask = attn_mask.masked_fill(key_padding_mask, float(\"-inf\"))\n", + " # 若attn_mask值是布尔值,则将mask转换为float\n", + " if attn_mask is not None and attn_mask.dtype == torch.bool:\n", + " new_attn_mask = torch.zeros_like(attn_mask, dtype=torch.float)\n", + " new_attn_mask.masked_fill_(attn_mask, float(\"-inf\"))\n", + " attn_mask = new_attn_mask\n", + "\n", + " # 若training为True时才应用dropout\n", + " if not training:\n", + " dropout_p = 0.0\n", + " attn_output, attn_output_weights = _scaled_dot_product_attention(q, k, v, attn_mask, dropout_p)\n", + " attn_output = attn_output.transpose(0, 1).contiguous().view(tgt_len, bsz, embed_dim)\n", + " attn_output = nn.functional.linear(attn_output, out_proj_weight, out_proj_bias)\n", + " if need_weights:\n", + " # average attention weights over heads\n", + " attn_output_weights = attn_output_weights.view(bsz, num_heads, tgt_len, src_len)\n", + " return attn_output, attn_output_weights.sum(dim=1) / num_heads\n", + " else:\n", + " return attn_output, None" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "##### query, key, value通过_in_projection_packed变换得到q,k,v\n", + "```\n", + "q, k, v = _in_projection_packed(query, key, value, in_proj_weight, in_proj_bias)\n", + "```\n", + "\n", + "对于`nn.functional.linear`函数,其实就是一个线性变换,与`nn.Linear`不同的是,前者可以提供权重矩阵和偏置,执行![](http://latex.codecogs.com/svg.latex?y=xW^T+b),而后者是可以自由决定输出的维度。" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 6, + "source": [ + "def _in_projection_packed(\n", + " q: Tensor,\n", + " k: Tensor,\n", + " v: Tensor,\n", + " w: Tensor,\n", + " b: Optional[Tensor] = None,\n", + ") -> List[Tensor]:\n", + " r\"\"\"\n", + " 用一个大的权重参数矩阵进行线性变换\n", + "\n", + " 参数:\n", + " q, k, v: 对自注意来说,三者都是src;对于seq2seq模型,k和v是一致的tensor。\n", + " 但它们的最后一维(num_features或者叫做embed_dim)都必须保持一致。\n", + " w: 用以线性变换的大矩阵,按照q,k,v的顺序压在一个tensor里面。\n", + " b: 用以线性变换的偏置,按照q,k,v的顺序压在一个tensor里面。\n", + "\n", + " 形状:\n", + " 输入:\n", + " - q: shape:`(..., E)`,E是词嵌入的维度(下面出现的E均为此意)。\n", + " - k: shape:`(..., E)`\n", + " - v: shape:`(..., E)`\n", + " - w: shape:`(E * 3, E)`\n", + " - b: shape:`E * 3` \n", + "\n", + " 输出:\n", + " - 输出列表 :`[q', k', v']`,q,k,v经过线性变换前后的形状都一致。\n", + " \"\"\"\n", + " E = q.size(-1)\n", + " # 若为自注意,则q = k = v = src,因此它们的引用变量都是src\n", + " # 即k is v和q is k结果均为True\n", + " # 若为seq2seq,k = v,因而k is v的结果是True\n", + " if k is v:\n", + " if q is k:\n", + " return F.linear(q, w, b).chunk(3, dim=-1)\n", + " else:\n", + " # seq2seq模型\n", + " w_q, w_kv = w.split([E, E * 2])\n", + " if b is None:\n", + " b_q = b_kv = None\n", + " else:\n", + " b_q, b_kv = b.split([E, E * 2])\n", + " return (F.linear(q, w_q, b_q),) + F.linear(k, w_kv, b_kv).chunk(2, dim=-1)\n", + " else:\n", + " w_q, w_k, w_v = w.chunk(3)\n", + " if b is None:\n", + " b_q = b_k = b_v = None\n", + " else:\n", + " b_q, b_k, b_v = b.chunk(3)\n", + " return F.linear(q, w_q, b_q), F.linear(k, w_k, b_k), F.linear(v, w_v, b_v)\n", + "\n", + "# q, k, v = _in_projection_packed(query, key, value, in_proj_weight, in_proj_bias)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "***\n", + "\n", + "##### 遮挡机制\n", + "\n", + "对于attn_mask来说,若为2D,形状如`(L, S)`,L和S分别代表着目标语言和源语言序列长度,若为3D,形状如`(N * num_heads, L, S)`,N代表着batch_size,num_heads代表注意力头的数目。若为attn_mask的dtype为ByteTensor,非0的位置会被忽略不做注意力;若为BoolTensor,True对应的位置会被忽略;若为数值,则会直接加到attn_weights。\n", + "\n", + "因为在decoder解码的时候,只能看该位置和它之前的,如果看后面就犯规了,所以需要attn_mask遮挡住。\n", + "\n", + "下面函数直接复制PyTorch的,意思是确保不同维度的mask形状正确以及不同类型的转换\n", + "\n", + "\n", + "```python\n", + "if attn_mask is not None:\n", + " if attn_mask.dtype == torch.uint8:\n", + " warnings.warn(\"Byte tensor for attn_mask in nn.MultiheadAttention is deprecated. Use bool tensor instead.\")\n", + " attn_mask = attn_mask.to(torch.bool)\n", + " else:\n", + " assert attn_mask.is_floating_point() or attn_mask.dtype == torch.bool, \\\n", + " f\"Only float, byte, and bool types are supported for attn_mask, not {attn_mask.dtype}\"\n", + " # 对不同维度的形状判定\n", + " if attn_mask.dim() == 2:\n", + " correct_2d_size = (tgt_len, src_len)\n", + " if attn_mask.shape != correct_2d_size:\n", + " raise RuntimeError(f\"The shape of the 2D attn_mask is {attn_mask.shape}, but should be {correct_2d_size}.\")\n", + " attn_mask = attn_mask.unsqueeze(0)\n", + " elif attn_mask.dim() == 3:\n", + " correct_3d_size = (bsz * num_heads, tgt_len, src_len)\n", + " if attn_mask.shape != correct_3d_size:\n", + " raise RuntimeError(f\"The shape of the 3D attn_mask is {attn_mask.shape}, but should be {correct_3d_size}.\")\n", + " else:\n", + " raise RuntimeError(f\"attn_mask's dimension {attn_mask.dim()} is not supported\")\n", + "\n", + "```\n", + "与`attn_mask`不同的是,`key_padding_mask`是用来遮挡住key里面的值,详细来说应该是``,被忽略的情况与attn_mask一致。\n", + "\n", + "```python\n", + "# 将key_padding_mask值改为布尔值\n", + "if key_padding_mask is not None and key_padding_mask.dtype == torch.uint8:\n", + " warnings.warn(\"Byte tensor for key_padding_mask in nn.MultiheadAttention is deprecated. Use bool tensor instead.\")\n", + " key_padding_mask = key_padding_mask.to(torch.bool)\n", + "```\n", + "\n", + "先介绍两个小函数,`logical_or`,输入两个tensor,并对这两个tensor里的值做`逻辑或`运算,只有当两个值均为0的时候才为`False`,其他时候均为`True`,另一个是`masked_fill`,输入是一个mask,和用以填充的值。mask由1,0组成,0的位置值维持不变,1的位置用新值填充。\n", + "```python\n", + "a = torch.tensor([0,1,10,0],dtype=torch.int8)\n", + "b = torch.tensor([4,0,1,0],dtype=torch.int8)\n", + "print(torch.logical_or(a,b))\n", + "# tensor([ True, True, True, False])\n", + "```\n", + "\n", + "```python\n", + "r = torch.tensor([[0,0,0,0],[0,0,0,0]])\n", + "mask = torch.tensor([[1,1,1,1],[0,0,0,0]])\n", + "print(r.masked_fill(mask,1))\n", + "# tensor([[1, 1, 1, 1],\n", + "# [0, 0, 0, 0]])\n", + "```\n", + "其实attn_mask和key_padding_mask有些时候对象是一致的,所以有时候可以合起来看。`-inf`做softmax之后值为0,即被忽略。\n", + "```python\n", + "if key_padding_mask is not None:\n", + " assert key_padding_mask.shape == (bsz, src_len), \\\n", + " f\"expecting key_padding_mask shape of {(bsz, src_len)}, but got {key_padding_mask.shape}\"\n", + " key_padding_mask = key_padding_mask.view(bsz, 1, 1, src_len). \\\n", + " expand(-1, num_heads, -1, -1).reshape(bsz * num_heads, 1, src_len)\n", + " # 若attn_mask为空,直接用key_padding_mask\n", + " if attn_mask is None:\n", + " attn_mask = key_padding_mask\n", + " elif attn_mask.dtype == torch.bool:\n", + " attn_mask = attn_mask.logical_or(key_padding_mask)\n", + " else:\n", + " attn_mask = attn_mask.masked_fill(key_padding_mask, float(\"-inf\"))\n", + "\n", + "# 若attn_mask值是布尔值,则将mask转换为float\n", + "if attn_mask is not None and attn_mask.dtype == torch.bool:\n", + " new_attn_mask = torch.zeros_like(attn_mask, dtype=torch.float)\n", + " new_attn_mask.masked_fill_(attn_mask, float(\"-inf\"))\n", + " attn_mask = new_attn_mask\n", + "\n", + "```" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "***\n", + "##### 点积注意力" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 7, + "source": [ + "from typing import Optional, Tuple, Any\n", + "def _scaled_dot_product_attention(\n", + " q: Tensor,\n", + " k: Tensor,\n", + " v: Tensor,\n", + " attn_mask: Optional[Tensor] = None,\n", + " dropout_p: float = 0.0,\n", + ") -> Tuple[Tensor, Tensor]:\n", + " r'''\n", + " 在query, key, value上计算点积注意力,若有注意力遮盖则使用,并且应用一个概率为dropout_p的dropout\n", + "\n", + " 参数:\n", + " - q: shape:`(B, Nt, E)` B代表batch size, Nt是目标语言序列长度,E是嵌入后的特征维度\n", + " - key: shape:`(B, Ns, E)` Ns是源语言序列长度\n", + " - value: shape:`(B, Ns, E)`与key形状一样\n", + " - attn_mask: 要么是3D的tensor,形状为:`(B, Nt, Ns)`或者2D的tensor,形状如:`(Nt, Ns)`\n", + "\n", + " - Output: attention values: shape:`(B, Nt, E)`,与q的形状一致;attention weights: shape:`(B, Nt, Ns)`\n", + " \n", + " 例子:\n", + " >>> q = torch.randn((2,3,6))\n", + " >>> k = torch.randn((2,4,6))\n", + " >>> v = torch.randn((2,4,6))\n", + " >>> out = scaled_dot_product_attention(q, k, v)\n", + " >>> out[0].shape, out[1].shape\n", + " >>> torch.Size([2, 3, 6]) torch.Size([2, 3, 4])\n", + " '''\n", + " B, Nt, E = q.shape\n", + " q = q / math.sqrt(E)\n", + " # (B, Nt, E) x (B, E, Ns) -> (B, Nt, Ns)\n", + " attn = torch.bmm(q, k.transpose(-2,-1))\n", + " if attn_mask is not None:\n", + " attn += attn_mask \n", + " # attn意味着目标序列的每个词对源语言序列做注意力\n", + " attn = F.softmax(attn, dim=-1)\n", + " if dropout_p:\n", + " attn = F.dropout(attn, p=dropout_p)\n", + " # (B, Nt, Ns) x (B, Ns, E) -> (B, Nt, E)\n", + " output = torch.bmm(attn, v)\n", + " return output, attn \n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### 完整的多头注意力机制-MultiheadAttention" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 8, + "source": [ + "class MultiheadAttention(nn.Module):\n", + " r'''\n", + " 参数:\n", + " embed_dim: 词嵌入的维度\n", + " num_heads: 平行头的数量\n", + " batch_first: 若`True`,则为(batch, seq, feture),若为`False`,则为(seq, batch, feature)\n", + " \n", + " 例子:\n", + " >>> multihead_attn = MultiheadAttention(embed_dim, num_heads)\n", + " >>> attn_output, attn_output_weights = multihead_attn(query, key, value)\n", + " '''\n", + " def __init__(self, embed_dim, num_heads, dropout=0., bias=True,\n", + " kdim=None, vdim=None, batch_first=False) -> None:\n", + " # factory_kwargs = {'device': device, 'dtype': dtype}\n", + " super(MultiheadAttention, self).__init__()\n", + " self.embed_dim = embed_dim\n", + " self.kdim = kdim if kdim is not None else embed_dim\n", + " self.vdim = vdim if vdim is not None else embed_dim\n", + " self._qkv_same_embed_dim = self.kdim == embed_dim and self.vdim == embed_dim\n", + "\n", + " self.num_heads = num_heads\n", + " self.dropout = dropout\n", + " self.batch_first = batch_first\n", + " self.head_dim = embed_dim // num_heads\n", + " assert self.head_dim * num_heads == self.embed_dim, \"embed_dim must be divisible by num_heads\"\n", + "\n", + " if self._qkv_same_embed_dim is False:\n", + " self.q_proj_weight = Parameter(torch.empty((embed_dim, embed_dim)))\n", + " self.k_proj_weight = Parameter(torch.empty((embed_dim, self.kdim)))\n", + " self.v_proj_weight = Parameter(torch.empty((embed_dim, self.vdim)))\n", + " self.register_parameter('in_proj_weight', None)\n", + " else:\n", + " self.in_proj_weight = Parameter(torch.empty((3 * embed_dim, embed_dim)))\n", + " self.register_parameter('q_proj_weight', None)\n", + " self.register_parameter('k_proj_weight', None)\n", + " self.register_parameter('v_proj_weight', None)\n", + "\n", + " if bias:\n", + " self.in_proj_bias = Parameter(torch.empty(3 * embed_dim))\n", + " else:\n", + " self.register_parameter('in_proj_bias', None)\n", + " self.out_proj = nn.Linear(embed_dim, embed_dim, bias=bias)\n", + "\n", + " self._reset_parameters()\n", + "\n", + " def _reset_parameters(self):\n", + " if self._qkv_same_embed_dim:\n", + " xavier_uniform_(self.in_proj_weight)\n", + " else:\n", + " xavier_uniform_(self.q_proj_weight)\n", + " xavier_uniform_(self.k_proj_weight)\n", + " xavier_uniform_(self.v_proj_weight)\n", + "\n", + " if self.in_proj_bias is not None:\n", + " constant_(self.in_proj_bias, 0.)\n", + " constant_(self.out_proj.bias, 0.)\n", + "\n", + "\n", + "\n", + " def forward(self, query: Tensor, key: Tensor, value: Tensor, key_padding_mask: Optional[Tensor] = None,\n", + " need_weights: bool = True, attn_mask: Optional[Tensor] = None) -> Tuple[Tensor, Optional[Tensor]]:\n", + " if self.batch_first:\n", + " query, key, value = [x.transpose(1, 0) for x in (query, key, value)]\n", + "\n", + " if not self._qkv_same_embed_dim:\n", + " attn_output, attn_output_weights = multi_head_attention_forward(\n", + " query, key, value, self.num_heads,\n", + " self.in_proj_weight, self.in_proj_bias,\n", + " self.dropout, self.out_proj.weight, self.out_proj.bias,\n", + " training=self.training,\n", + " key_padding_mask=key_padding_mask, need_weights=need_weights,\n", + " attn_mask=attn_mask, use_separate_proj_weight=True,\n", + " q_proj_weight=self.q_proj_weight, k_proj_weight=self.k_proj_weight,\n", + " v_proj_weight=self.v_proj_weight)\n", + " else:\n", + " attn_output, attn_output_weights = multi_head_attention_forward(\n", + " query, key, value, self.num_heads,\n", + " self.in_proj_weight, self.in_proj_bias,\n", + " self.dropout, self.out_proj.weight, self.out_proj.bias,\n", + " training=self.training,\n", + " key_padding_mask=key_padding_mask, need_weights=need_weights,\n", + " attn_mask=attn_mask)\n", + " if self.batch_first:\n", + " return attn_output.transpose(1, 0), attn_output_weights\n", + " else:\n", + " return attn_output, attn_output_weights" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "\n", + "接下来可以实践一下,并且把位置编码加起来,可以发现加入位置编码和进行多头注意力的前后形状都是不会变的" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 9, + "source": [ + "# 因为batch_first为False,所以src的shape:`(seq, batch, embed_dim)`\n", + "src = torch.randn((2,4,100))\n", + "src = positional_encoding(src,100,0.1)\n", + "print(src.shape)\n", + "multihead_attn = MultiheadAttention(100, 4, 0.1)\n", + "attn_output, attn_output_weights = multihead_attn(src,src,src)\n", + "print(attn_output.shape, attn_output_weights.shape)\n", + "\n", + "# torch.Size([2, 4, 100])\n", + "# torch.Size([2, 4, 100]) torch.Size([4, 2, 2])" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "torch.Size([2, 4, 100])\n", + "torch.Size([2, 4, 100]) torch.Size([4, 2, 2])\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "***\n", + "## **
搭建Transformer
**\n", + "- Encoder Layer\n", + "\n", + "![](./pictures/2-2-1-encoder.png)" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 10, + "source": [ + "class TransformerEncoderLayer(nn.Module):\n", + " r'''\n", + " 参数:\n", + " d_model: 词嵌入的维度(必备)\n", + " nhead: 多头注意力中平行头的数目(必备)\n", + " dim_feedforward: 全连接层的神经元的数目,又称经过此层输入的维度(Default = 2048)\n", + " dropout: dropout的概率(Default = 0.1)\n", + " activation: 两个线性层中间的激活函数,默认relu或gelu\n", + " lay_norm_eps: layer normalization中的微小量,防止分母为0(Default = 1e-5)\n", + " batch_first: 若`True`,则为(batch, seq, feture),若为`False`,则为(seq, batch, feature)(Default:False)\n", + "\n", + " 例子:\n", + " >>> encoder_layer = TransformerEncoderLayer(d_model=512, nhead=8)\n", + " >>> src = torch.randn((32, 10, 512))\n", + " >>> out = encoder_layer(src)\n", + " '''\n", + "\n", + " def __init__(self, d_model, nhead, dim_feedforward=2048, dropout=0.1, activation=F.relu,\n", + " layer_norm_eps=1e-5, batch_first=False) -> None:\n", + " super(TransformerEncoderLayer, self).__init__()\n", + " self.self_attn = MultiheadAttention(d_model, nhead, dropout=dropout, batch_first=batch_first)\n", + " self.linear1 = nn.Linear(d_model, dim_feedforward)\n", + " self.dropout = nn.Dropout(dropout)\n", + " self.linear2 = nn.Linear(dim_feedforward, d_model)\n", + "\n", + " self.norm1 = nn.LayerNorm(d_model, eps=layer_norm_eps)\n", + " self.norm2 = nn.LayerNorm(d_model, eps=layer_norm_eps)\n", + " self.dropout1 = nn.Dropout(dropout)\n", + " self.dropout2 = nn.Dropout(dropout)\n", + " self.activation = activation \n", + "\n", + "\n", + " def forward(self, src: Tensor, src_mask: Optional[Tensor] = None, src_key_padding_mask: Optional[Tensor] = None) -> Tensor:\n", + " src = positional_encoding(src, src.shape[-1])\n", + " src2 = self.self_attn(src, src, src, attn_mask=src_mask, \n", + " key_padding_mask=src_key_padding_mask)[0]\n", + " src = src + self.dropout1(src2)\n", + " src = self.norm1(src)\n", + " src2 = self.linear2(self.dropout(self.activation(self.linear1(src))))\n", + " src = src + self.dropout(src2)\n", + " src = self.norm2(src)\n", + " return src\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 11, + "source": [ + "# 用小例子看一下\n", + "encoder_layer = TransformerEncoderLayer(d_model=512, nhead=8)\n", + "src = torch.randn((32, 10, 512))\n", + "out = encoder_layer(src)\n", + "print(out.shape)\n", + "# torch.Size([32, 10, 512])" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "torch.Size([32, 10, 512])\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "### Transformer layer组成Encoder" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 12, + "source": [ + "class TransformerEncoder(nn.Module):\n", + " r'''\n", + " 参数:\n", + " encoder_layer(必备)\n", + " num_layers: encoder_layer的层数(必备)\n", + " norm: 归一化的选择(可选)\n", + " \n", + " 例子:\n", + " >>> encoder_layer = TransformerEncoderLayer(d_model=512, nhead=8)\n", + " >>> transformer_encoder = TransformerEncoder(encoder_layer, num_layers=6)\n", + " >>> src = torch.randn((10, 32, 512))\n", + " >>> out = transformer_encoder(src)\n", + " '''\n", + "\n", + " def __init__(self, encoder_layer, num_layers, norm=None):\n", + " super(TransformerEncoder, self).__init__()\n", + " self.layer = encoder_layer\n", + " self.num_layers = num_layers\n", + " self.norm = norm\n", + " \n", + " def forward(self, src: Tensor, mask: Optional[Tensor] = None, src_key_padding_mask: Optional[Tensor] = None) -> Tensor:\n", + " output = positional_encoding(src, src.shape[-1])\n", + " for _ in range(self.num_layers):\n", + " output = self.layer(output, src_mask=mask, src_key_padding_mask=src_key_padding_mask)\n", + " \n", + " if self.norm is not None:\n", + " output = self.norm(output)\n", + " \n", + " return output" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 13, + "source": [ + "# 例子\n", + "encoder_layer = TransformerEncoderLayer(d_model=512, nhead=8)\n", + "transformer_encoder = TransformerEncoder(encoder_layer, num_layers=6)\n", + "src = torch.randn((10, 32, 512))\n", + "out = transformer_encoder(src)\n", + "print(out.shape)\n", + "# torch.Size([10, 32, 512])" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "torch.Size([10, 32, 512])\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "***\n", + "## Decoder Layer:" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 14, + "source": [ + "class TransformerDecoderLayer(nn.Module):\n", + " r'''\n", + " 参数:\n", + " d_model: 词嵌入的维度(必备)\n", + " nhead: 多头注意力中平行头的数目(必备)\n", + " dim_feedforward: 全连接层的神经元的数目,又称经过此层输入的维度(Default = 2048)\n", + " dropout: dropout的概率(Default = 0.1)\n", + " activation: 两个线性层中间的激活函数,默认relu或gelu\n", + " lay_norm_eps: layer normalization中的微小量,防止分母为0(Default = 1e-5)\n", + " batch_first: 若`True`,则为(batch, seq, feture),若为`False`,则为(seq, batch, feature)(Default:False)\n", + " \n", + " 例子:\n", + " >>> decoder_layer = TransformerDecoderLayer(d_model=512, nhead=8)\n", + " >>> memory = torch.randn((10, 32, 512))\n", + " >>> tgt = torch.randn((20, 32, 512))\n", + " >>> out = decoder_layer(tgt, memory)\n", + " '''\n", + " def __init__(self, d_model, nhead, dim_feedforward=2048, dropout=0.1, activation=F.relu,\n", + " layer_norm_eps=1e-5, batch_first=False) -> None:\n", + " super(TransformerDecoderLayer, self).__init__()\n", + " self.self_attn = MultiheadAttention(d_model, nhead, dropout=dropout, batch_first=batch_first)\n", + " self.multihead_attn = MultiheadAttention(d_model, nhead, dropout=dropout, batch_first=batch_first)\n", + "\n", + " self.linear1 = nn.Linear(d_model, dim_feedforward)\n", + " self.dropout = nn.Dropout(dropout)\n", + " self.linear2 = nn.Linear(dim_feedforward, d_model)\n", + "\n", + " self.norm1 = nn.LayerNorm(d_model, eps=layer_norm_eps)\n", + " self.norm2 = nn.LayerNorm(d_model, eps=layer_norm_eps)\n", + " self.norm3 = nn.LayerNorm(d_model, eps=layer_norm_eps)\n", + " self.dropout1 = nn.Dropout(dropout)\n", + " self.dropout2 = nn.Dropout(dropout)\n", + " self.dropout3 = nn.Dropout(dropout)\n", + "\n", + " self.activation = activation\n", + "\n", + " def forward(self, tgt: Tensor, memory: Tensor, tgt_mask: Optional[Tensor] = None, \n", + " memory_mask: Optional[Tensor] = None,tgt_key_padding_mask: Optional[Tensor] = None, memory_key_padding_mask: Optional[Tensor] = None) -> Tensor:\n", + " r'''\n", + " 参数:\n", + " tgt: 目标语言序列(必备)\n", + " memory: 从最后一个encoder_layer跑出的句子(必备)\n", + " tgt_mask: 目标语言序列的mask(可选)\n", + " memory_mask(可选)\n", + " tgt_key_padding_mask(可选)\n", + " memory_key_padding_mask(可选)\n", + " '''\n", + " tgt2 = self.self_attn(tgt, tgt, tgt, attn_mask=tgt_mask,\n", + " key_padding_mask=tgt_key_padding_mask)[0]\n", + " tgt = tgt + self.dropout1(tgt2)\n", + " tgt = self.norm1(tgt)\n", + " tgt2 = self.multihead_attn(tgt, memory, memory, attn_mask=memory_mask,\n", + " key_padding_mask=memory_key_padding_mask)[0]\n", + " tgt = tgt + self.dropout2(tgt2)\n", + " tgt = self.norm2(tgt)\n", + " tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt))))\n", + " tgt = tgt + self.dropout3(tgt2)\n", + " tgt = self.norm3(tgt)\n", + " return tgt" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 15, + "source": [ + "# 可爱的小例子\n", + "decoder_layer = nn.TransformerDecoderLayer(d_model=512, nhead=8)\n", + "memory = torch.randn((10, 32, 512))\n", + "tgt = torch.randn((20, 32, 512))\n", + "out = decoder_layer(tgt, memory)\n", + "print(out.shape)\n", + "# torch.Size([20, 32, 512])" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "torch.Size([20, 32, 512])\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 16, + "source": [ + "## Decoder" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 17, + "source": [ + "class TransformerDecoder(nn.Module):\n", + " r'''\n", + " 参数:\n", + " decoder_layer(必备)\n", + " num_layers: decoder_layer的层数(必备)\n", + " norm: 归一化选择\n", + " \n", + " 例子:\n", + " >>> decoder_layer =TransformerDecoderLayer(d_model=512, nhead=8)\n", + " >>> transformer_decoder = TransformerDecoder(decoder_layer, num_layers=6)\n", + " >>> memory = torch.rand(10, 32, 512)\n", + " >>> tgt = torch.rand(20, 32, 512)\n", + " >>> out = transformer_decoder(tgt, memory)\n", + " '''\n", + " def __init__(self, decoder_layer, num_layers, norm=None):\n", + " super(TransformerDecoder, self).__init__()\n", + " self.layer = decoder_layer\n", + " self.num_layers = num_layers\n", + " self.norm = norm\n", + " \n", + " def forward(self, tgt: Tensor, memory: Tensor, tgt_mask: Optional[Tensor] = None,\n", + " memory_mask: Optional[Tensor] = None, tgt_key_padding_mask: Optional[Tensor] = None,\n", + " memory_key_padding_mask: Optional[Tensor] = None) -> Tensor:\n", + " output = tgt\n", + " for _ in range(self.num_layers):\n", + " output = self.layer(output, memory, tgt_mask=tgt_mask,\n", + " memory_mask=memory_mask,\n", + " tgt_key_padding_mask=tgt_key_padding_mask,\n", + " memory_key_padding_mask=memory_key_padding_mask)\n", + " if self.norm is not None:\n", + " output = self.norm(output)\n", + "\n", + " return output" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 18, + "source": [ + "# 可爱的小例子\n", + "decoder_layer =TransformerDecoderLayer(d_model=512, nhead=8)\n", + "transformer_decoder = TransformerDecoder(decoder_layer, num_layers=6)\n", + "memory = torch.rand(10, 32, 512)\n", + "tgt = torch.rand(20, 32, 512)\n", + "out = transformer_decoder(tgt, memory)\n", + "print(out.shape)\n", + "# torch.Size([20, 32, 512])" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "torch.Size([20, 32, 512])\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "总结一下,其实经过位置编码,多头注意力,Encoder Layer和Decoder Layer形状不会变的,而Encoder和Decoder分别与src和tgt形状一致" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Transformer" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 19, + "source": [ + "class Transformer(nn.Module):\n", + " r'''\n", + " 参数:\n", + " d_model: 词嵌入的维度(必备)(Default=512)\n", + " nhead: 多头注意力中平行头的数目(必备)(Default=8)\n", + " num_encoder_layers:编码层层数(Default=8)\n", + " num_decoder_layers:解码层层数(Default=8)\n", + " dim_feedforward: 全连接层的神经元的数目,又称经过此层输入的维度(Default = 2048)\n", + " dropout: dropout的概率(Default = 0.1)\n", + " activation: 两个线性层中间的激活函数,默认relu或gelu\n", + " custom_encoder: 自定义encoder(Default=None)\n", + " custom_decoder: 自定义decoder(Default=None)\n", + " lay_norm_eps: layer normalization中的微小量,防止分母为0(Default = 1e-5)\n", + " batch_first: 若`True`,则为(batch, seq, feture),若为`False`,则为(seq, batch, feature)(Default:False)\n", + " \n", + " 例子:\n", + " >>> transformer_model = Transformer(nhead=16, num_encoder_layers=12)\n", + " >>> src = torch.rand((10, 32, 512))\n", + " >>> tgt = torch.rand((20, 32, 512))\n", + " >>> out = transformer_model(src, tgt)\n", + " '''\n", + " def __init__(self, d_model: int = 512, nhead: int = 8, num_encoder_layers: int = 6,\n", + " num_decoder_layers: int = 6, dim_feedforward: int = 2048, dropout: float = 0.1,\n", + " activation = F.relu, custom_encoder: Optional[Any] = None, custom_decoder: Optional[Any] = None,\n", + " layer_norm_eps: float = 1e-5, batch_first: bool = False) -> None:\n", + " super(Transformer, self).__init__()\n", + " if custom_encoder is not None:\n", + " self.encoder = custom_encoder\n", + " else:\n", + " encoder_layer = TransformerEncoderLayer(d_model, nhead, dim_feedforward, dropout,\n", + " activation, layer_norm_eps, batch_first)\n", + " encoder_norm = nn.LayerNorm(d_model, eps=layer_norm_eps)\n", + " self.encoder = TransformerEncoder(encoder_layer, num_encoder_layers)\n", + "\n", + " if custom_decoder is not None:\n", + " self.decoder = custom_decoder\n", + " else:\n", + " decoder_layer = TransformerDecoderLayer(d_model, nhead, dim_feedforward, dropout,\n", + " activation, layer_norm_eps, batch_first)\n", + " decoder_norm = nn.LayerNorm(d_model, eps=layer_norm_eps)\n", + " self.decoder = TransformerDecoder(decoder_layer, num_decoder_layers, decoder_norm)\n", + "\n", + " self._reset_parameters()\n", + "\n", + " self.d_model = d_model\n", + " self.nhead = nhead\n", + "\n", + " self.batch_first = batch_first\n", + "\n", + " def forward(self, src: Tensor, tgt: Tensor, src_mask: Optional[Tensor] = None, tgt_mask: Optional[Tensor] = None,\n", + " memory_mask: Optional[Tensor] = None, src_key_padding_mask: Optional[Tensor] = None,\n", + " tgt_key_padding_mask: Optional[Tensor] = None, memory_key_padding_mask: Optional[Tensor] = None) -> Tensor:\n", + " r'''\n", + " 参数:\n", + " src: 源语言序列(送入Encoder)(必备)\n", + " tgt: 目标语言序列(送入Decoder)(必备)\n", + " src_mask: (可选)\n", + " tgt_mask: (可选)\n", + " memory_mask: (可选)\n", + " src_key_padding_mask: (可选)\n", + " tgt_key_padding_mask: (可选)\n", + " memory_key_padding_mask: (可选)\n", + " \n", + " 形状:\n", + " - src: shape:`(S, N, E)`, `(N, S, E)` if batch_first.\n", + " - tgt: shape:`(T, N, E)`, `(N, T, E)` if batch_first.\n", + " - src_mask: shape:`(S, S)`.\n", + " - tgt_mask: shape:`(T, T)`.\n", + " - memory_mask: shape:`(T, S)`.\n", + " - src_key_padding_mask: shape:`(N, S)`.\n", + " - tgt_key_padding_mask: shape:`(N, T)`.\n", + " - memory_key_padding_mask: shape:`(N, S)`.\n", + "\n", + " [src/tgt/memory]_mask确保有些位置不被看到,如做decode的时候,只能看该位置及其以前的,而不能看后面的。\n", + " 若为ByteTensor,非0的位置会被忽略不做注意力;若为BoolTensor,True对应的位置会被忽略;\n", + " 若为数值,则会直接加到attn_weights\n", + "\n", + " [src/tgt/memory]_key_padding_mask 使得key里面的某些元素不参与attention计算,三种情况同上\n", + "\n", + " - output: shape:`(T, N, E)`, `(N, T, E)` if batch_first.\n", + "\n", + " 注意:\n", + " src和tgt的最后一维需要等于d_model,batch的那一维需要相等\n", + " \n", + " 例子:\n", + " >>> output = transformer_model(src, tgt, src_mask=src_mask, tgt_mask=tgt_mask)\n", + " '''\n", + " memory = self.encoder(src, mask=src_mask, src_key_padding_mask=src_key_padding_mask)\n", + " output = self.decoder(tgt, memory, tgt_mask=tgt_mask, memory_mask=memory_mask,\n", + " tgt_key_padding_mask=tgt_key_padding_mask,\n", + " memory_key_padding_mask=memory_key_padding_mask)\n", + " return output\n", + " \n", + " def generate_square_subsequent_mask(self, sz: int) -> Tensor:\n", + " r'''产生关于序列的mask,被遮住的区域赋值`-inf`,未被遮住的区域赋值为`0`'''\n", + " mask = (torch.triu(torch.ones(sz, sz)) == 1).transpose(0, 1)\n", + " mask = mask.float().masked_fill(mask == 0, float('-inf')).masked_fill(mask == 1, float(0.0))\n", + " return mask\n", + "\n", + " def _reset_parameters(self):\n", + " r'''用正态分布初始化参数'''\n", + " for p in self.parameters():\n", + " if p.dim() > 1:\n", + " xavier_uniform_(p)" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 20, + "source": [ + "# 小例子\n", + "transformer_model = Transformer(nhead=16, num_encoder_layers=12)\n", + "src = torch.rand((10, 32, 512))\n", + "tgt = torch.rand((20, 32, 512))\n", + "out = transformer_model(src, tgt)\n", + "print(out.shape)\n", + "# torch.Size([20, 32, 512])" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "torch.Size([20, 32, 512])\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "到此为止,PyTorch的Transformer库我们已经全部实现,相比于官方的版本,手写的这个少了较多的判定语句。\n", + "## 致谢\n", + "本文由台运鹏撰写,本项目成员重新组织和整理。最后,期待您的阅读反馈和star,谢谢。" + ], + "metadata": {} + } + ], + "metadata": { + "interpreter": { + "hash": "3bfce0b4c492a35815b5705a19fe374a7eea0baaa08b34d90450caf1fe9ce20b" + }, + "kernelspec": { + "display_name": "Python 3.8.10 64-bit ('venv': virtualenv)", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/docs/篇章2-Transformer相关原理/2.2.2-Pytorch编写Transformer-选读.md b/docs/篇章2-Transformer相关原理/2.2.2-Pytorch编写Transformer-选读.md new file mode 100644 index 0000000..3457546 --- /dev/null +++ b/docs/篇章2-Transformer相关原理/2.2.2-Pytorch编写Transformer-选读.md @@ -0,0 +1,951 @@ +# Transformer源代码解释之PyTorch篇 +在阅读完[2.2-图解transformer](./篇章2-Transformer相关原理/2.2-图解transformer.md)之后,希望大家能对transformer各个模块的设计和计算有一个形象的认识,本小节我们基于pytorch来实现一个Transformer,帮助大家进一步学习这个复杂的模型。与2.2.1不同的是,本文实现Transformer的时候是按照输入-模型-输出的顺序依次实现的。供大家参考。 +**章节** + +- [词嵌入](#embed) +- [位置编码](#pos) +- [多头注意力](#multihead) +- [搭建Transformer](#build) + +![](./pictures/0-1-transformer-arc.png) + +图:Transformer结构图 + +## **
词嵌入
** + +如上图所示,Transformer图里左边的是Encoder,右边是Decoder部分。Encoder输入源语言序列,Decoder里面输入需要被翻译的语言文本(在训练时)。一个文本常有许多序列组成,常见操作为将序列进行一些预处理(如词切分等)变成列表,一个序列的列表的元素通常为词表中不可切分的最小词,整个文本就是一个大列表,元素为一个一个由序列组成的列表。如一个序列经过切分后变为["am", "##ro", "##zi", "meets", "his", "father"],接下来按照它们在词表中对应的索引进行转换,假设结果如[23, 94, 13, 41, 27, 96]。假如整个文本一共100个句子,那么就有100个列表为它的元素,因为每个序列的长度不一,需要设定最大长度,这里不妨设为128,那么将整个文本转换为数组之后,形状即为100 x 128,这就对应着batch_size和seq_length。 + +输入之后,紧接着进行词嵌入处理,词嵌入就是将每一个词用预先训练好的向量进行映射。 + +词嵌入在torch里基于`torch.nn.Embedding`实现,实例化时需要设置的参数为词表的大小和被映射的向量的维度比如`embed = nn.Embedding(10,8)`。向量的维度通俗来说就是向量里面有多少个数。注意,第一个参数是词表的大小,如果你目前最多有8个词,通常填写10(多一个位置留给unk和pad),你后面万一进入与这8个词不同的词就映射到unk上,序列padding的部分就映射到pad上。 + +假如我们打算映射到8维(num_features或者embed_dim),那么,整个文本的形状变为100 x 128 x 8。接下来举个小例子解释一下:假设我们词表一共有10个词(算上unk和pad),文本里有2个句子,每个句子有4个词,我们想要把每个词映射到8维的向量。于是2,4,8对应于batch_size, seq_length, embed_dim(如果batch在第一维的话)。 + +另外,一般深度学习任务只改变num_features,所以讲维度一般是针对最后特征所在的维度。 + +开始编程: + +所有需要的包的导入: + + +```python +import torch +import torch.nn as nn +from torch.nn.parameter import Parameter +from torch.nn.init import xavier_uniform_ +from torch.nn.init import constant_ +from torch.nn.init import xavier_normal_ +import torch.nn.functional as F +from typing import Optional, Tuple, Any +from typing import List, Optional, Tuple +import math +import warnings +``` + + +```python +X = torch.zeros((2,4),dtype=torch.long) +embed = nn.Embedding(10,8) +print(embed(X).shape) +``` + + torch.Size([2, 4, 8]) + + +## **
位置编码
** + +词嵌入之后紧接着就是位置编码,位置编码用以区分不同词以及同词不同特征之间的关系。代码中需要注意:X_只是初始化的矩阵,并不是输入进来的;完成位置编码之后会加一个dropout。另外,位置编码是最后加上去的,因此输入输出形状不变。 + + + +```python +Tensor = torch.Tensor +def positional_encoding(X, num_features, dropout_p=0.1, max_len=512) -> Tensor: + r''' + 给输入加入位置编码 + 参数: + - num_features: 输入进来的维度 + - dropout_p: dropout的概率,当其为非零时执行dropout + - max_len: 句子的最大长度,默认512 + + 形状: + - 输入: [batch_size, seq_length, num_features] + - 输出: [batch_size, seq_length, num_features] + + 例子: + >>> X = torch.randn((2,4,10)) + >>> X = positional_encoding(X, 10) + >>> print(X.shape) + >>> torch.Size([2, 4, 10]) + ''' + + dropout = nn.Dropout(dropout_p) + P = torch.zeros((1,max_len,num_features)) + X_ = torch.arange(max_len,dtype=torch.float32).reshape(-1,1) / torch.pow( + 10000, + torch.arange(0,num_features,2,dtype=torch.float32) /num_features) + P[:,:,0::2] = torch.sin(X_) + P[:,:,1::2] = torch.cos(X_) + X = X + P[:,:X.shape[1],:].to(X.device) + return dropout(X) +``` + + +```python +# 位置编码例子 +X = torch.randn((2,4,10)) +X = positional_encoding(X, 10) +print(X.shape) +``` + + torch.Size([2, 4, 10]) + + +## **
多头注意力
** + +### 拆开看多头注意力机制 +**完整版本可运行的多头注意里机制的class在后面,先看一下完整的: 多头注意力机制-MultiheadAttention 小节再回来依次看下面的解释。** + +多头注意力类主要成分是:参数初始化、multi_head_attention_forward + +#### 初始化参数 +```python +if self._qkv_same_embed_dim is False: + # 初始化前后形状维持不变 + # (seq_length x embed_dim) x (embed_dim x embed_dim) ==> (seq_length x embed_dim) + self.q_proj_weight = Parameter(torch.empty((embed_dim, embed_dim))) + self.k_proj_weight = Parameter(torch.empty((embed_dim, self.kdim))) + self.v_proj_weight = Parameter(torch.empty((embed_dim, self.vdim))) + self.register_parameter('in_proj_weight', None) +else: + self.in_proj_weight = Parameter(torch.empty((3 * embed_dim, embed_dim))) + self.register_parameter('q_proj_weight', None) + self.register_parameter('k_proj_weight', None) + self.register_parameter('v_proj_weight', None) + +if bias: + self.in_proj_bias = Parameter(torch.empty(3 * embed_dim)) +else: + self.register_parameter('in_proj_bias', None) +# 后期会将所有头的注意力拼接在一起然后乘上权重矩阵输出 +# out_proj是为了后期准备的 +self.out_proj = nn.Linear(embed_dim, embed_dim, bias=bias) +self._reset_parameters() +``` + +torch.empty是按照所给的形状形成对应的tensor,特点是填充的值还未初始化,类比torch.randn(标准正态分布),这就是一种初始化的方式。在PyTorch中,变量类型是tensor的话是无法修改值的,而Parameter()函数可以看作为一种类型转变函数,将不可改值的tensor转换为可训练可修改的模型参数,即与model.parameters绑定在一起,register_parameter的意思是是否将这个参数放到model.parameters,None的意思是没有这个参数。 + +这里有个if判断,用以判断q,k,v的最后一维是否一致,若一致,则一个大的权重矩阵全部乘然后分割出来,若不是,则各初始化各的,其实初始化是不会改变原来的形状的(如![](http://latex.codecogs.com/svg.latex?q=qW_q+b_q),见注释)。 + +可以发现最后有一个_reset_parameters()函数,这个是用来初始化参数数值的。xavier_uniform意思是从[连续型均匀分布](https://zh.wikipedia.org/wiki/%E9%80%A3%E7%BA%8C%E5%9E%8B%E5%9D%87%E5%8B%BB%E5%88%86%E5%B8%83)里面随机取样出值来作为初始化的值,xavier_normal_取样的分布是正态分布。正因为初始化值在训练神经网络的时候很重要,所以才需要这两个函数。 + +constant_意思是用所给值来填充输入的向量。 + +另外,在PyTorch的源码里,似乎projection代表是一种线性变换的意思,in_proj_bias的意思就是一开始的线性变换的偏置 + +```python +def _reset_parameters(self): + if self._qkv_same_embed_dim: + xavier_uniform_(self.in_proj_weight) + else: + xavier_uniform_(self.q_proj_weight) + xavier_uniform_(self.k_proj_weight) + xavier_uniform_(self.v_proj_weight) + if self.in_proj_bias is not None: + constant_(self.in_proj_bias, 0.) + constant_(self.out_proj.bias, 0.) + +``` + + + +#### multi_head_attention_forward +这个函数如下代码所示,主要分成3个部分: +- query, key, value通过_in_projection_packed变换得到q,k,v +- 遮挡机制 +- 点积注意力 + + +```python +import torch +Tensor = torch.Tensor +def multi_head_attention_forward( + query: Tensor, + key: Tensor, + value: Tensor, + num_heads: int, + in_proj_weight: Tensor, + in_proj_bias: Optional[Tensor], + dropout_p: float, + out_proj_weight: Tensor, + out_proj_bias: Optional[Tensor], + training: bool = True, + key_padding_mask: Optional[Tensor] = None, + need_weights: bool = True, + attn_mask: Optional[Tensor] = None, + use_seperate_proj_weight = None, + q_proj_weight: Optional[Tensor] = None, + k_proj_weight: Optional[Tensor] = None, + v_proj_weight: Optional[Tensor] = None, +) -> Tuple[Tensor, Optional[Tensor]]: + r''' + 形状: + 输入: + - query:`(L, N, E)` + - key: `(S, N, E)` + - value: `(S, N, E)` + - key_padding_mask: `(N, S)` + - attn_mask: `(L, S)` or `(N * num_heads, L, S)` + 输出: + - attn_output:`(L, N, E)` + - attn_output_weights:`(N, L, S)` + ''' + tgt_len, bsz, embed_dim = query.shape + src_len, _, _ = key.shape + head_dim = embed_dim // num_heads + q, k, v = _in_projection_packed(query, key, value, in_proj_weight, in_proj_bias) + + if attn_mask is not None: + if attn_mask.dtype == torch.uint8: + warnings.warn("Byte tensor for attn_mask in nn.MultiheadAttention is deprecated. Use bool tensor instead.") + attn_mask = attn_mask.to(torch.bool) + else: + assert attn_mask.is_floating_point() or attn_mask.dtype == torch.bool, \ + f"Only float, byte, and bool types are supported for attn_mask, not {attn_mask.dtype}" + + if attn_mask.dim() == 2: + correct_2d_size = (tgt_len, src_len) + if attn_mask.shape != correct_2d_size: + raise RuntimeError(f"The shape of the 2D attn_mask is {attn_mask.shape}, but should be {correct_2d_size}.") + attn_mask = attn_mask.unsqueeze(0) + elif attn_mask.dim() == 3: + correct_3d_size = (bsz * num_heads, tgt_len, src_len) + if attn_mask.shape != correct_3d_size: + raise RuntimeError(f"The shape of the 3D attn_mask is {attn_mask.shape}, but should be {correct_3d_size}.") + else: + raise RuntimeError(f"attn_mask's dimension {attn_mask.dim()} is not supported") + + if key_padding_mask is not None and key_padding_mask.dtype == torch.uint8: + warnings.warn("Byte tensor for key_padding_mask in nn.MultiheadAttention is deprecated. Use bool tensor instead.") + key_padding_mask = key_padding_mask.to(torch.bool) + + # reshape q,k,v将Batch放在第一维以适合点积注意力 + # 同时为多头机制,将不同的头拼在一起组成一层 + q = q.contiguous().view(tgt_len, bsz * num_heads, head_dim).transpose(0, 1) + k = k.contiguous().view(-1, bsz * num_heads, head_dim).transpose(0, 1) + v = v.contiguous().view(-1, bsz * num_heads, head_dim).transpose(0, 1) + if key_padding_mask is not None: + assert key_padding_mask.shape == (bsz, src_len), \ + f"expecting key_padding_mask shape of {(bsz, src_len)}, but got {key_padding_mask.shape}" + key_padding_mask = key_padding_mask.view(bsz, 1, 1, src_len). \ + expand(-1, num_heads, -1, -1).reshape(bsz * num_heads, 1, src_len) + if attn_mask is None: + attn_mask = key_padding_mask + elif attn_mask.dtype == torch.bool: + attn_mask = attn_mask.logical_or(key_padding_mask) + else: + attn_mask = attn_mask.masked_fill(key_padding_mask, float("-inf")) + # 若attn_mask值是布尔值,则将mask转换为float + if attn_mask is not None and attn_mask.dtype == torch.bool: + new_attn_mask = torch.zeros_like(attn_mask, dtype=torch.float) + new_attn_mask.masked_fill_(attn_mask, float("-inf")) + attn_mask = new_attn_mask + + # 若training为True时才应用dropout + if not training: + dropout_p = 0.0 + attn_output, attn_output_weights = _scaled_dot_product_attention(q, k, v, attn_mask, dropout_p) + attn_output = attn_output.transpose(0, 1).contiguous().view(tgt_len, bsz, embed_dim) + attn_output = nn.functional.linear(attn_output, out_proj_weight, out_proj_bias) + if need_weights: + # average attention weights over heads + attn_output_weights = attn_output_weights.view(bsz, num_heads, tgt_len, src_len) + return attn_output, attn_output_weights.sum(dim=1) / num_heads + else: + return attn_output, None +``` + +##### query, key, value通过_in_projection_packed变换得到q,k,v +``` +q, k, v = _in_projection_packed(query, key, value, in_proj_weight, in_proj_bias) +``` + +对于`nn.functional.linear`函数,其实就是一个线性变换,与`nn.Linear`不同的是,前者可以提供权重矩阵和偏置,执行![](http://latex.codecogs.com/svg.latex?y=xW^T+b),而后者是可以自由决定输出的维度。 + + +```python +def _in_projection_packed( + q: Tensor, + k: Tensor, + v: Tensor, + w: Tensor, + b: Optional[Tensor] = None, +) -> List[Tensor]: + r""" + 用一个大的权重参数矩阵进行线性变换 + + 参数: + q, k, v: 对自注意来说,三者都是src;对于seq2seq模型,k和v是一致的tensor。 + 但它们的最后一维(num_features或者叫做embed_dim)都必须保持一致。 + w: 用以线性变换的大矩阵,按照q,k,v的顺序压在一个tensor里面。 + b: 用以线性变换的偏置,按照q,k,v的顺序压在一个tensor里面。 + + 形状: + 输入: + - q: shape:`(..., E)`,E是词嵌入的维度(下面出现的E均为此意)。 + - k: shape:`(..., E)` + - v: shape:`(..., E)` + - w: shape:`(E * 3, E)` + - b: shape:`E * 3` + + 输出: + - 输出列表 :`[q', k', v']`,q,k,v经过线性变换前后的形状都一致。 + """ + E = q.size(-1) + # 若为自注意,则q = k = v = src,因此它们的引用变量都是src + # 即k is v和q is k结果均为True + # 若为seq2seq,k = v,因而k is v的结果是True + if k is v: + if q is k: + return F.linear(q, w, b).chunk(3, dim=-1) + else: + # seq2seq模型 + w_q, w_kv = w.split([E, E * 2]) + if b is None: + b_q = b_kv = None + else: + b_q, b_kv = b.split([E, E * 2]) + return (F.linear(q, w_q, b_q),) + F.linear(k, w_kv, b_kv).chunk(2, dim=-1) + else: + w_q, w_k, w_v = w.chunk(3) + if b is None: + b_q = b_k = b_v = None + else: + b_q, b_k, b_v = b.chunk(3) + return F.linear(q, w_q, b_q), F.linear(k, w_k, b_k), F.linear(v, w_v, b_v) + +# q, k, v = _in_projection_packed(query, key, value, in_proj_weight, in_proj_bias) +``` + +*** + +##### 遮挡机制 + +对于attn_mask来说,若为2D,形状如`(L, S)`,L和S分别代表着目标语言和源语言序列长度,若为3D,形状如`(N * num_heads, L, S)`,N代表着batch_size,num_heads代表注意力头的数目。若为attn_mask的dtype为ByteTensor,非0的位置会被忽略不做注意力;若为BoolTensor,True对应的位置会被忽略;若为数值,则会直接加到attn_weights。 + +因为在decoder解码的时候,只能看该位置和它之前的,如果看后面就犯规了,所以需要attn_mask遮挡住。 + +下面函数直接复制PyTorch的,意思是确保不同维度的mask形状正确以及不同类型的转换 + + +```python +if attn_mask is not None: + if attn_mask.dtype == torch.uint8: + warnings.warn("Byte tensor for attn_mask in nn.MultiheadAttention is deprecated. Use bool tensor instead.") + attn_mask = attn_mask.to(torch.bool) + else: + assert attn_mask.is_floating_point() or attn_mask.dtype == torch.bool, \ + f"Only float, byte, and bool types are supported for attn_mask, not {attn_mask.dtype}" + # 对不同维度的形状判定 + if attn_mask.dim() == 2: + correct_2d_size = (tgt_len, src_len) + if attn_mask.shape != correct_2d_size: + raise RuntimeError(f"The shape of the 2D attn_mask is {attn_mask.shape}, but should be {correct_2d_size}.") + attn_mask = attn_mask.unsqueeze(0) + elif attn_mask.dim() == 3: + correct_3d_size = (bsz * num_heads, tgt_len, src_len) + if attn_mask.shape != correct_3d_size: + raise RuntimeError(f"The shape of the 3D attn_mask is {attn_mask.shape}, but should be {correct_3d_size}.") + else: + raise RuntimeError(f"attn_mask's dimension {attn_mask.dim()} is not supported") + +``` +与`attn_mask`不同的是,`key_padding_mask`是用来遮挡住key里面的值,详细来说应该是``,被忽略的情况与attn_mask一致。 + +```python +# 将key_padding_mask值改为布尔值 +if key_padding_mask is not None and key_padding_mask.dtype == torch.uint8: + warnings.warn("Byte tensor for key_padding_mask in nn.MultiheadAttention is deprecated. Use bool tensor instead.") + key_padding_mask = key_padding_mask.to(torch.bool) +``` + +先介绍两个小函数,`logical_or`,输入两个tensor,并对这两个tensor里的值做`逻辑或`运算,只有当两个值均为0的时候才为`False`,其他时候均为`True`,另一个是`masked_fill`,输入是一个mask,和用以填充的值。mask由1,0组成,0的位置值维持不变,1的位置用新值填充。 +```python +a = torch.tensor([0,1,10,0],dtype=torch.int8) +b = torch.tensor([4,0,1,0],dtype=torch.int8) +print(torch.logical_or(a,b)) +# tensor([ True, True, True, False]) +``` + +```python +r = torch.tensor([[0,0,0,0],[0,0,0,0]]) +mask = torch.tensor([[1,1,1,1],[0,0,0,0]]) +print(r.masked_fill(mask,1)) +# tensor([[1, 1, 1, 1], +# [0, 0, 0, 0]]) +``` +其实attn_mask和key_padding_mask有些时候对象是一致的,所以有时候可以合起来看。`-inf`做softmax之后值为0,即被忽略。 +```python +if key_padding_mask is not None: + assert key_padding_mask.shape == (bsz, src_len), \ + f"expecting key_padding_mask shape of {(bsz, src_len)}, but got {key_padding_mask.shape}" + key_padding_mask = key_padding_mask.view(bsz, 1, 1, src_len). \ + expand(-1, num_heads, -1, -1).reshape(bsz * num_heads, 1, src_len) + # 若attn_mask为空,直接用key_padding_mask + if attn_mask is None: + attn_mask = key_padding_mask + elif attn_mask.dtype == torch.bool: + attn_mask = attn_mask.logical_or(key_padding_mask) + else: + attn_mask = attn_mask.masked_fill(key_padding_mask, float("-inf")) + +# 若attn_mask值是布尔值,则将mask转换为float +if attn_mask is not None and attn_mask.dtype == torch.bool: + new_attn_mask = torch.zeros_like(attn_mask, dtype=torch.float) + new_attn_mask.masked_fill_(attn_mask, float("-inf")) + attn_mask = new_attn_mask + +``` + +*** +##### 点积注意力 + + +```python +from typing import Optional, Tuple, Any +def _scaled_dot_product_attention( + q: Tensor, + k: Tensor, + v: Tensor, + attn_mask: Optional[Tensor] = None, + dropout_p: float = 0.0, +) -> Tuple[Tensor, Tensor]: + r''' + 在query, key, value上计算点积注意力,若有注意力遮盖则使用,并且应用一个概率为dropout_p的dropout + + 参数: + - q: shape:`(B, Nt, E)` B代表batch size, Nt是目标语言序列长度,E是嵌入后的特征维度 + - key: shape:`(B, Ns, E)` Ns是源语言序列长度 + - value: shape:`(B, Ns, E)`与key形状一样 + - attn_mask: 要么是3D的tensor,形状为:`(B, Nt, Ns)`或者2D的tensor,形状如:`(Nt, Ns)` + + - Output: attention values: shape:`(B, Nt, E)`,与q的形状一致;attention weights: shape:`(B, Nt, Ns)` + + 例子: + >>> q = torch.randn((2,3,6)) + >>> k = torch.randn((2,4,6)) + >>> v = torch.randn((2,4,6)) + >>> out = scaled_dot_product_attention(q, k, v) + >>> out[0].shape, out[1].shape + >>> torch.Size([2, 3, 6]) torch.Size([2, 3, 4]) + ''' + B, Nt, E = q.shape + q = q / math.sqrt(E) + # (B, Nt, E) x (B, E, Ns) -> (B, Nt, Ns) + attn = torch.bmm(q, k.transpose(-2,-1)) + if attn_mask is not None: + attn += attn_mask + # attn意味着目标序列的每个词对源语言序列做注意力 + attn = F.softmax(attn, dim=-1) + if dropout_p: + attn = F.dropout(attn, p=dropout_p) + # (B, Nt, Ns) x (B, Ns, E) -> (B, Nt, E) + output = torch.bmm(attn, v) + return output, attn + +``` + +### 完整的多头注意力机制-MultiheadAttention + + +```python +class MultiheadAttention(nn.Module): + r''' + 参数: + embed_dim: 词嵌入的维度 + num_heads: 平行头的数量 + batch_first: 若`True`,则为(batch, seq, feture),若为`False`,则为(seq, batch, feature) + + 例子: + >>> multihead_attn = MultiheadAttention(embed_dim, num_heads) + >>> attn_output, attn_output_weights = multihead_attn(query, key, value) + ''' + def __init__(self, embed_dim, num_heads, dropout=0., bias=True, + kdim=None, vdim=None, batch_first=False) -> None: + # factory_kwargs = {'device': device, 'dtype': dtype} + super(MultiheadAttention, self).__init__() + self.embed_dim = embed_dim + self.kdim = kdim if kdim is not None else embed_dim + self.vdim = vdim if vdim is not None else embed_dim + self._qkv_same_embed_dim = self.kdim == embed_dim and self.vdim == embed_dim + + self.num_heads = num_heads + self.dropout = dropout + self.batch_first = batch_first + self.head_dim = embed_dim // num_heads + assert self.head_dim * num_heads == self.embed_dim, "embed_dim must be divisible by num_heads" + + if self._qkv_same_embed_dim is False: + self.q_proj_weight = Parameter(torch.empty((embed_dim, embed_dim))) + self.k_proj_weight = Parameter(torch.empty((embed_dim, self.kdim))) + self.v_proj_weight = Parameter(torch.empty((embed_dim, self.vdim))) + self.register_parameter('in_proj_weight', None) + else: + self.in_proj_weight = Parameter(torch.empty((3 * embed_dim, embed_dim))) + self.register_parameter('q_proj_weight', None) + self.register_parameter('k_proj_weight', None) + self.register_parameter('v_proj_weight', None) + + if bias: + self.in_proj_bias = Parameter(torch.empty(3 * embed_dim)) + else: + self.register_parameter('in_proj_bias', None) + self.out_proj = nn.Linear(embed_dim, embed_dim, bias=bias) + + self._reset_parameters() + + def _reset_parameters(self): + if self._qkv_same_embed_dim: + xavier_uniform_(self.in_proj_weight) + else: + xavier_uniform_(self.q_proj_weight) + xavier_uniform_(self.k_proj_weight) + xavier_uniform_(self.v_proj_weight) + + if self.in_proj_bias is not None: + constant_(self.in_proj_bias, 0.) + constant_(self.out_proj.bias, 0.) + + + + def forward(self, query: Tensor, key: Tensor, value: Tensor, key_padding_mask: Optional[Tensor] = None, + need_weights: bool = True, attn_mask: Optional[Tensor] = None) -> Tuple[Tensor, Optional[Tensor]]: + if self.batch_first: + query, key, value = [x.transpose(1, 0) for x in (query, key, value)] + + if not self._qkv_same_embed_dim: + attn_output, attn_output_weights = multi_head_attention_forward( + query, key, value, self.num_heads, + self.in_proj_weight, self.in_proj_bias, + self.dropout, self.out_proj.weight, self.out_proj.bias, + training=self.training, + key_padding_mask=key_padding_mask, need_weights=need_weights, + attn_mask=attn_mask, use_separate_proj_weight=True, + q_proj_weight=self.q_proj_weight, k_proj_weight=self.k_proj_weight, + v_proj_weight=self.v_proj_weight) + else: + attn_output, attn_output_weights = multi_head_attention_forward( + query, key, value, self.num_heads, + self.in_proj_weight, self.in_proj_bias, + self.dropout, self.out_proj.weight, self.out_proj.bias, + training=self.training, + key_padding_mask=key_padding_mask, need_weights=need_weights, + attn_mask=attn_mask) + if self.batch_first: + return attn_output.transpose(1, 0), attn_output_weights + else: + return attn_output, attn_output_weights +``` + + +接下来可以实践一下,并且把位置编码加起来,可以发现加入位置编码和进行多头注意力的前后形状都是不会变的 + + +```python +# 因为batch_first为False,所以src的shape:`(seq, batch, embed_dim)` +src = torch.randn((2,4,100)) +src = positional_encoding(src,100,0.1) +print(src.shape) +multihead_attn = MultiheadAttention(100, 4, 0.1) +attn_output, attn_output_weights = multihead_attn(src,src,src) +print(attn_output.shape, attn_output_weights.shape) + +# torch.Size([2, 4, 100]) +# torch.Size([2, 4, 100]) torch.Size([4, 2, 2]) +``` + + torch.Size([2, 4, 100]) + torch.Size([2, 4, 100]) torch.Size([4, 2, 2]) + + +*** +## **
搭建Transformer
** +- Encoder Layer + +![](./pictures/2-2-1-encoder.png) + + +```python +class TransformerEncoderLayer(nn.Module): + r''' + 参数: + d_model: 词嵌入的维度(必备) + nhead: 多头注意力中平行头的数目(必备) + dim_feedforward: 全连接层的神经元的数目,又称经过此层输入的维度(Default = 2048) + dropout: dropout的概率(Default = 0.1) + activation: 两个线性层中间的激活函数,默认relu或gelu + lay_norm_eps: layer normalization中的微小量,防止分母为0(Default = 1e-5) + batch_first: 若`True`,则为(batch, seq, feture),若为`False`,则为(seq, batch, feature)(Default:False) + + 例子: + >>> encoder_layer = TransformerEncoderLayer(d_model=512, nhead=8) + >>> src = torch.randn((32, 10, 512)) + >>> out = encoder_layer(src) + ''' + + def __init__(self, d_model, nhead, dim_feedforward=2048, dropout=0.1, activation=F.relu, + layer_norm_eps=1e-5, batch_first=False) -> None: + super(TransformerEncoderLayer, self).__init__() + self.self_attn = MultiheadAttention(d_model, nhead, dropout=dropout, batch_first=batch_first) + self.linear1 = nn.Linear(d_model, dim_feedforward) + self.dropout = nn.Dropout(dropout) + self.linear2 = nn.Linear(dim_feedforward, d_model) + + self.norm1 = nn.LayerNorm(d_model, eps=layer_norm_eps) + self.norm2 = nn.LayerNorm(d_model, eps=layer_norm_eps) + self.dropout1 = nn.Dropout(dropout) + self.dropout2 = nn.Dropout(dropout) + self.activation = activation + + + def forward(self, src: Tensor, src_mask: Optional[Tensor] = None, src_key_padding_mask: Optional[Tensor] = None) -> Tensor: + src = positional_encoding(src, src.shape[-1]) + src2 = self.self_attn(src, src, src, attn_mask=src_mask, + key_padding_mask=src_key_padding_mask)[0] + src = src + self.dropout1(src2) + src = self.norm1(src) + src2 = self.linear2(self.dropout(self.activation(self.linear1(src)))) + src = src + self.dropout(src2) + src = self.norm2(src) + return src + +``` + + +```python +# 用小例子看一下 +encoder_layer = TransformerEncoderLayer(d_model=512, nhead=8) +src = torch.randn((32, 10, 512)) +out = encoder_layer(src) +print(out.shape) +# torch.Size([32, 10, 512]) +``` + + torch.Size([32, 10, 512]) + + +### Transformer layer组成Encoder + + +```python +class TransformerEncoder(nn.Module): + r''' + 参数: + encoder_layer(必备) + num_layers: encoder_layer的层数(必备) + norm: 归一化的选择(可选) + + 例子: + >>> encoder_layer = TransformerEncoderLayer(d_model=512, nhead=8) + >>> transformer_encoder = TransformerEncoder(encoder_layer, num_layers=6) + >>> src = torch.randn((10, 32, 512)) + >>> out = transformer_encoder(src) + ''' + + def __init__(self, encoder_layer, num_layers, norm=None): + super(TransformerEncoder, self).__init__() + self.layer = encoder_layer + self.num_layers = num_layers + self.norm = norm + + def forward(self, src: Tensor, mask: Optional[Tensor] = None, src_key_padding_mask: Optional[Tensor] = None) -> Tensor: + output = positional_encoding(src, src.shape[-1]) + for _ in range(self.num_layers): + output = self.layer(output, src_mask=mask, src_key_padding_mask=src_key_padding_mask) + + if self.norm is not None: + output = self.norm(output) + + return output +``` + + +```python +# 例子 +encoder_layer = TransformerEncoderLayer(d_model=512, nhead=8) +transformer_encoder = TransformerEncoder(encoder_layer, num_layers=6) +src = torch.randn((10, 32, 512)) +out = transformer_encoder(src) +print(out.shape) +# torch.Size([10, 32, 512]) +``` + + torch.Size([10, 32, 512]) + + +*** +## Decoder Layer: + + +```python +class TransformerDecoderLayer(nn.Module): + r''' + 参数: + d_model: 词嵌入的维度(必备) + nhead: 多头注意力中平行头的数目(必备) + dim_feedforward: 全连接层的神经元的数目,又称经过此层输入的维度(Default = 2048) + dropout: dropout的概率(Default = 0.1) + activation: 两个线性层中间的激活函数,默认relu或gelu + lay_norm_eps: layer normalization中的微小量,防止分母为0(Default = 1e-5) + batch_first: 若`True`,则为(batch, seq, feture),若为`False`,则为(seq, batch, feature)(Default:False) + + 例子: + >>> decoder_layer = TransformerDecoderLayer(d_model=512, nhead=8) + >>> memory = torch.randn((10, 32, 512)) + >>> tgt = torch.randn((20, 32, 512)) + >>> out = decoder_layer(tgt, memory) + ''' + def __init__(self, d_model, nhead, dim_feedforward=2048, dropout=0.1, activation=F.relu, + layer_norm_eps=1e-5, batch_first=False) -> None: + super(TransformerDecoderLayer, self).__init__() + self.self_attn = MultiheadAttention(d_model, nhead, dropout=dropout, batch_first=batch_first) + self.multihead_attn = MultiheadAttention(d_model, nhead, dropout=dropout, batch_first=batch_first) + + self.linear1 = nn.Linear(d_model, dim_feedforward) + self.dropout = nn.Dropout(dropout) + self.linear2 = nn.Linear(dim_feedforward, d_model) + + self.norm1 = nn.LayerNorm(d_model, eps=layer_norm_eps) + self.norm2 = nn.LayerNorm(d_model, eps=layer_norm_eps) + self.norm3 = nn.LayerNorm(d_model, eps=layer_norm_eps) + self.dropout1 = nn.Dropout(dropout) + self.dropout2 = nn.Dropout(dropout) + self.dropout3 = nn.Dropout(dropout) + + self.activation = activation + + def forward(self, tgt: Tensor, memory: Tensor, tgt_mask: Optional[Tensor] = None, + memory_mask: Optional[Tensor] = None,tgt_key_padding_mask: Optional[Tensor] = None, memory_key_padding_mask: Optional[Tensor] = None) -> Tensor: + r''' + 参数: + tgt: 目标语言序列(必备) + memory: 从最后一个encoder_layer跑出的句子(必备) + tgt_mask: 目标语言序列的mask(可选) + memory_mask(可选) + tgt_key_padding_mask(可选) + memory_key_padding_mask(可选) + ''' + tgt2 = self.self_attn(tgt, tgt, tgt, attn_mask=tgt_mask, + key_padding_mask=tgt_key_padding_mask)[0] + tgt = tgt + self.dropout1(tgt2) + tgt = self.norm1(tgt) + tgt2 = self.multihead_attn(tgt, memory, memory, attn_mask=memory_mask, + key_padding_mask=memory_key_padding_mask)[0] + tgt = tgt + self.dropout2(tgt2) + tgt = self.norm2(tgt) + tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt)))) + tgt = tgt + self.dropout3(tgt2) + tgt = self.norm3(tgt) + return tgt +``` + + +```python +# 可爱的小例子 +decoder_layer = nn.TransformerDecoderLayer(d_model=512, nhead=8) +memory = torch.randn((10, 32, 512)) +tgt = torch.randn((20, 32, 512)) +out = decoder_layer(tgt, memory) +print(out.shape) +# torch.Size([20, 32, 512]) +``` + + torch.Size([20, 32, 512]) + + + +```python +## Decoder +``` + + +```python +class TransformerDecoder(nn.Module): + r''' + 参数: + decoder_layer(必备) + num_layers: decoder_layer的层数(必备) + norm: 归一化选择 + + 例子: + >>> decoder_layer =TransformerDecoderLayer(d_model=512, nhead=8) + >>> transformer_decoder = TransformerDecoder(decoder_layer, num_layers=6) + >>> memory = torch.rand(10, 32, 512) + >>> tgt = torch.rand(20, 32, 512) + >>> out = transformer_decoder(tgt, memory) + ''' + def __init__(self, decoder_layer, num_layers, norm=None): + super(TransformerDecoder, self).__init__() + self.layer = decoder_layer + self.num_layers = num_layers + self.norm = norm + + def forward(self, tgt: Tensor, memory: Tensor, tgt_mask: Optional[Tensor] = None, + memory_mask: Optional[Tensor] = None, tgt_key_padding_mask: Optional[Tensor] = None, + memory_key_padding_mask: Optional[Tensor] = None) -> Tensor: + output = tgt + for _ in range(self.num_layers): + output = self.layer(output, memory, tgt_mask=tgt_mask, + memory_mask=memory_mask, + tgt_key_padding_mask=tgt_key_padding_mask, + memory_key_padding_mask=memory_key_padding_mask) + if self.norm is not None: + output = self.norm(output) + + return output +``` + + +```python +# 可爱的小例子 +decoder_layer =TransformerDecoderLayer(d_model=512, nhead=8) +transformer_decoder = TransformerDecoder(decoder_layer, num_layers=6) +memory = torch.rand(10, 32, 512) +tgt = torch.rand(20, 32, 512) +out = transformer_decoder(tgt, memory) +print(out.shape) +# torch.Size([20, 32, 512]) +``` + + torch.Size([20, 32, 512]) + + +总结一下,其实经过位置编码,多头注意力,Encoder Layer和Decoder Layer形状不会变的,而Encoder和Decoder分别与src和tgt形状一致 + +## Transformer + + +```python +class Transformer(nn.Module): + r''' + 参数: + d_model: 词嵌入的维度(必备)(Default=512) + nhead: 多头注意力中平行头的数目(必备)(Default=8) + num_encoder_layers:编码层层数(Default=8) + num_decoder_layers:解码层层数(Default=8) + dim_feedforward: 全连接层的神经元的数目,又称经过此层输入的维度(Default = 2048) + dropout: dropout的概率(Default = 0.1) + activation: 两个线性层中间的激活函数,默认relu或gelu + custom_encoder: 自定义encoder(Default=None) + custom_decoder: 自定义decoder(Default=None) + lay_norm_eps: layer normalization中的微小量,防止分母为0(Default = 1e-5) + batch_first: 若`True`,则为(batch, seq, feture),若为`False`,则为(seq, batch, feature)(Default:False) + + 例子: + >>> transformer_model = Transformer(nhead=16, num_encoder_layers=12) + >>> src = torch.rand((10, 32, 512)) + >>> tgt = torch.rand((20, 32, 512)) + >>> out = transformer_model(src, tgt) + ''' + def __init__(self, d_model: int = 512, nhead: int = 8, num_encoder_layers: int = 6, + num_decoder_layers: int = 6, dim_feedforward: int = 2048, dropout: float = 0.1, + activation = F.relu, custom_encoder: Optional[Any] = None, custom_decoder: Optional[Any] = None, + layer_norm_eps: float = 1e-5, batch_first: bool = False) -> None: + super(Transformer, self).__init__() + if custom_encoder is not None: + self.encoder = custom_encoder + else: + encoder_layer = TransformerEncoderLayer(d_model, nhead, dim_feedforward, dropout, + activation, layer_norm_eps, batch_first) + encoder_norm = nn.LayerNorm(d_model, eps=layer_norm_eps) + self.encoder = TransformerEncoder(encoder_layer, num_encoder_layers) + + if custom_decoder is not None: + self.decoder = custom_decoder + else: + decoder_layer = TransformerDecoderLayer(d_model, nhead, dim_feedforward, dropout, + activation, layer_norm_eps, batch_first) + decoder_norm = nn.LayerNorm(d_model, eps=layer_norm_eps) + self.decoder = TransformerDecoder(decoder_layer, num_decoder_layers, decoder_norm) + + self._reset_parameters() + + self.d_model = d_model + self.nhead = nhead + + self.batch_first = batch_first + + def forward(self, src: Tensor, tgt: Tensor, src_mask: Optional[Tensor] = None, tgt_mask: Optional[Tensor] = None, + memory_mask: Optional[Tensor] = None, src_key_padding_mask: Optional[Tensor] = None, + tgt_key_padding_mask: Optional[Tensor] = None, memory_key_padding_mask: Optional[Tensor] = None) -> Tensor: + r''' + 参数: + src: 源语言序列(送入Encoder)(必备) + tgt: 目标语言序列(送入Decoder)(必备) + src_mask: (可选) + tgt_mask: (可选) + memory_mask: (可选) + src_key_padding_mask: (可选) + tgt_key_padding_mask: (可选) + memory_key_padding_mask: (可选) + + 形状: + - src: shape:`(S, N, E)`, `(N, S, E)` if batch_first. + - tgt: shape:`(T, N, E)`, `(N, T, E)` if batch_first. + - src_mask: shape:`(S, S)`. + - tgt_mask: shape:`(T, T)`. + - memory_mask: shape:`(T, S)`. + - src_key_padding_mask: shape:`(N, S)`. + - tgt_key_padding_mask: shape:`(N, T)`. + - memory_key_padding_mask: shape:`(N, S)`. + + [src/tgt/memory]_mask确保有些位置不被看到,如做decode的时候,只能看该位置及其以前的,而不能看后面的。 + 若为ByteTensor,非0的位置会被忽略不做注意力;若为BoolTensor,True对应的位置会被忽略; + 若为数值,则会直接加到attn_weights + + [src/tgt/memory]_key_padding_mask 使得key里面的某些元素不参与attention计算,三种情况同上 + + - output: shape:`(T, N, E)`, `(N, T, E)` if batch_first. + + 注意: + src和tgt的最后一维需要等于d_model,batch的那一维需要相等 + + 例子: + >>> output = transformer_model(src, tgt, src_mask=src_mask, tgt_mask=tgt_mask) + ''' + memory = self.encoder(src, mask=src_mask, src_key_padding_mask=src_key_padding_mask) + output = self.decoder(tgt, memory, tgt_mask=tgt_mask, memory_mask=memory_mask, + tgt_key_padding_mask=tgt_key_padding_mask, + memory_key_padding_mask=memory_key_padding_mask) + return output + + def generate_square_subsequent_mask(self, sz: int) -> Tensor: + r'''产生关于序列的mask,被遮住的区域赋值`-inf`,未被遮住的区域赋值为`0`''' + mask = (torch.triu(torch.ones(sz, sz)) == 1).transpose(0, 1) + mask = mask.float().masked_fill(mask == 0, float('-inf')).masked_fill(mask == 1, float(0.0)) + return mask + + def _reset_parameters(self): + r'''用正态分布初始化参数''' + for p in self.parameters(): + if p.dim() > 1: + xavier_uniform_(p) +``` + + +```python +# 小例子 +transformer_model = Transformer(nhead=16, num_encoder_layers=12) +src = torch.rand((10, 32, 512)) +tgt = torch.rand((20, 32, 512)) +out = transformer_model(src, tgt) +print(out.shape) +# torch.Size([20, 32, 512]) +``` + + torch.Size([20, 32, 512]) + + +到此为止,PyTorch的Transformer库我们已经全部实现,相比于官方的版本,手写的这个少了较多的判定语句。 +## 致谢 +本文由台运鹏撰写,本项目成员重新组织和整理。最后,期待您的阅读反馈和star,谢谢。