Redian新闻
>
开源15T tokens!HuggingFace放出规模最大、质量最高预训练数据集

开源15T tokens!HuggingFace放出规模最大、质量最高预训练数据集

公众号新闻



  新智元报道  

编辑:LRS
【新智元导读】FineWeb是一个高质量的预训练数据集,包含15T+个tokens,主要包含英语文本;消融实验证明了FineWeb数据集的质量要高于其他开源数据集;数据清洗脚本也已开源。


Meta最近开源的Llama 3模型再次证明了「数据」是提升性能的关键,但现状是,开源的大模型有一堆,可开源的大规模数据却没多少,而收集、清洗数据又是一项极其费时费力的工作,也导致了大模型预训练技术仍然掌握在少数高端机构的手中。



最近,Huggingface的机器学习团队宣布开源了一个迄今为止,规模最大的、质量最高的、即用型(ready-to-use)数据集FineWeb


数据集链接:https://huggingface.co/datasets/HuggingFaceFW/fineweb


FineWeb是在对CommonCrawl数据集(2013年夏天到2024年3月,共95个dump)进行去重、清洗后,得到的一个高质量、包含15T+个tokens(根据GPT-2的分词器)的Web数据集,也是目前公开可用的、最干净的语言模型预训练数据集,其主要用作英语领域的公共数据研究。


在数据处理部分,研究团队针对LLM应用场景,对整个数据处理pipeline进行了优化,并在大规模数据处理库datatrove上运行实现。


模型的消融实验性能结果也显示,FineWeb比其他开源数据集的质量更高,并且仍有进一步过滤和改进的空间,研究团队也表示在未来将继续探索如何提升FineWeb数据集的质量。


数据集性能


为了验证FineWeb数据的质量,研究人员选择RefinedWeb、C4、Dolma v1.6、The Pile、SlimPajama数据集作为对比,训练了一系列「1.8B参数量的小模型」进行数据集性能消融实验和评估。


选择的评估指标为commonsense_qa (acc_norm)、hellaswag (acc/acc_norm)、openbookqa (acc/acc_norm)、piqa (acc/acc_norm)、siqa (acc/acc_norm)、winogrande (acc/acc_norm)、sciq (acc/acc_norm)、arc (acc/acc_norm)和mmlu (acc/acc_norm)的平均值,每项指标均具有三个特点:


1. 在同一数据集的不同样本上的训练差异很小;


2. 训练期间,指标单调增加;


3. 在已知高质量的数据集(C4、The Pile、RedPajama)上运行,模型的分离程度(seperation)更高。


在滚动窗口中平均5k步的平滑绘图


实验过程中用到的prompt都已经过格式化,以便计算和对比多项选择问题中完整答案的对数似然。


从结果来看,使用FineWeb数据集训练的模型性能在各个阶段都是最好的。


下载使用


数据的命名规则为CC-MAIN-(year)-(week number)



使用datatrove


from datatrove.pipeline.readers import ParquetReader# limit determines how many documents will be streamed (remove for all)# to fetch a specific dump: hf://datasets/HuggingFaceFW/fineweb/data/CC-MAIN-2024-10data_reader = ParquetReader("hf://datasets/HuggingFaceFW/fineweb/data", limit=1000) for document in data_reader():    # do something with document    print(document)###############################    # OR for a processing pipeline:###############################from datatrove.executor import LocalPipelineExecutorfrom datatrove.pipeline.readers import ParquetReaderfrom datatrove.pipeline.filters import LambdaFilterfrom datatrove.pipeline.writers import JsonlWriterpipeline_exec = LocalPipelineExecutor(    pipeline=[        ParquetReader("hf://datasets/HuggingFaceFW/fineweb/data/CC-MAIN-2024-10", limit=1000),        LambdaFilter(lambda doc: "hugging" in doc.text),        JsonlWriter("some-output-path")    ],    tasks=10)pipeline_exec.run()


使用huggingface_hub


from huggingface_hub import snapshot_downloadfolder = snapshot_download(                "HuggingFaceFW/fineweb",                 repo_type="dataset",                local_dir="./fineweb/",                allow_patterns="data/CC-MAIN-2023-50/*")


为了加快下载速度,需要确保安装 pip install huggingface_hub[hf_transfer] 并设置环境变量 HF_HUB_ENABLE_HF_TRANSFER=1


使用datasets


from datasets import load_datasetfw = load_dataset("HuggingFaceFW/fineweb", name="CC-MAIN-2024-10", split="train", streaming=True)


FineWeb数据卡


数据实例


