【论文】OSS-Instruct——EvalPlus榜单SOTA模型Magicoder

2024-03-20 06:59

本文主要是介绍【论文】OSS-Instruct——EvalPlus榜单SOTA模型Magicoder,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 arxiv论文地址

EvalPlus Leaderboard

GitHub - ise-uiuc/magicoder: Magicoder: Source Code Is All You Need

目录

​编辑

背景

OSS-Instruct

具体例子

数据处理

实验

python代码生成

小语种生成

deepseek做base

语言分布的消融实验

直接用开源代码进行fine-tune


背景

现有的数据生成办法可以有效地提高LLM的指令跟踪能力,但它们依赖于小范围的预定义任务或启发式方法。而这样的方法会显著地继承LLMs和预定义任务中固有的系统偏差。

Self-Instruct仅依靠21个种子任务,使用相同的提示模板生成新的代码指令。

Evol-Instruct 以Code Alpaca为种子,仅依靠5种启发式算法对数据集进行演化。

OSS-Instruct

如图所示,OSS - INSTRUCT利用强大的LLM,通过从开源中收集的任意随机码片段中获得灵感,自动生成新的编码问题。【直接用开源代码进行fine-tune会对模型性能产生负面影响】在这个例子中,LLM从来自不同功能的两个不完整的代码片段中得到启发,并设法将它们联系起来,形成一个现实的机器学习问题。得益于"无限"的开源代码,OSS - INSTRUCT可以通过提供不同的种子代码片段直接产生多样化、逼真和可控的代码指令。

根据从GitHub中收集到的一些种子代码段,提示一个LLM (例如, ChatGPT)产生一个编码问题及其解决方案。种子片段提供了生成的可控性,并鼓励LLM创建能够反映真实世界编程场景的多样化编码问题。

源码中提取种子片段的代码

具体例子

shell脚本示例展示了LLM如何仅用一行shell脚本处理Python编码问题。库导入实例演示了一个LLM如何只用几个导入语句就可以创建一个现实的机器学习问题。同时,类签名实例说明了LLM从一个包含SpringBootApplication等注释和bank等关键字的不完整类定义中汲取灵感的能力。由此,LLM产生了一个问题,即需要基于Spring Boot实现一个完整的银行系统!

数据处理

选择StarCoder的语料库生成种子代码片段,因为是过滤版本,已经进行后处理,是高质量的

对于每一个code 文档,随机提取1~15个连续的行,从80K篇文档中提取80K的初始种子判断,python40K,C++, Java, TypeScript, Shell, C#, Rust, PHP, and Swift 各5K。为防止数据泄露,和评测数据集进行去重,最后剩75K种子数据

手工设计了10个coding的类别,计算每个样本在OSS-Instruct 的嵌入和10个类别之间的cosine相似度

创建多样化的编码任务,包括算法挑战、现实问题、单功能代码生成、基于库的程序补全、全程式开发,甚至整个应用程序的构建。

再计算OSS-Instruct 75K数据集以及self-instruct方法以及Evol-instruct与HumanEval 之间的相似性,self最高

实验

python代码生成

分别在CodeLLaMa-python-7B基础上用75K的OSS instruct数据集fine-tune得到Magicoder-CL和Magicoder-DS;继续evol-instruct方法训练得到MagicoderS-CL和MagicoderS-DS

虽然MagicoderS - CL在HumanEval上的得分略低于WizardCoder - CL - 34B和ChatGPT,但在更严格的HumanEval +数据集上,MagicoderS - CL的得分超过了WizardCoder - CL - 34B和ChatGPT,表明MagicoderS - CL可能产生更健壮的代码。

小语种生成

用MultiPL-E进行测评

在所研究的编程语言中,Magicoder - CL对CODELLAMA - PYTHON - 7B的改进幅度较大。此外,在一半的编程语言中,Magicoder - CL也取得了比SOTA 15B WizardCoder - SC更好的结果。此外,MagicoderS - CL在所有编程语言上都比Magicoder - CL有了进一步的改进,在仅有7B个参数的情况下达到了与WizardCoder - CL - 34B相当的性能。

而且MultiPL-E以代码补全格式评估模型,但 Magicoders 仍显示出显著的改进,尽管仅进行了指令调整。这意味着LLM可以从超出其格式的数据中学习知识。

deepseek做base

我们在 DeepSeek-Coder-Base-6.7B 用75K的OSS instruct数据集fine-tune得到 Magicoder-DS ;继续evol-instruct方法训练得到 MagicoderS-DS。值得注意的是,MagicoderSDS 变体在所有基准测试中都超越了 DeepSeek-Coder-Instruct-6.7B,训练token数量减少了 8 倍,并且在这些数据集上也与 DeepSeek-Coder-Instruct-34B 非常接近!

语言分布的消融实验

语种不是按种子的语言分类,而是按照生成出来的代码语言分;因为OSS-Instruct有可能生成和种子不同语言的代码。75K里面有43K的python数据和32K的其他语种数据

当仅使用 非 Python 数据进行训练时,Magicoder-CL 在仅使用 Python 的评估中仍然比基本模型提高了 10.4 个百分点。这意味着法学硕士可以在不同编程语言之间建立关联,并对更深层次的代码语义进行迁移学习。最后,混合语言的在python的评估上更高,但是在其他语言的表现上下降了,我们归因于指令调优期间 Python 数据的主导量(约 57%)

直接用开源代码进行fine-tune

用产生OSS-instruct75K数据集来源的StarCode,提取comment-function对,让模型用function signatures和comments来预测函数体。

我们观察到对 75K  coment-function 数据的微调甚至使基本模型变得更糟,而 OSS-INSTRUCT 有助于引入显著的提升。我们推测,退化是由于数据对本身存在的大量噪声和不一致造成的,尽管这些配对数据表现出与 HumanEval 或 MultiPL-E 问题非常相似的格式。这进一步表明,数据的真实性,而不是格式,对于代码指令调整至关重要。

这也表明了OSS-INSTRUCT可以将这些松散相关的代码片段转换为语义一致的指令调优数据。

这篇关于【论文】OSS-Instruct——EvalPlus榜单SOTA模型Magicoder的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/828647

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者