IBM开源Granite Code模型,多尺寸可选,支持多种代码任务,性能媲美 CodeLlama

前言

近年来,大型语言模型(LLM)在代码领域展现出惊人的潜力,为软件开发流程带来了革命性的改变。代码 LLM 不仅能够生成高质量代码,还能帮助程序员修复错误、解释代码、编写文档等等,极大地提高了软件开发效率。然而,现有的代码 LLM 存在着一些局限性,例如模型体积过大,部署成本高昂,以及对特定代码任务的性能表现不佳等等。为了解决这些问题,IBM 研究院推出了 Granite Code 模型家族,旨在为企业软件开发提供一个功能强大、灵活易用的代码 LLM 工具。

  • Huggingface模型下载:https://huggingface.co/ibm-granite

  • AI快站模型免费加速下载:https://aifasthub.com/models/ibm-granite

技术特点

Granite Code 模型家族包含多个尺寸的模型,参数量级从 30 亿到 340 亿不等,能够满足不同场景的应用需求。模型架构基于 Transformer 解码器,并采用了多阶段训练策略,使其在代码理解和生成能力方面展现出卓越的性能。

116 种语言支持,覆盖主流编程语言

Granite Code 模型在 116 种编程语言上进行了训练,涵盖了几乎所有主流编程语言,包括 Python、JavaScript、Java、Go、C++、Rust 等等。这种广泛的语言支持,能够帮助开发者在不同编程语言之间进行代码转换和理解,并提高代码开发的效率。

多阶段训练策略,提升模型的综合能力

Granite Code 模型采用了双阶段训练策略,第一阶段仅使用代码数据进行训练,第二阶段则引入高质量的自然语言数据,进一步提升模型的推理能力。模型在训练过程中使用了因果语言建模目标和 Fill-In-the-Middle (FIM) 目标,使其能够更好地处理代码补全和代码插值任务。

多尺寸模型,满足不同场景的应用需求

Granite Code 模型家族包含 4 个不同尺寸的模型,分别是 3B、8B、20B 和 34B。用户可以根据自己的需求选择合适的模型。例如,对于资源受限的端侧设备,可以使用 3B 模型,而对于需要处理复杂代码任务的应用,则可以选择 34B 模型。

优化训练细节,提升模型的性能和效率

为了提升模型的性能和效率,Granite Code 模型在训练过程中采用了多种优化策略,包括:

  • FlashAttention 2: 加速注意力机制的计算速度。

  • 混合精度训练: 使用 BF16 精度进行训练,减少内存消耗。

  • 序列并行: 降低大型上下文长度训练过程中的内存消耗。

  • 深度扩展: 通过深度扩展技术,将 20B 模型的层数增加到 88 层,提升模型的性能。

性能表现

Granite Code 模型在多个基准测试中展现出了优异的性能,并与 CodeLlama 等最新模型在代码生成、修复、解释等任务中表现相当。

代码生成:性能领先,多语言支持

在 HumanEvalSynthesize、MultiPL-E 和 MBPP(+) 等代码生成任务基准测试中,Granite Code 模型在不同尺寸下均展现出了强大的性能,其在 6 种语言的 HumanEvalSynthesize 测试中,平均准确率超过了 CodeLlama,其中 3B 模型的性能甚至超越了 CodeLlama-34B-Instruct。在 MultiPL-E 测试中,8B 模型在 18 种编程语言中取得了最佳表现,而 34B 模型也超越了 CodeLlama-34B,展现了其强大的多语言代码生成能力。

代码修复和解释:性能优异,应用场景广泛

在 HumanEvalFix 和 HumanEvalExplain 等代码修复和解释任务中,Granite Code 模型同样表现出色。 8B 模型在代码修复任务中接近 CodeLlama-70B,而在代码解释任务中则超过了 CodeLlama-34B。 在实际应用中,Granite Code 模型能够有效地识别和修复代码中的错误,并给出清晰的代码解释,帮助开发者更深入地理解代码逻辑。

代码编辑和翻译:灵活高效,功能强大

在 CanItEdit 和 CodeLingua 等代码编辑和翻译任务中,Granite Code 模型展现了灵活高效的性能。在 CanItEdit 测试中,8B 模型的性能优于 CodeGemma 和 CodeLlama,表明其能够更准确地理解用户的意图,并对代码进行精准的修改。在 CodeLingua 测试中,Granite Code 模型的代码翻译能力也与 CodeGemma 模型相当,并且能够更有效地处理代码翻译中的复杂情况。

代码推理和执行:性能提升,应用场景拓展

