基于nlp问答系统
创始人
2025-05-28 07:41:29
0

一:理论基础

(一)macBert
论文:https://arxiv.org/abs/2004.13922
论文初衷:构造汉语预训练语言模型(Bert主要是针对英文)
BERT:2019年提出,由MLM和NSP两部分组成。
MLM :从输入中随机屏蔽一些标记,目标是仅根据上下文预测原始单词
NSP:预测句子B是否是句子A的下一个句子
macBert改进:将原来MLM任务替换成MLM as correction任务,即用相似词token屏蔽替代原来「Mask」token屏蔽
在这里插入图片描述
MacBERT-base, Chinese: 383M
MacBERT-large, Chinese: 1.2G
(二)KECP(代码目前没开源)
KECP是一种面向机器阅读理解的小样本学习算法,采用Prompt-Tuning作为基础学习范式,在仅需要标注极少训练数据的情况下,在给定文章中抽取满足要求的文本作为答案。由原来传统抽取式阅读理解任务转化为基于BERT生成式任务。
在这里插入图片描述
步骤:(1)给定一段文章和一个提问,我们首先用启发式规则构造问题查询提示。
(2)知识感知提示编码器,知识增强的语义表征
2.1)文章知识注入
2.2)文章 -提示词 知识注入
(3)跨层次对比学习
增加一些负样本参与训练,通过对比学习,提高模型泛化能力。

二:训练过程

工程地址:https://link.zhihu.com/?target=https%3A//github.com/alibaba/EasyNLP

三:推理过程

机器阅读理解(MRC)流程:
在这里插入图片描述
1:文章大致段落定位
可通过query中实体与context中实体匹配实现。
2:预处理模块
vocab.txt:词表,每一个 token 占一行,行号就是对应的 token ID(从 0 开始)
1)分词:使用分词器 (Tokenizers) 将文本按词、子词、符号切分为 tokens。
2)结构化处理:tokens对齐,即保证送入模型中的tokens 输入大小一致。context太长,需要裁剪,context太短,需要padding补齐。
3)语言特征计算:通过vocab.txt完成query与context分词转token ID。
3:模型调用
模型输入:1)‘input_ids’: [],:字向量,通过vocab.txt词表获得每个token 的id,组成的一维向量
2)‘token_type_ids’: [], :文本向量,初始值:问题字符位置为0,文章字符位置为1
3) ‘attention_mask’: []:位置向量 ,一般情况全1,如果有padding token,在padding token位置标记0.存在的意义:padding token不参与编码,防止引入歧义的上下文语义。
模型输出:1)”start_logits”: 1384向量;”end_logits”: 1384向量;“prediction”
4:后处理
1) 取start_logits和end_logits前N=10个数值大的index,得到start_indexes,end_indexes
2) 遍历start_indexes,end_indexes,得到一组预测答案,取start_logit+end_logit最大的一个答案作为输出。
5:输出答案

四:自定义准确率计算

Acc=len(pred_answer并label_answer)/len(label_answer)
即:预测回答内容与标签回答内容重合度/标签回答内容总字数

五:目前的表现

在1329个token的《XX产品概括》语料中,57个提问(《XX产品概括提问》),平均准确率为97%。
请添加图片描述
表现能力差的地方:
(1)代词不容易理解。
比如:context中有同时有XX_1产品优势和XX_2产品优势,如果被提问XX_1产品优势是什么?,很容易回答成XX_2产品优势。
解决:段落定位
将不同产品放在不同段落,再合并到context中。
(2)不能直接回答判断句
比如:提问:XX_1是否支持手势识别?我们期望回答是:是,或者支持,但模型回答是:XX_1支持21种手势识别。
(3)提问一定要带实体。即问什么产品的什么信息,一定要把产品名称带出来
比如:XX_1产品优势是什么?不能直接问:产品优势是什么?除非context中只有XX_1相关介绍。

六:结论

基于nlp的问答系统,不管是文本问答,还是知识图谱问答,答案只能在语料中存在才能回答正确,没有总结归纳的能力。比如:context:小红有苹果,梨,香蕉。。。,query:小红有多少种水果?Answer:小红有苹果,梨,香蕉。即nlp不能回答出3种,因为context没有3种。
优点,nlp问答能力可控制性很强。
(1)语料context可以一直扩大,没有大小限制。context越丰富,nlp回答能力越强,两者之间属于强相关。
(2)nlp问答系统前处理和后处理对输出结果影响很大。前处理中段落定位,Prompt提问等策略能够大大提高nlp能力。nlp模型出来的结果是输入的每个token 的start_logits和end_logits,最终的Answer是根据每个token 的start_logits和end_logits处理,得到一组最优start_index和 end_index,最后再映射回文本输出。所以如果前处理和后处理优化的好,nlp问答的能力会很好。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...