AI大模型探索之路-训练篇4:大语言模型训练数据集概览

文章目录

  • 前言
  • 一、常用的预训练数据集
    • 1、网页
    • 2、书籍
    • 3、维基百科
    • 4、代码
    • 5、混合型数据集
  • 二、常用微调数据集
    • 1、指令微调数据集
      • 1.1 自然语言处理任务数据集
      • 1.2 日常对话数据集
      • 1.3 合成数据集
    • 2、人类对齐数据集


前言

在人工智能领域,构建强大的AI系统的关键步骤之一是大规模的语言模型预训练。为了实现这一目标,需要大量且多样化的训练数据。以下是对目前常用于训练大语言模型的数据集的整理与概述。
在这里插入图片描述

一、常用的预训练数据集

大语言模型在训练上需要大量的训练数据,这些数据需要涵盖广泛的内容范围。多领域、多源化的训练数据可以帮助大模型更加全面地学习真实世界的语言与知识,从而提高其通用性和准确性。本节将介绍目前常用于训练大语言模型的代表性数据集合。根据其内容类型进行分类,这些语料库可以划分为:网页、书籍、维基百科、代码以及混合型数据集。

1、网页

网页是大语言模型训练语料中最主要的数据来源,包含了丰富多样的文本内容,例如新闻报道、博客文章、论坛讨论等,这些广泛且多元的数据为大语言模型深入理解人类语言提供了重要资源。下面介绍重要的网页数据资源。
在这里插入图片描述

下面是部分通用的数据集:
1)Common Crawl. 该数据集是一个规模庞大的、非结构化的、多语言的网页数据集,包含原始网页数据、元数 据和提取的文本数据等,总数据量达到 PB 级别。由于这个数据集规模过于庞大,一般主要提取其特定时间段或者符合特殊要求的子集进行使用,注意:该数据集内部充斥着大量的噪声和低质量数据,在使用前必须清洗,常用的自动清洗工具有 CCNet 等。
2)CC-News. 该数据集是一个新闻文章数据集,数据量约 76GB,包含了从 2016 年 9 月到 2019 年 2 月期间抓取的 63M 篇英文新闻文章,并以网页存档 (WARC)文件形式提供。
3) RedPajama-Data 该数据集是一个公开的综合网页数据集,包含了来自 Common Crawl 的 100B 份文档,其使用了 CCNet 工具进行清洗,在经过过滤和去重得到约 30T 词元。
4) RefinedWeb该数据集是一个在 Common Crawl 数据的基础上通过严格 筛选和去重得到的网络数据集,共约 5T 词元。其中,开源部分有 600B 词元,数据量约 500GB,解压后需要 2.8TB 的本地存储空间。
5)WanJuan-CC(万卷 CC)该数据集是一个从 Common Crawl 数据中抽取并清洗的高质量英文数据集。从约 130B 份原始数据文档中萃取出约 1.38% 的高质量内容。
6)WebText. 该数据集是由 OpenAI 构建的一个专注于文档质量的网络文本语料库40GB。在GPT-2、GPT-3 和 InstructGPT 等模型的训练过程中,都是使用了该数据集(并未开源)。 OpenWebText. 该数据集是 WebText 的一个复现开源版本,与 WebText 的构建方法相似,保留了来自约 8M 份文档的 38GB 文本数据。

在上述网页数据集中,中文网页占比通常非常低。为了训练具有较好中文语言能力的大语言模型,通常需要专门收集与构建中文网页数据集合。下面介绍具有代表性的中文网页数据集。
1) ChineseWebText 该数据集是从 Common Crawl 庞大的网页数据中精心筛选的中文数据集。该数据集总计 1.42TB 数据量。ChineseWebText 的每篇文本都附有一个定量的质量评分,为研究人员提供了可用于筛选与使用的参考标准。此外,为满足不同研究场景的需求,
ChineseWebText 还特别发布了一个 600GB 大小的中文数据子集,并配套推出了一款名为 EvalWeb 的数据清洗工具,方便研究人员根据需求清洗数据。

2) WanJuan 1.0 Text 该数据集是上海人工智能实验室发布的万卷 1.0 多模态语料库的一部分(除文本数据集外,还有图文数据集和视频数据集)。该文本数据集由多种不同来源的数据组成,包括网页、书籍等,数据总量约 500M 个文档,数据大小超过 1 TB。

