Attention is All You Need,一文速通 Transformer 基本架构!(Tokenization、Embedding、Attention、Feed Forward)

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

目前,流行的大型语言模型训练时的框架为TransformerPytorch,但是,在模型的演变历史当中,采用了各式各样的类神经网络框架。

01 Transformer 运行机制

在这里插入图片描述

在这里插入图片描述

Tokenization:语言模型以token为单位对文字进行切割。
在这里插入图片描述

在这里插入图片描述

Embedding:理解token和语义

在这里插入图片描述

在这里插入图片描述

第一步训练出来的参数转化为第二阶段的初始向量,生成向量参照表

在这里插入图片描述

但是,仅仅拥有向量参照表,没有参考上下文,会无法区分词汇在不同语境下的不同含义,因此,引入人工标注的位置向量

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Attention

在这里插入图片描述

Attention要做的第一件事情,是计算两个token之间的相关性(Attention Weight),如何计算,这里面也含有大量的参数,也是需要学习的,最终,注意向量是所有向量*所有参数的增加。

在这里插入图片描述

在这里插入图片描述

事实上,我们在计算某一个tokenattention weight时,不会去管它右边的token,只会管它这个句子左边的token,这种Attention我们称之为Causal Attention

在这里插入图片描述

还有一种Attention,叫做Multi-head Attention,即有很多个模组,都会计算相关性。

在这里插入图片描述

Feed Forward

得到每一个注意向量,最终采用Feed Forward将所有的注意向量整合起来。关于Feed Forward,这里面同样还有大量的参数和复杂的学习过程。

在这里插入图片描述

以上这些加起来,构成一个Transformer Block,其是Transformer的基本单位,一个Transformer里面,有很多个这样的基本单位。

在这里插入图片描述

Output Layer

在经历了很多个Transformer Block之后,在最后一个Transformer Block里,输出句尾向量,进入到Output Layer层次,里面含有Linear TransformSoftmax,会得到一个几率分布表。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

模型只通过最后一层的最后一个向量计算概率表格,相当于只通过最后一个词汇预测下一个词汇是什么,这听起来非常的荒谬,但是,模型中间经过那么多层向量矩阵的运算,目的就是让这最后一个向量包含远超单个词汇本身的信息,也就是将上下文信息包络进来。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

02 语言模型如何产生答案

文字接龙游戏

在这里插入图片描述

在这里插入图片描述

输入超长的文字,对模型来说是困难的挑战,模型计算Attention Weight的次数随用户输入文本长度的增加而指数级增加,因此需要耗费大量的算力。

在这里插入图片描述

一些研究方向

在这里插入图片描述

03 Transformer 能做什么?

Sequence-to-sequence (Seq2Seq), Input a sequence, output a sequence. And the output length is determined by model.

在这里插入图片描述

Transformer能做语音识别、机器翻译、语音翻译等等。

04 一些训练资料

Seq2Seq for Chat

在这里插入图片描述

Question Answering (QA)

在这里插入图片描述

QA can be done by seq2seq

在这里插入图片描述

但是,什么问题都用Seq2Seq,不一定会得到优秀的特制化模型,还是要针对性地提供训练材料。

③ 文法剖析

在这里插入图片描述

Seq2seq for Multi-label Classification 多标签分类

在这里插入图片描述

Seq2seq for Object Detection 目标检测

在这里插入图片描述

05 Encoder And Decoder

在这里插入图片描述

在这里插入图片描述

Masked什么意思?

在这里插入图片描述

在这里插入图片描述

事实上,a1a2a3a4是先后顺序产生的,在利用a2的时候,无法考虑a3a4,因为这俩还没有产生。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Cross Attention

在这里插入图片描述

Listen, attend and spell: A neural network for large vocabulary conversational speech recognition.

为什么decoder一定要利用encoder最后的输出呢?

在这里插入图片描述

当然可以不,你可以自己做研究,尝试decoderencoder中间的输出,这也是一个好的研究方向呢!

在这里插入图片描述

06 Encoder

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

为什么encoder要这样设计呢?

当然可以别样设计,只要效果有所进步,我们可以不断尝试新的架构,新的方案。

07 Decoder

Speech Recognition as example 自回归

先想好token的单位是什么,decoder输出的向量长度是跟你穷举 的单位数量长度是一样的,分数最高的单位作为输出,当自己的输出当作自己的输入,如此反复迭代。

在这里插入图片描述

在这里插入图片描述

我们如何才能让Decoder停下来呢,需要引入一个“断”这个符号,也就是ENDEND的几率在最后的哪个向量里几率是最大的。

08 Decoder-Non-Autoregressive(NAT) 非自回归

AT v.s.NAT

在这里插入图片描述

How to decide the output length for NAT decoder?

  • Another predictor for output length
  • Output a very long sequence, ignore tokens after END

Advantage: parallel, controllable output length

NAT is usually worse than AT(why?Multi-modality 多模态)

09 Training

在这里插入图片描述

在这里插入图片描述

cross-entropy 交叉熵

exposure bias 曝光偏差

ground truth 地面实况

Teacher Forcing: using the ground truth as input.

在这里插入图片描述

大模型在训练的时候看的是正确答案,那么在测试时,没有正确答案,可能会造成一步错步步错。如何解决呢,我们可以在训练的时候看一些错误答案,它在测试时可能会表现更好,这个招数叫做 Scheduled Sampling.

在这里插入图片描述

在这里插入图片描述

10 Tips

① Chat-bot

在这里插入图片描述

② Summarization

在这里插入图片描述

我们可以通过训练大量的文章,获取模型复述句子或词组的能力,从而帮助我们有效回答和撰写摘要。

在这里插入图片描述

③ Guided Attention

TTS as example

In some tasks, input and output are monotonically aligned 单调对齐. For example, speech recognition,TTS,etc.

在这里插入图片描述

④ Beam Search

束搜索:一种启发式搜索算法,通过扩展有限集合中最有前途的节点来探索图形。

Assume here are only two tokens.(V = 2)

在这里插入图片描述

在这里插入图片描述

The red path is Greedy Decoding. 贪婪的解码

局部最优解和全局最优解之间的博弈。

在这里插入图片描述

The green path is the best one.

也有人说,Beam Search 是很烂的东西,其可能会输出重复的话,此时,需要加入随机性的因素,找出所谓的全局最优解。

在这里插入图片描述

Randomness is needed for decoder when generating sequence in some tasks (e.g. , sentence completion, TTS)

Accept that nothing is perfect. True beauty lies in the cracks of imperfection.

⑤ Optimizing Evaluation Metrics 评测指标?

在这里插入图片描述

Lose 就是 Blue Score 加一个负号,When you don’t know how to optimize, just use reinforcement learning (RL) !

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值