网站评估源码-大代码模型综述:中国科学院和MSRA审查了27个LLM,并提出了5个有趣的挑战

作者 |詹道光,爱恩普

单位 |中国科学院软件研究所

研究方向 |代码生成

介绍

我相信你对NL2Code任务并不陌生。它的主要目的是将自然语言转换为可执行代码以提高开发人员的生产力,最终目标是将所有程序员交出来,最近,随着大型模型的出现,它比这三天走得更远了。

基于此背景,分享中国科学院与亚洲Microsoft研究院在ACL 2023国际峰会上发表的一篇综述:他们回顾了NL2Code领域的“27个小语种模型及相关评价指标”,分析了“LLM的成功在于模型参数、数据质量和专家调优”,并强调了“NL2Code领域研究的5个机遇和挑战”, 最后作者建立了一个共享网站“”来跟踪NL2Code中的LLM任务的最新进展。

论文标题:

大型语言模型符合 NL2Code:一项调查

包容大会:

ACL 2023

网站评估源码-大代码模型综述:中国科学院和MSRA审查了27个LLM,并提出了5个有趣的挑战

论文链接:

实时网站:

背景新手程序员,

即使是那些没有编程经验的程序员,是否有可能仅仅通过自然语言描述他们的需求来创建他们想要的软件?实现这一愿景将对我们的生活、教育、经济和劳动力市场产生前所未有的影响。NL2Code因其广泛的应用场景而成为一项重要任务,引起了学术界和工业界的广泛兴趣。

NL2Code的开发实际上类似于自然语言处理的发展。一开始,算法设计基本基于专家规则,但这种方法需要不同编程语言的设计,泛化性差;随着技术的发展,人们逐渐开始使用静态语言模型,使用向量空间来描述文本,早期通常稀疏,无法构建常年依赖;后来,我们使用了更熟悉的神经网络,如CNN,RNN,LSTM,通过标记数据进行训练,以建立自然语言(NL)和代码(Code)之间的关系。

虽然这种方法可以在标准数据集上进行改进,但其实际功效远未达到能否服务于实际编码;现在,在 ChatGPT 全球流行的背景下,越来越多的小语言模型 (LLM) 如雨后春笋般涌现,通过语言指令,它们可以在零样本的情况下生成代码,并在 NL2Code 任务中取得了惊人的效果。一个标志性的LLM模型是Codex [1],它解决了72.31%的Python编程问题,并且已经商业化,以提高开发人员在实践中的生产力。

由于法典在NL2Code上的“成功”,提出了各种LLM。例子包括AlphaCode,InCoder,CodeGen,PaLM-Coder,PanGu-Coder,CodeGeeX,StarCoder等。我们可以观察到,随着模型参数数量的减少,LLM表现出一些有趣的涌现能力,例如作为人类在一定程度上编码的能力,甚至调试代码的能力。

27 种流行的代码大模型

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

对于NL2Code任务,对27个具有代表性的LLM进行全面监督,下表总结了每个模型的详细信息,包括五个方面:模型架构、模型大小、模型层数(L)、注意头数(A)、隐藏维度(H)、模型参数是否开放(P)。

网站评估源码-大代码模型综述:中国科学院和MSRA审查了27个LLM,并提出了5个有趣的挑战

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

大代码模型的成功”

以上总结了NL2Code现有的小语言模型(LLM),但这些模型在架构、模型大小等方面各不相同,无法统一评估。为此,作者对HumanEval和MBPP基准数据集进行了统一评估。本文使用pass@k作为评估指标,这是一列可以通过k次尝试正确回答的问题。下表显示了 HumanEval 中的测试结果,按模型大小分组。

从上表可以看出,这些LLM在这个数据集上的表现差异很大,虽然模型参数相似,但功效也有很大不同。您可以看到 Codex 在所有外形规格方面都处于领先地位。为什么会出现这个问题?影响模型功效的关键触发因素是什么?分析给出的推论是:模型大小、数据质量和专家调优。

模型尺寸

根据上面编制的LLMsNL2Code时间开发图可以看出,只要模型参数越多,性能越好。为了进一步说明模型参数大小与模型功效之间的关系,整理了 HumanEval 基准上 10 个代表性模型的pass@1结果,如下图所示

