标签:top 相对 注册 应用 理解 利用 挑战 之间 weather
1
预训练模型助力NLP
自然语言处理(NLP),目的是使得计算机具备人类的听、说、读、写、译、问、答、搜索、摘要、对话和聊天等能力,并可利用知识和常识进行推理和决策,并支持客服、诊断、法律、教学等场景。自然语言理解,被认为是AI皇冠上的明珠。一旦有突破,则会大幅度推动AI在很多重要场景落地。
过去这五年,对自然语言是一个难忘的五年,它的一个标志就是神经网络全面引入到了自然语言理解。从大规模的语言数据到强有力的算力,加上深度学习,把整个自然语言带到一个新的阶段。
今天我要讲的预训练模型,它使自然语言处理由原来的手工调参、依靠ML专家的阶段,进入到可以大规模、可复制的大工业施展的阶段,令我们这个领域的人感到非常振奋。而且预训练模型从单语言、扩展到多语言、多模态任务。一路锐气正盛,所向披靡。
那么,预训练模型到底是什么,它是怎么应用在很多产品里,未来又有哪些发展机会和挑战呢。下面试图由浅入深地给大家介绍一下。
2
预训练模型
下面简要介绍预训练模型的基础技术,包括Transformer、自监督学习、微调。然后详细介绍预训练模型在语言、图像、文档和视频等任务中的进展,
预训练通过自监督学习从大规模数据中获得与具体任务无关的预训练模型。体现某一个词在一个特定上下文中的语义表征。第二个步骤是微调,针对具体的任务修正网络。训练数据可以是文本、文本-图像对、文本-视频对。预训练模型的训练方法可使用自监督学习技术(如自回归的语言模型和自编码技术)。可训练单语言、多语言和多模态的模型。此类模型可经过微调之后,用于支持分类、序列标记、结构预测和序列生成等各项技术,并构建文摘、机器翻译、图片检索、视频注释等应用。
为什么我们要做预训练模型?原因如下:
首先,预训练模型是一种迁移学习的应用,利用几乎无限的文本,学习输入句子的每一个成员的上下文相关的表示,它隐式地学习到了通用的语法语义知识。
第二,它可以将从开放领域学到的知识迁移到下游任务,以改善低资源任务,对低资源语言处理也非常有利。
第三,预训练模型在几乎所有 NLP 任务中都取得了目前最佳的成果。
最后,这个预训练模型+微调机制具备很好的可扩展性,在支持一个新任务时,只需要利用该任务的标注数据进行微调即可,一般工程师就可以实现。
下面介绍预训练模型的三个关键技术。
1、Transformer
它在NLP各个任务中都取得了优异的性能,它是预训练语言模型的核心网络。给定一句话或是一个段落作为输入,首先将输入序列中各个词转换为其对应的词向量,同时加上每一个词的位置向量,体现词在序列的位置。然后将这些词向量输入到多层Transformer网络中,通过自注意力(self-attention)机制来学习词与词之间的关系,编码其上下文信息;再通过一个前馈网络经过非线性变化,输出综合了上下文特征的各个词的向量表示。
每一层Transformer网络主要由Multi-head self-attention层(多头自注意力机制)和前馈网络层两个子层构成。Multi-head self-attention会并行地执行多个不同参数的self-attention,并将各个self-attention的结果拼接作为后续网络的输入,self-attention机制会在后面中做详细介绍。此后,我们得到了蕴含当前上下文信息的各个词的表示,然后网络会将其输入到前馈网络层以计算非线性层次的特征。
在每一层Transformer网络中,会将残差连接(residual connection)把自注意力机制前或者前馈神经网络之前的向量引入进来,以增强自注意力机制或者前馈网络的输出结果向量。并且还做一个layer normalization,也就是通过归一化把同层的各个节点的多维向量映射到一个区间里面,这样各层节点的向量在一个区间里面。这两个操作加入在每个子层后,可更加平滑地训练深层次网络。
Transformer可以用于编码,也可以用于解码。所谓解码就是根据一个句子的输入得到一个预想的结果,比如机器翻译(输入源语言句子,输出目标语言句子),或者阅读理解(输入文档和问题,输出答案)。解码时,已经解码出来的词要做一个自注意力机制,之后和编码得到的隐状态的序列再做一个注意力机制。这样可以做N层。然后通过一个线性层映射到词表的大小的一个向量。每个向量代表一个词表词的输出可能性,经过一个Softmax层得到每个词的输出概率。
接下来详细介绍self-attention机制,以一个head作为示例。假定当前输入包含三个词,给定其输入词向量或是其上一层Transformer网络的输出,将其通过三组线性变换,转换得到三组queries、keys 和 values向量。query和key向量用来计算两两词之间的得分,也就是其依赖关系,这个得分会同其对应的value向量做加权和,以得到每个词综合上下文信息的表示。
给定当前第一个词的query向量,其首先同各个词的key向量通过点积操作得到这两个词的得分,这些得分用来表示这两个词的依赖或是相关程度。这些得分之后会根据query等向量的维度做一定比例的缩放,并将这些得分通过softmax操作做归一化。
之后,各个得分会同其相对应的value向量相乘得到针对第一个词加权的各个value向量,这些加权的value向量最终相加以得到当前第一个词的上下文表示。
在得到第一个词的上下文表示后,给定第二个词的query向量,我们会重复之前的操作,计算当前query向量同各个词key向量的得分,对这些得分做Softmax归一化处理,并将这些得分同其对应的value向量做加权和,以得到其编码上下文信息的表示。
下面是一个最简化的例子以便简单说明自注意力机制。为了简单起见,这里假设Q、K和V的变化都不起作用,也就是不变。
输入是The weather is nice today。利用自注意力机制调整每个词的表示。比如The。我们认为它要受到其他所有词的影响。但是影响力可大可小。那么每个词的影响力是通过计算the 与每个词的关联度,然后通过一个softmax归一化得到一个权值。每个词一个权值。这样the的最后表示就是和每个词计算关联度的结果之和。
多头注意力机制就是对一个节点,可以设置几组K、Q和V,分别计算关联度(通过Q和K计算点积)和加权调整的值(通过V和关联度计算)。几组结果可以拼在一起,通过一个线性变换,体现多角度的特征抽取。多头可以是16个头、12个头等。
2、自监督学习
在预训练的模型中,AR(自回归)LM 和 AE(自动编码器)是最常用的自监督学习方法,其中,自回归LM 旨在利用前面的词序列预测下个词的出现概率(语言模型)。自动编码器旨在对损坏的输入句子,比如遮掩了句子某个词、或者打乱了词序等,重建原始数据。通过这些自监督学习手段来学习单词的上下文相关表示。
3、微调
在做具体任务时,微调旨在利用其标注样本对预训练网络的参数进行调整。以我们使用基于BERT(一种流行的预训练模型)为例来判断两个句子是否语义相同。输入是两个句子,经过BERT得到每个句子的对应编码表示,我们可以简单地用预训练模型的第一个隐节点预测分类标记判断两个句子是同义句子的概率,同时需要额外加一个线性层和softmax计算得到分类标签的分布。
预测损失可以反传给 BERT再对网络进行微调。当然也可以针对具体任务设计一个新网络,把预训练的结果作为其输入。
下面介绍预训练模型的历史沿革。
预训练模型的发展虽然这几年才大热,但是我觉得源于早期的词嵌入(word embedding)的工作。比如Word2Vec。它的训练的结果是词的嵌入,是一个静态的表示;此后ULMFiT 是第一个使用RNN基于LM训练的上下文相关的预训练模型;CoVe利用翻译任务来训练编码器-解码器,并使用编码器作为预训练模型;ELMo 使用双向 LSTM合并两个方向的隐状态获得上下文相关表示;GPT采用LM进行训练,它是基于Transformer的单向预训练模型;BERT是基于Transformer的基于掩码的预训练模型;MT-DNN基于BERT增加了一些任务进行多任务训练;MASS使用编码-解码器来训练预训练模型;UNILM尝试同时支持语言理解和生成任务。
把预训练模型用于多语言任务:XLM是一种支持多语言的BERT模型;Unicoder引入若干新的任务改进了 XLM;T5把多种自然语言任务(比如机器翻译、问答),用了更大的数据,在一个网络训练,同时支持这些任务;BART是一种编码-解码器模型,通过还原损坏的句子训练;mBART将 BART理念扩展到多语言。另外还有最新的很多模型恕我这里没有全部列出。此外也扩展到多模态。
这是一个更加详细的总结。名称、用途、架构、特点,这里就不详细说明了。
总体来讲,预训练模型发展趋势:
第一,模型越来越大。比如Transformer的层数变化,从12层的Base模型到24层的Large模型。导致模型的参数越来越大,比如GPT 110 M,到GPT-2是1.5 Billion,图灵是17 Billion,而GPT-3达到了惊人的175 Billion。一般而言模型大了,其能力也会越来越强。但是训练代价确实非常大。
第二,预训练方法也在不断增加,从自回归LM,到自动编码的各种方法,以及各种多任务训练等。
第三,还有从语言、多语言到多模态不断演进。
最后就是模型压缩,使之能在实际应用中经济的使用,比如在手机端。这就涉及到知识蒸馏和teacher-student models,把大模型作为teacher,让一个小模型作为student来学习,接近大模型的能力,但是模型的参数减少很多。
预训练模型举例说明:
BERT
这里用BERT举例说明预训练模型训练方法。基于Transformer。其基本模型为 12 层模型,还有一个大型模型为 24 层模型。这里说明几个关键地方。
道翰天琼认知智能未来机器人接口API简介介绍
?认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和自然语言信息的深度理解为突破口,以跨学科理论体系为指导,从而形成的新一代理论、技术及应用系统的技术科学。 认知智能的核心研究范畴包括:1.宇宙、信息、大脑三者关系;2.人类大脑结构、功能、机制;3.哲学体系、文科体系、理科体系;4.认知融通、智慧融通、双脑(人脑和电脑)融通等核心体系。 认知智能四步走:1.认知宇宙世界。支撑理论体系有三体(宇宙、信息、大脑)论、易道论、存在论、本体论、认知论、融智学、HNC 等理论体系;2.清楚人脑结构、功能、机制。支撑学科有脑科学、心理学、逻辑学、情感学、生物学、化学等学科。3.清楚信息内涵规律规则。支撑学科有符号学、语言学、认知语言学、形式语言学等学科。4.系统落地能力。支撑学科有计算机科学、数学等学科。
认知智能CI机器人是杭州道翰天琼智能科技有限公司旗下产品。认知智能机器人是依托道翰天琼10年研发的认知智能CI体系为核心而打造的认知智能机器人大脑,是全球第一个认知智能机器人大脑。具有突破性,创新性,领航性。是新一代智能认知智能的最好的产品支撑。 认知智能机器人技术体系更加先进,更加智能,是新一代智能,认知智能领域世界范围内唯一的认知智能机器人。 认知智能机器人是新时代的产物,是新一代智能认知智能的产物。代表了新一代智能认知智能最核心的优势。和人工智能机器人大脑相比,优势非常明显。智能度高,客户粘性大,客户满意度高,易于推广和传播等核心特点。 依托认知智能机器人平台提供的机器人大脑服务,可以赋能各个行业,各个领域的智能设备,各类需要人机互动的领域等。认知智能机器人平台网址:www.weilaitec.com,www.citec.top。欢迎注册使用,走进更智能机器人世界。
认知智能和人工智能的优劣势对比主要可以分为四大方面: 第一:时代发展不同。人工智能是智能时代发展的第二个阶段,认知智能是智能时代发展的第三个阶段。时代发展上决定了认知智能更显具有时代领先性。 第二:基础理论体系不同。人工智能的基础理论体系以数学为基础,以统计概率体系为基础。认知智能基础理论体系以交叉许可理论体系为基础。包含古今中外哲学体系,心理学体系,逻辑学体系,语言学体系,符号学体系,数学体系等学科。其基础理论体系更加具有创新性,突破性和领先性。且交叉学科理论体系的研究也是未来智能发展的大方向。其具体理论体系,还包含三体论(宇宙,信息,大脑三者关系),融智学,和HNC等。 第三:技术体系不同。人工智能的核心技术体系主要是算法,机器学习,深度学习,知识图谱等。其主要功用在感知智能。感知智能其核心主要是在模仿人类的感知能力。认知智能的核心技术体系是以交叉学科理论体系而衍生出来的。具体包含三大核心技术体系,认知维度,类脑模型和万维图谱。认知智能的技术体系核心以类脑的认知体系为基础。以全方位模仿类脑能力为目标。人工智能以感知智能为基础的体系,只能作为认知智能中的类脑模型技术体系中的感知层技术体系。类脑模型大致包含,感知层,记忆层,学习层,理解层,认知层,逻辑层,情感层,沟通层,意识层等9大核心技术层。因此人工智能的核心只是作为认知智能类脑模型中的感知层。因此在技术体系上,人工智能和认知智能基本上没有太多的可比性。 第四:智能度成本等方面的不同:人工智能产品的综合智能程度,普遍在2-3岁左右的智力水平。认知智能产品其智能程度大致在5-8岁左右。认知智能体系构建的机器人更加智能。且更省时间,更省人力和资金。优势非常多。具体请看下列的逐项对比。
标签:top 相对 注册 应用 理解 利用 挑战 之间 weather
原文地址:https://blog.51cto.com/14864650/2532378