PaddlePaddle / RocketQA

🚀 RocketQA, dense retrieval for information retrieval and question answering, including both Chinese and English state-of-the-art models.
Apache License 2.0
767 stars 128 forks source link

关于rocketqa的一些疑问? #75

Closed hehuang139 closed 1 year ago

hehuang139 commented 1 year ago
  1. rocketqa是否一定要使用索引?我的目标是对一种类型的文档进行搜索,所以文档内容每次都是不一样的,即没有固定的语料库,但是文章的模式是大致相同的.即文档passages如果都是不一样的是否可以使用rocketqa进行检索。
  2. 并且关于rocketqa模型的小样本微调方面,大致需要多少的自定义训练集能达到比较好的效果,在rocketqa中并没有看到相关的数据。是否需要使用dureader retrival数据集再训练,还是直接用我们自己的训练集训练即可
  3. 训练集的title有什么用,是否可以不指定,或者说指定是否能提升模型准确度
hehuang139 commented 1 year ago

是否有一个完整的example,从一阶段的召回,到第二阶段排序 我验证了下使用无关的段落和有关的段落,发现dot_product并没有很大的差别? image image 这个案例中,de的结果和ce的结果也是偏差比较大 image

q = ['服务电话'] * 5

p = ['解锁1.中央扶手杯托下方2.安全箱后方3.车身左侧地板下方4.车身右侧地板下方5.车身后部6.后备箱下方近车自动解锁您可在携带有效的钥匙时实现近车自动解锁,此时无需拿出钥匙,只需走近车辆b柱1.4米范围内,车辆可实现自动解锁。您可以通过中控屏设置近车自动解锁的打开/关闭,在中控屏下方控制栏最左侧进入设置页面,点击门窗>近车自动解锁。手机app解锁锁。使用手机app解锁需满足下列条件:1.用户必须为车主或车主授权用户。2.车辆挂p挡且车门关闭3.车辆需连接至网络。说明如果用户因故无法使用手机app执行解锁操作,可以呼叫蔚来汽车服务中心400-999-6699寻求帮助。',
     '解锁先短按上锁按钮,在了秒内进行第二次长按(保持1.5秒)可同时关闭全部车窗、天窗及遮阳帘;车窗、天窗及遮阳帘运动过程中放开上锁键则车窗、天窗及遮阳帘停留在当前位置。3.尾门打开按钮尾门关闭状态时,先短按尾门按钮,在了秒内进行第二次长按(保持1.5秒)可打开尾门尾门打开状态时,再次重复上述操作可关闭尾门。智能钥匙电量指示灯4。智能钥匙的电量可以通过环形指示灯的颜色显示:蓝色表示电量大于70%,绿色表示电量为20%~70%,红色表示电量小于20%。寻车按钮5。了秒钟以上(或者了秒钟内连续按下两次),将启动寻车功能,转向灯及喇叭均发出提示。5秒钟后再次按下此按钮将解除寻车提示,否则此寻车功能将在10秒钟后自动关闭。警告在您离开车辆时如果有人或宠物留在车内,请务必携带智能钥匙,钥匙留在车内可能造成车内人员意外伤害。注意智能钥匙为电子零件,请避免撞击、拆卸或放置于高温、潮湿及强烈震动的场所。若您将有效的智能钥匙留在车内,下车后使用另一把有效的智能钥匙、手机app或nfc从车外对车辆进行上锁后,车内的智能钥匙将失效。再次使用有效的智能钥匙或手机app解锁车辆后,车内智能钥匙的功能即可恢复。如果在解锁后30秒内未打开任何车门或尾门,所有车门及尾门都自动重新上锁。若钥匙遗失或损坏,请立即联系蔚来汽车服务中心,携带当前所有钥匙进行钥匙的解/授权操作,申领新的钥匙。若长时间静置智能钥匙,请每隔一段时间(约两个月)为智能钥匙充电以保持钥匙性能的良好。说明为防止儿童玩耍钥匙解锁功能,若在10秒钟内连续按压上锁或解锁按钮达到9次,15秒内智能钥匙仅可解锁一次车辆且无法上锁车辆。智能钥匙与账户绑定首次激活车辆并通过校验时,智能钥匙默认绑定车主账户。后续使用钥匙解锁车辆时将自动加载车主账户数据。',
    'dl/t574-2010表f.4(续)检修步骤工艺要求a)检查每相动触头组支架与主轴是否牢固应牢固b)检查主触头的磨损情况动触头组的c)检查弧动触头的磨损情况,测量触头滚子的直径,检修将测量数值记录下来,以便和下一次检修状况进行比较。将测量数值与检修说明书中的数值比较,以确定是否则应在此同时进行触头更换检查定触头的磨损情况,将测量数值记录下来,以定触头的便和下一次检修状况进行比较。将测量数值与检修说检修明书中的数值比较,以确定是否则应在此同时进行触头更换f.4.4选择开关本体的复装选择开关本体的复装工艺和要求见表f.5。表f.5选择开关本体复装的步骤及工艺要求序号检修步骤工艺要求检查选择开关油室中是否遗留异物没有异物将导向圆杆(参见图f.7)放在选择开关油室底部中央孔中将起吊和操作工具固定在选择开关上端的两个m8孔上吊起选择开关本体,在放入油室前,动触头和集流环应当放在定触头片拆掉后形成的空隙中,转换选择开关的动触头放在两个长定触头间小心放下选择开关,直到集流环略商于电流引出端子,把集流环转到!如果需要调整,可以使用螺旋工具引出端子正上方,如果对接不良,吊起开关重新调入端子整,直至到位用操作工具的外壁将转换选择开关动触头转到与之对应的定触头的位置用同一工具,将选择开关转到动触头与维修位置的定触头对应位置检查转换选择开关和选择开关是否回到起吊前所作标记的位置拆掉操作工具和导向圆杆11用专用工具重新安装拆卸下来的定触头片重新安装快速机构,确保极性选择器上部的拨柱进入位置选择器槽轮12的孔中重新安装○型圈和顶盖,要求齿轮盒的连接销对法兰上的接地标更换新的o型圈:13志,并加以紧固紧固力矩为12nm通过顶盖上部指示窗显示的数字,检查分接开关是否在维修位置,电应该在相同的维修位置动机构是否也在相同的指示位置装上顶盖,要求齿轮盒的连接销对着法兰上的接地标志,并加以紧固15重新安装好连接管,驱动轴及附件1691'
    , '浙江臻镭科技股份有限公司招股意向书德州仪器公司臻镭科技亚德诺(adi)公司产品比较说明(ti)70.5dbfs65.2dbfsadc无杂散动@2.3g73dbc@2.6g@2.7gadc无杂散动态范围(0.8vpp态范围(sfdr)(-3dbfs)(1.475v、与对标产品相当2dbfs))-1dbfs)adc52.6dbfs52dbfs信号噪声失真比@2.3ghz@2.7ghzadc信号噪声失真比未公开(0.8vpp、(sndr,或(1.475v、与对标产品相当-2dbfs)sinad)-1dbfs)151dbfs/hz153dbfs/hzadc噪底adc噪底与对标产品(0.8vpp)(1.475vpp)151dbfs/hz(nsd)相当3gsps)6gsps)单通道接收功耗未公开接收功耗优于对标产(w)(接口+数1.21.9(总功耗品字+adc)11.45w)dacdac位数/采样频率与位数/采样频率14/1214/916/12对标产品相当(bit/gsps)输出频率范围输出频率范围与对标10~600010~6000最大为6000(mhz)产品相当68.9dbc68.5dbcdac无杂散动dac无杂散动态范围未公开@12gsps@12gsps态范围(sfdr)与对标产品相当(1.8ghz)(1.9ghz)dac噪底dac噪底与对标产品165dbm/hz166.7dbc/hz未公开@700mhz@500mhz(nsd)相当单通道发射功耗未公开发射功耗优于对标产1.8(w)(接口+数1.2(总功耗品字+dac)11.45w)最高接口速率优于对最高接口速率标产品,与基带或处理251516.22(gbps)器的数据传输速率更快注:根据同行业可比公司的公开信息进行比较(3)电源管理芯片公司电源管理芯片中代表产品为负载点电源芯片、线性稳压器芯片和固态电子开关芯片.1)负载点电源芯片衡量负载点电源芯片的性能指标包括输入电压、输出电压、输出电流、峰值效率和抗辐射指标等,各项指标具体含义解释如下:指标名称指标解释输入电压反映了负载点电源芯片的工作电压条件,通常输入电压、输出电压范输出电压围越大,产品的应用越广最大输出电流反映了负载点电源芯片对负载的供电电流,通常指最大输出电流越大,1-1-209',
    '制动器使用自动驻车auto在系统工作时呈绿色亮起。松开制hold动踏板后,车辆将保持静止。警告:当系统开启时,您必须留在车1,施加制动将车辆完全停稳。信息显示屏内。在整个过程中,您有责任控制车辆,中会亮起自动驻车激活指示灯。ato当自动驻车已启用但无法用于保持监控系统运行情况,并在必要时加以干预。hono车辆静止时呈灰色亮起。2.松开制动踏板。该系统将车辆保持静止如不小心谨慎,可能导致车辆失控、严重状态。信息显示屏中继续亮起自动驻车的人身伤害或死亡。如果发生以下任一情况,该系统可能无法使激活指示灯。用:》警告:如果有故障或者发动机转速过注意:仅当施加了足够制动压力的情况下,在主动泊车辅助操作过程中。高,该系统将关闭。该系统才会激活。如果车辆在陡坡上,您需要更用力踩下制动踏板后才能激活系统。车辆保持在空挡模式。该系统的设计目的是在您停车并松开制动踏注意:在某些条件下,该系统可能会施加电,驾驶员车门打开。板后施加制动来使车辆保持静止。这在某些子驻车制动。制动系统警告灯将亮起。踩情况下可能很有用,例如在坡道上或车流中,您未系紧安全带。下油门踏板时,电子驻车制动器将解除。等待时。参见电子驻车制动(页码164)。,在系统激活前换至倒车挡(r)。开启和关闭自动驻车功能注意:如果自动启停功能关闭发动机,自动驻车功能将保持激活状态。按仪表板上的按钮可在触摸屏上访问自动驻车功能。注意:如果换入倒车挡(r)并踩下制动踏板,系统将停用。注意:只有在关闭驾驶员车门、系好安全带并启动发动机的情况下,才能打开该系统。3.请按正常方式起步。系统解除制动,且自动驻车激活指示灯熄灭。注意:启动车辆时,该系统会调用上次使用的设置。自动驻车指示灯在用车辆进行拖吊或在使用自动化洗车设备信息显示屏中会显示自动驻车指示灯。前,务必关闭该系统。166(g2193443)'] * 1

