【3Blue1Brown熟肉】注意力机制可视化_哔哩哔哩_bilibili
3Blue1Brown刚出了Transformer的系列科普视频,做得很好。之前看过不少讲Transformer的课程和文章,包括李宏毅老师的课程在内,最后都陷在矩阵运算的过程里,几乎没有能把K、Q、V三个矩阵的象征意义讲清楚的。3Blue1Brown通过自己最擅长的动画和类比,把这套Attention的原理讲得比较浅显和直白。具体来说,“Attention像是问每个vector一连串问题,然后根据这串问题的答案来更新自己。”Query矩阵就像是在问:"AreyouinEnglish?",“Areyouanoun?”,"Doyourefertoaperson?","Areyouanumber?","Isyourtonepositive?"等等,Key矩阵就像是vector对这个问题的答案,而Value矩阵则代表向量自己根据这个答案和相关性权重进行的自我调整。整个过程有点像是物理中的受力分析,每个AttentionHead代表一种力,通过Q和K找到所有施力的对象,再通过V来计算受力的大小,最后,把多个AttentionHead代表的多个力进行加总,计算出合力的方向和大小,作用在最后一个Vector上,从而指向nextembedding。之所以叫transformer,就是指各个不同的力汇总在一起,将原本的vector扭曲到了一个新的方向上。相比之前的RNN、LSTM之类的模型,Transformer的强大在于其支持并发计算。细想之下,这种并行的自注意机制颠覆了语言中的时间观,顺序不再重要。这让我想起《你一生的故事》/《降临》里七肢桶的语言-把完整的生命在眼前一下子同时铺开,没有先后,没有早晚,没有时间。类似的,Sora中的所谓spacetimepatches,索性把空间也和时间打包在一起,颇像是爱因斯坦相对论里对“时空”的理解。或许,所谓的时间、空间,其实都是伪概念,只不过是tokens/patches的一种分布方式而已。还挺有趣的。