在 CRUXEval 和 Berkeley Function-Calling Leaderboard (BFCL) 等代码推理和执行任务中,Granite Code 模型展现了更强的推理能力。在 CRUXEval 测试中,Granite Code 模型在不同尺寸下均取得了领先的性能。 在 BFCL 测试中,8B 模型的性能超越了 CodeLlama-7B,展现了其在调用函数和工具方面的优势。

模型鲁棒性测试:表现稳定,适应性强

在 ReCode 模型鲁棒性测试中,Granite Code 模型在不同尺寸下表现稳定,其在代码生成任务中展现了较强的鲁棒性,即使在面对各种扰动的情况下,也能保持良好的性能表现。

模型的优势

Granite Code 模型拥有以下优势:

  • 全能型: 能够处理多种代码任务,包括代码生成、修复、解释、编辑、翻译、推理、执行等等,能够为开发者提供全面的代码智能支持。

  • 企业级: 模型训练数据源于 IBM 自有数据,并遵循 IBM AI 伦理原则和法律团队的指导,确保模型的可靠性和安全性,适合企业级应用。

  • 开源: 所有 Granite Code 模型均采用 Apache 2.0 许可证,支持商业使用,为开发者提供了更多的灵活性和选择。

应用场景

Granite Code 模型在多个领域具有广泛的应用潜力,例如:

  • 代码辅助工具: 可以帮助开发者快速生成代码、修复错误、解释代码等。

  • 代码自动补全: 可以为开发者提供智能代码补全功能,提升代码编写效率。

  • 代码安全检测: 可以帮助开发者识别代码中的安全漏洞和潜在问题。

  • 代码重构: 可以帮助开发者将旧代码进行重构,提高代码质量。

  • 代码翻译: 可以用于将一种编程语言的代码翻译成另一种语言。

总结

Granite Code 模型家族的推出,标志着代码 LLM 技术迈上了新的台阶,它为开发者提供了功能强大、灵活易用的代码智能工具。随着技术的不断进步,相信 Granite Code 模型将会在更多领域发挥重要作用,推动软件开发的智能化进程。

模型下载

Huggingface模型下载

https://huggingface.co/ibm-granite

AI快站模型免费加速下载

https://aifasthub.com/models/ibm-granite

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/664610.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis通用Mapper:简化数据库操作的利器

引言 在软件开发中,数据库操作是不可或缺的一部分。通常我们会使用mybatis,的MBG插件,自动生成表对应的基本操作语句xml。 当我们的表字段发生变化的时候,我们需要修改实体类和Mapper文件定义的字段和方法。如果是增量维护&…

为何ICLR未能进入CCF推荐期刊会议列表?

会议之眼 快讯 最近小编在思考一个问题:ICLR(International Conference on Learning Representations)即国际学习表征会议自2013年诞生以来,ICLR以其开放的学术氛围、创新的研究议题和前沿的科学探索,迅速成为AI领域不…

【工具】 MyBatis Plus的SQL拦截器自动翻译替换“?“符号为真实数值

【工具】 MyBatis Plus的SQL拦截器自动翻译替换"?"符号为真实数值 使用MyBatis的配置如下所示: mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl调用接口,sql日志打印如下: 参数和sql语句不…

苏州金龙新V系客车科技助力“粤”动广州

粤动活力新V系! 5月23日,苏州金龙新V系智慧客车推介会在羊城广州举行。活动现场展出了4款新V系代表车型,来自广东省旅游客运、道路运输行业的200余位从业者齐聚一堂,共同品鉴、体验了苏州金龙新V系产品的“新、心、芯”魅力。苏州…

Perplexity 搜索引擎刚刚推出了新的页面功能——维基百科可以扔了

Perplexity 允许用户根据搜索结果创建自定义页面 人工智能搜索引擎初创公司 Perplexity 推出了一项新功能,使其结果更具粘性,允许用户将研究转变为易于共享的页面。页面建立在 Perplexity 中现有的人工智能驱动的搜索功能之上,该功能使用与 …

Artifactory清理二进制文件丢失的制品

一、摘要 当制品上传到 Artifactory 时,Artifactory 会在数据库中记录制品的相关元数据信息,包括文件路径、大小、校验和(如 MD5、SHA1)、上传时间、索引、依赖等。实际的制品二进制文件会存储在指定的存储后端,具体的…

【NumPy】掌握NumPy的divide函数:执行高效的数组除法操作

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

2年go蓝炎科技、爱诗科技面试经历,期望薪资22K

广州蓝炎科技一面 1、简单自我介绍?用的什么技术栈? 2、go的map是线程安全的吗? 3、Channel一般会在什么场景下使用?往一个未初始化的channel发送数据,会怎样? 4、关于go里头的随机数是线程安全的吗&am…