print('score ...')
s = list(de_encoder.matching(query=q, para=p))

print(s)
s = list(cross_encoder.matching(query=q, para=p))

print(s)
hehuang139 commented 1 year ago

ce打分是否有问题,感觉分数不是很符合实际,以下是我测试的,可以发现,第三明显比第五更远离问题,但是分数反而更高

image

procedure2012 commented 1 year ago

1.rocketqa是否一定要使用索引?是的,如果文档部分每次检索都会变化,那么每变化一次就要重新计算一次索引。目前不支持对固定模式的建模。 2.小样本微调数据集。这个和微调任务难易程度以及同dureader的近似程度有关。简单任务可以尝试有10万~100万级别数据。如果任务和dureader定义的问答任务一样,可以直接使用模型。否则需要用自己的数据微调。 3.title用处。title就是指文章题目,可以不指定。可能会对dureader训练好的模型准确度有一定损伤(训练时能看见title信息)。 4.第一组数据三个para都和query无关,所以打分都比较低。第二组数据第一个para和query有关,所以点击明显高于其他两个(429 > 399 > 405)。点击绝对值意义不大,要看同一个query下的相对大小。 5.de和ce结果差距的是正常的。de(双塔模型)是靠两个encoder的点击决定大小,ce(单塔模型)是直接用encoder的输出。计算方式完全不同。 6.这里ce的打分确实不符合预期,但还算正常现象。即使是在域内测试集模型也无法做到100%准确的打分。推测可能因为整体模型因为训练数据的原因偏向问答:-“电力设备行业规模” -“我不懂啊”。如果效果不好,可以根据任务数据分布做一下微调。

