
机器阅读理解
weixin_45955767
这个作者很懒,什么都没留下…
展开
-
captum 分析(二) badcase分析
计算前向传播函数def squad_pos_forward_func(input_ids, attention_mask, position=0): pred = model(input_ids, attention_mask) # 获取预测结果 pred = pred[position] # 当 position 为 0 时,取的是起始位置所在的分布,为 1 时,取的是结束位置所在的分布 return pred.max(1).values # 取分布的最大值,即预测结果原创 2021-08-22 17:19:53 · 1166 阅读 · 1 评论 -
captum 分析的数据准备(一)
构建基线数据,用pad=0填充构造与输入等长的数据获取原数据的填充字符,起始,结束 使用tokenizer直接获取PAD_ID = tokenizer.pad_token_id # 补齐符号 pad 的 idSEP_ID = tokenizer.sep_token_id # 输入文本中句子的间隔符号 sep 的 id# 置于文本初始位置的符号 cls 的 id,在 bert 预训练过程中其对应的输出用于预测句子是否相关CLS_ID = tokenizer.cls_token_id对原原创 2021-08-22 16:57:01 · 993 阅读 · 1 评论 -
distilbert模型的测试
参考资料:实验楼的《探究bert的阅读机理》模型的加载# 加载模型model = DistilBertForQuestionAnswering.from_pretrained(MODEL_PATH)# 将模型移到相应设备DEVICE = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")model.to(DEVICE) # 查看模型结构基于同样的路径,加载 tokenizer:# 加载 tokenizer原创 2021-08-22 16:46:27 · 533 阅读 · 0 评论 -
文本数据增强
预训练语言模型:预训练模型本身是在大规模预料训练的领域内数据增强(中文的多项,英文翻译后的多选数据集)数据增强(微调技术,把比赛文本让模型做mask_language任务)TTA(用测试数据变换,增强,得到结果后加入训练集)...原创 2021-08-21 21:50:28 · 118 阅读 · 0 评论 -
魔改bert的方法
1.在init()定义网络class BertForMaskedLM(BertPreTrainedModel): def __init__(self, config): super().__init__(config) self.bert = BertModel(config) #这里是bert的输出 self.cls = BertOnlyMLMHead(config) #比如定义一个lstm self.l原创 2021-08-21 21:45:35 · 600 阅读 · 0 评论 -
阅读理解 预训练模型参数微调
最重要的参数max_seq_len 400 (对数据集进行统计,平均长度和90%分位数的长度作为先验)其他参数学习率 预训练模型 1e-5 - 5e-5 做掩膜任务 才把学习率调大batchsize 一般是32 64/16也可以尝试dropout不要太大 0.05,0.1,0.15,0.2labelsmoothing 一般0.1...原创 2021-08-21 21:22:07 · 282 阅读 · 0 评论 -
LSTM 机器阅读理解建模
问题和文档拼接输入LSTM模型中经过attention后输出答案r与u聚合word-embedding的信息,通过g(softmax)环节输出答案原创 2021-08-21 21:03:08 · 173 阅读 · 0 评论 -
机器阅读理解:任务导向+数据驱动
海华2021(阅读题单选)比赛任务:比赛技术组的数据来自中高考语文阅读理解题库,每条数据都包括一篇文章,至少一个问题和多个候选选项。参赛选手需要搭建模型,从候选选项中选出正确的一个。数据格式分析train.json训练集,包含文章,问题和选项等信息validation.json样例验证集,它展示了无标签的的测试集合testjson测试集数据,格式和验证集数据一样,但不会公布,参赛选手需要提交模型在后台上运行。sample.csv样例提交数据,定义了提交的数据格式,选手需要提交一个....原创 2021-08-21 20:57:43 · 158 阅读 · 0 评论