大模型预训练数据工程

大模型预训练数据工程

大模型预训练数据工程分为如下几个步骤:

  1. 数据抽取
  2. 数据过滤
  3. 数据去重
  4. 数据配比
  5. 数据课程
  6. 数据格式

1、数据抽取

从数据源中提取有效数据并整理,可以从如下方式获取数据:

  • 网络爬虫
  • 网页
  • 文档

在获取数据的同时尽可能的保留与数据相关的元信息,这些元信息在后续模型训练中会发挥作用。

2、 数据过滤

  • 语言识别
    • 针对特定要求的模型,仅需有指定的语言作为训练数据,需要多其他不需要的语言进行过滤
      • 基于Unicode编码识别
      • N-gram语言分类器
        • fasText
        • Langdetect

以下是使用Langdetect库进行的语言识别示例:

from langdetect import detect
from langdetect import detect_langs

s1 = "汉语是世界上最优美的语言,正则表达式是一个很有用的工具"
s2 = "正規表現は非常に役に立つツールテキストを操作することです"
s3 = "あアいイうウえエおオ"
s4 = "정규 표현식은 매우 유용한 도구 텍스트를 조작하는 것입니다"
s5 = "Regular expression is a powerful tool for manipulating text."
s6 = "Regular expression 正则表达式 あアいイうウえエおオ 정규 표현식은"

print(detect(s1))
print(detect(s2))
print(detect(s3))
print(detect(s4))
print(detect(s5))
print(detect(s6))     # detect()输出探测出的语言类型
print(detect_langs(s6))    # detect_langs()输出探测出的所有语言类型及其所占的比例

# 结果
"""
zh-cn
ja
ja
ko
en
ja
[ca:0.714283074134662, ja:0.2857138453238958]
"""
  • 质量过滤
    • 基于规则
      • URL
      • 关键词
      • 预定义的规则
    • 基于模型
      • 相似度(样本与高质量数据相似度)
      • 分类(高质量与低质量)
      • 模型打分

3、数据去重

注意:

重复的数据在不同条件下具有的作用不同,不一定是好的,或者坏的作用。优质的重复数据某种程度上可以加强模型的相应能力。
重复数据存在的问题:

  1. 损害模型的泛化性,使得模型不是学习而是简单的记忆
  2. 会让loss在训练中期陡然上升
  3. 会让scaling law失效
  4. 会让模型失去复制能力(例如,通过few-shot让模型来完成相同形式的输出)
  5. 让模型的微调后性能变差

数据区中的策略:
三种级别:

  • 句子级别
  • 锻炼级别
  • 文档级别
    策略:
  • 完全匹配
  • 模糊匹配
  • 语义匹配
    在大模型训练过程中,需要训练的数据量较大,为了加速数据去重,可以使用分桶的方式,先将所有的数据都划分进多个桶,对每个桶内进行数据去重。也可以通过检查数据来源URL的方式先进行一次数据去重
    除了去重大模型训练数据中的重复数据,还需要注意污染数据,训练数据与测试数据的交叉数据被称为污染数据,可以通过N-gram或优质大模型的帮助来去除污染数据。

4、数据配比

大模型训练中,训练数据的配比会影响大模型的性能。
设计数据配比方法:

  1. 根据下游任务设计数据集
  2. 人工设计数据
  3. 自动学习(DoReMi)

5、数据课程

数据配比关注的是训练数据中的不同数据的类型数量,数据课程关注的是在训练大模型的过程中,不同类型数据训练的先后顺序。
不同的数据任务之间存在相互促进的作用,一个较好的数据训练顺序可以提升模型效果。

6、数据格式

为了提升模型最终的效果和学习速度,有两个方面需要注意:

  1. 在涉及推理、规划的困难任务上尽可能的提供详细的中间过程给模型
  2. 每次训练的数据尽可能的输入最大长度,不足最大长度将相关文本填充

工具

可以使用Deita工具自动筛选高质量的数据,GitHub地址如下
https://github.com/hkust-nlp/deita

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值