根据上图,很明显“更大的模型通常会导致更好的结果”。此外,“目前的模型,无论大小,仍然可以通过进一步减少模型参数来实现性能改进。

数据质量

随着LLM模型参数的减小,其训练数据的大小也会减小。这在数据选择和预处理方面也有更高的要求。早期的模型,如CodeSearchNet,CoST,XLCoST等,都是基于手动标记的数据对进行训练的(耗时和劳动密集型);GPT系列模型(GPT-3,GPT-Neo,GPT-J)开始在大规模无监督数据集上进行训练,但由于代码数据的限制,没有显示出强大的代码生成能力。借助LLM模型,它们可以在更大的未标记代码数据集上进行训练,并且最终模型非常有效。

在对LLM的有效性感到惊讶的同时,同样重要的是要知道LLM通常在训练前预处理数据。为此,作者介绍了 5 个强大模型的数据预处理技术,包括 Codex、AlphaCode、CodeGen、InCoder 和 PyCodeGPT。发现它们有几个共同的特点:一是删除可能手动生成或未完成的代码文件,二是使用特定规则过滤不常见的代码文件。“总之,这些预处理策略的目标是实现一个不重复、完整、正确、干净和通用的代码语料库。

专家调优训练

一个好的模型需要仔细考虑模型训练阶段的参数。通过对27个LLM模型的研究,发现它们都有一些共同的设置,比如应用了Adam相关优化器,在初始化阶段差别不大。此外,还有一些超参数需要调整,例如 lr、批次、窗口大小、预热、梯度累积和温度。对于学习率,学习率随着模型的降低而逐渐降低。如下图所示:

对于温度,性能

这里比较了在 HumanEval 任务中使用不同温度模型的两个模型。研究发现,较高的温度产生较低的pass@1和较高的pass@100,表明较高的温度使LLM产生更多样化的预测,反之亦然。如下图所示:

此外,研究表明,窗口

大小也是一个关键触发因素,具有大窗口的小模型有时可能比具有小窗口的大型模型更好。此外网站评估源码,强大的LLM通常使用两种主要技术在代码语料库上训练新的标记者:字节级字节对编码和句子。新的分词器可以更高效、更准确地将代码内容拆分为分词。这些经过验证的调优技术将为训练更健壮的LLM提供有价值的参考。

代码生成的数据集

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

但是,大多数基准测试仅包含有限数量的实例。例如,HumanEval 和 MBPP 分别有 164 个和 974 个实例。这是因为此类基准通常是手写的,以防止数据泄漏。“在小语言模型时代,在创建新基线时防止数据泄露至关重要。此外,目前的大多数基准测试都有针对Python的中文问题描述和代码解决方案。

最近,已经提出了几个多语言基准测试,例如“多种编程语言的MBXP,HumanEvalX和MultiPL,以及多种自然语言的ODEX”。下表显示了有关多语言基准测试的详细信息:

“手动评估生成的代码是不切实际的,这需要手动测量。上述基准测试都提供了基于基于执行的评估的测试用例,其中包含pass@k、n@k、测试用例平均值和执行准确性等指标。

但是,“这种方法对测试用例的质量提出了严格的要求,并且只能评估可执行代码。对于不可执行的代码“,使用BLEU、ROUGE 和 CodeBLEU 等指标,无法准确评估代码的正确性。到目前为止,“在设计指标来评估代码的各个方面时,存在许多开放的挑战,例如漏洞、可维护性、清晰度、执行复杂性和稳定性。

代码生成大型模型的挑战和机遇

大预测模型在NL2Code中的应用对学术界和工业界都产生了相当大的影响。虽然取得了令人瞩目的进展,但仍有许多挑战需要解决,这也为研究人员提供了充足的机会。下面笔者从LLM和人类的区别的角度总结了NL2Code任务的挑战和机遇。

「1.理解“:与人类如何理解不同表示级别的各种描述相反,当前的LLM往往对给定的上下文敏感,这可能导致性能下降。一种潜在的解决方案是将复杂的问题分解为简单的问题。总而言之,笔者认为探索对LLM的理解是一个重要的研究方向。

网站评估源码-大代码模型综述:中国科学院和MSRA审查了27个LLM,并提出了5个有趣的挑战

