第五章:大模型的数据

news/2024/7/24 18:43:15 标签: 大数据

参考链接:https://github.com/datawhalechina/so-large-lm/tree/main

一、 大语言模型背后的数据

⼤型语⾔模型是在"原始⽂本"上进⾏训练的。为了实现⾼度的能⼒(如语⾔和世界知识),这些⽂本应涵盖⼴泛的领域、类型、语⾔等。
⽹络是寻找这种⽂本的⾃然场所(但不是唯⼀场所),因此这将是我们主要关注的焦点。
值得注意的是,⼤公司中存储的私有数据集甚⾄⽐公开可⽤的数据更⼤。

尽管⽹络数据丰富,但Bender等⼈在2021年的研究中指出:

  • ⼤规模数据在全球⼈⼝中的代表性仍然不均衡。
  • ⽹络数据过多地代表了来⾃发达国家的年轻⽤户。
  • GPT-2的训练数据基于Reddit,根据⽪尤互联⽹研究的2016年调查,美国Reddit⽤户中有67%是男性,64%的年龄在18到29岁之间。
  • 维基百科的编者中只有8.8-15%是⼥性。
  • ⽹络上的骚扰可能会让某些⼈群(如跨性别者、神经发育不同的⼈)产⽣排斥感。
  • 过滤"不良词汇"可能进⼀步边缘化某些⼈群(如LGBT+)。

因此,我们的结论是:理解和记录⽤于训练⼤型语⾔模型的数据集的组成是⾄关重要的。

1.1 WebText和OpenWebText数据集

WebText数据集被⽤于训练GPT-2模型。其⽬标是获取既多样化⼜⾼质量的数据集。
尽管OpenAI并没有公开发布WebText数据集,但OpenWebText数据集在理念上复制了WebText的构建⽅法。也就是说,虽然OpenWebText并⾮OpenAI直接发布的WebText的副本,但它遵循了WebText的制作思路和⽅法,⽬的是尽可能地模拟和复现WebText的数据特性和结构。

1.2 Colossal Clean Crawled Corpus(C4)

C4语料库被⽤来训练T5模型。
Dodge等⼈在2021年对C4数据集进⾏了深⼊分析。分析主要涉及以下⼏个⽅⾯:

  • 元数据:来源,话语数据。
  • 包含的数据:由机器或⼈类创作的,社会偏⻅,数据污染。
  • 排除的数据:医疗或健康数据,⼈⼝身份。

1.3 Benchmark的数据污染问题

当我们评估⼤型语⾔模型的能⼒时,我们常常会使⽤⼀些基准数据,例如问题-答案对。然⽽,若基准数据在模型的训练数据中出现过,基准性能就可能会产⽣偏差。⼀般⽽⾔,在机器学习中,保证训练数据和测试数据的分离(我们称之为数据卫⽣)相对容易。但对于⼤型语⾔模型,训练数据和基准数据都源⾃互联⽹,要事先保证它们的完全分离就显得有些困难。

  • 存在两种类型的污染。⼀种是输⼊和输出污染。
  • 数据集也可能引发多种问题。⾸先,存在代表性损害的可能;其次,数据集的选择和过滤也可能导致分配损害。

1.4 GPT-3的数据集

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也暗示了我们除了⽹络爬⾍之外,也许还可以寻找其他更⾼质量的数据来源。EleutherAI(⼀个致⼒于构建开放语⾔模型的⾮营利组织)进⼀步推动了这个想法。他们发布了⼀种语⾔模型的数据集,名为The Pile,其核⼼理念是从较⼩的⾼质量数据源(如学术和专业资源)中获取数据。

1.5 The Pile数据集

The Pile数据集包含了825GB的英⽂⽂本,由22个⾼质量数据集组成。当⽤这个数据集训练GPT-2Pile(1.5B参数)并与⽤GPT-3数据集训练的GPT-3(175B参数)进⾏⽐较时,研究者们发现,ThePile包含了⼤量GPT-3数据集未能很好覆盖的信息。他们还分析了贬损内容、性别/宗教偏⻅等问题,结果与以前的研究⼤致相同。

二、数据集文档

在本⽂中,我们将深⼊探讨数据的⼀般原则,暂时不讨论语⾔模型数据集的具体内容。
数据⽂档的主要⽬的有两个:⼀⽅⾯,它让数据集的创建者有机会反思他们的决策,以及在创建数据集过程中可能产⽣的潜在危害,⽐如社会偏⻅;另⼀⽅⾯,它让数据集的使⽤者了解何时可以使⽤数据集,何时不应使⽤数据集。

三、数据生态

在数据管理⽅⾯,我们在机器学习研究中通常认为数据集是固定的对象,收集起来之后,直接投⼊到训练算法中。然⽽在数据库领域,有⼀整个⼦领域正在思考数据是如何产⽣和使⽤的⽣态系统,这在⼯业领域特别相关。

四、总结

现产生的数据多种多样,每个平台、每家公司都有大量的数据集,如何将数据的危害降低,从中获得更有价值的信息是非常有必要的。多了解数据集的用途,以及不同数据集的差距。


http://www.niftyadmin.cn/n/5338672.html

相关文章

maven无法识别本地maven仓库包解决方案

前言:由于本地maven仓库已经有了相关依赖包,idea还是去远程仓库下载(不知何原因,生产上到远程仓库的网络突然不通了),故需要自己本地上传相关包到生产主机并修改setttings文件来强制读取本地仓库方案 settings文件修改如下方式即…

NumPy2要来了,但先别急!

B站:啥都会一点的研究生公众号:啥都会一点的研究生 如果你正在使用 Python 编写代码,那么很有可能正在直接或间接地使用 NumPy 如Pandas、Scikit-Image、SciPy、Scikit-Learn、AstroPy…这些都依赖于 NumPy NumPy 2 是一个新的重要版本&am…

新定义51单片机(RD8G37)实现测距测速仪

本文描述用新定义51单片机(RD8G37)超声波一体测距传感器实现简单的测距测速仪。 测距仪演示效果 新定义RD8G37Q48RJ开发板 超声波测距模块: 8位并口屏 1、main.c unsigned short timeConsuming0; unsigned int oldDistance;void rectClearS…

计算机体系结构——多处理机系统

一、概述 重要概念 评估指标 通信延迟 通信延迟=发送开销+跨越时间+传输延迟+接收开销 跨越时间 数字信号从发送方的线路端传送到接收方的线路端所经过的时间。 传输时间 全部的消息量除以线路带宽。 多处理机的架构 根…

Linux 查看命令有哪些?区别是什么(2023-12-27)

参考文章 linux中ls、cat、vim、more、head、tail、grep同是查看命令,他们之间到底有什么区别? - 知乎 linux中ls、cat、vim、more、head、tail、grep同是查看命令,他们之间到底有什么区别? 1、ls ls(英文全拼&…

C++中的虚拟现实(VR)与增强现实(AR)应用开发

C作为一种高效的编程语言,在虚拟现实(VR)和增强现实(AR)应用开发中扮演着重要角色。VR和AR是当前科技领域中备受关注的热门技术,它们提供了全新的交互方式和沉浸式体验。在本篇文章中,我将介绍C…

74.搜索二维矩阵 - 力扣(LeetCode)

题目描述 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回…

08. 面向对象编程(二)

目录 1、前言 2、多重继承 2.1、潜在的问题 3、Property 4、staticmethod 5、运算符重载 5.1、加法运算符 的重载 5.2、字符串表示运算符 str() 的重载 5.3、索引运算符 [] 的重载 6、小结 1、前言 上一篇文章中,我们介绍了面向对象编程的类和实例&…