0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

中科院针对NL2Code任务,调研了27个大模型,并指出5个重要挑战

深度学习自然语言处理 来源:AINLPer 2023-05-18 14:33 次阅读

引言

对于NL2Code任务相信大家都不陌生。它主要目的就是将自然语言转换成可执行代码来提高开发人员的工作效率,终极目标就是干翻所有程序员,最近,随着大模型的出现,距离这一天又稍稍进了一步。基于该背景,分享中科院和微软亚洲研究院在ACL2023国际顶会上一篇文章:他们调研了NL2Code领域中的「27个大型语言模型以及相关评价指标」,分析了「LLMs的成功在于模型参数、数据质量和专家调优」,并指出了「NL2Code领域研究的5个机遇挑战」,最后作者建立了一个分享网站来跟踪LLMs在NL2Code任务上的最新进展。https://nl2code.github.io

1ffb74c8-f545-11ed-90ce-dac502259ad0.png

背景介绍

新手程序员,甚至是那些没有任何编程经验的程序员,是否有可能仅仅通过用自然语言描述他们的需求来创建软件?实现这一设想将对我们的生活、教育、经济和劳动力市场产生前所未有的影响。自然语言-代码(NL2Code)因其广阔的应用场景,是一项重要的研究任务,在学术界和工业界都引起了广泛的兴趣。

关于NL2Code的发展,其实和自然语言理解的发展类似,一开始,基本都是基于专家规则进行算法设计,但是此类方法需要对不同编程语言进行设计,泛化性差;随着技术发展,人们逐步开始使用静态语言模型,并使用向量空间来描述文字,此类方法在初期一般向量空间比较稀疏,不能建立长期的依赖关系;再后来,就用到了我们比较熟悉的神经网络,例如CNN、RNN、LSTM,此类方法通过标记数据进行训练来构建自然语言(NL)和代码(Code)之间的关系,但实际效果对NL2Code任务的能力有限;现在,在ChatGPT风靡全球的背景下,越来越多的大型语言模型(LLMs)如雨后春笋一样出现,通过语言指令,它们可以在零样本状况下生成代码,并在NL2Code任务上中取到了惊人的成绩。具有标志性的一个LLM模型就是Codex,它拥有120亿个参数,在Python编程任务上测试,可解决72.31%的问题,并且该模型已经商用可在实践中提高开发人员的工作效率。

NL2Code任务与27个LLMs

对于NL2Code任务,其主要目的是基于给定自然语言问题描述生成所需要的代码。以下是一个关于Python编程问题的示例。其中灰色块部分表示问题描述,绿色块部分表示模型生成代码,黄色块部分表示测试样例。

202a89ca-f545-11ed-90ce-dac502259ad0.png

针对NL2Code任务对27个具有代表性的LLMs进行了全面调研,下表总结了每个模型的详细信息,其中主要包括:模型架构、模型大小、模型层数(L)、注意力头数量(A)、隐藏维度(H)、模型参数是否开放(P)等五个方面。

204ee482-f545-11ed-90ce-dac502259ad0.png

为了更好地可视化,下图按时间顺序展示了这些模型,绘制了最大的模型大小。观察到的一个趋势是,随着研究领域的发展,这些大型语言模型的规模也在不断扩大。此外,只有解码器的架构更适合于规模较大的预训练模型。

2082b53c-f545-11ed-90ce-dac502259ad0.png

27个LLMs评估

上面总结了NL2Code现有的大型语言模型(LLMs),但是这些模型在架构、模型规模等方面各不相同,无法进行统一的评估。为此,作者在HumanEval基准上进行了Zero-shot统一评估,其中HumanEval基准由164个手写的Python编程问题组成,对于每个编程问题都提供了测试用例,以评估生成代码正确性。使用pass@k作为评估指标,即通过k次尝试可以正确回答的问题的比例。下表显示根据模型大小进行分组,在该测试集上的测试结果。

20b55230-f545-11ed-90ce-dac502259ad0.png