「2.判断“:人类可以判断编程问题是否已解决。目前的模型无论输入什么都会给出答案,答案不确定是否正确,这在实际应用中会出现一定的问题。目前,为了提高LLM的判断能力,有必要使用强化学习的方法根据用户反馈进行优化。有些人利用LLM内部的知识一致性来提高模型的判断能力。无论如何,笔者觉得法学硕士的自决能力还有很大的探索空间。

「3.可解释性:人类开发人员可以解释他们编写的代码,这对于教育和软件维护至关重要。最近的研究表明,LLM有可能手动生成代码解释。作者认为,需要进一步研究和探索这种能力,以实现LLM在这方面的全部潜力。

「4.自适应学习能力“:当前小语言模型与人类之间的根本区别在于它们适应新的和更新的知识的能力。当遇到新的API时,人类开发人员可以根据文档实现快速API开发,而LLM则可以重新训练或微调。目前,APICoder和DocCoder都使用基于检索的方法来提高模型学习外部知识的自适应学习能力,但作者认为如何提高LLM快速自学习能力仍需进一步提高,这也是一个比较大的挑战。

「5.多任务处理:代码大模型可以应用于各种代码相关的任务,如代码修补、代码搜索、代码初审等。即使是大代码模型也可以解决所有可以形式化为代码的下游任务。然而,目前的大代码模型在多任务处理方面与人类有很大不同。一旦人类掌握了一定的知识,他们就可以在任务之间无缝切换。但是,大型代码模型需要复杂的提示工程才能完成不同任务之间的转换。为此,笔者的任务是提高LLM多任务处理能力,也是一个重要的研究方向。

编写大型模型网站代码

为了跟踪大型模型代码生成领域的实时进度,作者提供了一个任何人都可以编辑的实时更新在线网站:

作者已经在本网站上收集了尽可能多的最新研究。每个人都可以通过在GitHub上提出请求来为该网站做出贡献。该网站还包括模糊搜索和自定义标签类别等功能网站评估源码,这将有助于研究人员快速找到他们想要的模型或纸张。希望本网站能够帮助相关领域的研究人员和开发人员,并为其进步做出贡献。

引用

[1] 陈敏, 图雷克, 俊华, 等. 评估代码训练的大型语言模型[J]. arXiv预印本arXiv:2107.03374,2021。

编码大脑初衷

代码脑是源码资本系统化、产品化的重要环节之一,是源码资本努力提升创业者认知的投后服务明星产品。CodeBrain包括多种方法,例如离线课程,在线研究报告等。

Code Brain的成立源于源码资本代码创业者的深切需求:分享实用干货、体验名明星企业、思维培训集体打卡、大佬沟通高指路径、体能毅力共同提升。

截至目前,CodeBrain已经高调开展一年多,共“10”期,约有100位企业家参与了CodeBrain活动。

CEO说

李磊会找一位创始人兼CEO:

代码脑给了创业者一个交流分享的空间,在这里你可以感受到经济环境的热潮,你可以把握行业起伏的心跳,你可以感受到创业企业的温度,是创业者碰撞思想的平台,相信每一位创业者都能在这里得到启发。

网站评估源码-大代码模型综述:中国科学院和MSRA审查了27个LLM,并提出了5个有趣的挑战

ChenNing Rozbuzz创始人兼首席执行官:

我参加过几次代码脑,组织有序,参与者和嘉宾都很资深开放,干货满满。同行可以相互交流,促进合作。线路间通信也是思想和利益的源泉。这里是创业者的分享平台,也是教学的友谊沙龙,期待做得越来越好!

廖俊龙51Like创始人兼CEO:

代码脑就像创业者的夜晚大人物,给忙碌的创业者一个学习的机会,帮助我们成长得更快,避免弯路!同时,结识更多创业型学生!这是一个充满干货的好平台,非常周到!

郑文成 海风教育创始人兼CEO:

A. A. 活动

代码脑给我留下了很大的收获,既有“道”的维度(比如胡先生以华英与华为的宏观分享为例,就特别高级了)和“技术”的维度(比如客座老师对这个话题多角度的详细分析,在选项方案设计上透彻)。CodeBrain在个人成长方面极大地缓解了我作为创始人的一些焦虑,这是CodeClub的一大好处!

黄一然 沈毅然 创始人兼首席执行官:

网站评估源码-大代码模型综述:中国科学院和MSRA审查了27个LLM,并提出了5个有趣的挑战