3)WuDaoCorpora Text 该数据集是北京智源研究院构建的“悟道”项目数据集的一部分(除文本数据集外,还有多模态图文数据集和中文对话数据集)。其中还包含教育、科技等超过 50 个行业数据标签,经过清洗、隐私数据信息去除后剩余 5TB,而开源部分有 200GB。

2、书籍

书籍是人类知识与文化的重要载体,已经成为了重要的预训练数据源之一。书籍通常都是有着较为严格的版权限制,使用者需要按照版权的要求来判断是否能够使用某一书籍用于训练。目前,常用的书籍数据集包括下述几个数据集合。
1) BookCorpus 该数据集是一个免费小说书籍集合,大约有 74M 句子和 1B 个单词,涵盖了 16 种不同的主题类型5GB 左右。该数据集常被用于训练小规模的模型, 如 GPT 和 GPT-2。同时,原始数据集不再公开,伦多大学创建了一个镜像版本 BookCorpusOpen,可在 Hugging Face 上进行下载。
2)arXiv Dataset是一个收录了众多领域预印本论文的网站。广泛涵盖了物理、数学和计算机科学等领域的论文文献,共包含约1.7M 篇预印本文章,总数据量约为 1.1TB,并在 Kaggle 上提供了公开下载。
3)S2ORC该数据集源于学术搜索引擎 Semantic Scholar 上的学术论文,这些论文经过了清洗、过滤并被处理成适合预训练的格式。在 Semantic Scholar 上提供了可公开下载的版本。此外,该数据集还有一个衍生数据集 peS2o,到目前为止已发布了两个版本,其中 v2 版本共计包含了约 42B 词元,并且在 Hugging Face 提供了公开下载。

3、维基百科

维基百科(Wikipedia)是一个综合性的在线百科全书,由全球志愿者共同编写和维护,提供了高质量的知识信息文章,涵盖了历史、科学、文化艺术等多个领域。维基百科的数据具有以下几个特点:

  1. 专业性:维基百科的条目通常具有良好的结构性和权威性;
  2. 多语性:维基百科支持的语言种类有汉语、英语、法语等300 多种语言;
  3. 实时性:维基百科的内容目前还在不断更新,知识信息的维护较为及时。

4、代码

代码具有高度结构化与专业性的特点。 对于预训练语言模型来说,引入包含代码的数据集可以增强模型的结构化推理能力与长程逻辑关系,能够提升模型理解和生成编程语言的能力。两个主要来源是公共 代码仓库GitHub和StackOverflow。
1)BigQuery. BigQuery 是谷歌发布的企业数据仓库,包含了众多领域的公 共数据集,如社交、经济、医疗、代码等。其中的代码类数据覆盖各种编程语言。CodeGen 抽取了 BigQuery 数据库中的公开代码数据子集构成 BIGQUERY 进行训练,以得到多语言版本的 CodeGen。
2)The Stack 该数据集由 Hugging Face 收集并发布,是一个涵盖了 30 种编程语言的代码数据集,其数据来源于 GHArchive 项目的 GitHub 活跃仓库。
3)StarCoder 该数据集是 BigCode 围绕 The Stack v1.2 进一步处理得到的代码数据集,是同名模型 StarCoder 的预训练数据。

5、混合型数据集

除了上述特定类型的数据集外,为了便于研发人员的使用,很多研究机构对于多种来源的数据集合进行了混合,发布了一系列包括多来源的文本数据集合。
1)The Pile: 一个大规模、多样化且可公开下载的文本数据集,数据来源非常广泛,包括书籍、网站、代码、科学论文和社交媒体数据等。该数据集由22个多样化的高质量子集混合而成,包括上面提到的OpenWebText、维基百科等。
2)ROOTS: 涵盖了59种不同语言数据集。该数据集主要由两部分组成:约62%的数据来源于整理好的自然语言处理数据集及相关文档、利用Common Crawl收集的网页数据以及GitHub代码数据。
3)Dolma: 该数据集也包含了多种数据源,包括来自Common Crawl的网络文本、Semantic Scholar学术论文、GitHub代码、书籍、Reddit的社交媒体帖子以及维基百科数据。

二、常用微调数据集

为了增强模型的任务解决能力,大语言模型在预训练之后需要进行适应性微调,通常涉及两个主要步骤,即指令微调(有监督微调)和对齐微调。

