Transformer——一个sequence-to-sequence的model

今天我们讨论的问题是:输入一个序列,输出一个序列,输出序列的长度由模型自己决定

例如:

seq2seq模型在NLP大语言模型中应用的也很广泛:

但是最好不要所有问题都用seq2seq模型,可以进行专门设计

使用seq2seq的其他场景:

一:文法剖析

二:Multi-label Classification

和Multi class Classification不同,class是指有不同的种类,但是Multi-label Classification是指一个东西可以属于多个种类,这种情况可以用seq2seq硬做

三:object detection

seq2seq架构

下图展示的是encoder所作的事情,这里的block和layer不同,一个block相当于好几个layer所做的事情

但是这里面的transformer中的self-attention不像我们之前讲的那么简单,多了一些residual设计,之后再进行layer normalization,和batch normalization不同,他取同一个特征的所有维度加起来算mean平均值,但是在batch中是取同一个维度的不同feature的数值

总结:block架构

Decoder------Autoregressive

为什么要使用encoder+decoder,要先生成语音特征向量,然后输入完整的语音特征结合人类语料进行上下文预测,而不直接用语音生成文字呢?

具体识别过程:

所以有时decoder会产生错误的输出,但是还是会输出给下一个,会导致一步错步步错呢?

但是这要预测会不会导致第一个字预测结果很差,然后导致一整个句子预测结果都是错的?

关于softmax的作用:

decoder的内部结构:

与encoder相比:

Masked Multi-Head Attention是指什么?每次看哪个内容的输出都看她前面的所有数据,但是不看后面的数据

所以被称为masked self-attention,它的输出是一个一个输出的,一般只考虑左边的东西

但是如果一直这样持续的输出会导致一直输出没有停止的地方,一般我们会输出一个和BEGIN一样的符号作为END

上面我们讲的都是AT模型,还有一种模型是NAT模型,它和AT模型的区别在于AT是一个一个输出,而它是一次性输出

这样引出一个问题,机器是如何知道要输出多长的文字呢?一种是将声音向量输入然后预测输出长度,还有一种是直接给出一个足够长的输出向量,遇到END输出自动结束

这也是self attention带来的改变之一,有了self attention,NAT技术变得热门

NAT的优点有并行时间快,可以控制生产长度,但是它的表现一般没有AT技术好

Encoder和Decoder之间是如何传递信息的呢?

如何训练模型

判断模型训练好坏的效果和分类问题很像:比如一开始我们将机器学习中的"机"用一个向量表示,然后输入BEGIN会预测拥有一系列数值的向量,这个向量会和初始设置的那个向量作cross entropy,最终要努力缩小这个cross entropy

和分类问题很像,相当于每次生成一个文字都做了一次分类问题

但是最终也要产生END的输出,同样做cross entropy

在一开始的时候我们会使用teacher forcing作为我们的输入:也就是用正确答案作为输入

训练seq to seq模型的一些小tips:

1.复制功能,不是所有的自此组合都有意义,也不是所有话都需要机器生成,有时候只需要copy一下:

也可以用这个功能生成摘要

2.Guided Attention

当输入长度太短时,也可能造成部分信息丢失,可以使用**Guided Attention,**该技术对于语音变式和语音合成都相当重要

它的作用就是在机器学习中加入固定的限制

3.Beam Search技术

上一个语音变式我们谈到每次选择分数最高的那个字作为下一个字,但是不是每次都这样选择就可以得到一个最佳路径,同时检索所有路径代价又太大,因此可以使用Beam Search方法:

这个方法有时候有用有时候没用,一般来说只有一个答案的任务使用Beam search效果更好,如果需要创造力效果可能并不好

4.BLEU score

我们训练的时候是生成一个字然后进行对比生成对应的cross entropy,但是这不能直接作为评估指标,一般我们会使用BLEU score作为我们的评估指标,也就是对两个完整的句子进行评分

5.Scheduled Sampling

我们是使用正确的结果进行训练的,这样会产生的一个效果就是测试时出现一个错误的结果模型并不会知道怎么处理,导致一步错步步错,一般的处理方法是在训练的时候页=也加入一些错误的训练资料,参考如下方法:

相关推荐
小李的AI雷达1 小时前
Anthropic发布Claude Duet;AI智能体32分钟分析小鼠脑数据 | 科技日报1022
人工智能
狂师1 小时前
夯爆了!又一款开源企业级一站式AI智能测试平台!(附平台架构、技术选型)
人工智能·测试·全栈
Hommy881 小时前
【直播切片工作台】第16章:统一响应封装
人工智能·直播切片
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】ChatServer 路由规则绑定
网络·c++·人工智能·学习·ai·架构
二川bro1 小时前
AI可编辑PPT产品线技术方案调研与落地思考
人工智能
KKKlucifer1 小时前
数据安全管控平台运营化关键技术:从策略下发到闭环治理
大数据·人工智能·产品运营
我喜欢就喜欢1 小时前
DeepSeek 大模型多场景落地应用指南
人工智能·系统架构
火山引擎和TA的超级拍档们1 小时前
产品情报局 06 | 短剧 Agent:多 Agent 协同,重塑 AI 短剧工业化生产流程
人工智能
可涵不会debug1 小时前
机器人行业的下一道门槛,不是更大模型,而是更短的数据闭环
人工智能·机器人