我曾两次参加活动,从同行那里获得了很多前沿信息和宝贵经验,每次都非常有启发性。在许多情况下,企业家需要的不是答案,而是帮助我们收集足够的信息来做出商业决策。我真的很喜欢代码大脑探索学习方法,期待更丰富的话题!

好的产品总是自我进化的,经过一年多的不断迭代,代码脑已经成为创业者经常期待的重要活动,也在创业者的认可下重生。

转换后的代码大脑即将到来。

Code Brain Logo & Slogan

「标志」

标志来源于英文名称首字母C和B组成的大脑图像

「口号」

数据“、”算法“和”算力“是AI增长的三个要素。我们也觉得,用这三个要素来具体概括一个人的认知成长驱动因素也是恰当的。

o 数据:此处的数据是通用的。通过阅读、教学、听力、问答、讨论、辩论等形式呈现定量与定性、宏观-中观微观、科学技术、社会性、古今中外人文历史等多个维度的全球价值信息,呈现流通利用。

o 算法:这是指产生决策的思维方法。心智模型就像用计算机语言编译代码时使用的核心算法和架构。算法和架构会有很多种,有好有坏,它们通过其规模、稳定性、效率、准确性、开放性、纠错能力、可扩展性等进行具体评估和演化。

o 计算能力:指人脑和体力,可与计算机CPU/GPU等估算、存储、传输资源相媲美。精神体力有限,如何有效配置很重要,如何常年保持稳定的高质量很重要,如何找到并利用“外脑”在线学习。

代码大脑组织创业者的集体思维,锻炼胸肌般的思维力,帮助创业者打开边界,将他人的认知系统,如添加通讯录好友福利网站源码,添加到自己的认知中,不断优化算法,不断升级算力。

编码大脑未来

网站评估源码-大代码模型综述:中国科学院和MSRA审查了27个LLM,并提出了5个有趣的挑战

在波涛汹涌的时代,创业者会遇到经营企业必须面对的“确定性问题”。同时,要面对“黑天鹅”、“灰犀牛”、“金融危机”等市场上的“不确定问题”。

在“发现的问题”方面,Codebrain有与企业管理相关的财务、法律事务、政策研究、人力资源、品牌营销等相关的课程和讨论,每节都有相关阶段的资深专家和CEO进行分享。帮助创业者提高解决“已识别问题”的能力,提供相关工具和方法,增加基础数据输入,实现迭代算法,提高算力。

在“不确定性问题”的维度上,代码脑会为你提供一个私密的讨论空间,老板会分享前辈们的指导,增加对不确定性的抵抗意识,以及应对不确定性所需的算法和算力。在每个阶段,

我们都会深刻理解并不断探索创业者的需求,随时重叠代码大脑,让不同阶段的创业者获得持续的营养投入,实现“帮扶”投后服务的重要目标,为创业者创造奇特的价值。

问答

1. 如何参加编程大脑?

目前的申请方式是只邀请源码资本的投资组合创业者,但对于感兴趣的创业者会有一些“通配符”。一些特殊资源的高级课程仅限CEO,基础实践课程是CXO欢迎的。

2. 代码大脑何时举行?

网站评估源码-大代码模型综述:中国科学院和MSRA审查了27个LLM,并提出了5个有趣的挑战

通常有一个月经。有时,CEO们渴望并专注于某个特定的主题或研究来阐述它,他们会暂时添加它。

3. 如何成为外卡?

源码资本投资部的合作伙伴将积极邀请您。

4. 以前的客人是什么?

每个专题都会选择本领域最高级别的“大咖”嘉宾,或者有深厚的理论造诣,能帮助创业者找到方法论;无论是打过硬仗,有丰富实践经验的人,都可以与创业者分享他们的实践经验。

5. 未来大脑编码有哪些新方法?

我们总会围绕数据、算法、算力思考思路,不断升级代码脑内容,不断筛选邀请最优质的明星,满足创业者的多维度认知提升。

6. 如何查看每期CodeBrain的内容?您可以关注源码资本

(ID:源码资本)的官方微信账号福利网站源码,每次线下课程结束后,我们都会选择编辑内容,通过文章发布到源码资本官方陌陌上。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站源码 网站评估源码-大代码模型综述:中国科学院和MSRA审查了27个LLM,并提出了5个有趣的挑战 https://www.wkzy.net/game/135204.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务