1、指令微调数据集

在预训练之后,指令微调(也称为有监督微调)是增强或激活大语言模型特 定能力的重要方法之一(例如指令遵循能力)。本小节将介绍几个常用的指令微调数据集,并根据格式化指令实例的构建方法将它们分为三种主要类型,即自然语言处理任务数据集、日常对话数据集和合成数据集。
在这里插入图片描述

1.1 自然语言处理任务数据集

在指令微调被提出前,早期的研究通过收集不同自然语言处理任务(如文本分类和摘要等)的实例,创建了有监督的多任务训练数据集。这些多任务训练数据集成为了构建指令微调数据集的重要来源之一。
1)P3. P3(Public Pool of Prompts)是一个面向英文数据的指令微调数据集,由超过 270 个自然语言处理任务数据集和 2,000 多种提示整合而成,全面涵盖多选问答、提取式问答、闭卷问答、情感分类、文本摘要、主题分类、自然语言推断等自然语言处理任务。
2)FLAN. 早期的 FLAN 是通过将 62 个广泛使用的 NLP 基准数据集进行格式化得到的英语指令数据集。现在俗称的 FLAN 实际上是指 FLAN-v2,主要由四个子集 Muffin、NIV2、T0-SF 和 CoT 构成。

1.2 日常对话数据集

日常对话数据集是基于真实用户对话构建的,其中查询主要是由真实用户提出的,而回复是由人类标注员回答或者语言模型所生成。主要的对话类型包括开放式生成、问答、头脑风暴和聊天。其中,三个较为常用的日常对话数据集包括ShareGPT 、OpenAssistant 和 Dolly。
1)ShareGPT. 该数据集因来源于一个开源的数据收集平台 ShareGPT 而得名。 查询来自于用户的真实提问或指令,回复则是 ChatGPT 对此生成的回答。
2)OpenAssistant. 该数据集是一个人工创建的多语言对话语料库,共有 91,829 条用户提示,69,614 条助手回复。OpenAssistant 共包含 35 种语言的语料,每条语料基本都附有人工标注的质量评级,由用户真实提供的。
3)Dolly. 该数据集是一个英语指令数据集,由 Databricks 公司发布。Dolly 包含了 15,000 个人类生成的数据实例,旨在让大语言模型与用户进行更符合人类价值的高效交互。该数据集由 Databricks 员工标注得到,主题涉及 InstructGPT 论文中提到的 7 个领域,包括头脑风暴、分类、封闭式质量保证、生成、信息提取、开放式质量保证和总结等。

1.3 合成数据集

合成数据集通常是使用大语言模型基于预定义的规则或方法进行构建的。其中,Self-Instruct-52K和 Alpaca-52K是两个具有代表性的合成数据集。
1)Self-Instruct-52K. Self-Instruct-52K 是使用 self-instruct 方法生成的英语指令数据集,共包含 52K 条指令以及 82K 个实例输入和输出。最初,由人工收集创建了 175 个种子任务,每个任务包括 1 个指令和 1 个包含输入输出的实例。然后,每次随机抽取了 8 个指令作为示例,以此提示 GPT-3 生成了新的指令,之后在这些已有指令的基础上,继续利用 GPT-3 生成实例输入及其对应的输出,从而获得了更多数据。
2)Alpaca-52K. Alpaca-52K 数据集同样是基于 self-instruct 方法进行构建的,它是在 Self-Instruct-52K 的 175 个种子任务上,利用 OpenAI 的 text-davinci-003模型获得了 52K 个不重复的指令,并根据指令和输入生成了输出,进而构成了完整的实例数据。

2、人类对齐数据集

除了指令微调之外,将大语言模型与人类价值观和偏好对齐也非常重要。现有的对齐目标一般聚焦于三个方面:有用性、诚实性和无害性。
在这里插入图片描述

