一款小而强大的编程助手:零一万物正式开源Yi-Coder系列模型

在 AI 领域中,代码生成和编辑工具一直是开发者们关注的焦点。

今天,零一万物开源了 Yi-Coder 系列模型,它作为 Yi 系列模型家族中的“编程小能手”,展现了卓越的代码生成能力。这是继今年5月13日开源 Yi-1.5 系列模型之后,零一万物在开源方向上的又一重要成果。

Demo 展示:
在这里插入图片描述
在这里插入图片描述

Demo创意借鉴自:https://github.com/nutlope/llamacoder

模型简介

Yi-Coder 系列模型专为编码任务而生,提供 1.5B 和 9B 两种参数。其中,Yi-Coder 9B 的表现优于其他 10B 参数以下的模型,如 CodeQwen1.5 7B 和 CodeGeex4 9B,甚至能够与 DeepSeek-Coder 33B 相媲美。

模型特点

小参数,强性能:尽管 Yi-Coder 的参数量相对较小,但它在各种任务,包括代码生成、代码理解、代码调试和代码补全中的表现十分出色。10B以下的大小也让它易于使用,方便端侧部署。

  • 128K 长序列建模:Yi-Coder 能够处理长达 128K tokens 的上下文内容,有效捕捉长期依赖关系,适用于复杂项目级代码的理解和生成。
  • 强大的代码生成能力:支持 52 种主要编程语言,Yi-Coder 在代码生成和跨文件代码补全方面表现优异。

模型成绩

Yi-Coder 在代码生成基准测试中名列前茅
LiveCodeBench 是一个旨在为大语言模型提供全面公平的编程竞赛评测平台。它实时收集来自 LeetCode、AtCoder、CodeForces 等竞赛平台的新问题,构成了一个动态而全面的基准测试库。为确保没有数据污染,由于Yi-Coder的训练数据截止时间是2023年底,我们选取了2024年1月到9月的题目进行测试。在下图榜单中,Yi-Coder-9B-Chat 的通过率达到了 23.4%,在 10B 以下参数量的模型中是唯一一个通过率超过 20% 的模型。这一成绩超过了 :

  • DeepSeek-Coder-33B-Instruct 的 22.3%
  • CodeGeex4-All-9B 的 17.8%
  • CodeLLama-34B-Instruct 的 13.3%
  • CodeQwen1.5-7B-Chat 的 12%

在这里插入图片描述

除了竞赛级别的高难度评测,我们还选取了Zero-shot HumanEval、3-shot MBPP 和 CRUXEval-O 等业内流行基准测试,用于评估模型的基础代码生成和推理能力。下图评测结果表明,Yi-Coder在这三个评估任务之下都取得了优异的性能。具体来说,Yi-Coder-9B-Chat 在 HumanEval和MBPP的通过率分别达到了 85.4%和73.8%,超过其他Coder模型。此外,Yi-Coder 9B在CRUXEval-O的准确率在开源Coder模型中首次达到了50%以上。
在这里插入图片描述

代码编辑和补全能力强劲

CodeEditorBench 涵盖了四个关键领域: 代码调试、代码翻译、代码优化和代码需求转换。结果表明,在开源代码大语言模型中,Yi-Coder-9B-Chat 取得了优异的成绩,在 Primary 和 Plus 两个子集中始终优于 DeepSeek-Coder-33B-Instruct 和 CodeQwen1.5-7B-Chat。
在这里插入图片描述

代码补全方面,Yi-Coder 也表现出色。与代码生成不同,跨文件代码补全要求模型访问并理解跨多个文件的资源库,这些文件之间存在大量的跨文件依赖关系。本次评估采用了 CrossCodeEval 基准,在两种不同的情况下进行:检索相关上下文和不检索相关上下文。

下图结果表明,Yi-Coder 在有检索和无检索的情况下都优于其他同等规模的模型。这一成功验证了在具有较长上下文长度的软件仓库级代码语料库上进行训练能够使 Yi-Coder 有效捕捉长期依赖关系,从而提高其性能。

在这里插入图片描述
在这里插入图片描述

长序列建模表现优秀

我们效仿文本领域流行的长序列评测,合成了一个128K长序列的“Needle in the code” 评估任务,长度双倍于CodeQwen1.5所构建的64K长序列评测。它通过在长代码库中随机插入一个简单的自定义函数,测试模型能否在代码库最后重复这个函数。该测试旨在检测LLM是否能从长文本中提取出这些关键信息,从而反映其对长文本的理解基础能力。

下图全绿结果表示,Yi-Coder-9B 在 128K 长度范围内完美完成了这一任务。
在这里插入图片描述

数学推理能力毫不逊色

DeepSeek Coder 先前的研究表明,模型强大的编码能力可以增强其数学推理能力。Yi-Coder 在七个数学题数据集上评估了代码辅助(PAL: Program-aided Language Models)解题能力,在每个数据集中,模型都要通过生成Python代码然后执行代码得出最后的答案。这七个任务的平均准确率得分如下图所示,Yi-Coder 9B的准确率达到 70.3%,超过了 DeepSeek-Coder 33B 的 65.8%。
在这里插入图片描述

模型使用

如果你想快速上手试试 Yi-Coder,参阅 Yi-Coder README(https://github.com/01-ai/Yi-Coder),包含具体的下载和使用步骤。

Yi 开源系列模型家族现已包含 Yi、Yi-1.5、Yi-VL、Yi-Coder 等多款模型,我们鼓励大家探索大语言模型的更多可能,将 Yi 系列模型集成到他们的项目中,亲身体验其强大的性能。

共勉!

本项目是一个基于SSM(Spring+SpringMVC+MyBatis)框架和Vue.js前端技术的大学生第二课堂系统,旨在为大学生提供一个便捷、高效的学习和实践平台。项目包含了完整的数据库设计、后端Java代码实现以及前端Vue.js页面展示,适合计算机相关专业的毕设学生和需要进行项目实战练习的Java学习者。 在功能方面,系统主要实现了以下几个模块:用户管理、课程管理、活动管理、成绩管理和通知公告。用户管理模块支持学生和教师的注册、登录及权限管理;课程管理模块允许教师上传课程资料、设置课程时间,并由学生进行选课;活动管理模块提供了活动发布、报名和签到功能,鼓励学生参与课外实践活动;成绩管理模块则用于记录和查询学生的课程成绩和活动参与情况;通知公告模块则实时发布学校或班级的最新通知和公告。 技术实现上,后端采用SSM框架进行开发,Spring负责业务逻辑层,SpringMVC处理Web请求,MyBatis进行数据库操作,确保了系统的稳定性和扩展性。前端则使用Vue.js框架,结合Axios进行数据请求,实现了前后端分离,提升了用户体验和开发效率。 该项目不仅提供了完整的源代码和相关文档,还包括了详细的数据库设计文档和项目部署指南,为学习和实践提供了便利。对于基础较好的学习者,可以根据自己的需求在此基础上进行功能扩展和优化,进一步提升自己的技术水平和项目实战能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSDN资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值