Skip to content

Conversation

@Songhbops
Copy link

您好,我是宋晗搏,是北京邮电大学人工智能学院的学生,希望能去您的团队实习,这是我关于您给我的那篇文章写的wiki,请您过目。

您好,我是宋晗搏,是北京邮电大学人工智能学院的学生,希望能去您的团队实习,这是我关于您给我的那篇文章写的wiki,请您过目。
4. 关键结果有哪些?
- **benchmark成绩**:在多个代码生成和理解任务上(HumanEval、MBPP、BigCodeBench 等),OpenCoder 在 1B+ 和 6B+ 参数规模下均取得了SOTA或次优的成绩,同时可以看出小参数模型对训练数据的质量更加敏感。
- **消融实验成果:**
- 文件级去重比仓库级去重更有效,明显提升了下游任务表现。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

你能猜测下为什么前者更有效吗?

OpenCoder 的关键创新主要体现在:

1. **构建了极高质量数据集——RefineCode**:论文构建了一个包含 9600 亿 tokens 的大规模代码预训练数据集,数据来源既包括 GitHub 上的原始代码,也涵盖了代码相关的网络数据。通过精细的预处理、去重(先精细去重再模糊去重)、转换以及多层次的筛选,确保了数据质量和多样性。
2. **退火阶段设计**:在预训练之后引入退火阶段,利用高质量的算法语料(从leetcode等爬取)、合成代码片段和等数据进一步强化模型能力。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

退火阶段的这些语料,具体是怎么生成的?假设给你它论文里提到的 seed 语料,你如何合成呢?

数据处理的pipeline主要包括这些模块,分别是预处理,重复数据删除,转换和对数据进行采样。
- Preprocessing:

在预处理中作者首先将大小大于8MB的文件删除,因为这些往往是非编码的文件,同时根据文件的拓展名来确定哪些文件是代码文件,然后将低质量的文件进行过滤,最终保存了607种编程语言的文件。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

你觉得为什么要保留607种语言,而不是精选我们常用的30种语言来训练这个大模型呢


**模糊删除**:将原始文本按照5个字符一组进行划分,对每个文件计算2048hash值,使用LSH的方法检测出相似的文件,在相似的文件中只保留最好starts数和最新发布的版本。

经过这两次删除,总数据量降低了6%

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

精确去重和模糊去重,各自删除的file vol 是多大?为什么两者的去重有这么大的差异?


**Copyright Removal:**

对版权信息的删除,因为版权信息都是高度重复的,如果不进行删除可能影响模型的能力。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

为什么高度重复的预料,对模型能力有损伤?具体会有哪些方面的损伤

对版权信息的删除,因为版权信息都是高度重复的,如果不进行删除可能影响模型的能力。

**PII Reduction:**
训练数据中包含敏感信息,所以要对其进行删除,作者通过复杂的正则匹配来对其进行删除。

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

假设让你设计这个去除,能举出来几个例子,里面是有敏感信息的吗?要去除时,应该怎么做?

针对文件大小,行数来过滤文件

**通用的code过滤标准:**
通过变量数量,平均函数长度来进行过滤

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

可以根据它开源的过滤代码,看看 python 里有哪些规则?这些规则具体怎么实现的,他们的阈值设置合理吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants