OpenCoder:支持中英文的开放代码大语言模型
OpenCoder 是一个开放和可复现的代码大型语言模型(LLM),包含1.5B和8B规模的基础和对话模型,支持英语和中文。OpenCoder 从零开始训练,预训练数据涵盖了 2.5 万亿个令牌,其中90%是原始代码,10%为代码相关的网络数据。OpenCoder 在超过450万个高质量的监督微调(SFT)示例上进行了精细调优,最终达到了与顶级代码 LLM 相媲美的性能。OpenCoder 提供模型权重和推理代码,包括可复现的训练数据、完整的数据处理管道、实验消融结果和详细的训练协议,为研究人员的代码 AI 创新提供了坚实基础。
OpenCoder 核心特性
• 完全开源:不仅公开模型权重和后续会发布的推理代码,还提供完整的训练数据清洗代码。同时包含高质量合成数据、大量检查点以及 450 多万条监督微调数据,是目前开源程度最全面的模型之一。
• 详尽实验分析:针对多种数据清洗策略和训练过程开展大量消融实验,包括文件级和仓库级去重实验,充分验证模型性能。
• 高质量合成数据:具备成熟的合成数据生成流程,搭配 450 多万条 SFT 数据,为模型训练和评估搭建坚实的数据基础。
• 卓越性能:在多个语言模型基准测试中表现优异,跻身开源代码模型前列。
模型与数据集详情
模型参数
| 模型 |
序列长度 |
HuggingFace |
| OpenCoder-1.5B-Base |
4K |
可下载 |
| OpenCoder-8B-Base |
8K |
可下载 |
| OpenCoder-1.5B-Instruct |
4K |
可下载 |
| OpenCoder-8B-Instruct |
8K |
可下载 |
预训练数据集
| 数据集 |
规模 |
下载地址 |
| fineweb-code-corpus |
148 GB |
HuggingFace |
| fineweb-math-corpus |
10 GB |
HuggingFace |
| opc-annealing-corpus |
24 GB |
HuggingFace |
训练后数据集
| 数据集 |
数量 |
下载地址 |
| opc-sft-stage1 |
421 万 |
HuggingFace |
| opc-sft-stage2 |
37.5 万 |
HuggingFace |
性能测试结果
基础模型性能对比(1B+ 规模)
| 模型 |
规模 |
HumanEval(HE) |
HumanEval+(HE+) |
MBPP |
MBPP+ |
BigCodeBench(3-shot) |
BigCodeBench(Full) |
BigCodeBench(Hard) |
| DeepSeek-Coder-1.3B-Base |
1.3B |
34.8 |
26.8 |
55.6 |
46.9 |
46.2 |
26.1 |
3.4 |
| Yi-Coder-1.5B |
1.5B |
41.5 |
32.9 |
27.0 |
22.2 |
51.6 |
23.5 |
3.4 |
| CodeGemma-2B |
2B |
31.1 |
16.5 |
51.1 |
43.1 |
45.4 |
23.9 |
7.4 |
| Qwen2.5-Coder-1.5B |
1.5B |
43.9 |
36.6 |
69.2 |
58.6 |
59.2 |
34.6 |
9.5 |
| StarCoder2-3B |
3B |
31.7 |
27.4 |
60.2 |
49.1 |
46.4 |
21.4 |
4.7 |
| OpenCoder-1.5B-Base |
1.5B |
54.3 |
49.4 |
70.6 |
58.7 |
51.8 |
24.5 |
5.4 |
基础模型性能对比(6B+ 规模)
| 模型 |
规模 |
HumanEval+(HE+) |
MBPP |
MBPP+ |
BigCodeBench(3-shot) |
BigCodeBench(Full) |
BigCodeBench(Hard) |
| CodeLlama-7B |
7B |
33.5 |
55.3 |
46.8 |
41.4 |
28.7 |
5.4 |
| CodeGemma-7B |
7B |
32.3 |
50.5 |
40.7 |
55.0 |
38.3 |
10.1 |
| DS-Coder-6.7B-Base |
6.7B |
39.6 |
70.2 |
56.6 |
60.6 |
41.1 |
11.5 |
| DS-Coder-V2-Lite-Base (MoE) |
16B |
34.1 |
71.9 |
59.4 |
62.6 |
30.6 |
8.1 |
| CodeQwen1.5-7B |
7B |
45.7 |
72.2 |
60.2 |
61.8 |
45.6 |
15.6 |
| Yi-Coder-9B |
9B |
46.3 |
48.4 |
40.7 |
69.4 |
42.9 |
14.2 |
| Qwen2.5-Coder-7B |
7B |
53.0 |
76.9 |
62.9 |
68.8 |
45.8 |
16.2 |
| Crystal-7B |
7B |
20.7 |
38.6 |
31.7 |
31.0 |
10.8 |
4.1 |
| StarCoder2-7B |
7B |
29.9 |
54.4 |
45.6 |
55.2 |
27.7 |
8.8 |
| StarCoder2-15B |
15B |
37.8 |
66.2 |
53.1 |
55.2 |
38.4 |
12.2 |
| OpenCoder-8B-Base |
8B |
63.4 |
79.9 |
70.4 |
60.6 |
40.5 |
9.5 |
对话模型性能对比(1B+ 规模)
| 模型 |
规模 |
HumanEval(HE) |
HumanEval+(HE+) |
MBPP |
MBPP+ |
BigCodeBench(Full) |
BigCodeBench(Hard) |
LiveCodeBench(Avg) |
| DS-coder-1.3B-Instruct |
1.3B |
65.2 |
61.6 |
61.6 |
52.6 |
22.8 |
3.4 |
9.3 |
| Qwen2.5-Coder-1.5B-Instruct |
1.5B |
70.7 |
66.5 |
69.2 |
59.4 |
32.5 |
6.8 |
15.7 |
| Yi-Coder-1.5B-Chat |
1.5B |
67.7 |
63.4 |
68.0 |
59.0 |
24.0 |
6.8 |
11.6 |
| OpenCoder-1.5B-Instruct |
1.5B |
72.5 |
67.7 |
72.7 |
61.9 |
33.3 |
11.5 |
12.8 |
对话模型性能对比(6B+ 规模)
| 模型 |
规模 |
HumanEval(HE) |
HumanEval+(HE+) |
MBPP |
MBPP+ |
BigCodeBench(Full) |
BigCodeBench(Hard) |
LiveCodeBench(Avg) |
| DS-Coder-V2-Lite-Instruct |
16B |
81.1 |
75.0 |
82.3 |
68.8 |
36.8 |
16.2 |
24.3 |
| CodeLlama-7B-Instruct |
7B |
45.7 |
39.6 |
39.9 |
33.6 |
21.9 |
3.4 |
2.8 |
| CodeGemma-7B-It |
7B |
59.8 |
47.0 |
69.8 |
59.0 |
32.3 |
7.4 |
14.7 |
| DS-Coder-6.7B-Instruct |
6.7B |
78.6 |
70.7 |
75.1 |
66.1 |
35.5 |
10.1 |
20.5 |
| Yi-Coder-9B-Chat |
9B |
82.3 |
72.6 |
81.5 |
69.3 |
38.1 |
11.5 |
23.4 |
| CodeQwen1.5-7B-Chat |
7B |
86.0 |
79.3 |
83.3 |
71.4 |
39.6 |
18.9 |
20.1 |
| Qwen2.5-Coder-7B-Instruct |
7B |
88.4 |
84.1 |
83.5 |
71.7 |
41.0 |
18.2 |
37.6 |
| CrystalChat-7B |
7B |
34.1 |
31.7 |
39.1 |
32.7 |
26.7 |
2.3 |
6.1 |
| StarCoder2-15B-Instruct-v0.1 |
15B |
72.6 |
63.4 |
75.2 |
61.2 |
37.6 |
12.2 |
20.4 |
| OpenCoder-8B-Instruct |
8B |
83.5 |
78.7 |
79.1 |
69.0 |
40.3 |
16.9 |
23.2 |