昨天晚上突然发现自己之前参加datawhale拿了优秀学习者的比赛,自己得了二等奖……证书忘记申请了。我当时真没想到自己能得奖,毕竟CV好卷。昨晚过去瞅了一眼发现自己竟然得奖了。
说回这边的大模型学习,昨天做的笔记链接,我最后都没有放入打卡里面,因为实在是很丢人,把原本的笔记给照抄照搬了一份过来。
今天早上看新一章节的时候就在想要怎么写笔记。
我想应该还是“尝试用自己的话来概括”,第二是仔细思考能从里面学习到,或者有什么疑问吧。群里也有一些朋友有一些想法,交流后再次对自己的想法有了验证,可以说是非常好。
写这个只是为了打卡方便
本节讨论的是大模型的数据。
和传统的深度学习不同,大模型的训练数据一般使用原始文本。
针对于大模型的数据集评估有很多方面,相比其他类型的数据集,nlp数据集还需要盖其他方面,例如策划理念,语言多样性,说话人和注释者的人口统计学信息等。
有毒性和新闻的可信度成负相关。
来源:大模型训练数据来源通常是来自网络,但是也有一些高质量的数据集如The Pile.
由于训练数据可能存在很多垃圾信息,同时会有很多数据污染之类的问题,在开发GPT-3的时候,在数据处理上做了相当大的工作(e.c.训练了一个二元分类器判断原始文本内容的好坏,后期进行模糊去重和采样以降低比例), 以期让数据达到合理的标准。
为了让数据集更加规范,人们建议开展数据集文档,规范数据集的标准。同时人们开始思考数据的本质。
学习构建模型之前,先做好数据的准备工作。
附录:通常在机器学习中,训练数据和测试(评估)数据是相似的,或者至少是同一类型的。但对于大型语言模型来说,训练数据就是“原始文本”。
在一般的机器学习任务中,我们会将训练数据和评估数据划分为不同的集合,以确保评估的结果能够准确反映模型在实际应用中的性能。这样做的原因是,我们希望评估数据能够代表模型在未见过的数据上的表现。
然而,大型语言模型在训练过程中使用的数据通常是从原始文本中提取的,而不是像其他机器学习任务那样预先划分的数据集。这意味着模型的训练数据和评估数据之间可能存在一些差异,因为评估数据是从模型训练数据中独立选择的。
因此,对于大型语言模型,我们需要谨慎评估其性能,并考虑到训练数据和评估数据之间的差异。这可能需要采取一些特殊的评估策略,例如使用不同的评估数据集或进行交叉验证,以确保模型在实际应用中的性能能够被准确评估。
为了实现高度的能力(如语言和世界知识),大模型的数据应涵盖广泛的领域、类型、语言等。
大部分大模型的数据都是从网络来的,大公司存储的私有数据集甚至比公开可用的数据更大。
网络是寻找这种文本的自然场所(但不是唯一场所)网络的体量绝对巨大。
作为下限,谷歌的搜索索引就有100PB(参考资料)。实际的网络可能更大,而深网的规模比这还要大。沃尔玛每小时就会产生2.5PB的数据.
Common Crawl是一个非营利组织,它对网络进行爬取,并提供免费给公众的快照。由于其便利性,它已经成为许多模型如T5、GPT-3和Gopher的标准数据源。例如,Common Crawl在2021年4月的快照就有320TB的数据,这比谷歌的索引小了好几个数量级。
尽管网络数据丰富,但Bender等人在2021年的研究中指出:
可以看出,数据存在人口和地域的代表性不均衡:过多数据来自于发达地区的年轻用户,同时还存在性别上的不均衡,以及流动性别的缺失。
因此,我们的结论是:理解和记录用于训练大型语言模型的数据集的组成是至关重要的。
WebText数据集被用于训练GPT-2模型。其目标是获取既多样化又高质量的数据集。以前的研究主要是在新闻、维基百科或小说等数据集上进行训练,而Common
Crawl包含了大量的垃圾信息(如无意义文本和模板文本)。Trinh和Le在2018年根据n-gram与目标任务的重叠性,选择了Common
Crawl的一小部分。创建WebText的过程包括:抓取至少获得3个赞的所有外链,过滤掉维基百科以便在基于维基百科的基准测试中进行评估,最终得到了40GB的文本。
WebText未被公开。
OpenWebText数据集在理念上复制了WebText的构建方法。
它遵循了WebText的制作思路和方法,目的是尽可能地模拟和复现WebText的数据特性和结构。
这样,研究者们就可以利用OpenWebText来进行一些原本需要WebText数据集的实验和研究。OpenWebText从Reddit提交的数据集中提取所有URL,使用Facebook的fastText过滤掉非英语内容,删除近乎重复的内容,最终得到了38GB的文本。
在2020年的RealToxicityPrompts研究中,Gehman等人对这两个数据集进行了毒性分析:
OpenWebText有2.1%的内容毒性得分>=50%,WebText有4.3%的内容毒性得分>=50%。
新闻的可靠性与毒性负相关(Spearman ρ=−0.35),并且OpenWebText中有3%的内容来自被禁止或被隔离的subreddits,如 T h e D o n a l d The Donald TheDonald和 W h i t e R i g h t s WhiteRights WhiteRights。
C4语料库被用来训练T5模型。这个语料库从2019年4月的Common Crawl快照(1.4万亿个标记) 开始,移除了“bad words”,移除了代码(“{”),通过langdetect过滤掉了非英语文本,最终得到了806GB的文本(1560亿个标记)。
Dodge等人在2021年对C4数据集进行了深入分析。分析主要涉及以下几个方面:
值得注意的是,Raffel等人在2020年的研究中只提供了重建脚本;仅运行这些脚本就需要数千美元。而且,令人惊讶的是,大量数据来自patents.google.com。互联网档案中的65%页面都被纳入其中,而在这些页面中,92%的页面是在过去十年内编写的。然而,虽然美国托管的页面占到了51.3%,来自印度的页面数量却相对较少,尽管那里有大量的英语使用者。另外,来自patents.google.com的一些文本是自动生成的,因此可能存在系统性的错误:
例如,用外国的官方语言(如日语)提交的专利将自动翻译成英语;另一些则是由光学字符识别(OCR)自动生成的。
互联网档案的数据其实可能存在由于翻译原始文本而产生的错误,而且地域差异性过大。
Benchmark的数据污染问题是指在机器学习和数据科学领域中,使用不准确、不完整或不代表性的数据集进行模型评估和比较的情况。
当我们进行模型评估时,我们通常会使用一个数据集作为基准(Benchmark)来比较不同模型的性能。这个数据集应该是代表性的,能够准确地反映出实际应用中的数据分布和问题场景。然而,数据污染问题可能会导致Benchmark数据集不准确或不完整,从而影响对模型性能的评估。
数据污染问题可能包括以下情况:
当我们评估大型语言模型的能力时,我们常常会使用一些基准数据,例如问题-答案对。然而,若基准数据在模型的训练数据中出现过,基准性能就可能会产生偏差。一般而言,在机器学习中,保证训练数据和测试数据的分离(我们称之为数据卫生)相对容易。但对于大型语言模型,训练数据和基准数据都源自互联网,要事先保证它们的完全分离就显得有些困难。
在大语言模型中,完全分离测试数据和训练数据是很困难的事情。
以XSum摘要数据集为例,输入的是一段关于一个前阿森纳门将的介绍,而输出则是这位门将被任命为技术主管的新闻,细节如下面的例子。这就存在两种类型的污染。
一种是输入和输出污染,即输入和输出都出现在训练数据中, 其比例在1.87%至24.88%之间。
另一种是只有输入在训练数据中出现, 比如来自维基百科的QNLI数据集,这种污染的比例在1.8%至53.6%之间。
只有输入在训练数据中出现,可能导致模型在输出方面的性能不佳,无法准确地对输入进行分类或预测。
这种类型的污染可能会出现在一些特殊情况下,例如当我们只能访问到输入特征的数据,而无法获取到对应的真实输出标签时。
**Input**: _The 48-year-old former Arsenal goalkeeper played for the Royals for four years. He was appointed youth academy director in 2000 and has been director of football since 2003. A West Brom statement said: “He played a key role in the Championship club twice winning promotion to the Premier League in 2006 and 2012.
**Output**: _West Brom have appointed Nicky Hammond as technical director, ending his 20-year association with Reading._
此外,我们还要注意,这种数据污染并不是由于数据集的托管方式导致的, 因为数据集通常会以JSON文件的形式存储,而不是网页。
但是,数据集也可能引发多种问题。首先,存在代表性损害的可能,
例如,我们发现与特定族群相关的词汇(如"犹太"和"阿拉伯")与积极情绪词汇的共现频率存在差异,这可能反映了模型的某种偏见。
其次,数据集的选择和过滤也可能导致分配损害。以过滤版的Common Crawl(即C4)为例,只有大约10%的内容被保留。
然而,涉及性取向的内容更容易被过滤掉,而其中一部分是并无冒犯之意的。某些特定的方言也更容易被过滤,例如非洲裔美国人的英语和西班牙裔的英语,相比之下,白人美国英语的过滤率就要低得多。
GPT-3的数据集主要源自Common Crawl,而Common Crawl又类似于一个参考数据集——WebText。
GPT-3下载了41个分片的Common Crawl数据(2016-2019年)。通过训练一个二元分类器来预测WebText与Common Crawl的区别,如果分类器认为文档更接近WebText,那么这个文档就有更大的概率被保留。
在处理数据时,GPT-3采用了模糊去重的方法(检测13-gram重叠,如果在少于10个训练文档中出现,则移除窗口或文档),并从基准数据集中移除了数据。
此外,GPT-3也扩大了数据来源的多样性(包括WebText2、Books1、Books2以及维基百科)。在训练过程中,Common Crawl被降采样, 它在数据集中占82%,但只贡献了60%的数据。
GPT-3在数据处理上做了大量细致的工作,这也是大模型重点之一:庞大的数据需要进行评估来进行合适的处理和相对的保留,以保证模型质量。
然而,GPT-3也暗示了我们除了网络爬虫之外,也许还可以寻找其他更高质量的数据来源。
EleutherAI(一个致力于构建开放语言模型的非营利组织)进一步推动了这个想法。他们发布了一种语言模型的数据集,名为The Pile,其核心理念是从较小的高质量数据源(如学术和专业资源)中获取数据。
The Pile数据集包含了825GB的英文文本,由22个高质量数据集组成。
当用这个数据集训练GPT-2Pile(1.5B参数)并与用GPT-3数据集训练的GPT-3(175B参数)进行比较时,研究者们发现,The
Pile包含了大量GPT-3数据集未能很好覆盖的信息。 他们还分析了贬损内容、性别/宗教偏见等问题,结果与以前的研究大致相同。
总的来说,网络和私有数据的总量是巨大的,但是简单地将所有数据都用于训练并不能有效地利用计算资源。
数据的过滤和策划(如OpenWebText,C4,GPT-3数据集)是必要的,但可能会导致偏见。
策划非网络的高质量数据集(如The Pile)是有前途的,但也需要仔细记录和审查这些数据集。
我们将深入探讨数据的一般原则,暂时不讨论语言模型数据集的具体内容。
长期以来,人们都明白文档记录的重要性,然而在机器学习领域,这个过程往往被处理得较为随意。为了更好地理解这一点,让我们来看一些其他领域的例子:
*在电子行业中,每个组件都有一份详细的数据表,包含其运行特性、测试结果、推荐使用情况等信息;又如美国食品药品监督管理局要求所有的食品都必须标注营养成分。
*Gebru等人在2018年发表的论文深刻影响了这一领域,他们提出了围绕文档的社区规范。Bender和Friedman在2018年的论文《数据声明》也提出了一个更适用于语言数据集的框架,这两个工作都在强调透明度。
数据文档的主要目的有两个:一方面,它让数据集的创建者有机会反思他们的决策,以及在创建数据集过程中可能产生的潜在危害,比如社会偏见;另一方面,它让数据集的使用者了解何时可以使用数据集,何时不应使用数据集。
在整个数据集的生命周期中,我们需要考虑很多问题,比如数据集的创建动机,谁是数据集的创建者,数据集的创建是由谁资助的。在数据集的组成部分,我们需要了解数据集中的实例代表什么,是否有缺失信息,是否包含机密数据等。
在收集过程中,我们需要了解每个实例的数据是如何获取的,谁参与了数据收集,他们是如何获得报酬的,以及是否进行了道德审查等。
在预处理、清理和标记阶段,我们需要了解这些工作是否已经完成,是否有相应的软件可供使用。
在数据集的使用方面,我们需要了解数据集是否已经被用于某些任务,是否有不适合使用该数据集的任务。
在分发阶段,我们需要了解数据集将如何分发,是否有第三方对数据施加了知识产权或其他的限制。
在维护阶段,我们需要了解谁会负责维护数据集,数据集是否会更新。
专门针对自然语言处理(NLP)数据集的工作,比如数据声明,还涵盖了其他方面,例如策划理念,语言多样性,说话人和注释者的人口统计学信息等。
以"The Pile"数据集为例,我们可以更好地理解这些问题。
目前为止,我们主要关注了现有大型语言模型数据集的分析以及文档记录,但实际上数据是一个广泛的概念,可以从许多其他角度进行研究。
在数据管理方面,我们在机器学习研究中通常认为数据集是固定的对象,收集起来之后,直接投入到训练算法中。然而在数据库领域,有一整个子领域正在思考数据是如何产生和使用的生态系统,这在工业领域特别相关。
在基础模型报告的数据部分中讨论了一些问题。
数据治理主要关注一个组织如何创建数据、维护其质量和安全性。Hugging Face发起的BigScience项目旨在收集一个大型多语种数据集并训练一个大型语言模型。
BigScience的数据治理工作组正在开发一个框架,以负责任地策划高质量的数据源,而不是无差别地爬取网页。
数据尊严是一个源自微软和RadicalxChange的概念,试图思考数据的本质。人们创造数据,由于人们生活在社会环境中,数据也并不仅仅是个体的财产,而是群体的财产。比如电子邮件、遗传数据。在个体层面上,数据没有价值,但在集体层面上,它具有巨大的价值。 相关的有一个为在机器学习的背景下给定数据点赋予价值的框架Data Shapley。
现状是,人们免费放弃他们的数据,大公司从中获取大量的价值和权力。例如,Alice和Bob都是作家。Alice免费提供写作示例,这可以被用来训练可以替代Bob的语言模型。我们应该将数据视为劳动而不是财产权。
数据隐私是在个人层面上工作,而这是不够的。有一种提议是数据联盟,这些联盟是介于数据生产者和数据购买者之间的中间组织,它们能够代表数据生产者进行集体谈判。更多详情请阅读这篇文章。
Documentation for datasets:
Datasets:
Analysis of datasets:
Filtering datasets:
其实我个人学习东西一向是比较功利主义的、看这个东西有没有用的。这个课程给我的感觉就是非常的普世,因为他里面谈论的关于代码的东西非常少(我个人是比较喜欢看有代码模型资料的,光看文字的话会觉得有种太过理论。。?
除此之外我很好奇,这算是一个方向么,一个nlp和公众public的一个结合的cross field这么一个方向么,(但我个人觉得这种交叉领域可能以后会越来越多,代码其实很多时候可以由ai工具来生成,使用是很方便的事情。)
话说像是我对一个数据集进行评估这样的工作可以发论文么(我个人觉得是可以的,但是可能不能发毕业论文,乐)
获取一个学历这种事情果然还是太过浅层了,虽然说学历这种东西都是可视化一个人的价值或者标准的,但我还是比较喜欢从心,想干嘛就干嘛。。。
好想多了解了解数据库系统那个领域!!把最近的事情干完然后去看新领域!