配比并发布数据集
数据配比介绍
不同数据源与大语言模型某些特定能力的学习具有紧密的联系,根据来源不同,预训练数据主要分为两种类型:
- 通用文本数据和行业文本数据。通用文本数据涵盖了网页、书籍和对话文本等,主要是为了保留模型的通用能力,避免在下游任务上过拟合。
- 行业文本数据主要为了提升模型解决下游任务的能力。以Llama模型的数据配比为例,主要包括了82%的网页数据、6.5%的代码数据、4.5%的书籍数据、4.5%的百科数据,以及2.5%的论文数据。但是对于一些更加注重代码生成能力的代码大模型,则需要混入更多的代码数据。
在实际训练的过程中,通用文本数据和行业文本数据的比例非常重要,如果行业数据的比例过高,可能会丢过多的通用能力,反之可能无法很好地学习行业知识。通常来说,行业数据和通用数据的比例在1:4至1:9之间,如果行业数据的质量较高,可以适当增加行业数据的混合比例。如果想要尽可能多地保留通用能力,则应该混入更多的高质量通用数据。
针对不同的行业场景,也应该考虑更加合适的配比方案:
- 医疗场景:重点是患者问诊、病例分析、药物推荐等,通常需要精准的领域数据。配比方案应优先考虑医学领域数据,以及各个医院的真实数据,确保模型能处理专业性强的文本和更加实际的案例。
- 金融场景:以财经新闻、股票市场分析报告、金融法规等为主。配比方案应关注财经新闻数据和金融报告等内容。该场景需要根据实际数据质量进行考虑,如果数据中包含有大量的财务报表等知识密度较低的数据,则可以适当降低该数据的比例。
- 法律场景:聚焦法律条文、判例库、裁判文书、合同文书等,数据的专业性要求较高,但是数据中可能包含很多的人名地名,需要针对性进行数据加工。配比方案应特别注重法律领域数据,并避免过多的通用数据。法律文献的数据质量通常较为不错,可适当提高行业数据的比例。
- 客服场景:包括客户对话记录、FAQ数据、客服手册等。配比方案应重点考虑用户交互和问题解答相关数据。客户对话的数据质量通常没有那么高,可适当降低行业数据的比例。
数据配比操作步骤
在ModelArts Studio平台上使用数据集配比功能时:
- 登录ModelArts Studio大模型开发平台,进入所需空间。
- 在左侧导航栏中选择“数据工程 > 数据加工 > 配比任务”,单击界面右上角“创建配比任务”。
- 文本类型选择“预训练文本”,之后选择需要配比的数据集,单击“下一步”。
图1 选择配比数据集
- 输入每个数据集配置的条数比例,单击“下一步”。
- 填写“资源配置”,“数据集名称”和“描述”,以及“扩展信息”。
单击
展开资源配置,可以设置任务资源 。也支持自定义参数配置,单击添加参数,输入参数名称和参数值。
表1 参数配置 参数名称
参数说明
numExecutors
Executor的数量,默认值2。Executor是运行在工作节点上的进程,它负责执行具体的task任务,并将计算结果返回给Driver。每个Executor每个核同时能跑一个task任务,所以增加了Executor的个数相当于增大了任务的并发度。在资源充足的情况下,可以相应增加Executor的个数,以提高运行效率。
numExecutors * executorMemory最小值为4,最大值为16。
executorCores
每个Executor进程使用的CPU内核数量,默认值2。每个Executor多个核同时能跑多个task任务,相当于增大了任务的并发度。但是由于所有核共用Executor的内存,所以要在内存和核数之间做好平衡。
numExecutors * executorMemory最小值为4,最大值为16。executorCores和executorMemory的比例需要在1:2~1:4之间。
executorMemory
每个Executor进程使用的内存数量,默认值4。Executor的内存主要用于任务执行、通信等。当一个任务很大的时候,可能需要较多资源,因而内存也可以做相应的增加;当一个任务较小运行较快时,就可以增大并发度减少内存。
executorCores和executorMemory的比例需要在1:2~1:4之间。
driverCores
驱动程序进程使用的CPU内核数量,默认值2。Driver负责任务的调度,和Executor之间的消息通信。
driverCores和driverMemory的比例需要在1:2~1:4之间。
driverMemory
驱动程序进程使用的内存数量,默认值4。Driver负责任务的调度,和Executor之间的消息通信。当任务数变多,任务平行度增大时,Driver内存都需要相应增大。
driverCores和driverMemory的比例需要在1:2~1:4之间。
图2 资源配置自动生成加工数据集:
勾选,配置生成加工数据集的信息,如图 自动生成加工数据集;单击右下角“确定”,平台将启动配比任务。配比任务运行成功后自动生成加工数据集。
不勾选,单击右下角“确定”,平台将启动配比任务。配比任务运行成功后手动生成加工数据集。
扩展信息(可选):
可选择行业、语言信息,或自定义数据集属性。
图4 扩展信息 - 单击页面右下角“确定”,回退至“配比任务”页面,在该页面可以查看数据集配比任务的状态,若状态为“数据集生成成功”,则数据配比成功。
数据发布操作步骤
为了将数据用于后续模型训练等操作,需要将数据集发布为特定格式,文本类数据集支持发布的格式有标准格式和盘古格式两种,在预训练数据发布时,这两种数据格式与预处理阶段的数据格式是一致的。
创建文本类数据集发布任务步骤如下:
- 登录ModelArts Studio大模型开发平台,进入所需空间。
- 在左侧导航栏中选择“数据工程 > 数据发布 > 发布任务”,单击界面右上角“创建发布任务”。
- 在“创建发布任务”页面,选择数据集模态“文本 > 预训练文本”类型的数据集,选择数据集,单击“下一步”。
图5 创建数据发布任务
- 在“基本配置”中选择数据用途、数据集可见性、使用场景和格式配置。
- 填写参数配置、数据集名称、描述,设置扩展信息后,单击“下一步”。
表2 参数配置 参数名称
参数说明
numExecutors
Executor的数量,默认值2。Executor是运行在工作节点上的进程,它负责执行具体的task任务,并将计算结果返回给Driver。每个Executor每个核同时能跑一个task任务,所以增加了Executor的个数相当于增大了任务的并发度。在资源充足的情况下,可以相应增加Executor的个数,以提高运行效率。
numExecutors * executorMemory最小值为4,最大值为16。
executorCores
每个Executor进程使用的CPU内核数量,默认值2。每个Executor多个核同时能跑多个task任务,相当于增大了任务的并发度。但是由于所有核共用Executor的内存,所以要在内存和核数之间做好平衡。
numExecutors * executorMemory最小值为4,最大值为16。executorCores和executorMemory的比例需要在1:2~1:4之间。
executorMemory
每个Executor进程使用的内存数量,默认值4。Executor的内存主要用于任务执行、通信等。当一个任务很大的时候,可能需要较多资源,因而内存也可以做相应的增加;当一个任务较小运行较快时,就可以增大并发度减少内存。
executorCores和executorMemory的比例需要在1:2~1:4之间。
driverCores
驱动程序进程使用的CPU内核数量,默认值2。Driver负责任务的调度,和Executor之间的消息通信。
driverCores和driverMemory的比例需要在1:2~1:4之间。
driverMemory
驱动程序进程使用的内存数量,默认值4。Driver负责任务的调度,和Executor之间的消息通信。当任务数变多,任务平行度增大时,Driver内存都需要相应增大。
driverCores和driverMemory的比例需要在1:2~1:4之间。
- 当任务状态显示为“运行成功”时,说明数据发布任务执行成功,生成的“发布数据集”可在“数据工程 > 数据管理 > 数据集 > 发布数据集”中查看。