第112章 《Attention Is All You Need》
第112章 《attention is all you need》科学发展史上有许多篇章,其诞生便宣告著一个旧时代的终结与新时代的开启。
《自然哲学的数学原理》,牛顿。
他奠定了经典力学的基石,让人类第一次以此丈量宇宙。
《论动体的电动力学》,爱因斯坦。
他重塑了人类的时空观,告诉我们时间与空间並非恆定不变。
而2017年的《attentionisallyouneed》中提出的transformer架构,开启了生成式人工智慧(aigc)与大语言模型(llm)的黄金时代。
可谓没有transformer,人工智慧万古如长夜。
在它之前,自然语言处理(nlp)领域长期处於黑暗的摸索期,採用cnn或rnn
的方法。
cnn,即卷积神经网络,好处是计算效率高,可以並行处理,善於捕捉局部特徵。
rnn,即循环神经网络及其变体lstm,好处是天生適应序列数据,能按顺序理解上下文。
但它们的坏处也同样明显。
cnn看不远,它难以捕捉长距离的词语关係。
rnn跑不快,並且必须读完前一个词才能读下一个词,无法並行计算,一旦句子太长,就会出现梯度消失,导致机器阅后即焚,读了后面忘了前面。
总之它们的根本局限在於,信息在序列中必须一步一步地传递。
这种固有的顺序性成为了处理长序列、捕捉全局上下文的瓶颈。
而transformer架构,就是为了解决模型又慢又忘的绝症。
它的原理说复杂,那確实很复杂。
比如多头注意力机制(multi—headattention)、位置编码(positional
encoding)和前馈神经网络(feed—forwardnetworks)。
但它的核心能力,其实也非常简单。
就是字面意思:
翻译。
把人类的语言,翻译成计算机能读懂的数字,然后计算这些数字之间的关係。
它不再像小学生读书那样一个字一个字地读,而是一眼看完整篇文章,然后把注意力(attention)集中在那些最关键的词与词的联繫上。
它和word2vec的关係,是砖块与建筑的关係。
word2vec负责將人类的语言变化为数字砖。
而transformer负责將这些砖块搭建成有意义的摩天大楼。
最终达成的效果,就是可以精確的计算一个长句子中,每个词与其他词之间的关係。
这里面的重点,是:长句子。
对应的解法,是:长距离依赖。
比如下面这句话。
thecatateafishbecauseitwashungry。
翻译:这只猫吃了一条鱼,因为它饿了。
对人类来说,看到“它饿了”这三个字中的它,可以非常轻鬆的知道它指的就是猫。
但对机器来说,这个它指的到底是猫还是鱼,是不明確的。
必须要计算才能得出结果。
而计算的方法,就是transformer中的自注意力机制(self—attention)。
通过计算每个词和其他词之间的关係,就能知道它和谁距离更近。
比如在这里计算出“它”和“猫”离的更近,关注度权重(atttion
weight)更高。
那么机器就知道,这个它指的是猫,而不是鱼。
当然这里面的逻辑计算十分复杂,並非几句话可以说清楚的。
在吴辰疯狂敲击著键盘的时候,閔欣柔也不由自主的看了几眼。
不过很快她就发现自己思考的速度,还跟不上吴辰打字的速度。
一个个矩阵变换公式如流水般从他的指尖下翻涌到了屏幕上。
閔欣柔完全看不懂。
但吴辰写在其中的一段解释,她看懂了。
“只要算力足够,模型就能无限堆叠。只要数据足够,机器就能在数学空间里涌现出智慧。”
“我们不再需要教机器语法。”
“我们只需要让它学会:关注。”
“在这个架构中,序列中任意两个位置之间的距离被缩短为1。”
“无论句子有多长,无论因与果相隔多少个字符,它们都能通过自注意力机制瞬间建立直接连接。”
“我们將不再受限於时间的顺序。”
“我们將同时看到过去、现在与未来。”
閔欣柔觉得自己的心跳漏了一拍。
难道————
这就是真正的人工智慧的钥匙?
沉默片刻后,她轻手轻脚的起身,去厨房泡了一杯咖啡,然后轻轻的放在桌子上。
若是平时吴辰至少会点头示意一下。
但此时他完全没有察觉。
他感觉自己的大脑在以前所未有的速度运转著。
编码器encoder,负责理解人类的输入————完成!
解码器decoder,负责生成回復——.——完成!
自注意力self—attention,负责捕捉字词之间的语义关联——完成!
交叉注意力cross—attention,负责连接输入与输出————完成!
那些曾经刻在他脑海深处的知识,在经过了几个月的沉淀后,终於迎来了绽放。
他完全不需要思考,因为他早已思考过无数遍。
他也不需要停顿,因为他不仅是在编写一篇文章和代码。
他是在復刻未来的文明。
但他也不是在默写。
相比2017年原始的transformer架构,他加入了几年后的一次改进。
他將层归一化(layernormalization)的位置,从残差连接之后(post—
ln),移到了残差连接之前(pre—ln)。
这只是一个微小的改进。
但它却彻底解决了深层网络难以训练的顽疾。
它让梯度的反向传播不再需要复杂繁琐的学习率预热,就能让模型在训练初期保持绝对的稳定。
终於,在他感觉精神力到达极限的时候,论文和代码同时完成了。
吴辰深吸一口气,敲下了最后一行代码。
returnlogits。
文件名:transformer—model.py。
这就是gpt—1的雏形。
他实现了完整的transformer库。
但在构建gpt模型时,吴辰还是果断拋弃了编码器,只保留了纯解码器架构(decoder—only)。
因为即使现在深圳的榛果电子已经在生產专用的计算卡,但性能还是和2025
年差距太大。
所以这样做可以显著减少模型参数量和计算复杂度,但功能却完全够用。
无论如何。
虽然它现在的参数量还很小。
虽然它还像个婴儿一样嗷嗷待哺。
但吴辰知道,那个属於人工智障的时代结束了。
硅基生命,有了它的第一缕神识。
这一刻,在这个2008年的狭小公寓里。
通往通用人工智慧的大门,被他提前九年,暴力踹开了。
叮铃铃。
当他双手离开键盘的剎那,手机的闹钟也响了起来。
吴辰拿过来一看,发现时间竟然已是早上六点,到了他每天起床锻炼的时间了。
与此同时,系统的声音也如期响起。
【恭喜宿主人工智慧等级提升!】
【人工智慧:1级(50%)—>2级(0%)】
