OpenCoder: 顶级代码大型语言模型的开放式食谱

OpenCoder 是一个开放的、可重现的代码 LLM 系列,包括 1.5B 和 8B 基本模型和聊天模型,支持中英文两种语言。 从零开始,OpenCoder 在由 90% 的原始代码和 10% 的代码相关网络数据组成的 2.5 万亿个标记上进行预训练,并在超过 450 万个高质量 SFT 示例上进行监督微调,最终达到顶级代码 LLM 的性能。 我们不仅提供模型权重和推理代码,还提供可重现的训练数据、完整的数据处理管道、严格的实验消融结果和详细的训练协议。 OpenCoder 让研究人员能够进行构建和创新,是您推动人工智能代码发展的开放式基础。

  • 完全开源: OpenCoder 不仅发布了模型权重和即将发布的推理代码,还发布了用于训练的完整数据清理代码,从而确保完全透明。 该版本包括高质量的合成数据、广泛的检查点集和超过 450 万个监督微调(SFT)条目的数据集,使 OpenCoder 成为目前开源最全面的模型之一。
  • 全面的实验分析: OpenCoder 通过对各种数据清理策略和训练流程进行广泛的消融研究,包括文件级和存储库级重复数据删除实验,进行了严格的测试,确保对模型性能进行全面的探索和验证。
  • 高质量合成数据: OpenCoder 提供完善的合成数据生成流程和 450 多万条 SFT 数据项,为模型训练和评估奠定了坚实的数据基础。
  • 卓越性能: OpenCoder 在多个语言模型基准测试中都取得了很高的性能,跻身于领先的开源代码模型之列。

基准测试

model OpenCoder-1.5B-Base OpenCoder-8B-Base
HumanEval(+) 54.3 (49.4) 66.5 (63.4)
MBPP(+) 70.6 (58.7) 79.9 (70.4)
BigCodeBench 24.5 40.5
BigCodeBench-Hard 5.4 9.5

推理代码示例

为了演示 OpenCoder-8B-Instruct 模型的功能,这里有一个推理代码示例,展示了如何用 Python 生成快速排序算法:

python 复制代码
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = "infly/OpenCoder-8B-Instruct"
model = AutoModelForCausalLM.from_pretrained(model_name,
                                             torch_dtype=torch.bfloat16,
                                             device_map="auto",
                                             trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)

messages=[
    { 'role': 'user', 'content': "write a quick sort algorithm in python."}
]

inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")

outputs = model.generate(inputs, max_new_tokens=512, do_sample=False)

result = tokenizer.decode(outputs[0][len(inputs[0]):], skip_special_tokens=True)
print(result)

结论

OpenCoder-8B-Instruct 模型对于任何希望生成高质量代码的人来说都是一个强大的工具。凭借其卓越的性能、开源许可和易用性,该模型是各种应用的绝佳选择。无论您是开发人员、研究人员,还是只是在寻找一款可靠的代码生成工具,OpenCoder-8B-Instruct 模型都绝对值得考虑。

感谢大家花时间阅读我的文章,你们的支持是我不断前进的动力。点赞并关注,获取最新科技动态,不落伍!🤗🤗🤗

相关推荐
水上冰石6 小时前
【MHS协议】第四章:ESP32 接入 MHS 协议实战:从零构建一个 MHS 兼容设备
人工智能·架构·机器人
知了一笑7 小时前
个体看衰AI,企业加速转型
人工智能·ai
飞哥数智坊8 小时前
一只虾到多只虾:先聊聊我为什么要“拆虾”
人工智能
飞哥数智坊8 小时前
架构图 SKILL 封装好了,顺便做了虾的适配
人工智能
冬奇Lab8 小时前
Code Agent 解剖(16):AgentTeams——为什么一个 agent 不够用?
人工智能
东风破_8 小时前
聊天记录越来越长怎么办?从消息数量截断到 Token 截断
人工智能
冬奇Lab8 小时前
开源项目第204期:LoopX — 长周期 Agent 控制平面,跑在 Codex/Claude Code 之上的状态管理层
人工智能·开源
ZGIAI9 小时前
旧模型下线前,客服 Agent 怎么迁移
人工智能·架构
东风破_9 小时前
程序重启后,AI 为什么把你忘了?从 InMemory 到持久化 Memory
人工智能
ZGIAI9 小时前
客服知识库更新后,怎么批量验收
人工智能·架构