RedPajama-Data-V2: 开源大型语言模型的改变者
Published on
简介
在快速发展中的人工智能领域中,强大的大型语言模型(LLMs)的开发往往由商业实体主导。然而,开源社区一直在努力实现人们对尖端AI技术的获取民主化。在众多推动这一变革的倡议中,RedPajama项目以其创新和合作精神而脱颖而出。
RedPajama是Together、Ontocord.ai、ETH DS3Lab、Stanford CRFM、Hazy Research和MILA Québec AI Institute共同努力的成果,旨在创建领先的完全开源LLMs,与专有模型媲美。该项目的最新里程碑,RedPajama-Data-V2,将通过提供30万亿个标记的前所未有的数据集,改变开源LLM的训练方式。
想要了解最新的LLM新闻吗?请查看最新的LLM排行榜!
RedPajama-Data-V2: 开源LLMs的改变者
RedPajama-Data-V2是一个特别为LLMs训练而设计的大规模网络数据集。它包括来自84个CommonCrawl快照的超过1000亿个文本文档,使用CCNet管道进行处理。其中,有3000亿个文档具有预先计算的质量信号,20亿个文档已经去重。
该数据集涵盖了英语、法语、西班牙语、德语和意大利语这五种语言。对数据集的头尾部分进行注释和去重后,文档和标记数目如下所示:
语言 | 文档数目 | 预估标记数目(去重) |
---|---|---|
英语 | 145亿 | 205万亿 |
德语 | 19亿 | 30万亿 |
法语 | 16亿 | 27万亿 |
西班牙语 | 18亿 | 28万亿 |
意大利语 | 9亿 | 15万亿 |
总计 | 208亿 | 304万亿 |
RedPajama-Data-V2之所以与其他数据集有所不同,是因为它包含了40多个预先计算的质量注释。这些注释可让用户根据自己的需要进一步过滤和加权数据,提供了前所未有的灵活性和定制选项。
RedPajama-Data-V2目前是专门用于LLM训练的最大的公共数据集,包含了超过1000亿个原始文档和30万亿个标记(去重和过滤后)。它涵盖了五种语言:英语(205万亿个标记),德语(30万亿),法语(27万亿),西班牙语(28万亿)和意大利语(15万亿)。
相比之下,其他知名数据集如The Pile(用于训练EleutherAI模型)包含大约1.2万亿个标记,而用于训练Llama 2的数据集则有2.4万亿个标记。RedPajama-Data-V2的规模是无与伦比的,提供了丰富高质量的训练数据。
RedPajama-Data-V2的优势
真正让RedPajama-Data-V2脱颖而出的是每个文档超过40个预先计算的质量注释。这些注释涵盖了各种类别,如困惑度分数、分类器预测、自然语言度量、内容毒性指标等等。
-
高质量:有了这些质量信号,研究人员可以根据自己的需求轻松过滤和加权数据。其他数据集通常使用固定的启发式算法,限制了后续的定制化。RedPajama-Data-V2提供了前所未有的灵活性,以创建为不同LLM应用优化的定制子集。
-
完全开源:RedPajama项目完全开源,所有数据处理脚本都可以在GitHub上找到,数据集托管在HuggingFace上。这种透明性使社区能够了解、重述和构建在数据集基础之上的工作。
-
降低LLM训练成本:RedPajama-Data-V2的规模和质量有望显著降低训练强大LLM的计算成本。通过提供丰富的信息数据,模型可以使用更少的参数和计算资源实现强大的性能。
设置RedPajama-Data-V2
要开始使用RedPajama-Data-V2,可以使用以下Python代码加载示例数据集:
from datasets import load_dataset
ds = load_dataset("togethercomputer/RedPajama-Data-V2", name="sample")
要下载特定组合的 partition
× snapshot_id
× language
,请使用以下命令:
wget "https://data.together.xyz/redpajama-data-v2/v1.0.0/urls/minhash-urls.txt" -O "minhash-urls.txt"
运行RedPajama-Data-V2流程
RedPajama-Data-V2的流程包括三个主要步骤:
- 准备工件
- 计算质量信号
- 去重
第一步:准备工件
该步骤创建用于后续步骤的工件,包括构建质量分类器、训练基于Ngram的生成模型进行重要权重计算、从LDNOOBW存储库获取坏单词列表,以及从UT1黑名单获取最新的黑名单URL列表。
要创建工件,请在配置文件中设置环境变量并运行以下命令:
bash scripts/run_prep_artifacts.sh \
--config configs/rp_v2.0.conf \
--listings /path/to/listings/file.txt \
--max_workers 32
第二步:计算质量信号
第二步计算质量信号,包括模糊去重的minhash签名。在配置文件中设置环境变量并运行:
bash scripts/apptainer_run_quality_signals.sh \
--config configs/rp_v2.0.conf \
--dump_id "2022-49" \
--input_base_uri "file:///path/to/data/root" \
--output_base_uri "file:///path/to/output/data/root" \
--max_docs -1
第三步:去重
第三步涉及精确去重和模糊去重。要使用布隆过滤器进行精确去重,请运行:
python3 app/src/bloomfilter.py \
--listings /path/to/listings/file.txt \
--input_base_uri "s3://path/to/ccnet/data" \
--output_dir "/path/to/output" \
--s3_profile "..." \
--endpoint_url "..." \
--parallel_readers 32 \
--batch_size 10 \
--capacity "..." \
--error_rate "..."
要使用局部敏感哈希进行模糊去重,请运行:
bash scripts/apptainer_run_lsh.sh \
--config configs/rp_v2.0.conf \
--dump_id "2022-49" \
--input_base_uri "file:///path/to/data/root" \
--output_dir "/path/to/output" \
--similarity "<相似性阈值>" \
--listings "/minhash/listings/file.txt" \
--max_docs -1
RedPajama-Data-V2质量信号
RedPajama-Data-V2包含一系列全面的质量信号,可分为以下几个组别:
- CCNet:从CCNet管道中衍生的信号,例如困惑度分数、语言识别和文档长度。
- ML启发式:基于机器学习模型的信号,例如用于类似维基百科页面和重要性再抽样的分类器。
- 自然语言:与内容的语言属性相关的信号,例如词数、句子数和唯一词占比。
- 重复性:衡量内容重复性的信号,例如重复n-gram中字符比例。
- 毒性:指示潜在有害内容的信号,例如LDNOOBW黑名单中的单词和UT1黑名单中的类别。
- 去重:不同Jaccard相似性阈值下的模糊去重用的minhash签名。
有关所有质量信号的详细列表,请参阅RedPajama-Data-V2文档。
RedPajama与开源LLM的未来
RedPajama-Data-V2在开源LLM的发展中标志着重要的里程碑。通过提供一个广泛的高质量数据集以及全面的注释,该项目旨在降低研究人员和组织构建强大语言模型的门槛。
RedPajama团队计划通过补充质量注释、主题建模和文档分类等方式扩展数据集。他们积极鼓励社区参与,提出和开发新的注释,以进一步提升数据集的实用性。
与数据集开发并行进行,Together正在基于RedPajama-Data-V2构建开源模型。这些模型将完全开源且商业可行,为现有的LLM提供一个无约束、无摩擦的替代方案。该项目还提供帮助,帮助公司和组织使用开源和专有数据的结合构建定制模型。
结论
RedPajama-Data-V2代表了人工智能技术民主化的重要进步。通过提供一个完全开源、高质量的数据集用于训练LLM,该项目使研究人员、开发人员和组织能够在没有专有API限制的情况下创建强大的语言模型。
随着RedPajama项目的持续发展和演进,它有潜力重塑人工智能领域的景观,促进创新、协作和可及性。在人工智能社区的支持和参与下,RedPajama有望成为下一代LLM及更多领域的催化剂。
想了解最新的LLM新闻吗?请访问最新的LLM排行榜!