1)HH-RLHF: 该数据集包含两类标注数据,分别关注于大语言模型的有用性和无害性。整个数据集共包含约169K个开放式对话,每个对话涉及一个众包工作者向智能信息助手寻求帮助、建议或请求完成等情景。信息助手将会为每个用户查询提供两个回答,一个回答被选择而另一个被拒绝。对于有用性相关的数据中,被认为更有用的回答将被选择;而对于有害性相关的数据中,被认为更有害的回答将被选择。
2)SHP:主要关注模型生成回复内容的有用性。涵盖了从烹饪到法律建议等各种主题的实例。每个数据实例都是基于一个寻求帮助的 Reddit 帖子构建的,包含该问题下帖子中的问题和帖子下两个排名较高的评论。这两个评论其中一个被 Reddit 用户认为更有用,另一个被认为不太有帮助。与HH-RLHF不同,SHP中的数据并非模型生成的回复,而是真人的回应贴子。
3)PKU-SafeRLHF : 该数据集侧重于对回复内容的有用性和无害性进行标注。该数据集囊括了330K个专家注释的实例,每一个实例都包含一个问题及其对应的两个回答。其中,每个回答都配备了安全性标签,用以明确指出该回答是否安全。
4)Stack Exchange Preferences: 该数据集专注于对答案的有用性进行标注,涵盖了来自知名编程问答社区 Stack Overflow 的约10M个问题和答案,每个数据实例均包含一个具体的问题以及两个或更多的候选答案。每个候选答案都附带一个根据投票数计算得出的分数,并配有一个是指示是否被选中的标签。
5)Sandbox Alignment Data: 致力于运用模型自身的反馈机制来进行数据标注,源于一个虚拟交互环境之中,在这个环境中,多个大语言模型根据问题给出回复然后互相“交流”,并根据彼此的反馈来不断修正和完善自己的回复,每个实例均包含一个查询、多个候选回复选项以及由其他模型给出的相应评分。
6)CValues (Chinese Values): 是一个面向中文的大模型对齐数据集,提出了安全性和责任性这两个评估标准。这个数据集包含了两种类型的提示:安全性提示(未开源)和责任性提示。

🔖更多专栏系列文章:AIGC-AI大模型探索之路

文章若有瑕疵,恳请不吝赐教;若有所触动或助益,还望各位老铁多多关注并给予支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/576057.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

synchronized 之谜

序言 本文给大家介绍一下 synchronized 关键字的部分原理。 一、内存中的 Java 对象 class A {private String attr; }先引入一个问题:上面类 A 有一个属性 attr。当类 A 实例化之后的对象在内存中是如何表示的呢? 在内存中,Java 对象由三…

Prompt Engineering,提示工程

什么是提示工程? 提示工程也叫【指令工程】。 Prompt发送给大模型的指令。比如[讲个笑话]、[用Python编个贪吃蛇游戏]、[给男/女朋友写情书]等看起来简单,但上手简单精通难 [Propmpt]是AGI时代的[编程语言][Propmpt]是AGI时代的[软件工程][提示工程]是…

Docker与Linux容器:“探索容器化技术的奥秘”

目录 一、Docker概述 二、容器技术的起源: 三、Linux容器 四、Docker的出现 五、Docker容器特点: 六、Docker三大概念: 容器: 镜像: 仓库: 七、Docker容器常用命令 一、Docker概述 在云原生时代&…

漫谈车辆诊断之DTC的状态位

搞车辆诊断测试的,离不开对DTC的状态位的测试 DTC的状态位是8个bit,每个bit代表不同的意思,每个bit置1或者置0都要满足一定的条件 初学者,很容易被这个搞得头很大 今天我们就来详细拆解一下,扫除你心中的疑惑 我们以…

8个拿来即用的Python自动化脚本!

每天你都可能会执行许多重复的任务,例如阅读新闻、发邮件、查看天气、清理文件夹等等,使用自动化脚本,就无需手动一次又一次地完成这些任务,非常方便。而在某种程度上,Python 就是自动化的代名词。 今天分享 8 个非常…

发布自己的Docker镜像到DockerHub

学会了Dockerfile生成Docker image 之后,如何上传自己的镜像到 DockerHub呢?下面我以自己制作的 bs-cqhttp 镜像为例,演示一下如何将自己的镜像发布到 Docker 仓库。 1 生成自己的 Docker 镜像 1.1 实例镜像用到的文件 图1 实例镜像制作用到…

stm32f103zet6_ADC_中断_2