从上表可以看出,这些LLM在该数据集上的性能差异很大,尽管模型参数相似但效果差异也是很大。可以发现Codex 在各种尺寸上都处于领先地位。为什么会存在这个问题呢?影响模型效果的关键因素是啥呢?作者经过分析给出的结论有:模型大小、数据质量、专家调优。

模型大小

根据前面的整理用于NL2Code的LLMs时间发展图可以发现,只要模型参数越多性能就越好。为了进一步说明模型参数大小和模型效果之间的关系,作者整理了10个比较有代表性的模型,在HumanEval基准上的pass@1结果,如下图所示:

20fcf0a4-f545-11ed-90ce-dac502259ad0.png

根据上图,很明显的可以「发现较大的模型通常会产生更好的结果」。此外,「当前模型无论大小,仍然可以通过进一步增加模型参数来实现性能的提升」。

数据质量

随着LLMs模型参数的增加,其训练数据规模也在不断的增加。这在数据选择和预处理方面也有更高的要求。早期的模型,例如CodeSearchNet、CoST、XLCoST等都是基于人工标注数据对进行训练(耗时耗力);GPT系列模型(GPT-3 、GPT-Neo、GPT-J )开始在大规模无监督数据集上进行训练,但是由于代码数据限制,并没有显示出很强的代码生成能力。由于LLMs模型的出现,它们可以在更大规模的未标记代码数据集上进行训练,最终模型效果惊人。

在惊叹于LLMs效果的同时,也要知道LLMs在训练之前通常会对数据进行预处理。为此作者调研了Codex、AlphaCode、CodeGen、InCoder和PyCodeGPT等5个强大模型的数据预处理方法。发现它们具有几个共同的特点:一是删除可能自动生成或未完成的代码文件,二是使用特定的规则来过滤不常见的代码文件。「总之,这些预处理策略的目标是实现一个不重复的、完整的、正确的、干净的和通用的代码语料库」。

专家调优

训练一个优秀的模型需要认真考虑模型训练阶段的各个参数。通过对27个LLMs模型的研究发现,它们都有一些共同的设置,比如都应用了Adam相关优化器并在初始化阶段相差不大。除此之外,还有需要调节的超参数,如lr、batch、窗口大小、预热、梯度累积和temperature。对于学习率来说,随着模型的增大,学习率会逐步变小。如下图所示:

212561ec-f545-11ed-90ce-dac502259ad0.png

对于temperature,这里对比了两个模型在HumanEval任务上使用不同temperature后模型的性能。结果发现,更高的temperature产生更低的pass@1和更高的pass@100,这表明更高的temperature使LLM产生更多样化的预测,反之亦然。如下图所示:

2145be74-f545-11ed-90ce-dac502259ad0.png

此外,有研究表明窗口大小也是一个关键因素,具有大窗口的小模型会有时优于具有小窗口的大模型。此外,强大的LLMs通常主要使用两种技术在代码语料库上训练新的标记器:字节级字节对编码和sentencepece 。新的标记器可以更有效和准确地将代码内容拆分为Tokens。这些经过验证的调优技术将为培训更强大的llm提供有价值的参考。

评估基准指标

「对NL2Code任务的评估,高质量的基准和可靠的度量是基础和必要的」。作者总结了17个NL2Code基准测试,每个基准测试在大小、语言、复杂性和场景方面都有自己的特点,如下表所示。

216d164a-f545-11ed-90ce-dac502259ad0.png

但大多数基准测试只包含有限数量的实例。例如,HumanEval和MBPP分别有164和974个实例。这是因为这些基准通常是手写的以防数据泄露。「在大型语言模型时代,在创建新基准时避免数据泄漏至关重要」。此外,大多数当前的基准测试都有英文的问题描述和Python的代码解决方案。最近,已经提出了几个多语言基准,例如涵盖「多种编程语言的MBXP,HumanEvalX和MultiPL ,以及涵盖多种自然语言的ODEX」。多语言基准测试的详细信息如下表所示:

21cab7f0-f545-11ed-90ce-dac502259ad0.png