下例为CC-MAIN-2021-43 的一部分,于2021-10-15T21:20:12Z进行爬取。


{   "text": "This is basically a peanut flavoured cream thickened with egg yolks and then set into a ramekin on top of some jam. Tony, one of the Wedgwood chefs, suggested sprinkling on some toasted crushed peanuts at the end to create extra crunch, which I thought was a great idea. The result is excellent.",   "id": "<urn:uuid:e5a3e79a-13d4-4147-a26e-167536fcac5d>",   "dump": "CC-MAIN-2021-43",   "url": "<http://allrecipes.co.uk/recipe/24758/peanut-butter-and-jam-creme-brulee.aspx?o_is=SimilarRecipes&o_ln=SimRecipes_Photo_7>",   "date": "2021-10-15T21:20:12Z",   "file_path": "s3://commoncrawl/crawl-data/CC-MAIN-2021-43/segments/1634323583083.92/warc/CC-MAIN-20211015192439-20211015222439-00600.warc.gz",   "language": "en",   "language_score": 0.948729,   "token_count": 69}

数据字段


text (字符串)主要文本内容

id (字符串)源自CommonCrawl样本的原始唯一标识符

dump (字符串)采样于CommonCrawl dump

url (字符串)text 所在原始页面的 url

date (字符串)抓取日期(CommonCrawl提供)

file_path (字符串)包含此示例的单个 CommonCrawl warc 文件的 s3 路径

language (字符串)数据集中的所有样本均为en

language_score (float)fastText 语言分类器报告的语言预测分数

token_count (int)使用gpt2分词器获得的token数量


数据切分


default 子集包括整个数据集。


如果只想使用特定 CommonCrawl 转储中的数据,可以使用dump名称作为子集。


根据研究人员的实验结果来看,使用不同dump训练后的效果有所差异:对于相对较小的训练(<400B个token),建议使用最近的 CC-MAIN-2023-50 和 CC-MAIN-2024-10


数据创建


虽然最近经常会有大模型对权重进行开源,但这些版本通常不包含模型的训练数据。


FineWeb的目标是为开源社区提供一个海量的、干净的预训练数据集,可用于推动真正开源模型(带数据的开源模型)的极限。


源数据由 CommonCrawl 基金会在 2013-2024 年期间抓取的网页组成。


研究人员从每个网页的 html 中提取主页文本,仔细过滤样本并对每个 CommonCrawl dump/crawl进行重复数据删除。


虽然团队最初打算对整个数据集进行重复数据删除,但我们的消融表明,对单独进行重复数据删除的转储/爬网样本进行的训练优于对所有一起进行重复数据删除的转储/爬网样本进行的训练。


数据预处理


研究人员使用datatrove 库来处理数据,脚本已开源。


脚本链接:https://github.com/huggingface/datatrove/blob/main/examples/fineweb.py


具体流程包括六步:


1. Url过滤使用block-list和subword检测技术对源自恶意和 NSFW 网站的文档进行过滤;


2. Trafilatura从CommonCrawl的warc文件中提取原始 HTML 文本;


3. FastText LanguageFilter删除en语言评分低于 0.65 的文档;


4. 质量过滤使用Gopher Reptition, C4 Quality filters(去除terminal_punct规则)和FineWeb自定义过滤器(删除列表样式的文档、具有重复行的文档以及可能具有错误行格式的启发式方法)


5. MinHash重复数据去冗余每次抓取都单独进行去重,参数为5-gram、14x8哈希函数;


6. PII 格式化对电子邮件和公共 IP 地址进行匿名化


对于电子邮件,使用正则表达式将其替换为 [email protected][email protected]


对于IP地址,先采用正则表达式匹配,然后过滤掉以仅匿名分配给公共网络的 IP 地址,最后将匹配到的IP地址替换为以下随机生成的 IP 地址之一(22.214.171.124 、126.96.36.199 、 188.8.131.52 、 220.127.116.11 和 18.104.22.168),这些地址在创建数据集时未响应 ping 请求。


由于误报率过高,研究人员决定不对电话号码使用正则表达式匹配。


标注


研究人员使用 language、language_score和token_count标注来增强原始样本;与语言相关的标注由语言过滤器自动生成;token_count通过gpt2分词器获得。


使用数据的注意事项


数据集的社会影响


研究人员的目标是,在FineWeb数据集发布后,让整个机器学习社区更容易进行模型训练。


虽然过去已经公开发布了多个具有强大性能的开放权重模型,但通常没有附带相应的训练数据集,而预训练的关键就在于数据,不同数据集的特殊性和特征已被证明对模型的性能具有非常大的影响和作用。


