transformer为何如此强大?

时间:2024-03-16 09:02:33

transformer的结构,重点是self attention,通过qkv三个变量,建模事物内部,或者事物之间的相关性。

总体看,transformer的结构不算特别奇特,attention的用法也比较常见,也是借鉴了之前的技术。但它具有划时代的意义。

一般来说,任何事物,只要你能把它token化,你就可以用transformer进行建模,这是它强大的一个原因。k和v是同一种事物的抽象表示,q是同一种或不同种的抽象表示,通过qk的相关性计算(attention score),得到v中真正核心有用的内容。

你可以理解为,v是你的本体,k是影分身,q是敌方忍者。我们先用影分身k去试探q,得到经验(attention)后,为v在战斗中所用。

transformer理论上能建模无限长序列,不像lstm或rnn(不能建模长序列,容易遗忘性),而且能够并行计算(lstm是有时序依赖的,不能并行计算),这是它强大的第二个原因。

transformer的mask机制,能挑选控制attention的位置和方向,从而进行效果或性能的优化,这是它强大的第三个原因。

transformer本身具有encoder和decoder机制,其实它是天然的vae结构或gan风格,这是它强大的第四个原因。

但它不是没缺点的,随着sequence length越来越大,计算量和存储量剧增,这也是优化热点和难点(需要既保证效果,有提升速度)。另外,如何pretrain和finetune,使得transformer具有外推性(用短的样本去训练,无脑去处理长的样本),也是一个优化难点。