我司开源了一个GPT2模型,进行Query生成。

代码模型见链接:https://github.com/YunwenTechnology/QueryGeneration

一、Query生成的目的及意义?

在问答系统任务(问答机器人)中,我们往往会人为地配置一些常用并且描述清晰的问题及其对应的回答,我们将这些配置好的问题称之为“标准问”。当用户进行提问时,常常将用户的问题与所有配置好的标准问进行相似度计算,找出与用户问题最相似的标准问,并返回其答案给用户,这样就完成了一次问答操作

但是人为配置“标准问”库是一个耗时耗力的过程,并且生成高质量而具有总结概括性质的问题会给运营人员带来极大的负担。如果我们可以自动生成一些Query,供运营人员去选择的话,无疑于会给运营人员减轻很大的负担。简单地来说,就是创造与选择的区别,选择比创造要简单地多

二、Query生成方法有哪些?

Query生成方法主要有两大类,一种是规则的方法,另一种就是模型的方法。而每种方法其实又包含两个方面。如果我们已经人为地配置过一些query了,但是量比较少时,可以根据已有的query去生成query。

规则的方法是比较简单的,但是生成的问题会比较单一。一般通过词典或NER技术,识别出已有query的关键词或重要词汇,然后将其中的关键词做替换或者通过模板将关键词套入,最终生成新的问题。如表1所示。

然而,规则方法的核心是规则的归纳与总结,这通常是比较麻烦地事情;往往需要人看过大量数据后(需要很多人力),才能构造出比较优秀的规则,但规则之间有时也会有冲突。

模型的方法一般是用过Seq2Seq模型,根据所给问题去生成新的问题。模型方法相较于规则方法来说,生成的问题会更多样化,陈述不会一成不变;并且会生成一些具有概述性质或者更加具体的问题,供运营人员的选择更多。如表2所示。

三、GPT2模型

目前,Seq2Seq模型有很多,包括LSTM、Transform、GPT、UniLM、GPT2、MASS等等。而GPT2模型在生成问题上表现优秀,因此使用GPT2模型训练了一个Query2Query的模型去扩充我们现有的“标准问”库。

GPT2_ML的项目开源了一个具有15亿参数的中文版的GPT2开源模型,我们在此模型基础上进行微调。

三军未动,粮草先行。模型未练,数据先行。我们的数据来自百度相似问句对,共有220多万相似问对。具体训练参数如表3所示。

问题生成的效果如表4所示。

具体测试代码及模型,见github。

cd scripts/
python3 interactive_conditional_samples.py -model_config_fn ../configs/mega.json -model_ckpt /iyunwen/lcong/model/model.ckpt-850000 -top_p 5.0 -eos_token 102 -min_len 7 -samples 5 -do_topk True

结果:


广告时间,哈哈哈哈。推荐几篇本人之前写的一些文章:

刘聪NLP:短文本相似度算法研究

刘聪NLP:NEZHA(哪吒)论文阅读笔记

喜欢的同学,可以关注一下专栏,关注一下作者,还请多多点赞~~~~~~