由于创建高质量的训练数据集是训练能够出色完成下游任务的 LLM 的基本要求,因此,利用FineWeb,不仅可以使数据集创建过程更加透明,而且借助公开的处理设置,包括所使用的代码库,向社区公开发布数据集,可以帮助模型创建者减轻数据集管理的时间和计算成本。


关于偏见的讨论


通过在 URL 级别进行过滤,研究人员最大限度地减少数据集中存在的 NSFW 和有毒内容的数量,但最终发布的数据集中仍然存在大量可能被视为有毒或包含有害内容的文档。


由于FineWeb源自整个网络,因此其中常见的有害偏见都可能会在该数据集上重现。


研究人员故意避免使用基于与「gold」来源(例如维基百科或毒性分类器)的相似性来定义文本质量的机器学习过滤方法,因为这些方法会不成比例地删除特定方言中的内容,并将其过度分类为与特定社交身份相关的有毒文本。


其他已知限制


由于应用了一些过滤步骤,代码内容可能在该数据集中并不普遍。


如果用户需要训练一个可执行代码任务的模型,研究人员建议将FineWeb与代码数据集一起使用,例如 The Stack v2,或者还应该考虑用专门的精选资源(例如维基百科)来补充 FineWeb,因为其格式可能比FineWeb中包含的维基百科内容更好。


许可证


FineWeb数据集根据开放数据共享归属许可证 (ODC-By) v1.0 许可证发布,并且使用过程还须遵守 CommonCrawl 的使用条款。


参考资料:
https://huggingface.co/datasets/HuggingFaceFW/fineweb




微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
最强开源大模型Llama 3来了!4000亿参数狙击GPT-4,训练数据达Llama 2七倍仅需Llama3 1/17的训练成本,Snowflake开源128x3B MoE模型吃饭不健康,癌症风险可能更高!《细胞》发现糖代谢致癌新机制;弱智吧竟成最佳中文AI训练数据?测试远超知乎豆瓣小红书|本周论文推荐对话林咏华:刚在“AI春晚”上开源了3.4T数据集的智源,是如何死磕大模型数据难题的限时7天!Google放出秋招全职岗位!靠Scaling Laws炼出4D版视频生成模型,多伦多大学北交大等携手开源81K高质量数据集陌生人赠送的一美元购物卷Meta、微软、Mistral AI、Hugging Face、通义、港中文六路进发开源大模型 | 大模型一周大事小扎自曝愿开源100亿美元模型!2025年AGI没戏,能源短缺成最大瓶颈Hoka、UGG 的母公司 Deckers 股价首破1000美元大关next-token被淘汰!Meta实测「多token」训练方法,推理提速3倍,性能大涨10%+浓人,nèng死淡人JHU/WashU/UCSB三校放榜!JHU缩招13%!WashU录取缩水...AI训练数据的版权保护:公地的悲剧还是合作的繁荣?5秒完成3D生成,真香合成数据集已开源,上交港中文新框架超越Instant3D阿里通义千问GPT-4级主力模型降价97%,1 块钱200万 tokens!加快410倍!字节豆包新工作TiTok:全新图像Tokenizer!生成图像最低只需32个token仅用250美元,Hugging Face技术主管手把手教你微调Llama 3AI早知道|OpenAI推出新的图像检测分类器;Hugging Face开源机器人代码库【老翁寻花奇遇记之二:春花大盗】HuggingFace烧钱做了一大批实验,揭示多模态大模型哪些trick真正有效[无声]FineWeb技术报告出炉!揭秘HuggingFace规模最大、质量最高预训练数据集快乐+自由通通next level!high爆21天,史上最长、规模最大的泼水节它要来了!这份战斗指南提前收好~OpenAI官宣开源Transformer Debugger!不用写代码,人人可以破解LLM黑箱个人感慨之111 习总施政方略0门槛免费商用!孟子3-13B大模型正式开源,万亿token数据训练HuggingFace教你怎样做出SOTA视觉模型Off the Books: Inside the Struggle to Save China’s Preschools我学会了“浪费”国家标准《生成式人工智能预训练和优化训练数据安全规范》征求意见放岗消息丨Apple放出多个岗位,NG可投!开源11天,马斯克再发Grok-1.5!128K代码击败GPT-4Deckers集团最新年报:Hoka上季度销售同比大增34%,UGG全年两位数增长CVPR 2024 | COCO数据集升级!字节提出新一代数据集COCONut
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。