【yabo手机登录】搜狗开源业内最全「阅读理解工具集合」,助力研发人员快速构建高效模型 - yabo手机登录|注册网址

当前位置:首页 > 探索 > 奇闻

【yabo手机登录】搜狗开源业内最全「阅读理解工具集合」,助力研发人员快速构建高效模型

2020-11-17 21:05:01

yabo-中文数据集CMRC2018的模块。另一方面,用户也可以通过承继 base_dataset,针对其他数据集研发自定义的读取器。数据处理 为了打算训练模型的数据,我们必须创建一个词汇表、萃取语言特征,并将线性特征同构到索引中。

该工具包获取了符合这些拒绝的模块:Vocabulary Builder 、Feature Extractor、Batch Generator。模型建构 机器读者解读任务的核心部分就是建构一个有效地且高效的模型。SMRC除了获取内置的模型(我们将在后面讲解)外,还获取了机器读者解读任务中常用的神经网络组件,以便于用户建构自定义的模型。

yabo手机登录

遵循 “功能 API” 的思想,SMRC 将它们纸盒为 Tensorflow 层的 MRC 特定补足:Embedding:还包括Vanilla Embedding,PartiallyTrainableEmbedding、CoVeEmbedding,ElmoEmbedding和BertEmbedding等。Recurrent:BiSTM和BiGRU是基本的循环层,此外SMRC还获取了它们的CUDNN版本——CudnnBiSTM 和 CudnnBiGRU。相近度函数:SMRC获取了一系列用作计算出来文本之间的词级相近度的函数,例如DotProduct、TriLinear和MLP等。

Attendtion:注意力层一般来说与相似性函数一起用于,例如BiAttention,UniAttention和SelfAttention。基本层:一些基本层用作机器读者解读模型,例如VaritionDropout和Highway,ReduceSequence。

基本操作:这些主要是屏蔽操作者,例如,masked softmax, mask logits 。通过承继基础模型类并人组上述组件,开发人员基本可以较慢地建构大多数主流机器读者解读模型。模型训练 在训练模型时,我们一般来说关心指标如何随着 train/dev 集而变化,何时继续执行early stopping,模型发散必须多少时期等等。

由于大多数模型都使用类似于的训练策略,所以SMRC获取了一个训练模块,主要功能还包括维持训练、评估和推理小说处置、留存最佳权重、与指数移动平均值协作以及记录训练概要。每个模型还获取了用作留存和读取模型权重的界面。二、内置模型获取非常丰富的内置模型是SMRC的众多特色,这些内置模型都是对有数的杰出模型的复现。

其中还包括:BiDAF:与之前工作中的留意机制有所不同,BiDAF的核心思想是双向注意力,它仿真了query-to-context 和 context-to-query 的注意力。(Bidirectional Attention Flow for Machine Comprehension (ICLR 2017))DrQA:目的解决问题对外开放域问题解答。

yabo

DrQA 用于文字映射、基本语言特征和非常简单的留意机制,证明了没简单结构设计的非常简单模型也可以在机器读者解读中取得好的结果。(Reading Wikipedia to Answer Open-Domain Questions (ACL 2017))FusionNet:基于对以往工作中注意力方法的分析,Huang 等人明确提出了FusionNet,从三个方面拓展了注意力。他们明确提出用于词的历史和 fully aware attention,这使得模型融合了来自有所不同语义层的信息流。

此外,这个点子也限于于自然语言推理小说。(Fusing via Fully-aware Attention with Application to Machine Comprehension (ICLR 2018))R-Net:R-Net的主要贡献是自我给定的留意机制。在上下文和问题的门控给定之后,引进了段落自给定来汇总整个段落的证据并改良段落回应。

(Gated Self-Matching Networks for Reading Comprehension and Question Answering (ACL 2017))QANet: QANet的体系结构改编自Transformer,它仅有包括卷积和自注意力(self-attention)。由于不用于循环层,QANet在训练时间内提升了313倍的速度,在推理小说时间内提升了49倍的速度。(Combining Local Convolution with Global Self-Attention for Reading Comprehension (ICLR 2018))IARNN:SMRC中构建了两种基于内部注意力的RNN(IAyabo手机登录RNNs),这不利于句子回应并且在答案自由选择任务中有效地。

IARNN-word 在输出RNN模型之前对问题上下文的单词回应展开权重。与仅构建输出字映射的IARNN-word有所不同,IARNN-hidden可以通过向计算出来注意力权重加到可选上下文信息来捕捉多个单词之间的关系。(Inner Attention based Recurrent Neural Networks for Answer Selection (ACL 2017))BiDAF ++:在BiDAF基础上,引进了多段机器读者解读的模型。

基于BiDAF,BiDAF ++减少了自我注意力层以减少模型容量。(Simple and Effective Multi-Paragraph Reading Comprehension (ACL 2018))BERTELMo:实训练模型如BERT和ELMo在许多自然语言处置任务中都展现出极佳。

