文献阅读:Foundation Transformers

FoundationTransformer是DeepNet的延伸,通过优化参数初始化和引入Sub-LN策略,提高了深层Transformer模型的稳定性和泛用性。实验表明,这一架构在NLP任务如语言模型、MLM和翻译,以及Vision、Speech和多模态任务上都表现出色,提供了一种更健壮且效果更优的Transformer框架。

1. 文章简介

这篇工作是DeepNet的一个后续工作,本质上就是deepnet解决了深层transformer的稳定性的情况下,考察其在各类任务下的泛用性。

关于DeepNet的工作,我司已经将其开源了(https://github.com/microsoft/unilm),网上也有不少关于DeepNet的文章解读,我自己也写过一篇拙作(文献阅读:DeepNet: Scaling Transformers to 1,000 Layers)。

本质上来说,DeepNet的工作就是通过优化transformer模型的参数初始化的方式增加模型参数反向传递的稳定性,从而可以达到超多层模型的训练。

模型的参数初始化方式推导其实还是挺繁琐的,不过真到实现上倒还是挺简单的,改改也化不了太多的时间,不过比较苦逼的是我在我们自己的场景下面试了一下,倒是没有看到很好的一个效果,深层的也没train起来,估摸着哪里理解还是有问题吧,不过整体的效果倒是应该没啥怀疑了,而且貌似这玩意也已经被用到了GPT4里面,应该是一个确实有效的策略,后面还是得回去检查检查自己的code……

Anyway,话扯远了,回来说这篇工作吧,除了DeepNet中介绍的参数初始化方式之外,文中还引入了Sub-LN这个简单的策略,从而给出了文中的Foundation Transformer的架构,使得其可以在各类任务的transformer架构当中都获得较好的效果,而在此之前,各类任务当中的主流模型的transformer架构是略有不同的。

在这里插入图片描述

下面,我们就来具体看看这篇工作的细节。

2. 模型结构

下面,我们来看一下文中对于模型结构的细节描述,如前所述,主要就是以下两方面的内容介绍:

  1. Sub-LN
  2. Initialization

下图就是文中的两个技术点的一个整体描述:

在这里插入图片描述

下面,我们来分别对两者进行一下考察。

1. Sub-LN

首先,我们来看一下Sub-LN的内容。

如上图所示,所谓的Sub-LN层,本质上就是对self-attention层以及FFN层的Layer Normalization方式进行一定的优化,不再是在最前侧或者最后侧使用一个Layer Normalization,而是在输入与输出的两个线性层之前均加入一个Layer Normalization。

其具体的函数表达如下:

  1. Self-Attention

    { Q = W Q L N ( x ) K = W K L N ( x ) V = W V L N ( x ) y = x + W O L N ( A t t n ( Q , K , V ) ) \left\{ \begin{aligned} Q &= W^{Q}LN(x) \\ K &= W^{K}LN(x) \\ V &= W^{V}LN(x) \\ y &= x + W^{O}LN(Attn(Q,K,V)) \end{aligned} \right. QKVy=WQLN(x)=W

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值