不同厂商SOC芯片在视频记录仪领域的应用

不同SoC公司芯片在不同产品上的应用信息: 大唐半导体 芯片型号: LC1860C (主控) LC1160 (PMU)产品应用: 红米2A (399元)大疆晓Spark技术规格: 28nm工艺,4个ARM Cortex-A7处理器,1.5GHz主频,2核MaliT628 GPU,1300万像…

基于51单片机多功能防盗报警proteus仿真( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机多功能防盗报警系统 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单&&下载链接 基于51单片机多功能防盗报警系统( proteus仿真程序设计报告原理图讲解视频) 仿真图proteus8.9及以上…

打开C语言常用的内存函数大门(二)—— memmove()函数 (内含memmove的讲解和模拟实现)

文章目录 1. 前言2. memmove()函数2.1 memmove()函数与memcpy()函数的差异2.2 memmove()函数的原型2.3 memmove()函数的使用案例 3. memmove()函数的模拟实现4. 总结 1. 前言 在之前,我向大家介绍了C语言中的一个常用的内存函数memcpy函数。如果你还没看的话&#…

Check Point 安全网关任意文件读取漏洞复现(CVE-2024-24919)

Check Point 安全网关任意文件读取漏洞复现(CVE-2024-24919) 1.漏洞描述 Check Point Security Gateways 是 Check Point Sofware 提供的一系列 网络安全Q解决方案。这些解决方案包括下一代防火墙(NGFW)、数据中心安全网关和 A1驱动的量子网关,旨在为企业提供针对…

反思 GTC 和 OFC 2024:没有一刀切的方法,但上市时间是关键!

在GTC 2024期间,英伟达宣布了最新的Blackwell B200张量核心GPU,旨在为万亿参数的AI大型语言模型提供支持。Blackwell B200需要先进的800Gbps网络,完全符合在AI工作负载的AI网络报告中概述的预测。随着人工智能工作负载的流量预计每两年增长10…

销量逆袭!敦煌店铺如何靠自养号测评轻松引爆市场?

对于众多卖家而言,踏入中国领先的B2B跨境电商平台,如同步入了充满无尽机会的金矿。然而,有些卖家在平台上努力经营,但订单却寥寥无几。那么,究竟是什么原因导致了这种情况?接下来,我们将结合实际…

小程序webView 实现小程序内嵌H5页面

web-view | 微信开放文档 本案例新建了一个 webView页面 只渲染webView组件 配置路由,跳转页面的时候 前缀使用‘/subPages/webView/index?weburlhttps://xxxxx’ componentDidMount 的时候 获取路由中的 weburl 地址参数 async componentDidMount() {const router getCurre…

Coolmuster Android Assistant: 手机数据管理的全能助手

在数字化时代,智能手机不仅是通讯工具,更是个人数据的中心。随着数据量的不断增加,如何有效管理和保护这些数据成为了一个重要议题。Coolmuster Android Assistant应运而生,它是一款专为安卓用户设计的综合数据管理软件&#xff0…

九部门联合发文知识产权保护体系建设,微版权打造全链条知产保护

近日,国家知识产权局会同中央宣传部、最高人民法院、最高人民检察院、公安部、司法部、商务部、海关总署、国家市场监督管理总局等八部门联合印发《知识产权保护体系建设工程实施方案》(以下简称《方案》),共同加强知识产权保护体系建设。 《方案》是新时…

使用vscode调试c++、python、torchrun、deepspeed程序

目录 调试模式启动(Launch)模式调试c++launch.jsontasks.json附加(Attach)模式调试pythondebug torchrun和deepspeedlaunch.json参考VSCode通过其强大的扩展生态系统和灵活的调试配置,为C++、Python以及特定工具链如TorchRun和DeepSpeed的调试提供了便捷的方式。通过合理配…

初识Spring Cloud Gateway

文章目录 一、网关简介1.1 网关提出的背景1.2 网关在微服务中的位置1.3 网关的技术选型1.4 补充 二、Spring Cloud Gateway的简介2.1 核心概念:路由(Route)2.2 核心概念:断言(Predicate)2.3 核心概念&#…

手机文件管理软件哪个好?巧用文件命名分类工具,文件清晰醒目!

随着智能手机功能的日益强大,我们日常使用手机存储的文件也越来越多,如何高效地管理这些文件成为了许多人的需求。因此,手机文件管理软件应运而生,它们能够帮助我们更好地组织、查找和编辑手机中的文件。在众多手机文件管理软件中…