下拉神器是一款专业的下拉词平台,提供各种下拉功能:百度下拉丶360搜索下拉丶必应搜索下拉丶哔哩哔哩下拉丶抖音下拉等等,里面还有批量做词教程技术,可以一次性做10-50个词,省心高效!批量做词,批量出词,可以实现霸屏效果!
有的客户想删除下拉,但是百度不受理,就可以使用批量做词霸屏技术,实现把那些负面信息顶下去,顶掉的效果=删除效果!欢迎您前来使用!新手不懂使用,请多看2遍视频教程哦!下拉神器100%有效果的!
给大家看一个下拉神器介绍的视频,看完后,点击下面的按钮进入”下拉神器“
欢迎使用下拉神器,下拉行业老品牌,如果下拉神器都不好使,整个行业其他平台一样不好使,但是大家一定要多学习多看教程,先学会做词出词的技巧!
下一篇文章内容预览:
编辑 | 王肃
预训练语言模型的训练语料是整个互联网的数据,它接受所有来的数据,并尽可能地消化。除了泛化能力,统计模型另一个重要的能力就是记忆能力。
我们知道,人类本质上是个重复者。啊不,整个网络数据中存在大量重复或近似重复的数据,尤其是在数据爆炸的今天,我们浏览各种来源的在线信息时,总会时不时地有种似曾相识的感觉(当然这也有各大自媒体抄袭的因素)。在统计模型眼中,这种重复的数据无疑是在告诉它,“这是老师反复强调的东西,你要强化记忆!”强化记忆之后,对于理解模型来说,在理解任务中的泛化性能就会受到限制;在生成模型中,就会出现逐字逐句地复制训练语料作为生成结果的现象。
所以我们可以看到,发布版中存在大段的复制代码问题。如果有兴趣的读者尝试一下.0/GPT-3,也会发现大量的生成结果似乎在复制训练语料。
因此本文作者直接将数据中的重复项剔除来训练生成模型,最后发现重复项现象大大减少,混乱程度也降低了。
当然,在现实中,删除预训练语料实际上会让最终的语言模型更像是一个具有一般语言知识的模型,而不是一个记忆一些事实的模型。在实际应用中,我们仍然需要权衡我们想要用模型实现什么样的性能。
论文标题:
数据
论文链接:
访问速度慢的朋友也可以在订阅号【席逍遥的萌屋】后台回复关键字【0812】来下载论文PDF~
发现重复数据
首先,什么样的数据是重复数据?
最直观的想法就是部分重复,也就是把整个段落或者句子复制过来。在训练样本也就是字符串中,都是一定长度的连续子串的重复。所以我们需要借助一些子串匹配算法来快速找出训练样本中重复的子串,而这里就需要用到后缀数组了。
预训练语料往往是文档级别的,无法直接进行比较,毕竟即便是海量语料,也很少有两篇文章是完全一样的。
后缀数组
对于一个字符串,它的后缀数组定义为:所有后缀按字典序排序后,排名最高的后缀的起始位置的索引为:
以单词为例,它的后缀为:["a", "na", "ana", "nana", "", ""],排序如下:
可以看到,按照上面的定义,字符串的后缀数组为:[6, 4, 2, 1, 5, 3],同时我们通常还会赋予它一个秩数组,表示后缀在后缀数组中从字符串左边开始的秩。
构造后缀数组的方法有很多种,比如直接对字符串的后缀进行排序(由于字符串比较需要时间,所以效率很低)或者采用加倍的方法(容易实现,效率高)。
除了这两个数组之外,要找出两个字符串的公共子串,我们还需要另外一个数组,通常称为 () 数组。 的定义是:后缀和后缀排序为 的最长公共前缀的长度。例如上例中,后缀 nana 和后缀 na 的最长公共前缀为 na,那么 数组也可以用一种非常高效的方法来得到,本文就不再赘述。
可以看出,“后缀最长公共前缀”其实就是字符串中重复出现的连续子串。如果高度数组的值在一定范围内百度关联词条删除不掉,就说明长度在一定范围内的子串在字符串中重复出现。如果将几个字符串用特殊符号连接拼接起来,就可以得到多个字符串在一定长度范围内的重复子串。这样就可以定位到包含特定长度重复子串的重复数据,作者称之为。
作者还对比了不同预训练数据集中不同长度子字符串的重复情况,如下图:
其中,长度为的重复子串的概率计算如下:
最后,作者选择50作为定位重复数据的阈值。
()
除了精确子串匹配之外,作者还采用了相似度哈希算法来直接近似计算整个训练样本的相似度,作为精确字符串匹配的补充,作者称之为。对于两个输入样本和,它们各自的n-gram集合和,可以利用系数近似计算两者之间的相似度,即:
使用hash函数对n-gram集合进行重新排列,仅保留前k个n-gram计算文档签名和文档相似度。本文选取5-gram、k=9000计算文档签名,并采用如下公式计算文档相似度概率:
其中,是用户可以设置的超参数。
作为补充,计算出潜在相似度后,还可以利用编辑相似度进行进一步的筛选,编辑相似度定义如下:
本文以编辑相似度大于0.8作为辅助判断。
当通过上述方法判断两个样本相似时,就将两者进行连通,最终将语料构建成一张图,然后利用图论算法计算图中的连通分量,从而确定相似文档的聚类,进行去重。
作者也在C4数据集上进行了分析,最终的聚类分布如下:
我们还利用上述两种方法计算出的重复案例:
以及在每个数据集上使用以上两种方法计算出的重复文本的比例:
实验结果
在分析完每个数据集之后,作者还按比例删除了每个数据集中的数据。细节本文不再赘述。作者发现,大部分重复数据都是网络上的同一条新闻或机器生成的数据,而一些短小相似的文本无法通过精确的字符串匹配来定位。重复文本的情况可以在上面的案例对照表中看到。
作者在以下三个数据集上训练了模型:
分别训练T5结构的XL模型,然后在4个评估集上验证困惑度:
结果如下:
可以看出,确实,使用去重之后,在LM1B和数据集上困惑度明显降低,说明得到的语言模型可以适应更广泛的文本,自然在重复的子集上困惑度会增加;在训练样本本身的分布上,困惑度变化并不明显。
作者还尝试复现仅使用去重数据训练的模型的生成:
可以看到,重复的比例也减少了很多。
最后,作者还研究了从验证集中删除重复项对现有模型困惑度的影响:
还可以看出,对验证集进行去重之后,现有模型在验证集的重复数据子集上的困惑度相对较低,而在去重之后的验证集上,困惑度相对较高,说明现有的语言模型也存在一定的重复性。
用发散的方式思考
本文从字面角度定位训练样本中的重复数据下拉词是怎么形成的★64xl.com顶级专业下拉,百度快速优化排名软件,去重后得到泛化能力更好的语言模型,生成时不完全复制训练语料。既然有字面重复的数据,我们自然就会发散。我们能不能从更高层次的角度来定义数据重复?
比如主题上存在重复,通常信息中娱乐新闻报道频率比较高,其他新闻占比较低。2020~2021年,受新冠疫情影响,疫情相关的报道肯定多于其他报道。即便是百科数据,也有数据结构上的侧重,高质量和低质量的词条也有区别。这些主题上的相似性,不一定能体现在字面意思上。如果用自然分布来训练语言模型,最后的结果往往会偏向这些热点事件。
再比如,一般知识的重复,或者可以叫表达的重复。在上一篇文章()中,我提出,即使一个人对某个领域不了解百度关联词条删除不掉,或者读到一篇他从未见过的文本,虽然他可能不知道里面的专有名词是什么,但他大致可以理解这段文本。也就是说,人与人之间一定有一个共享的知识体系,我称之为一般知识。如果我们把文本中的一般知识抽取出来,基于一般知识的相似性来定义文本重复,从而去除重复数据,增加数据多样性,再用对抗方法去除模型中一些“事实”知识,是不是可以让模型更具有泛化能力呢?
那么,有没有一种工具可以帮助我们找到文本中的常识呢?
其实,今年百度开源的项目——解语[1]就是一次将文本与常识联系起来的尝试。它通过定义语义词类,将中文文本转化为词类知识序列,为上文提到的利用常识聚合文本()提供了丰富、全面且相对稳定的特征。或许,通过这种方式,我们也可以完成今天话题的一个延续。
当然我们也希望在这个方向上有更多的工作,最终的理想是让算法对文本的理解能力接近人类。