1基本配置请查看 ADC_1 1stm32cubeMX配置 与ADC-1 区别在于配置了NVIC 2代码设置 回调函数 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) 这个回调函数在ADC正常转换完成后被调用。当你启动一个ADC转换(使用HAL_ADC_Start_IT()或类似函数&#x…

【数据结构(邓俊辉)学习笔记】绪论04——算法分析

文章目录 0. 前言1. 算法分析2.级数2.1基本形式2.2 收敛级数 3.循环 vs 级数4.示例 0. 前言 通过以基本计算模型作为参照,并且以大O记号的形式在上面添加适当刻度,已经建立一套对DSA进行分析的完整工具和体系。不清楚的可以看看复杂度度量 、复杂度分析…

git 命令怎么回退到指定的某个提交 commit hash 并推送远程分支?

问题 如下图,我要回退到 【002】Babel 的编译流程 这一次提交 解决 1、先执行下面命令,输出日志,主要就是拿到提交 commit 的 hash,上图红框即可 git log或者 vscode 里面直接右击,copy sha 2、执行下面命令回退 g…

【Linux】如何进行用户之间的切换——指令su

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

【Linux系统编程】基础指令(二)

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

【OceanBase诊断调优】——hpet(高精度时钟源)引起的CPU高问题排查

最近总结一些诊断OCeanBase的一些经验,出一个【OceanBase诊断调优】专题出来,也欢迎大家贡献自己的诊断OceanBase的方法。 1. 前言 昨天在问答区帮忙排查一个用户CPU高的问题,帖子链接:《刚刚新安装的OceanBase集群,…

代码随想录算法训练营第三十六天| 435.无重叠区间、763.划分字母区间、56.合并区间

系列文章目录 目录 系列文章目录435. 无重叠区间贪心算法按左边界排序(与【452. 用最少数量的箭引爆气球】思路差不多) 763.划分字母区间贪心算法①将字符串映射到哈希数组,用二维数组记录每个字母存在的区间, 转化为重叠区间问题…

手搓单链表(无哨兵位)(C语言)

目录 SLT.h SLT.c SLTtest.c 测试示例 单链表优劣分析 SLT.h #pragma once#include <stdio.h> #include <assert.h> #include <stdlib.h>typedef int SLTDataType;typedef struct SListNode {SLTDataType data;struct SListNode* next; }SLTNode;//打印…

数据治理和数据管理 傻傻分不清楚?

互联网时代&#xff0c;数据&#xff0c;这一无形资产&#xff0c;已成为现代企业的核心竞争力。如何高效地管理和利用数据&#xff0c;成为企业关注的焦点。在这个过程中&#xff0c;数据治理&#xff08;Data Governance&#xff09;和数据管理&#xff08;Data Management&a…

1分钟掌握 Python 函数参数

任何编程语言函数都是非常重要的一部分&#xff0c;而在进行函数调用时&#xff0c;了解函数的参数传递方式是非常有必要的。Python中支持哪些传参方式呢&#xff1f; Python中的传参方式是比较灵活的&#xff0c;主要包括以下六种&#xff1a; 按照位置传参按照关键字传参默…

【算法基础实验】图论-构建无向图

构建无向图 前提 JAVA实验环境 理论 无向图的数据结构为邻接表数组&#xff0c;每个数组中保存一个Bag抽象数据类型&#xff08;Bag类型需要专门讲解&#xff09; 实验数据 我们的实验数据是13个节点和13条边组成的无向图&#xff0c;由一个txt文件来保存&#xff0c;本…

网贷大数据黑名单要多久才能变正常?

网贷大数据黑名单是指个人在网贷平台申请贷款时&#xff0c;因为信用记录较差而被列入黑名单&#xff0c;无法获得贷款或者贷款额度受到限制的情况。网贷大数据黑名单的具体时间因个人信用状况、所属平台政策以及银行审核标准不同而异&#xff0c;一般来说&#xff0c;需要一定…

森林消防泵柱塞泵工作原理深度解析——恒峰智慧科技

森林是地球上重要的生态系统&#xff0c;而森林火灾则是这一生态系统面临的主要威胁之一。为了有效应对森林火灾&#xff0c;森林消防泵成为了不可或缺的灭火工具。其中&#xff0c;柱塞泵作为森林消防泵的核心部件&#xff0c;其工作原理的理解对于提高森林消防效率具有重要意…

Java面试八股文-2024

面试指南 TMD&#xff0c;一个后端为什么要了解那么多的知识&#xff0c;真是服了。啥啥都得了解 MySQL MySQL索引可能在以下几种情况下失效&#xff1a; 不遵循最左匹配原则&#xff1a;在联合索引中&#xff0c;如果没有使用索引的最左前缀&#xff0c;即查询条件中没有包含…