DeepSeek Coder 的数据过滤过程中使用了多种规则,具体包括以下内容:
-
规则过滤:
- 过滤掉平均行长度超过100个字符或最大行长度超过1000个字符的文件。
- 删除字母字符少于25%的文件。
- 对于HTML文件,仅保留可见文本占HTML代码至少20%且不少于20个字符的文件。
- 对于包含更多数据的JSON和YAML文件,仅保留字符计数在50到5000个范围内的文件。
- 对于XSLT编程语言,除了上述规则外,还进一步过滤掉前100个字符中出现字符串
<xsl:stylesheet>
的文件。
-
依赖解析与文件去重:
- 解析同一存储库内文件之间的依赖关系,并根据这些依赖关系重新排列文件位置。
- 使用仓库级的minhash算法进行重复数据删除。
-
质量筛选:
- 去除语法错误、可读性差或模块化低的代码。
- 使用n-gram过滤方法,如果一段代码包含与测试数据中任何10-gram字符串相同的内容,则会被删除。
-
其他过滤策略:
- 删除无价值的文件,例如仅包含注释或无实际代码的文件。
- 排除与项目无关的文件,例如仅保留特定编程语言的文件。
通过这些多层次的过滤规则,DeepSeek Coder 能够高效地筛选出高质量的数据集,从而为模型训练提供可靠的基础数据支持。
-
代码行长度限制