Transformer 架构(transformer architecture)
/ trans-FOR-mer AR-ki-tek-cher /
Transformer 是当今语言模型背后的标准蓝图,也支撑着现代图像、音频与代码建模的大部分。它在 2017 年下的核心赌注,在当时颇为激进:抛掉早期序列模型所依赖的逐步递归,整套东西都用注意力加上简单的前馈层搭建。由于注意力让每个位置可以同时看见其他每个位置,Transformer 在训练时能并行处理整段序列,而非一次一个词。
Transformer 是一摞几乎相同的层堆起来的,每一层都含两大部件:一个注意力子层,让各词元相互交换信息;一个前馈子层,单独处理每个词元。每个部件周围还守着两位可靠的帮手——残差连接,把该层的输入加回它的输出;层归一化,让数值保持安分。词元以向量身份进入,先获得位置编码以免丢失顺序,再沿着这摞层往上走,每一层都把表示再精炼一点。
Transformer 之所以胜出,是因为它扩展得很从容:多堆几层、把它们加宽、再喂更多数据,它就以相当可预测的方式持续变好。这种可扩展性——而非什么关于语言的精巧新理论——才是真正的故事。另一面则发人深省:标准注意力的代价随序列长度平方增长,模型庞大、训练与运行都耗电惊人,而擅长预测文字,并不等于正确或可信。Transformer 是一台出色的模式引擎,而非一个知道事实的人。
GPT 式的聊天模型、BERT 式的文本编码器,乃至一些图像和蛋白质模型,全都是 Transformer。它们的主要差别在于保留了原始设计的哪一半——用解码器堆来生成,用编码器堆来理解——而非底层机制本身。
一套架构,多副面孔——编码器、解码器,或两者兼有。
Transformer 的成功,在很大程度上是一个关于规模与并行硬件的故事,而非关于语言如何运作的发现。它里面没有语法、没有事实、也没有推理规则——只有被调来预测模式的权重。更大、更流畅,并不等于更正确。