神经网络与深度学习 课件 第9章-注意力机制与Transformer_第1页
神经网络与深度学习 课件 第9章-注意力机制与Transformer_第2页
神经网络与深度学习 课件 第9章-注意力机制与Transformer_第3页
神经网络与深度学习 课件 第9章-注意力机制与Transformer_第4页
神经网络与深度学习 课件 第9章-注意力机制与Transformer_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

神经网络与深度学习第9章注意力机制与Transformer9.1深度学习中的注意力机制9.1.1注意力9.1.2序列到序列模型9.1.3Bahdanau注意力机制9.1.4通用注意力机制9.2利用带注意力的序列到序列模型实现机器翻译9.3Transformer9.3.1自注意力机制9.3.2多头注意力机制9.3.3位置编码9.3.4Transformer的结构9.4利用Transformer实现单词预测9.5视觉Transformer9.1注意力机制注意力心理学认为,注意力是指人的心理活动指向和集中于某种事物的能力,具体而言,就是大脑选择信息、放大信息、引导信息并深化信息处理的能力。为什么需要这种能力呢?因为注意力解决了一个非常关键的问题:信息饱和,资源有限。9.1注意力机制序列到序列(Seq2Seq)模型传统的序列到序列一般采用编码器-解码器架构。解码器decoder

编码器encoder

RNNx0您h0h1RNNx1是h2

RNNx2一个h3

RNNx3好人h5

RNNx5EOSz

RNNx4。h4

RNNy0youRNNy1areRNNy2aRNNy3goodRNNy5.

RNNy4personRNNy6EOS

y0y1

y2

y4

y3

y5

s0s1

s2

s4

s3

s5

编码器和解码器实际上都是堆叠的循环神经网络层,例如长短期记忆网络或者门控循环单元网络。编码器处理输入x,并从所有输入时间步长生成一个中间压缩表示,也称为上下文向量,记为z。另一方面,解码器接收z并生成输出序列y。9.1注意力机制序列到序列(Seq2Seq)模型瓶颈问题当序列较长时,由于梯度消失的原因,中间表示z无法对所有输入时间步长的信息进行编码,尤其是距离较远、但又比较重要的时间步信息。解码器decoder

编码器encoder

RNNx0您h0h1RNNx1是h2

RNNx2一个h3

RNNx3好人h5

RNNx5EOSz

RNNx4。h4

RNNy0youRNNy1areRNNy2aRNNy3goodRNNy5.

RNNy4personRNNy6EOS

y0y1

y2

y4

y3

y5

s0s1

s2

s4

s3

s5

9.1注意力机制

9.1注意力机制

9.1注意力机制

9.1注意力机制

9.1注意力机制

9.1注意力机制

9.1注意力机制通用注意力机制(generalattentionmechanism)他是一个网球球手

9.2利用带注意力的Seq2seq模型实现机器翻译中文分词汉语等东亚语系在词与词之间没有任何空格之类的显式标志,需要将词从句子中分开。词嵌入(wordembedding)把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射成实数域上的一个向量,称为词向量(wordvector)。9.2利用带注意力的Seq2seq模型实现机器翻译编码器classEncoderRNN(nn.Module):

def__init__(self,input_size,hidden_size):super(EncoderRNN,self).__init__()

self.hidden_size=hidden_size

self.embedding=nn.Embedding(input_size,hidden_size)#词嵌入

self.lstm=nn.LSTM(hidden_size,hidden_size)#定义LSTM

defforward(self,input,hidden,cell):embedded=self.embedding(input).view(1,1,-1)output=embeddedoutput,(hidden,cell)=self.lstm(output)

returnoutput,(hidden,cell)

definitHidden(self):

returntorch.zeros(1,1,self.hidden_size,device=device)9.2利用带注意力的Seq2seq模型实现机器翻译解码器classAttnDecoderRNN(nn.Module):

def__init__(self,hidden_size,output_size,dropout_p=0.1,max_length=MAX_LENGTH):super(AttnDecoderRNN,self).__init__()

self.hidden_size=hidden_size

self.output_size=output_size

self.dropout_p=dropout_p

self.max_length=max_length

self.embedding=nn.Embedding(self.output_size,self.hidden_size)

self.attn=nn.Linear(self.hidden_size*2,self.max_length)

self.attn_combine=nn.Linear(self.hidden_size*2,self.hidden_size)

self.dropout=nn.Dropout(self.dropout_p)

