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

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

7月前



  新智元报道  

编辑: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




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

来源:新智元

相关新闻

FineWeb技术报告出炉!揭秘HuggingFace规模最大、质量最高预训练数据集一万亿token!34亿张图像,扩大10倍!史上最大开源多模态数据集MINT-1T发布!史上首个100%开源大模型重磅登场!破纪录公开代码/权重/数据集/训练全过程,AMD都能训一次可输入多张图像,还能多轮对话!最新开源数据集,让AI聊天更接近现实Diffusion4D:首个4D视频生成扩散模型!数分钟内实现4D内容生成,超81K的4D数据集已开源!靠Scaling Laws炼出4D版视频生成模型,多伦多大学北交大等携手开源81K高质量数据集苹果开源7B大模型,训练过程数据集一口气全给了,网友:开放得不像苹果Meta「分割一切」进化2.0!一键跟踪运动物体,代码权重数据集全开源,网友:真正的OpenAI首个4D视频生成扩散模型!数分钟实现4D内容生成,超81K优质数据集已开源0门槛免费商用!孟子3-13B大模型正式开源,万亿token数据训练首个基于Mamba的MLLM来了!模型权重、训练代码等已全部开源碾压前辈!Meta 发布“最大、性能最好”的开源 Code Llama 70B,但开发者纷纷喊穷:玩不起碾压前辈!Meta发布“最大、性能最好”的开源Code Llama 70B,但开发者纷纷喊穷:玩不起!全球最大开源模型再刷爆纪录!4800亿参数MoE击败Llama 3、Mixtral苹果一次性开源了8个大模型! 包含模型权重、训练日志和设置,OpenELM全面开源首个WebAgent在线评测框架和流程数据管理平台来了,GPT-4、Qwen登顶闭源和开源榜首!免费、开源、易集成的人脸识别系统,功能非常强大!还得是开源!潞晨Open-Sora技术路线公开,一键生成16秒720p视频,质量更高训练成本更低小洞不补,大洞吃苦:西交、麦马开源全新「拖动式编辑」框架&数据集最强开源大模型Llama 3来了!4000亿参数狙击GPT-4,训练数据达Llama 2七倍完全开源的现代化IDE正式发布:支持云端和桌面、兼容VS Code扩展、全球最大开源基金会打造15.5k star,功能强悍、免费、开源的数据可视化工具5秒完成3D生成,真香合成数据集已开源,上交港中文新框架超越Instant3D马斯克发全球最大开源模型!3140亿参数的Grok真打脸OpenAI了?
logo
联系我们隐私协议©2024 bendi.news
Bendi新闻
Bendi.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Bendi.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。