hehuang139 commented 1 year ago

@procedure2012 再请教下,

  1. 关于索引,我只想通过rocketqa来对一个问题从文档中(文档每次都不一样)找到对应段落,不是完整的问答系统。是否可以直接使用rocketqa_ce的微调后的模型进行match排序来实现,这样就不用索引了,
  2. de和ce 两者在性能上是否有区别,我发现在简单文档的情况下,两者性能差别不是非常大,即使是复杂文本,只有文档数量非常大的情况下,两者性能才有一定的区别。但是我在paddlenlp和大家交流的时候,别人告诉我大文本先用de进行排序召回,然后在用ce做精排。但是实际我测试性能差别不是太大
  3. de既然绝对值意义不大,我想要进行多答的抽取时,如何设置阈值,因为可能有多个query,
  4. 我发现一个现象,比如说para='公司名称:中国电力系统股份有限公司',query1= '公司名称', query2 = '公司名称是什么',会发现增加了query2会明显好于query1,是否也是因为dureader的query方式更接近query2这种完整句子,而非词语. image

是否可以通过微调适应成信息抽取的模式

  1. 最后就是关于微调是否有比较好的经验,从issue中能学习到一些,
procedure2012 commented 1 year ago

1.是的 2.de在数据量大的情况下会比ce快很多,小数据量差距不大 3.一般是在大规模数据上使用de快速确定范围(按照分数排序,前topk),然后利用ce对topk进行更精确的打分,再排序得到最后结果。阈值一般按照排序后取topk而不是直接规定分数。 4.是的。完整句子更接近训练集分布。不过这样的偏差可以比较容易的通告少量数据精调纠正过来。 5.一般有两种,如果整体和dureader的任务差不多的话,可以直接用dureader模型热启,然后少量数据修正偏差;如果整体任务和dureader差距过大,可以放弃dureader的模型,直接使用足够多的数据训练。可以先用dureader模型在自己的测试集上测试一下效果,选一些case看看。