「手动评估生成的代码是不切实际的,这就需要自动度量」。上述基准均提供了基于执行的评估的测试用例,其中指标如 pass@k、n@k、测试用例平均值和执行精度。但是,「这种方法对测试用例的质量有严格的要求,并且只能评估可执行代码。对于不可执行的代码」,使用了 BLEU 、ROUGE 和 CodeBLEU等指标,无法准确评估代码的正确性。到目前为止,「在设计指标来评估代码的各个方面(例如漏洞、可维护性、清晰度、执行复杂性和稳定性)方面存在许多开放性挑战」。

NL2Code挑战与机遇

大预言模型在NL2Code的应用对学术界和工业界都有相当大的影响。虽然取得了惊人的进展,但仍然有很多挑战需求解决,这也为研究人员提供了充足的机会。下面作者总结了 NL2Code任务的五个挑战和机会。

「1、理解能力」:人类能够理解不同抽象层次的各种描述, 相比之下,当前的 LLM 往往对给定的上下文敏感,这可能会导致性能下降。作者认为探索LLM的理解能力是一个重要的研究方向。

「2、判断能力」:人类能够判定一个编程问题是否被解决。当前模型不论输入什么都会给出答案,而且该答案正确与否都不能确定,这在实际应用中会存在一定的问题。目前为了提高LLM的判断能力,需要根据用户反馈采用强化学习的方式进行调优。作者认为探索LLM自我判断能力,也是一个比较重要的研究方向。

「3、解释能力」:人类开发人员能够解释他们编写的代码,这对教育的和软件维护至关重要。最近的研究表明,LLM 具有自动生成代码解释的潜力。作者认为针对该能力也需要进一步的研究和探索,以充分发挥LLM在这方面的潜力。

「4、自适应能力」:当前的大型语言模型与人类之间的一个根本区别是它们适应新知识和更新知识的能力。人类开发人员能够根据文档资料实现API的快速开发,而LLM需要大量的知识和训练。作者认为如何提高LLM快速自学习能力也是一个比较大挑战。

「5、多任务处理能力」:LLM在多任务处理方面与人类存在较大差异。人类可以在任务之间无缝切换,而LLM可能需要复杂的提示工程。为此作者任务提升LLM多任务能力同样是一个重要的研究方向。


审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语言模型
    +关注

    关注

    0

    文章

    465

    浏览量

    10169
  • python
    +关注

    关注

    53

    文章

    4701

    浏览量

    83701
  • 自然语言
    +关注

    关注

    1

    文章

    271

    浏览量

    13239

