2021年山东大学软件学院创新项目实训QG研发团队工作日志(七)

项目实训中期检查

项目实训中期检查圆满结束,我们团队也基本完成了前期的基础开发工作。在中期检查上,老师们依次检查了我们团队每位成员的代码成果以及项目实训博客,表示予以通过,但同时也提出了一些疑问和建议,我们也给出了自己的回应。检查结束之后,内部再次开了个小会于是我们再次开始开发研究工作。
.

项目进度

1.问题生成部分:

田婕与张亦琪分别使用不同的模型实现问题生成,目前田婕使用uniLM,张亦琪使用双编码器解码器论文。最终对两个模型生成的结果评分,输出得分高的问题。

2.问题分类:

白宇涛同学负责对CMRC数据集的问题分为六类,通过打了标签的数据进一步训练模型。后期在对生成的问题进行分类评价。经过讨论和商量,这个标签可以作为前期输入的分类标签,同时也作为后期判断的标签。

3.正确性判断

李浩达同学对问题是否是疑问句进行正确性判别,用在最终的评测上。目前正在运行代码,并且考虑加大难度,会加入对偶技术进行正确性判断。就是将生成的问题和文章段落作为输入,在答案生成模型中输出一个答案,比对之前的答案,如果相似度极高说明生成的问题质量合格。相当于再做了一个QA任务。

QA 和 QG 任务在概率上是有联系的,可以通过 q、a 的联合概率分布联系起来,P(q|a) 就是 QG 模型,P(a|q) 类似 QA 模型,于是就把这两个任务当做对偶任务。
.

项目技术部分分析

问题生成这一块,想采用双编码器技术提高生成的效果。目前是在pytorch环境下,用现在最典型的seq2seq技术实现问题生成。核心代码主要分为三块。

code/utils.py:进行数据清洗,转换数据格式等
code/train.py:用于模型的训练
code/infer.py:用于模型的预测

数据清洗

比如说剔除空白字符,剔除带括号的英文,处理部分不匹配数据等。不过我们运用的数据集比较干净,没有太多不规则的数据。

在这里插入图片描述

文本截断

我们这个模型是输入文章和答案来生成问题。相对而言答案长度可以取得较短,因为答案基本都是从原文中读取的,通常根据答案的前面部分,就已经能够推理出对应的提问。所以最终选取答案的长度为64。
篇章中答案所在位置的附近与问题的相关性最强,所以取答案所在位置的前64个字符和后128个字符作为截取的篇章。
问题文本的长度均未超过131个字符,所以相当于未做截断。

在这里插入图片描述

开始模型训练

训练时按照“[CLS]篇章[SEP]答案[SEP]问题[SEP]”格式输入。推断时按照“[CLS]篇章[SEP]答案[SEP]”格式输入。后面想要加入双编码技术,双编码器可以加强答案信息,使模型提出更具针对性的问题。双编码对答案和段落分开建模,但是这也增加了模型的复杂性。

问题生成任务可分为两类:一类是基于规则的方法,即在不深入理解上下文语义的情况下手动设计词汇规则或模板,将上下文转换成问题。另一类是基于神经网络的、直接从语句片段中生成问题词汇的方法,包括序列-序列模型(seq-to-seq)、编码器解码器(encoder-decoder)等。目前虽然运行的是seq-to-seq,但我们还想使用后一种双编码器问题生成方法。
.

在这里插入图片描述

总结体会

一个好的团队能让每个人发挥自己的长处,并且避免自己的缺点放大。我们团队中开发人员每个星期都能够开会沟通,一些方法和过程需要制定标准,有了标准,才能在实现后能方便的他人的理解和使用。从这次合作中大家也逐渐懂得需要建立互相之间的信任,一个有凝聚力的、高效的团体成员必须学会自如、迅速、心平气和地承认自己的错误、缺点并且求助,还要乐于认可别人的长处。同时能够就不同意见而争论、交换经过滤的坦率意见的团队,互相监督,互相负责,才能一步一步走下去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值