DeepSeek 数据集的数据来源广泛,涵盖了多个领域和渠道,以确保数据的多样性和全面性。其中,Common Crawl 是其重要的数据来源之一。Common Crawl 拥有庞大的网页数据,DeepSeek 从中提取了大量与数学、自然语言和代码相关的数据。例如,在构建 DeepSeek Math 数据集时,就从 Common Crawl 中提取了 1200 亿个高质量数学网页数据 ,这些数据为模型提供了丰富的数学知识背景,使其在处理数学相关任务时具备更强的能力。
Web Code 也是 DeepSeek 数据集的重要组成部分。DeepSeek 从开源代码库中精选了代码片段,并利用自身模型生成代码补全和代码解释数据。这些代码数据对于训练模型在代码生成、编程辅助等方面的能力具有重要作用。比如,在软件开发领域,开发者可以利用这些数据训练的模型来实现代码自动补全、错误检测等功能,提高开发效率和代码质量。
电子书、教育材料和 arXiv 文章等也为 DeepSeek 数据集贡献了丰富的知识。电子书中包含了各种领域的专业知识,教育材料则涵盖了从基础学科到高等教育的各类内容,arXiv 文章则汇聚了最新的学术研究成果。这些数据的纳入,使得 DeepSeek 数据集能够满足不同领域和任务的需求,为模型提供了更广泛的知识支持。例如,在学术研究中,研究人员可以利用基于这些数据训练的模型来快速检索和分析相关文献,获取有价值的信息。
DeepSeek 数据集的构建采用了迭代式采集流程,以不断优化数据质量和规模。以 DeepSeek Math 数据集的构建为例,首先选择 OpenWebMath 作为初始种子语料库,这是一个高质量数学网页文本的集合。然后使用这个语料库训练 fastText 模型,利用训练好的 FastText 模型,在包含 400 亿网页的 Common Crawl 中召回更多与数学相关的网页。在召回的数学网页中,通过统计识别出与数学相关的域名,对这些域名下的 URL 路径进行人工标注,标记出与数学内容相关的路径,将这些特定路径下的网页,如果它们未被前述步骤召回,则将它们作为正样本加入到种子集合中,以供下一轮迭代使用。经过四轮数据收集迭代,最终收集了 3550 万个数学网页,总计 1200 亿个 token 。
在数据构建过程中,DeepSeek 还注重避免基准污染。以数学数据集为例,沿用 DeepSeek-Coder 的 n-gram 过滤方法,过滤掉包含来自英语数学基准(如 GSM8K 和 MATH)以及中文基准(如 CMATH 和 AGIEval)的问题或答案的网页。具体过滤标准为:10-gram 匹配,即任何包含与评估基准中的子字符串完全匹配的 10-gram 文本段落都将从数学训练语料库中移除;对于长度不足 10-gram 但至少有 3-gram 的基准文本,采用精确匹配方法过滤受污染的网页 。这种严格的数据过滤机制,确保了数据集的纯净性,提高了模型训练的准确性和可靠性。