self.lstm=nn.LSTM(self.hidden_size,self.hidden_size)

self.out=nn.Linear(self.hidden_size,self.output_size)

9.2利用带注意力的Seq2seq模型实现机器翻译解码器

defforward(self,input,hidden,cell,encoder_outputs):embedded=self.embedding(input).view(1,1,-1)embedded=self.dropout(embedded)

attn_weights=F.softmax(

self.attn(torch.cat((embedded[0],hidden[0]),1)),dim=1)attn_applied=torch.bmm(attn_weights.unsqueeze(0),encoder_outputs.unsqueeze(0))

output=torch.cat((embedded[0],attn_applied[0]),1)output=self.attn_combine(output).unsqueeze(0)

output=F.relu(output)output,(hidden,cell)=self.lstm(output,(hidden,cell))

output=F.log_softmax(self.out(output[0]),dim=1)

returnoutput,(hidden,cell),attn_weights

definitHidden(self):

returntorch.zeros(1,1,self.hidden_size,device=device)9.3TransformerTransformer是由维斯瓦尼(AshishVaswani)等人2017年在论文AttentionIsAllYouNeed中提出的一种新的编码器-解码器架构。与循环神经网络类似,Transformer最初被设计用于处理像自然语言等序列化数据,执行文本摘要、机器翻译等任务。与循环神经网络不同的是,Transformer一次处理整个输入。9.3Transformer

他喜欢足球

词嵌入

原始输入序列

词向量输入

9.3Transformer

他喜欢足球

词嵌入

原始输入序列

词向量输入

9.3Transformer多头注意力机制不同的注意力模块有助于获得不同特征空间上的表示,因此Transformer采用多个平行的自注意力模块,以获得不同表示子空间的特征表示

…………

9.3Transformer

9.3Transformer结构编码器-解码器架构编码组件由多个堆叠的编码器组成。解码组件由相同数量的解码器堆叠而成。输入和输出序列嵌入表示在加入各自的位置编码后,被分别传入编码组件和解码组件。最后一层编码器的输出被转化为注意力机制的键和值向量𝐾和𝑉,并传递给所有解码器。

解码组件编码组件

编码器编码器编码器编码器解码器解码器解码器解码器他

喜欢

足球Helikesthefootball输出输入9.3Transformer结构编码器编码组件中的所有编码器拥有相同的结构。每个编码器由两个子层组成,分别是自注意力子层和位置对应的前馈网络(positionwisefeed-forwardnetwork)子层.每个子层采用了残差连接,并且每个子层进行了层规范化。他

喜欢

足球输入+词嵌入位置编码

多头自注意力

前馈网络

前馈网络

前馈网络

9.3Transformer结构解码器解码组件中包含和编码器相同数量的解码器。每个解码器由3个子层构成掩蔽多头注意力子层编码器-解码器多头注意力子层位置对应的前馈网络子层每个子层也都采用的残差连接和层规范化操作。Helikesthefootball逐个来自于输出+词嵌入位置编码

编码器-解码器多头自注意力

前馈网络

前馈网络

前馈网络

掩蔽多头自注意力

。中间其他解码器最后一个解码器

log+softmax

来自编码器Helikesthefootball并反馈至输入逐元素生成9.3Transformer结构解码器编码器-解码器自注意力层的查询来自于掩蔽自注意力层的输出,但是键和值矩阵来自于编码组件的输出,这有助于解码器专注于输入序列中的适当位置。全连接子层和编码器的类似。Helikesthefootball逐个来自于输出+词嵌入位置编码

编码器-解码器多头自注意力

前馈网络

前馈网络

前馈网络

掩蔽多头自注意力

。中间其他解码器最后一个解码器

log+softmax

来自编码器Helikesthefootball并反馈至输入逐元素生成9.4利用Transformer实现单词预测利用PyTorch框架提供的包nn.Transformer和torchtext,预测某给定的单词(或单词序列)在一个已知单词序列后出现的可能性,并以概率值的形式给出。数据集WikiText(TheWikiTextLongTermDependencyLanguageModelingDataset)包含1亿个英文词汇,这些词汇是从维基百科的优质文章和标杆文章中提取得到,包括WikiText-2和WikiText-103两个版本。WikiText2是Wikitext-103的子集,主要用于测试小型数据集的语言模型训练效果,包含600篇短文,208万左右的词汇,33278个不重复的词汇。9.5视觉TransformerAnImageisWorth16x16Words:TransformersforImageRecognitionatScale图像分块嵌入(patchembedding)分块与位置嵌入*外部可学习类别[CLS]嵌入0*1

