上一篇,关于数据量预估中分析到,做增量预训练一个3B模型所需的数据大约为12~15B的tokens。这里我们着手获取这些数据。
寻找约12B Tokens的高质量、开源、可用的中英文混合预训练数据源是一个实际的挑战,通常需要组合多个来源并进行处理。以下是一些主要的开源数据平台和你可以重点关注的数据集:
主要平台:
- Hugging Face Hub (Datasets): https://huggingface.co/datasets
- 最活跃、资源最丰富的平台之一,包含大量文本数据集,覆盖多种语言和领域。易于使用 datasets 库加载和处理。
- ModelScope Hub (魔搭社区): https://modelscope.cn/datasets
- 阿里巴巴达摩院维护的平台,包含许多中文优质数据集,特别是针对中文NLP任务和预训练。
- GitHub:
- 很多项目会直接在GitHub仓库中发布数据或提供数据的下载链接/脚本。
- 原始数据源:
- 如 Common Crawl, Wikipedia Dumps 等,但需要自行处理和清洗。
推荐的数据集和策略 (目标: ~10.8B 中文 Tokens + ~1.2B 英文 Tokens):
A. 中文数据源 (~10.8B Tokens):
- 大规模清洗网页语料 (构成主体,约 4-6B Tokens):
- SkyPile: 清华大学自然语言处理与社会人文计算实验室(THUNLP)发布的大规模高质量中文网页数据。SkyPile-150B 据称包含150B Tokens,你可以从中采样或使用其一部分。
- 查找位置: Hugging Face Hub 搜索 “SkyPile” 或相关项目。可能有不同版本或子集。例如 openbmb/skypile-150b (可能需要关注具体使用细节和许可)。
- OSCAR (Open Super-large Crawled ALMAnaCH coRpus): 大型多语言语料库,包含从 Common Crawl 清洗过的中文部分。
- 查找位置: Hugging Face Hub (oscar-corpus/OSCAR-2301, oscar-corpus/OSCAR-2201 等,需要筛选 zh 或 zh-cn 子集)。注意OSCAR的版本和清洗程度可能不同。
- mC4 (multilingual Colossal Clean Crawled Corpus): C4 的多语言版本,包含中文。
- 查找位置: Hugging Face Hub (mc4, 需要筛选 zh 部分)。
- WudaoCorpora (悟道语料库): 由北京智源人工智能研究院(BAAI)发布的大规模中文语料库,包含网页、百科、问答等多种类型。部分子集可能在 HF 或 ModelScope 上可获取。
- 查找位置: Hugging Face Hub / ModelScope 搜索 “WuDaoCorpora”。例如 BAAI/WuDaoCorporaText。需要检查其具体包含的内容和规模。
- SkyPile: 清华大学自然语言处理与社会人文计算实验室(THUNLP)发布的大规模高质量中文网页数据。SkyPile-150B 据称包含150B Tokens,你可以从中采样或使用其一部分。
- 百科 (约 1-2B Tokens):
- 中文维基百科 (Chinese Wikipedia): 高质量的知识来源。
- 获取方式: ① 直接下载 Wikimedia dumps 处理(需要工具如 wikiextractor)。 ② 使用 Hugging Face Hub 上的预处理版本。
- 查找位置 (HF): wikipedia 数据集,配置选择 20220301.zh 或类似中文版本 (load_dataset(“wikipedia”, “20220301.zh”))。
- 中文维基百科 (Chinese Wikipedia): 高质量的知识来源。
- 书籍 (约 1.5-2.5B Tokens):
- 寻找大规模开源中文书籍语料比较困难(版权问题)。
- MNBVC: 一个社区驱动的中文语音数据集项目,其副产品包含大量文本,其中可能包括书籍和网络文学,但需要仔细筛选。
- 查找位置: GitHub / Hugging Face Hub (shibing624/mnbvc)。需要检查文本部分的来源和质量。
- 部分混合语料库(如 WudaoCorpora)可能包含书籍成分。
- 你可能需要整合多个较小的、公开领域的书籍集合。
- 新闻 (约 1-2B Tokens):
- THUCNews: 清华大学整理的新闻数据集,比较老但常用。
- 查找位置: 通常通过 GitHub 或其他教育资源链接下载。
- 特定新闻网站爬取/存档: 需要自行收集或寻找已有的开源集合。
- 在 HF/ModelScope 搜索 “chinese news dataset”。可能找到如 chinese-news-collection 等,但需评估规模和质量。
- THUCNews: 清华大学整理的新闻数据集,比较老但常用。
- 代码 & 技术文档 (约 0.5-1B Tokens):
- The Stack: BigCode 项目发布的大规模代码数据集,多语言,包含中文注释、文档等。
- 查找位置: Hugging Face Hub (bigcode/the-stack-dedup)。需要过滤包含中文内容的文件或中文仓库。
- 从 GitHub 爬取中文项目的 README, Issues, discussions (注意遵守 robots.txt 和 API 限制)。
- The Stack: BigCode 项目发布的大规模代码数据集,多语言,包含中文注释、文档等。
B. 英文数据源 (~1.2B Tokens):
这部分相对容易获取,可以选择高质量、多样化的来源。
- RedPajama-Data-1T: Llama 1 训练数据的开源复现,混合了多种高质量来源。
- 查找位置: Hugging Face Hub (togethercomputer/RedPajama-Data-1T)。可以从中采样所需数量的 Tokens,例如从 Common Crawl, C4, GitHub, Books, ArXiv, Wikipedia, StackExchange 等部分按比例采样。这是非常推荐的选择,因为它本身就是为预训练设计的混合数据。
- The Pile: EleutherAI 创建的另一个大型、多样化的英文数据集。
- 查找位置: Hugging Face Hub (EleutherAI/the_pile)。同样可以从中采样。
- C4 (Colossal Clean Crawled Corpus): Google 清洗的 Common Crawl 数据。
- 查找位置: Hugging Face Hub (allenai/c4, c4)。选择 en 部分采样。
- ·英文维基百科 (·): 高质量知识来源。
- 查找位置 (HF): wikipedia 数据集,配置选择 20220301.en 或类似英文版本。
关键步骤和注意事项:
- Tokenization: 你需要使用 Llama-3.2-3B 的 tokenizer 来精确计算 Token 数量。数据集通常报告的是字符数、词数或使用不同 tokenizer 计算的 Token 数。12B Tokens 是基于你的模型 tokenizer 的目标。
- 数据混合: 获取各部分数据后,需要按照你决定的比例 (如 90% 中/10% 英) 和领域分布进行混合。通常会将所有数据源打乱混合在一起。
- 数据清洗和去重 (非常重要):
- 清洗: 即便数据源声称已清洗,也建议进行额外的质量过滤,去除 HTML 标签、格式错误、低信息量文本(如大量重复字符、"lorem ipsum"等)、潜在有害内容。可以使用启发式规则或训练分类器进行过滤。
- 去重: 在数据集内部和数据集之间进行去重至关重要,可以显著提高训练效率和模型性能。使用 MinHashLSH (如 datasketch 库) 或其他精确/近似去重方法。对长文档进行段落级别或文档级别的去重。
- 格式统一: 将所有数据处理成训练框架(如 transformers Trainer)期望的格式,通常是 JSON Lines 文件,每行一个 JSON 对象,包含一个文本字段 (e.g., {“text”: “…”})。
- 许可协议: 仔细检查每个数据集的许可协议,确保你的使用方式符合要求(特别是商业用途)。
- 迭代和评估: 数据集构建是一个迭代过程。你可能需要从小规模数据开始试验,评估效果,然后逐步扩展和优化数据组合。
总结:
- Hugging Face Hub 和 ModelScope 是你主要的搜索平台。
- 对于中文数据,优先考虑 SkyPile, OSCAR/mC4 (中文部分), 中文 Wikipedia, The Stack (中文部分)。书籍和新闻可能需要整合多个来源或依赖大型混合语料中的成分。
- 对于英文数据,从 RedPajama-Data-1T 或 The Pile 采样是高效且高质量的选择。
- 数据处理(清洗、去重、Token 统计、混合) 是构建最终 12B Tokens 训练集的关键环节。
这个过程需要投入相当的精力进行数据收集、处理和验证。