在SMRC中,用于BERT、ELMo 和Cove作为映射层来获取强劲的上下文回应。同时,SMRC还包括用作机器读者解读的BERT模型,以及改动版本。三、较慢建构及检验SMRC获取了非常简单的模块,对于用户来说非常简单易懂,且具备可扩展性。

对于主流读者解读模型,只必须十多讫的代码之后可已完成训练和测试。下面以SquAD1.0为事例,较慢建构并训练一个内置模型(DrQA):1、iTunes数据集$ wget https://rajpurkar.github.io/SQuAD-explorer/dataset/train-v1.1.json$ wget https://rajpurkar.github.io/SQuAD-explorer/dataset/dev-v1.1.json$ wget https://nlp.stanford.edu/data/glove.840B.300d.zip #used in DrQA$ unzip glove.840B.300d.zip2、打算数据集阅读器和鉴别器train_file = data_folder + train-v1.1.jsondev_file = data_folder + dev-v1.1.jsonreader = SquadReader()train_data = reader.read(train_file)eval_data = reader.read(dev_file)evaluator = SquadEvaluator(dev_file)3、建构词汇表并读取实训练映射vocab = Vocabulary(do_lowercase=False)vocab.build_vocab(train_data + eval_data, min_word_count=3,min_char_count=10)word_embedding =vocab.make_word_embedding(embedding_folder+glove.840B.300d.txt)4、用特征提取器。特征提取器只是在用于语言特征时才必须:feature_transformer =FeatureExtractor(features=[match_lemma,match_lower,pos,ner,context_tf],build_vocab_feature_names=set([pos,ner]),word_counter=vocab.get_word_counter())train_data = feature_transformer.fit_transform(dataset=train_data)eval_data = feature_transformer.transform(dataset=eval_data)5、建构用作训练和评估的批处理生成器,其中在用于语言特征时必须可选特征和特征词汇表。

yabo手机登录

train_batch_generator = BatchGenerator(vocab,train_data, training=True, batch_size=32, \additional_fields =feature_transformer.features,feature_vocab=feature_transformer.vocab)eval_batch_generator = BatchGenerator(vocab,eval_data, batch_size=32, \additional_fields = feature_transformer.features,feature_vocab=feature_transformer.vocab)6、引入内置模型并编译器训练操作者,调用train_and_evaluate等函数展开训练和评估。model = DrQA(vocab, word_embedding, features=feature_transformer.features,\feature_vocab=feature_transformer.vocab)model.compile()model.train_and_evaluate(train_batch_generator, eval_batch_generator, evaluator, epochs=40, eposides=2)以上这些代码限于于所有内置模型,以及示例中的所有数据集上。

你可以按照上面的代码在有所不同的数据集上分别尝试有所不同的模型,想到效果如何。SMRC在Github中获取的对比结果如下:在Table 1中是针对SQuAD1.0的模型结果,可以显现出复现模型与原模型的性能大致相同。

而另一方面,当模型重新加入了BERT或ELMo这样的预训练后,其结果往往不会有很大的提高,因此它们也是NLP的一个新趋势。SQuAD 2.0和CoQA的任务与SQuAD1.0并不相同,因此有些模型无法必要应用于到这两个数据集上。基于BiDAF、BiADF++等模型的测试,可以显现出内置模型有时候甚至比原模型更佳。

此外,也可以将BiDAF应用于在CMRC数据集上,搜狗搜寻获取的测试结果F1/EM 为57.01/35.0,这获取了一个新的基线。四、总结搜狗搜寻开源的“搜狗读者解读工具子集”,获取了TensorFlow版本的数据集加载、预处理、神经网络模型基件、训练和评估等原始的读者解读任务框架,使开发人员需要较慢建构自定义的机器读者模型。

此外,SMRC还以统一的框架获取了十多种机器读者解读模型,便利了开发人员复现和检验有数的模型。这些工作将大大地加快涉及的学术研究。同时,SMRC也给所有想评估和尝试落地机器读者解读技术的算法从业人员获取了初学者的捷径和产品化的初动力。

据理解,目前搜狗搜寻早已将涉及技术应用于产品及业务中。在法律领域,搜狗律师的解说机器人不具备逻辑分析和推理小说能力,在连贯式面谈过程中,挖出起诉书中的结构化数据,协助用户搞清楚已再次发生的事实,并在充份、精确解读用户法律表达意见的基础上,得出有可能的裁决结果、法律建议或相近案例;在医疗领域,搜狗搜寻的智能分诊功能,首创引进了基于人工智能技术的智能临床助手,仿真医生与病人对话的模式与用户展开病情交流,根据用户实际症状协助辨别用户有可能患上的疾病。参考资料:[1] SMRCToolkit[2] Sogou Machine Reading Comprehension Toolkit[3] 论文原文《基于文档门控制器的对外开放域解说》[4] 搜狗夺下国际顶级挑战赛CoQA第一名[5] CoQA: A Conversational Question Answering Challenge[6] SQuAD2.0: The Stanford Question Answering Dataset版权文章,予以许可禁令刊登。

下文闻刊登须知。:yabo。

本文来源:yabo-www.sastg.com

热门推荐