原文标题:ACL2023 | 中科院 针对NL2Code任务,调研了27个大模型,并指出5个重要挑战

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    助听器降噪神经网络模型

    抑制任务是语音增强领域的一重要学科, 随着深度神经网络的兴起,提出了几种基于深度模型的音频处理新方法[1,2,3,4]。然而,这些通常是为
    发表于 05-11 17:15

    【大语言模型:原理与工程实践】大语言模型的应用

    ,它通过抽象思考和逻辑推理,协助我们应对复杂的决策。 相应地,我们设计两类任务来检验大语言模型的能力。一类是感性的、无需理性能力的任务,类似于人类的系统1,如情感分析和抽取式问答
    发表于 05-07 17:21

    【大语言模型:原理与工程实践】大语言模型的评测

    和产品化提供有力的数据支持。 对于生活闲聊类评测任务模型的回答主要从人性化程度、内容质量和社交适应性三方面进行考察。这些方面共同反映
    发表于 05-07 17:12

    【大语言模型:原理与工程实践】大语言模型的预训练

    大语言模型的核心特点在于其庞大的参数量,这赋予模型强大的学习容量,使其无需依赖微调即可适应各种下游任务,而更倾向于培养通用的处理能力。然而,随着学习容量的增加,对预训练数据的需求也相
    发表于 05-07 17:10

    【大语言模型:原理与工程实践】大语言模型的基础技术

    处理各种自然语言任务时都表现出了惊人的能力。这促使一新的研究方向诞生——基于Transformer 的预训练语言模型。这类模型的核心思想是先利用大规模的文本数据进行预训练,捕捉语言的
    发表于 05-05 12:17

    【大语言模型:原理与工程实践】揭开大语言模型的面纱

    人工智能进步中提供重要价值。 大语言模型在逻辑推理、推断和问题解决方面展现出了卓越的能力。随着模型规模的扩大,其推理能力日益增强,能够轻松应对复杂
    发表于 05-04 23:55

    湖南大学校长、王耀南院士一行赴中科亿海微调研指导

    近日,湖南大学校长、王耀南院士带队赴中科亿海微电子科技(苏州)有限公司(简称中科亿海微)北京研究院调研指导,魏育成总裁率队接待。段校长及王院士一行参观了企业展厅,并详细了解了中科亿海微
    的头像 发表于 02-19 12:17 448次阅读
    湖南大学校长、王耀南院士一行赴<b class='flag-5'>中科</b>亿海微<b class='flag-5'>调研</b>指导

    国产FPGA:湖南大学段献忠校长、王耀南院士一行赴中科亿海微调研指导

    近日,湖南大学段献忠校长、王耀南院士带队赴中科亿海微电子科技(苏州)有限公司(简称中科亿海微)北京研究院调研指导。魏育成总裁率队接待。段校长及王院士一行参观了企业展厅,并详细了解了中科
    的头像 发表于 02-04 10:10 670次阅读

    Meta发布开源大模型Code Llama 70B

    近日,Meta宣布推出了一款新的开源大模型Code Llama 70B,这是其“Code Llama家族中体量最大、性能最好的模型版本”。这款新模型
    的头像 发表于 01-31 09:24 519次阅读

    武汉市东湖高新区管委会副主任李世庭一行调研中科驭数

    是驭数DPU研发团队的重要力量之一 。 自2022年2月入驻武汉光谷后,中科驭数已在武汉研发中心建立上百人的研发团队,参与了公司多个重要产品及核心项目的研发任务。 ▲ 李世庭副主任一行
    的头像 发表于 12-19 16:05 528次阅读
    武汉市东湖高新区管委会副主任李世庭一行<b class='flag-5'>调研</b><b class='flag-5'>中科</b>驭数

    产学研三界顶级大咖分享:RISC-V场景Show暨开源生态高级别论坛定档12/19

    12月19日,RISC-V场景Show暨开源生态高级别论坛即将开幕。本次论坛将邀请来自中科院计算技术研究所副所长包云岗、嘉楠科技AI软件总监张晓晶、阿里巴巴达摩生态总监陈炜、清华大学长聘副教授陈渝
    发表于 12-15 18:36

    孙凝晖院士一行莅临中科驭数调研指导

    12月6日,中国工程院院士、中国科学院计算所学术委员会主任孙凝晖一行莅临中科驭数调研指导,中国科学院计算技术研究所研究员、副总工程师李晓维、计算所科研处处长罗瑞丽陪同调研中科驭数创始
    的头像 发表于 12-07 19:15 561次阅读

    中科微CSM32RV003绿色开发板免费体验】3.使用流程

    。 总的来说,我对南京中科微公司的CSM32RV003开发板的使用体验感到非常满意。它不仅提供强大的工具和例程来帮助我快速开发,还为我提供优秀的平台来探索新的技术和解决方案。这
    发表于 10-14 00:05

    中科院&amp;旷视提出DropPos:全新的自监督视觉预训练代理任务

    训练模型,让模型重建那些无 PE token 的位置信息。这个及其简单的代理任务就能在多种下游任务上取得有竞争力的性能。
    的头像 发表于 10-10 17:10 499次阅读
    <b class='flag-5'>中科院</b>&amp;旷视提出DropPos:全新的自监督视觉预训练代理<b class='flag-5'>任务</b>

    大型语言模型在关键任务和实际应用中的挑战

    大型语言模型在关键任务和实际应用中的可靠性受到挑战模型产生幻觉可能是由于模型缺乏或错误地理解了相关的知识。当人类思考和记忆事物时,本体知
    的头像 发表于 08-15 09:33 1224次阅读
    大型语言<b class='flag-5'>模型</b>在关键<b class='flag-5'>任务</b>和实际应用中的<b class='flag-5'>挑战</b>