博舍

自然语言处理 Paddle NLP 自然语言处理 专业课

自然语言处理 Paddle NLP

基础自然语言处理(NLP)自然语言处理PaddleNLP-词向量应用展示自然语言处理(NLP)-前预训练时代的自监督学习自然语言处理PaddleNLP-预训练语言模型及应用自然语言处理PaddleNLP-文本语义相似度计算(ERNIE-Gram)自然语言处理PaddleNLP-词法分析技术及其应用自然语言处理PaddleNLP-快递单信息抽取理解自然语言处理PaddleNLP-信息抽取技术及应用自然语言处理PaddleNLP-基于预训练模型完成实体关系抽取--实践自然语言处理PaddleNLP-情感分析技术及应用-理论自然语言处理PaddleNLP-情感分析技术及应用SKEP-实践问答自然语言处理PaddleNLP-检索式文本问答-理论自然语言处理PaddleNLP-结构化数据问答-理论翻译自然语言处理PaddleNLP-文本翻译技术及应用-理论自然语言处理PaddleNLP-机器同传技术及应用-理论对话自然语言处理PaddleNLP-任务式对话系统-理论自然语言处理PaddleNLP-开放域对话系统-理论产业实践自然语言处理PaddleNLP-预训练模型产业实践课-理论

问答系统(QuestionAnsweringSystem,QA)是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户用自然语言提出的问题。其研究兴起的主要原因是人们对快速、准确地获取信息的需求。问答系统是人工智能.

抽取式阅读理解:它的答案一定是段落里的一个片段,所以在训练前,先要找到答案的起始位置和结束位置,模型只需要预测这两个位置,有点像序列标注的任务,对一段话里的每个字,都会预测两个值,预测是开始位置还是结尾位置的概率,相当于对每个字来讲,都是一个二分类的任务

机器阅读技术:2011年7月20日,姚明正式宣布退役=>姚明哪一年退役500万的维基百科文档检索式问答:先做段落检索、再做答案抽取

阅读理解:郭鹤年=>郭鹤,3个字里面对了2个=>2/3,完全匹配=>1,f1(2/3,1)=>0.8SQuAD(2016)只能做抽取,数据量是训练深度神经网络的关键要素,数据集有着很大的影响力很多精典的阅读理解模型,也是基于SQuAD做的DuReader(2017)百度2017年发布的,迄今为止最大的中文阅读理解数据集,相比较SQuAD,除了实体类、描述类和事实类的问题,还包含了是非类和观点类的问题

抽取式阅读理解,它的答案一定是段落里的一个片段,所以在训练前,先要找到答案的起始位置和结束位置,模型只需要预测这两个位置,有点像序列标注的任务,对一段话里的每个字,都会预测两个值,预测是开始位置还是结尾位置的概率,相当于对每个字来讲,都是一个二分类的任务基于LSTM+注意力机制,核心思想就是如何对问题和段落进行交互和语义理解,一般就是在模型里面加各种attention,各种复杂的模型结构基本上能总结成图中的形式,一般分为四层,

向量表示层:主要负责把问题和段落里的token映射成一个向量表示语义编码层:使用RNN来对问题和段落进行编码,编码后,每一个token的向量都包含了上下文的语义信息交互层:最重要的一层,也是大多数研究工作的一个重点,负责捕捉问题和段落之间的交互信息,把问题的向量,和段落的向量做各种交互,一般使用各种注意力机制。最后它会输出一个融合了问题的语义信息的段落表示。答案预测层:会在段落表示的基本上,预测答案的位置,也就是预测答案的开始位置和结尾位置LSTM是一个比较基本的模型结构注意力机制,来源于图像,在看一张图片的时候,就会聚焦到图片上的某些地方,通过图片上一些重点地方,获取到主要的信息。比如图片里是小狗,看到了狗的耳朵、鼻子就能判断出这是小狗。这时候注意力就集中在狗的脸部上。对于文本也一样,文本的问题和段落匹配过程中,也会聚焦到不同的词上面,比如:香格里拉酒店老板是谁?段落:香格里拉是香港上市公司品牌隶属于郭氏集团。对于问题香格里拉这个词,在段落文本中更关心香格里拉这个词,带着问题读本文时,所关注点是不一样的。如:老板这个词,关注力在隶属于上。如果问题是:香格里拉在哪里上市的,那么对于文本的关注点就在“上市公司”上了注意力机制,就是获取问题和段落文本交互信息的一个重要手段

理论形式:给定了一个查询向量Query,以及一些带计算的值Value,通过计算查询向量跟Key的注意力分布,并把它附加在Value上面,计算出attention的值。

Query向量是问题,Value对应段落里面编码好的语义表示,key是问题向量和文本向量做内积之后做归一化,代表了每个词的权重最后对这些Value根据这些权重,做加权求和,最后得到了文本经过attention之后的值

一般会事先定义一个候选库,也就是大规模语料的来源,然后从这个库里面检索,检索出一个段落后,再在这个段路上做匹配。基于预训练语言模型(eg.BERT)领导A训练好的模型,在领域B应用

通过多任务学习、迁移学习等提升模型的泛化能力MRQA2019SharedTask

过稳定:对于不同的提问,给出相同的答案过敏感:对于相同语义的提问,给出不同的答案提高阅读模型鲁棒性的方法:

通过对抗样本生成、复述生成等方法提升模型的鲁棒性DuReader-Robust、DuReader-Checklist千言数据集:https://aistudio.baidu.com/aistudio/competition/detail/49

段落检索

稀疏向量检索:双塔

基于词的稀疏表示匹配能力有限,只能捕捉字面匹配不可学习