2

3

4

5

6

7

8

9

块展平的线性映射9.5视觉TransformerViT模型结构分块与位置嵌入*类别[CLS]嵌入0*1

2

3

4

5

6

7

8

9

块展平的线性映射Transformer编码器MLP头类别:月季梅花牡丹…块嵌入多头注意力9.6大语言模型

9.6大语言模型大语言模型简介Transformer模型为更大规模的语言模型提供了可扩展的架构基础。当基于Transformer的模型参数量突破10亿级别时,模型展现出传统小模型不具备的涌现能力(emergentabilities)——这种规模效应推动了大语言模型(largelanguagemodel,LLM)的诞生。神经网络与深度学习309.6大语言模型大语言模型简介涌现出了众多大语言模型OpenAI的GPT系列、Google的PaLM等、深度求索(DeepSeek)的DeepSeek-R1、百度的文心大模型和阿里巴巴的通义千问等等。国产模型不仅具备与国际先进水平相当的能力,还在中文理解、本土知识融合等方面展现出独特优势。神经网络与深度学习319.6大语言模型大语言模型的定义大语言模型是基于深度学习架构构建的、参数量级达到或超过10亿的统计语言模型,这类模型通过自监督学习范式,在超大规模文本语料(通常≥1TB)上进行训练。核心架构普遍采用Transformer网络结构。大语言模型拥有三个显著的特征:规模驱动的能力涌现、基于上下文的任务泛化和人机交互的语义对齐。神经网络与深度学习329.6大语言模型大语言模型的定义大语言模型的标度率(scalinglaw)当模型参数量突破10亿级别(如GPT-3的1750亿参数)并配合TB级数据训练时,会出现传统小模型不具备的涌现能力。这种性能提升与模型规模、数据量和计算量遵循幂律关系,这被称为大语言模型的标度率(scalinglaw)。具体表现为在如数学推理、多语言翻译等未专门训练的任务上,模型突然展现出接近人类水平的性能。神经网络与深度学习339.6大语言模型大语言模型的定义大语言模型通过提示工程(promptengineering)通过提示工程,LLM实现了前所未有的任务泛化能力。与传统模型需要针对每个任务重新训练不同,大模型仅需调整输入文本的提示词(prompt),就能灵活切换问答、摘要、翻译等不同功能。这种特性源于训练过程中对海量异构数据的学习,使模型构建了覆盖语法、逻辑、领域知识的通用表征。神经网络与深度学习349.6大语言模型大语言模型的定义人类反馈强化学习(reinforcementlearningfromhumanfeedback,RLHF)大语言模型还通过人类反馈强化学习(reinforcementlearningfromhumanfeedback,RLHF)实现了行为模式的优化对齐。该技术让模型不仅能理解字面语义,还能捕捉人类偏好和伦理准则。神经网络与深度学习359.6大语言模型大语言模型的预训练和微调大语言模型采用预训练(pre-training)-微调(fine-tuning)的范式预训练在大规模文本数据上,通过自监督学习——如掩码语言建模(maskedlanguagemodeling,MLM)或自回归预测(autoregressivemodeling)——训练模型,构建通用表征空间,使其学习通用的语言理解和生成能力。微调在预训练模型的基础上,用特定领域或任务的标注数据集,通过监督学习进行二次训练,实现任务特定空间的适应性映射,从而使其更适配特定需求。神经网络与深度学习369.6大语言模型基于HuggingFaceTransformers的应用开发HuggingFaceHuggingFace是一个开源社区驱动的人工智能平台,在大语言模型和自然语言处理领域占据着举足轻重的地位。HuggingFace提供了一整套完善的工具链Transformers库ModelHub模型仓库Datasets数据集库InferenceAPI神经网络与深度学习379.6大语言模型使用DistilBERT实现情感分析使用蒸馏版BERT(DistilBERT)实现情感分析。通过知识蒸馏技术,DistilBERT将BERT模型压缩40%,在保持90%以上准确率的同时大幅降低计算开销。本案例通过使用Pipeline,仅需很少代码即可完成模型加载和预测,CPU环境下单次推理需约400ms。神经网络与深度学习38#导入pipelinefromtransformersimportpipeline

#加载大模型classifier=pipeline("text-classification",#task,指定任务类型,如:#"text-classification"(文本分类)#"question-answering"(问答)#"te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论