loading
立即发布信息
·株洲 [切换]
    株洲培训啦 > 株洲热点资讯 > 株洲外语知识 >  王子的新衣英文版

    王子的新衣英文版

    时间:2023-03-28 13:55:22  编辑:同城资讯  来源:资讯   网站投稿
          超链接:      题外话:最近微软发布了Turing-NLG,170亿参数,史上最大的NLG模型。78个Transformer层,4256个隐藏层参数,28个注意力头,使用了1024长度的token序列,训练了3.

    超链接:

    题外话:最近微软发布了Turing-NLG,170亿参数,史上最大的NLG模型。78个Transformer层,4256个隐藏层参数,28个注意力头,使用了1024长度的token序列,训练了30万步,batchsize为512,损失函数为autoregressivegenerationloss。在数据集合WikiText-103,LAMBADAstrict上超越了15亿参数的OpenAIGPT-2和NVIDIAMegatron-LM的83亿参数的模型。又是Transformer...

    进入正题,看看transformer的详细代码实现吧。这篇大作来自于http://nlp.seas.harvard.edu/2018/04/03/attention.html,作者是AlexanderM.Rush;刚从哈佛助理教授转到CornellTech做副教授。他们新team的主页:http://nlp.cornell.edu/people/。

    因为篇幅很大,我计划分3次左右阐述。

    坦白讲,TheAnnotatedTransformer我前后看了不下10遍,鉴于自己能力有限,总感觉每次理解都有所更新,这次想完整的记录一下,怎样根据最拉风的论文,写出最拉风的代码,并且代码优美,回味无穷。全程使用pytorch讲解,如果对这个开源深度学习框架不太熟悉的同学,推荐:周莫烦的pytorch入门视频:https://github.com/MorvanZhou/PyTorch-Tutorial

    该课程短小精悍,大概1-2天可以精心刷完核心的代码。有意思的是,CNN做MNISTdata的分类,RNNfor分类/归回,自编码器,DQN强化学习,对抗生成网络GAN,动态图原理,GPU训练方法,Dropout以及批标准化(batchnormalization)都有所讲解。五星推荐给新人。

    进入正题,先来一张大图:

    图1Transformer的总图(和代码class类名结合的)

    图1是基于原始论文中的transformer的总图,为每个部分标识出了其具体的对应的classname(类名)。为了方便记忆,这里对每个类class进行了编号1到12。

    先看最外边,12classEncoderDecoder,是个总类,这个类包括五个主要部分:

    1.Embeddings和PositionalEncoding(两者通过torch.nn.Sequential来串起来使用):左下角的,是输入序列的wordembeddingpositionalencoding;

    2.Embeddings和PositionalEncoding(两者通过torch.nn.Sequential来串起来使用):右下角的,是输出序列(训练阶段是完整的输出序列mask,测试阶段是到当前位置为止的输出序列mask)

    3.Encoder:左边中央位置,负责管理6层EncoderLayer,以及一个最后的LayerNorm(做带有可训练参数的,批标准化),需要注意的是,原文的LayerNorm,命名有问题,其实不是LayerNorm,因为这个类,并没有被用于接到每个EncoderLayer的后边,而是6层EncoderLayer之后,只接一个LayerNorm,所以称为EncoderNorm或者DecoderNorm(Decoder的部分也类似)更合适,简化期间,可以称为CoderNorm(Coder表示Encoder或者Decoder)。

    4.Decoder:右边中央位置,负责管理6层DecoderLayer,以及一个最后的LayerNorm(带有可训练参数的,批标准化)

    5.Generator:包括一个全连接层和一个softmax层,负责把top-N候选输出序列找出来。

    上代码吧:

    #!pipinstallhttp://download.pytorch.org/whl/cu80/torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl #!pipinstallnumpymatplotlibspacytorchtextseaborn importnumpyasnp importtorch importtorch.nnasnn importtorch.nn.functionalasF importmath,copy,time fromtorch.autogradimportVariable importmatplotlib.pyplotasplt importseaborn seaborn.set_context(context="talk") #seaborn只在最后可视化self-attention的时候用到, #可以先不管或者注释掉这两行 %matplotlibinline#onlyforjupyternotebook

    王子的新衣英文版
    The Annotated Transformer的中文注释版(1)

    免责声明:本站部分内容转载于网络,其中内容仅代表作者个人观点,与本网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。
    本站联系邮箱:599911198#qq.co m