The FineWeb Datasets Decanting the Web for the Finest Text Data at Scale
[2406.17557] The FineWeb Datasets: Decanting the Web for the Finest Text Data at Scale
- Common Crawl:网站快照集合,自 2007 年开始运行。截至撰写本文时,Common Crawl 已经生成了 100 个网页快照,数据总量达到 PB 级别。
Building FineWeb
Text Extraction
Common Crawl 数据有两种不同格式
- WARC
- WET( WET 文件保留了过多的模板和菜单文本)
使用开源的trafilatura
库从 WARC 文件中提取文本内容
实验证明WARC明显效果好于WET
Base Filtering
采用了 RefinedWeb
- URL Filter:通过url过滤成人内容
fastText
语言分类器:保留得分大于等于0.65的英文文本MassiveText
的质量和重复过滤器
分词器采用GPT-2 分词器
Deduplication
去重与提升模型性能、减轻预训练数据记忆负担相关
常见去重方法:
- 哈希技术
- 后缀数组
去重方法还可以分为:
- 模糊:相似性度量
- 精确:完全匹配
使用英文分词器提取每个文档5-gram
,使用112个哈希函数计算MinHash
值
- 分成14个桶,每个桶8个哈希函数,识别相似度至少75%的文档
任意一个桶全部相同的哈希值,视为彼此的重复文档
A、B重复,A、C重复,则根据传递性认为B、C重复(哪怕B、C没有哈希冲突)
所有重复文档归为一个重复文档簇,最终随机保留一个
按照这个方法从最新的快照开始,直到最旧的快照,对整个数据集(96个快照)进行全局的哈希处理
- 但是对1base filter1的提升效果不佳,与
RefinedWeb
数据集效果落后明显
选择了某个快照进行对比实验:
- A:全局去重后,取该快照进行去重后的数据
- B:这个快照被去除的数据,进行独立去重(不考虑其他快照)
B效果明显比A好:原始保留数据包含更多广告、无序关键词列表和格式混乱的文本。
因此方法更换为:对每个快照单独进行MinHash去重
此时效果与RefinedWeb
相当
假设:
- 去重的主要改进是移除了包含
10w
以上规模的文档的大型重复文档- 对于少量重复文档(小于100),过度去重损害质量
C4 Filter
Base Filter + Deduplication得到的数据集已经与RefinedWeb
相当
但是C4数据集虽然更小,但是性能还是更强
C4的过滤规则:
- 删除不以终止标点符号结尾的行
- 删除提及"javascript"的行
- 删除包含"使用条款"/“cookie政策"声明的行
- 删除过短的文档
- 删除包含"lorem ipsum"或花括号({)的文档
对这些规则分别进行消融实验,发现删除不以终止标点符号结尾的行
会导致过多数据损失
删除此规则,保留其他规则
Developing additional heuristic filters
除了人工目视方法进行过滤,开发一套系统的启发式过滤器
- 收集了50多项高级统计指标,涵盖:
- 文档级指标(如行数、平均行/词长度等)
- 文档间重复指标
选择某个快照的两个去重版本:
- 高质量:独立去重后的快照
- 低质量:全局去重的快照
通过分析这些指标的直方图分布,经验性地选择在低质量数据集频率明显高于对应高质量数据集的区间设置阈值
- 最终确定了16组候选的指标-阈值组合
- “字符重复过滤器”:我们注意到存在一些包含大量无意义的字符重复(例如,连续重复的字母或符号)的文本片段
- “短单词过滤器”:非常短的单词(例如,只有一个或两个字符的单词)组成的文本行
- “特殊字符过滤器”:一些文本行包含大量的特殊字符
规则:
- 行末标点比例≤0.12的文档(移除10.14% token,相比C4终止标点过滤的30%更高效)
- 重复行字符比例≥0.1的文档(移除12.47% token)
- 短行(<30字符)比例≥0.67的文档(移除3.73% token)
这个过程避免了主观判断,而是根据数据系统地制定指标及其阈值
Final
通过整合前文各环节的设计决策,我们将完整的处理流程应用于96个Common Crawl快照,最终构建出包含15万亿token的FineWeb数据集。具体处理步骤如下:
- 文本提取(3.2节):从WARC文件提取文本内容
- 基础过滤(3.3节):应用URL过滤、语言识别和质量筛选
- 单快照去重(3.4节):对每个快照独立进行MinHash去重
- C4过滤规则(3.5节):采用精选的C4启发式过滤规则
- 定制过滤(3.6节):应用新开发的高效过滤规则
FineWeb-Edu
使用LLM进行进一步的构建:
- 由
Llama-3 70B-Instruct
生成的合成注释所开发的教育质量分类器对其进行过滤
为了构建合成注释:
使用LLM对教育质量进行评分(0-5),发现累加评分量表效果最好
- 累加评分量表允许大语言模型评估每个标准,并逐步得出评分
- 为避免大语言模型偏爱诸如 arXiv 摘要和提交内容这类专业性很强的页面,我们提示它专注于小学和中学水平的知识
|
|
选择最低阈值为3分,高于此分数认为属于教育内容