最后生成神么格式的代码_智能扩充机器人的“标准问”库之Query生成相关推荐

  1. 腾讯技术直播间 | 零代码打造智能对话机器人

    随着智能客服.AI营销日益普及,你是否发现在生活的各个角落,有越来越多对话机器人忙碌的身影? 你是否想打造属于自己的对话机器人,却被繁琐的代码.复杂的模型困扰? 现在,有了腾讯智能对话平台,你就能轻松 ...

  2. python生成中文词云的代码_[python] 基于词云的关键词提取:wordcloud的使用、源码分析、中文词云生成和代码重写...

    1. 词云简介 词云,又称文字云.标签云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意 ...

  3. 随机生成一个质数的python代码_使用质数生成随机密码

    我正在做一个大学项目,从打印两个给定输入之间的所有质数开始.后来有人告诉我,它必须与我的课程,网络管理有关,所以我想在我的脚本末尾添加一个密码生成器(用于网络安全) 我把所有的代码都写出来了,但是我有 ...

  4. mongodb 导出时间格式_MongoDB批量将时间戳转为通用日期格式示例代码 _ 蚂蚁视界...

    前言 光阴戳(timestamp),通常是一个字符序列,独一地标识某一刻的光阴.本文将具体先容MongoDB批量将光阴戳转为通用日期格局的相关内容,下面话不多说了,来一路看看具体的先容吧 1,官网提供 ...

  5. 二叉树的建立与遍历完整代码_腾讯面试官这样问我二叉树,我刚好都会

    前记 上周我投递出了简历,岗位是后端开发工程师.这周腾讯面试官给我进行了视频面试.面试过程中他问了二叉树的问题. 二叉树相关算法题,在面试中出现的次数非常非常多,所以我面试之前也有所准备.今天结合面试 ...

  6. Java写js的Ajax代码_用JS写的一个Ajax库(实例代码)

    myajax是一个用js编写的一个跨浏览器的ajax库,支持get, post, jsonp请求,精巧,简单. 一.发送GET请求: myajax.get({ data: {}, //参数 url: ...

  7. 智能电灯代码_智能电灯开关与智能电灯泡:您应该购买哪个?

    智能电灯代码 If you want to control your lights from your phone or with your voice, you have two options t ...

  8. python用什么敲代码_你还在纠结用什么库写 Python 命令行程序?看这一篇就够了...

    一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse.docopt.click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. 本文作 ...

  9. 火焰传感器感应有火亮灯代码_智能无线感应灯火了,光感人感2种传感器感应,做照明品牌的几光...

    智能无线感应灯火了,光感人感2种传感器感应,做照明品牌的几光 曾经无数次幻想过的一个生活画面 : 清晨推开厨房的门,有一束微弱的光跟随着自动亮起:然后倒一杯温开水给自己:手清扫过橱柜,一束亮光打在厨房 ...

最新文章

  1. MYSQL查询数据中通讯最多的两个人
  2. 开灯问题 简单模拟法
  3. windows下spark开发环境配置
  4. Oracle官方文档网址收录
  5. 虚拟机网卡引起的一个问题
  6. Linux上怎样实现文件夹重命名
  7. html下拉菜单的子目录,html - 带有下拉菜单的子菜单的垂直下拉菜单 - 堆栈内存溢出...
  8. swift通知栏推送_如何使用Swift使用推送通知构建食品交付应用
  9. typescript 动态给class添加方法
  10. python中正则表达式中_python 中 正则表达式(Regular Expressions)学习
  11. python实现:用类实现一个图书馆,实现借书,入库,还书,查书,等功能,要求数据可以保存到文件中,退出后下次可以找回数据...
  12. 程序员有多少读过《人性的弱点》?项目经理呢?
  13. Mac OS 使用终端连接到Linux
  14. C语言自学完备手册(02)——变量的声明与定义
  15. 怎么把照片背景变成蓝色
  16. Win7怎么设置自动关机?Win7设置自动关机的方法
  17. 504_linux内核学习___va_rounded_size宏分析
  18. 买了新手机却不适应?教你一步克隆旧手机信息
  19. 物联网使用什么数据库_如何使用关系数据库实现大规模物联网
  20. Ubuntu 卸载程序

热门文章

  1. c winform 上传文件到mysql_WinForm上传文件至服务器
  2. 操作系统都是用c语言写的吗,用C语言写关于操作系统的一个问题。
  3. Xshell连接不上虚拟机的解决办法
  4. IDA执行python脚本文件,python编辑器的操作
  5. Python两个内置函数locals 和globals
  6. Python文件的多种读写方式及游标
  7. Python logging模块日志存储位置踩坑
  8. c语言中预处理指令的作用,C语言中常用预处理指令
  9. 编写程序计算交错序列_外文翻译 | FlyMC:高度可扩展地测试分布式系统中的复杂交错...
  10. mysql获取表_MySQL获取表格信息