把文本表示成onehot(拼写可能有错)的形式,常见的有TFDF、BM?文章编码成向量,向量的长度和词典的大小一致,比如词典的大小是3W,稀疏向量表示3W,每个位置表示这个词有没有在问题中出现过,出现过就是1

倒排索引,一般采用稀疏向量方式,只能做字面匹配

稀疏向量,几百、上千万的文档都支持

稠密向量检索:单塔

基于对偶模型结构,进行稠密向量表示能够建模语义匹配可学习的

把文本表示成稠密向量,也就是Embedding,需要通过模型,对文本的语义信息进行建模,然后把信息记录在向量里,这边的向量长度,一般是128、256、768,相较于稀疏向量检索小很多,每个位置的数字是浮点数

一般通过对偶模型的结构进行训练,来获得建模的语义向量,例:Q:王思聪有几个女朋友P:国民老公的恋人A、B、C......如果通过稀疏向量检索,可能完全匹配不到稠密向量检索,可以学习到,国民老公=>王思聪,恋人=>女朋友两者可以互补,一个字面匹配,一个是语义匹配文本匹配中的两种模型结构

对偶式模型结构:问题、段落分别编码,得到各自的Embedding,然后通过内积或者cosin来计算向量之间的相似度,这个相似度代表了问题和段落之间的匹配程度问题和段落之间难以交互,因为他们是分别编码的。底层没有交互,所以逻辑会弱些可以快速索引,可以提前把段落向量这边计算好交互式模型结构:输入把问题和段落拼一起,在中间交互层问题的文本和段落的文本会有个完全的交互。最后输出一个来表示问题和段落的匹配程度

对偶模型的参数可以共享,共享参数对字面匹配效果好些,不共享效果也差不了太多实际应用中,把所有的文档都计算完,把向量存储下来。在线计算时,直接去检索

DPR正例和强负例1:1,弱负例越多越好强负例:和文档有些关系弱负例:和文档内容不相关的。

一般做检索,不会把正例表得那么完整,在标注时,也是通过一个query,先去检索出一些候选的段落,在候选段落里,去标正例和负例,这样因为检索能力的限制,可能没有检索回来的一些段落就没有标注,这样会导致数据集中漏标,所以实际上在训练过程中会对这些漏标的数据集进行处理,有些数据集只标了正例,并没有负例,这时候负例只能通过一些方式去构造

推荐阅读

ReadingWikipediatoAnswerOpen-domainQuestionsBi-DirectionalAttentionFlowForMachineComprehensionMachineComprehensionUsingMatch-LSTMandAnswerPointerDensePassageRetrievalforOpen-DomainQuestionAnsweringLatentRetrievalforWeaklySupervisedOpenDomainQuestionAnsweringSparse,Dense,andAttentionalRepresentationsforTextRetrievalREALM:Retrieval-AugmentedLanguageModelPre-TrainingRocketQA:AnOptimizedTrainingApproachtoDensePassageRetrievalforOpen-DomainQuestionAnswering

自然语言处理 Paddle NLP

基础自然语言处理(NLP)自然语言处理PaddleNLP-词向量应用展示自然语言处理(NLP)-前预训练时代的自监督学习自然语言处理PaddleNLP-预训练语言模型及应用自然语言处理PaddleNLP-文本语义相似度计算(ERNIE-Gram)自然语言处理PaddleNLP-词法分析技术及其应用自然语言处理PaddleNLP-快递单信息抽取理解自然语言处理PaddleNLP-信息抽取技术及应用自然语言处理PaddleNLP-基于预训练模型完成实体关系抽取--实践自然语言处理PaddleNLP-情感分析技术及应用-理论自然语言处理PaddleNLP-情感分析技术及应用SKEP-实践问答自然语言处理PaddleNLP-检索式文本问答-理论自然语言处理PaddleNLP-结构化数据问答-理论翻译自然语言处理PaddleNLP-文本翻译技术及应用-理论自然语言处理PaddleNLP-机器同传技术及应用-理论对话自然语言处理PaddleNLP-任务式对话系统-理论自然语言处理PaddleNLP-开放域对话系统-理论产业实践自然语言处理PaddleNLP-预训练模型产业实践课-理论

模型压缩:理论基础模型压缩基本方法分为三类:

量化裁剪蒸馏量化裁剪绿线:随机裁剪30%已经扛不住了蓝线:60%还不错蒸馏蒸馏任务与原来的学习任务同时进行.对于没有标注的数据,可以只学习teacher的预测概率Teachermodel:教师模型,是已经训练好的,比较不错的模型。Student(distilled)model:学生模型,是重新初始化的小模型,去学生老师的结果设置损失函数,让学生的概率分布,往老师上靠。使得学生能够复现老师的输出,从而获得老师的准确率

蒸馏的信号

第一步:A首先对Student进行学习,不带蒸馏的,一般在无监督数据上进行lask第二步:把学习的模型拿过来,带一个老师模型,同样进行无监督学习,B第三步:通过通用的老师..视频时间:20:00任务无关蒸馏:不需要知道下一步要做什么,蒸完就能直接拿去用3层,比12层更小,更宽。压缩模型最好是压深度,而不是宽度,因为压缩深度可以有效的降低依赖性,使用3步就可以完成计算,宽度有些设备可以高效的并行完成宽度的大小对整个模型的预测时间,是影响不大的中文是没有空格的语言,所以先要分词产业实践案例模型上线,首先要考虑的是模型是不是需要微调,有些模型不需要微调,直接可以上线。

可能没有数据给他微调希望这个模型做为下游模型的输入

CPU在线预测应用数据增强

实践案例:搜索问答

实践案例:GPU在线预测应用在搜索引擎

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