第209章 他怎么跑语音领域来了!(2/2)
天才一秒记住本站地址:[笔趣阁]
https://www.ibqg.vip 最快更新!无广告!
围观的同事有的刚来看到代码,还没有发现这个结构独特的地方。
通常来说,编码器将长度为N的输入编码成为长度为N的向量表示,而解码器则将该向量表示重新解码为长度为M的输出句子,这里N和M的长度可以不同也可以相同。
在编码的过程当中,整个句子是一次性给到的,全文都可以看到。但这个解码过程则是逐词进行生成,已经被生成的词也会作为输入,因此又被叫做自回归。
传统的方法当中,广泛采用了类似的策略,因此大家看到这个编码解码的结构并不意外。
“还是熟悉的风格,对多个层没有做专门的特殊设计,而是采用了完全相同的结构。”
“大道至简嘛,真正最强的方法,都不搞那些花里胡哨的。”
从残差网络开始,孟繁岐发表的重要论文就比较少专门对具体的局部进行专门的设计,而是有一种重剑无锋,大巧不工的力量感。
从思想和设计上直接获胜,不靠微调局部结构反复调整参数。
虽然同样是编码器解码器的结构,但T方法还是非常不同的,它的编码器逐渐衍生出了BERT方法,而解码器则拓展成为了GPT结构,不过那是后话了。
开始阅读孟繁岐代码的同事们,很快就变成了问题达人,看到不大清楚的地方就马上发问。
“这里你为什么使用了这个新的层归一化,而不是去年你发布的批归一化呢?”
“我觉得语言这种数据比较特殊一些,图片我们经常统一整理成相同的分辨率,但是文本这种东西的话,有长有短,我知道一般大家会把后面加0以确保样本长度相同,方便处理。”
“但是这样做的话呢,在批次的这个维度上,归一化很有可能会产生大的波动,尤其是在小批次上。比如一长一短两个文本作为一个批次,你的均值和方差的计算就会非常不稳定。”
孟繁岐的解释通俗易懂,在场的同事基本上都瞬间理解到了重点,毕竟代码就在这里了。
“所以这个层归一化,其实只是针对样本自己的向量特征做了归一化,不管样本长短,大家的特征长度都是固定的。”
“理解了,理解了。”
“妙啊...没想到这么多东西在细节里面。”
有不少人只顾着看那些重大变动的部分,压根就没注意到这里做了什么不同的操作。
“也不只是训练,即便训练的时候没有遭遇问题,但在推理的时候,有人不讲武德,突然拿出一个超长的文本。这样一来,你的模型没有在长文本上算过均值和方差,突然面对比较突兀的输入,也很有可能出现很大的问题。”