首页 » SEO优化 » php摘要认证技巧_面向源代码摘要的快速进修框架

php摘要认证技巧_面向源代码摘要的快速进修框架

访客 2024-12-09 0

扫一扫用手机浏览

文章目录 [+]

WEISONG SUN, CHUNRONG FANG∗ , YUDU YOU, YUCHEN CHEN, YI LIU, CHONG WANG,JIAN ZHANG,QUANJUN ZHANG,HANWEI QIAN,WEI ZHAO,YANG LIU, ZHENYU CHEN

引用

php摘要认证技巧_面向源代码摘要的快速进修框架

Sun W, Fang C, You Y, et al. A Prompt Learning Framework for Source Code Summarization[J]. arXiv preprint arXiv:2312.16066, 2023.

php摘要认证技巧_面向源代码摘要的快速进修框架
(图片来自网络侵删)

论文:https://arxiv.org/abs/2312.16066

择要

代码择要自动天生是软件开拓的关键任务。
近年来,大型措辞模型(LLM)被引入该领域。
现有方法如指令提示和任务导向微调存在局限。
本文提出PromptCS框架,通过演习提示代理天生连续提示来开释LLM在代码择要中的潜力。
PromptCS无需用户设计提示,对LLM非侵入性,演习效率高,并在多个指标上优于传统方法。
实验表明,PromptCS在CodeSearchNet数据集上表现精良,特殊是在大型LLM上,且能天生更好的择要。

1 弁言

源代码注释在促进程序理解和软件掩护方面起着至关主要的浸染。
然而,现有研究表明,缺少高质量的代码注释是软件行业普遍存在的问题。
此外,在软件蜕变过程中,注释每每是缺位的、不匹配的、过期的。
这些现实问题驱动了源代码择要的研究。
源代码择要(code summarization,简称代码择要)是自动天生代码择要(即注释)的任务。
近十年来,一贯是软件工程领域的研究热点之一。

最近,随着大型措辞模型(llm)在自然措辞处理(NLP)中的成功,越来越多的软件工程(SE)研究职员开始将它们集成到各种SE任务的解析过程中。
与NLP任务的llm(例如ChatGPT和LLaMA)类似,SE任务的代码也有许多llm,例如Codex、StarCoder、CodeGen和PolyCoder。
在本文中,我们更关注llm在代码择要任务中的运用。
现有的研究表明,在大量文本语料库上演习的llm已经显示出他们特殊令人愉快的能力,可以从文本指令(即在零次学习设置中)或从几个例子(即在少次学习设置中)实行新任务。
因此,最近有几项研究调查了零次和少次学习的传授教化提示在使llm适应代码择要任务中的有效性。
例如,孙伟松等人评估了ChatGPT在零射击代码择要任务上的性能。
他们设计了几个启示式问题/指令来网络ChatGPT的反馈,从而找到一个得当的提示来辅导ChatGPT天生分布内代码择要。
然而,他们在大规模CSN-Python数据集上的实验结果表明,该提示无法勾引ChatGPT天生令人满意的择要。
我们也在CSN-Java数据集上考试测验了这个提示,并得到了类似的结果,详情见后文。
这些结果表明,手工制作有效的提示是一项具有寻衅性的任务,哀求用户不仅具有专业领域知识,而且对正在利用的llm有深刻的理解。
Ahmed等人研究了少射学习的指令提示在使llm适应代码总结任务中的有效性。
为了创造适宜小样本学习的样例数量,他们在小规模测试数据集上考试测验了多组不同数量的样本(包括5、10和15)。
然后,他们利用10个样本在商业LLM法典上进行指令提示,并创造它可以优于微调根本模型(例如,CodeT5)。
我们利用相同的10个样本对开源llm(例如,StarCoderBase-3B)进行指令提示,创造它们的性能仍旧比微调的llm差得多。
这一征象表明,对付少样本学习,选择哪些样本和选择多少样本,须要用户根据专业知识和不断的试验做出决策。

另一种使llm更好地完成下贱任务的直接方案是通过面向任务的微调。
面向任务的微调通过演习特定于所需任务的数千个监督标签来更新llm的权重。
微调的紧张上风是在任务基准上的强大性能。
例如,Jin等人在有监督的bug修复数据上微调了120亿(B)的法典。
虽然微调显著增强了模型的bug修复能力,但随之而来的是高额的演习本钱。
例如,为了进行全模型微调(更新法典的所有权值),Jin等人构建了一个由64块32GB V100 gpu组成的演习环境,这是许多研究团队无法实现的。
在本文中,我们还在代码择要任务上进行了面向任务的微调方案的实验,这些任务同样产生了很高的演习本钱。
随着llm的规模不断扩大,微调的本钱可能相称可不雅观。

在本文中,我们提出了一种新的代码择要提示学习框架,称为PromptCS。
PromptCS的关键特性是它能够将开拓职员从手动设计繁芜提示的须要中解放出来。
详细来说,PromptCS设计了两个协作组件来实现此功能,包括一个提示代理和一个LLM。
提示代理卖力天生可以勾引LLM实行代码择要任务的能力的连续提示。
提示代理的核心是一个基于深度学习(DL)的提示编码器,它将由nlearnabletoken组成的伪提示作为输入,并产生提示嵌入(即连续提示)。
提示代理在LLM的辅导下进行演习。
因此,经由良好演习的prompt agent可以产生一个比人类编写的离散提示更适宜LLM的连续提示。
更主要的是,与改变llm参数的面向任务的微调方案不同,PromptCS对llm是非侵入性的。
PromptCS在培训过程中冻结llm的参数,只更新提示代理的参数,可以大大减少对培训资源的需求。

综上所述,我们做出了以下贡献。

我们提出了一种新的代码总结提示学习框架,称为PromptCS。
PromptCS能够为输入代码片段天生高质量的择要。
此外,PromptCS是一个通用框架,可以与多个llm结合利用。
我们开放了PromptCS的代码,以方便未来的研究和运用。
我们在广泛利用的基准数据集上进行了广泛的实验,以评估PromptCS。
实验结果表明,在BLEU、METEOR、ROUGE-L和SentenceBERT四个指标上,PromptCS显著优于零镜头和少镜头学习的指令提示方案,与面向任务的微调方案相称。
在一些llm上,例如StarCoderBase-1B和StarCoderBase-3B, PromptCS乃至优于面向任务的微调方案。
在培训本钱方面,PromptCS是明显低于以任务为导向的微调方案。
例如,当利用StarCoderBase-7B模型作为根本LLM时,PromptCS演习提示代理大约须要67小时,而面向任务的微调方案一个epoch演习大约须要211小时。
我们对PromptCS和基线天生的总结(包括零次和少次学习的指令提示方案以及面向任务的微调方案)进行了定性的人工评估。
人类得分的统计结果表明,与基线比较,PromptCS天生的择要更靠近于ground-truth择要。

2 方法

2.1 概述

图1展示了PromptCS的概述。
顶部显示PromptCS的培训过程,底部显示PromptCS的支配/利用,以支持代码择要做事。
PromptCS由两个核心组件组成:提示代理和LLM。
提示代理卖力天生提示,勾引LLM为代码片段天生自然措辞择要。
PromptCS对llm具有非侵入性,即在演习过程中,llm的参数始终被冻结,保持不变。
因此,在PromptCS的演习过程中,我们的目标是得到一个演习有素的提示代理。
PromptCS利用⟨代码片段,ground-truth择要⟩对组成的演习数据来演习提示代理。
详细来说,PromptCS将提示员的培训分解为五个步骤。
在步骤1中,PromptCS将代码片段供应给LLM,利用其输入嵌入层天生相应的代码嵌入,表示为eC。
在步骤2中,PromptCS向提示编码器供应一个伪提示,以天生表示为eP的提示嵌入。
伪提示由nlearnable没有实际意义的token组成。
提示编码器是一个DL模型,与提示代理一起演习。
在步骤3中,PromptCS连接eCandPtogether以产生表示为eF的领悟嵌入。
与人类编写的离散提示类似,我们的PromptCS对输入代码片段是非侵入性的,也便是说,提示嵌入不会毁坏代码嵌入的完全性。
因此,ePwill只被拼接到eC的正面/背面。
eFare然后馈送到LLM的模块块中以天生预测的择要(步骤4)。
在步骤5中,基于预测择要和ground-truth择要,PromptCS打算丢失并迭代更新提示agent的模型参数。
一旦演习阶段完成,就得到了演习良好的prompt agent。
当支配PromptCS以供给用时,提示代理将自动为用户给出的代码片段天生一个提示嵌入,以辅导LLM天生预测的择要。
对付用户来说,所有这统统都是无缝进行的,并且是不可察觉的。

图1 PromptCS概述

2.2 代码嵌入天生

每个LLM都有三个核心组件,即tokenizer,输入嵌入层和模块块。
PromptCS直策应用LLM的前两个组件来完成代码嵌入天生的任务。
详细来说,给定一个代码片段,我们的提示代理首先利用相应LLM供应的标记授予器将代码片段中的各种元素,如标识符和符号,转换为索引表示。
每个索引表示对应于LLM词汇表中的一个标记。
然后,提示代理将索引表示供应给LLM的输入嵌入层。
输入嵌入层可以将索引表示编码为嵌入(即eC),以便模块块可以更好地理解其内部信息。

2.3 提示嵌入天生

提示嵌入的功能是指示LLM天生代码择要。
如图1(1)所示,通过提示编码器天生的提示嵌入ePis。
提示编码器的输入是一个由nlearnabletoken组成的伪提示,表示为p={t0,t1,…,tn},个中tirefers指向i-th伪令牌。
伪token的浸染是仅作为占位符,不携带任何实际意义,并指示提示编码器用于天生提示嵌入的提示长度。
提示编码器是一个DL模型,能够映射pto一个连续的数字序列,然后将其输入到嵌入层中天生T={t0,t1,…,tn},个中tiis是一个可演习的嵌入张量。
这使我们能够创造更有效的连续提示,超越了LLM的原始词汇。
然后,提示编码器运用双向是非期影象网络(BiLSTM),与ReLU激活的两层多层感知器(MLP)来产生真正的提示嵌入eP={e0,e1,…,en}。
值eiatePis的i-th位置打算如下:

wherehfi表示正向LSTM的隐蔽状态,hbirepresents表示反向LSTM的隐蔽状态。

2.4 领悟嵌入天生

类似于人类如何将离散的提示与代码片段连接起来,PromptCS也可以以各种办法将提示代理天生的连续提示(即提示嵌入)与代码片段的嵌入连接起来。
为了不毁坏代码本身的完全性,人类的一种常见做法是将离散提示符连接在代码片段的前面或后面[59,61]。
图3左侧展示了一个离散提示符和代码片段(记为<code>)拼接的例子,个中(a)和(b)分别代表两种模式:前端模式,拼接代码片段前面的离散提示符;和后端模式,连接代码片段前面的离散提示符。
在本文中,除了遵照上述两种模式,我们还考试测验了一种新的模式,称为双端模式。
在双端模式中,提示嵌入被拆分为两个部分,分别在代码嵌入的正面和背面进行串联。
这种拆分很随意马虎实现。
比如我们可以拆分eP={e0,??1,…,en}分成e1P={e0,e1,…,ei}和e2P={e??+1,…,en}。

图2显示了一个连接提示嵌入和代码嵌入的示例,个中(e)、(f)和(g)分别展示了三种连接模式。

图2:提示符和代码拼接的例子

2.5 模型演习

预测择要天生。
在PromptCS中,预测的择要由第二个组件(即LLM)天生。
如图1(1)所示,PromptCS直接将领悟嵌入(即eF))供应给能够天生自然措辞择要的LLM模块块。
如2.2节所述,在本文中,我们更关注自回归llm如何适应代码汇总任务。
对付自回归llm,预测代码择要可以看作是一个条件天生任务,个中输入是一个高下文,输出是一个令牌序列。
形式上,让z=[eF,eS],个中eSis通过将已经天生的择要馈送到LLM的输入嵌入层而得到的择要嵌入。
以及zidenotesz中的i-th值。
韶光步长的LLM天生的激活向量iisai=[ai(1),…],ai(n)],它是在这个韶光步长的所有激活层的输出的串联。
而ai(j)则是j-th层在韶光步i处的激活向量。
自回归LLM在其左侧高下文中计算aibased在ziand上的过去激活a<i,如下:ai=LLM(zi,a<i)。
然后,它利用矩阵Wto映射aitologitsli的末了一层,这是与下一个单词干系联的概率向量,即li=W·ai(n)。
末了,基于li,它进一步利用函数P·)来选择LLM词汇表中概率最高的token作为已经天生择要的下一个tokensi+1,即si+1=P(li)。

演习的过程。
在PromptCS的演习过程中,LLM的参数被冻结,只有prompt编码器的参数被更新。
设yˆ为预测择要对应的概率向量,ybe为ground-truth择要。
丢失函数可以建模为以下分类交叉熵丢失函数:

个中representing模型的可演习参数;Cis词汇表中token的数量。
yˆiandyirepresent预测token和ground-truth token的概率分别为i∈C。

3 实验评估

我们进行了一系列的实验来回答以下研究问题(RQs):

RQ1。
PromptCS在使llm适应代码择要方面有多有效?RQ2。
关键配置(即提示符长度和代码与提示符嵌入的连接办法)如何影响PromptCS?RQ3。
提示编码器中网络架构的选择如何影响PromptCS?RQ4。
演习数据大小如何影响PromptCS?RQ5。
PromptCS如何在其他编程措辞中实行代码汇总任务?RQ6: PromptCS在人工评估中的表现如何?

3.1 实验设置

评估数据集。
我们在CodeSearchNet (CSN)语料库上对PromptCS进行了评估,该语料库是一个广泛的代码片段凑集,包括用六种编程措辞(包括Go、Java、JavaScript、PHP、Python和Ruby)编写的注释。
这个语料库最常用于研究代码择要。
考虑到原始CSN语料库包含一些低质量的数据,我们利用CodeXGLUE中的代码到文本文档字符串天生任务的数据集,该任务建立在CSN语料库之上,并打消了有缺陷的数据样本。

评价指标。
我们在评估中利用了四个指标,包括BLEU、ME-TEOR、ROUGE和SentenceBERT。
这些指标广泛运用于代码择要。

BLEU是双语评估Understudy的缩写,是精度度量的一种变体,它通过打算天生的择要与ground-truth择要的n-gram精度来打算相似度,并对长度过短进行惩罚。
在本文中,我们遵照并展示了标准BLEU评分。
METEOR的引入是为理解决利用BLEU的问题。
METEOR通过取n-gram精度和n-gram召回率的调和均匀值来打算相似度。

ROUGE-L是ROUGE (Recall-oriented Understudy for Gisting Evaluation)的变体。
ROUGE-L是基于最长公共子序列(LCS)打算的。

SentenceBERT。
与上述三个度量紧张打算真实择要与天生择要之间的文本相似度不同,SentenceBERT度量的是语义相似度。
SentenceBERT首先将两个比较择要转换为统一向量空间中的嵌入,然后利用余弦相似度表示它们之间的语义相似度。

BLEU、ROUGE-L、METEOR、SentenceBERT评分范围为,以百分比报告。
分数越高,天生的择要越靠近ground-truth择要,代码择要性能越好。

根本LLM。
我们对四种盛行的自回归LLM进行了实验,包括三个开源LLM: PolyCoder、CodeGen-Multi、StarCoderBase和一个商业LLM: ChatGPT。

PolyCoder是由卡内基梅隆大学的研究职员发布的。
它利用GPT NeoX工具包在来自12种编程措辞的249GB代码上进行演习,有三种尺寸:160M、0.4B和2.7B。

CodeGen-Multi是由Salesforce发布的,它是用于程序合成的自回归措辞模型家族的一员。
在我们的实验中,我们利用了三种尺寸的CodeGen-Multi: 350M, 2B和6B。

StarCoderBase将于2023年由hug Face和ServiceNow联合发布。
它利用来自堆栈的80+种编程措辞进行演习。
而著名的StarCoder是StarCoderBase的微调版本,经由额外350亿个Python令牌的演习。
考虑到StarCoder只因此16B版本供应,可能不适宜进行全面的比拟实验。
在我们的实验中,我们利用了三种大小的StarCoderBase: 1B、3B和7B。

ChatGPT可能是最强大的LLM。
为了在它的帮助下进行实验,我们利用了OpenAI API,该API由一系列具有不同功能的模型供应支持,例如GPT-3.5, DALL·E和Whisper。
在我们的实验中,我们利用的是GPT-3.5涡轮模型,它是GPT-3.5家族中最强大、最具本钱效益的选择。

实验设置。
在演习阶段,我们将小批量大小设置为16,学习率设置为5e-5。
我们利用AdamW优化器和线性学习率调度程序,遵照hug Face推举的默认设置。
为了担保演习的全面性,我们采取了基于最佳验证BLEU的早期停滞策略来掌握模型的演习epoch数。
早期停滞耐心被设置为4。
输入序列用分外标记添补到最大长度,这些标记是根据LLM的词汇表选择的。
为了在单个A800上微调StarCoderBase-7B和CodeGen-Multi-6B,我们利用DeepSpeed 0.12.2。
我们将零冗余优化器(Zero)设置为0 -3,并使优化器打算卸载到CPU。
所有模型都是在Python 3.8中利用PyTorch 2.1.0框架实现的。
所有实验都在一台做事器上进行,做事器配备了一块Nvidia A800 GPU, 80gb内存,运行Ubuntu 20.04.4。

3.2 实验结果

RQ1。
表1显示了我们的PromptCS和基线在BLEU、METEOR、ROUGE-L和句子伯特四个评估指标方面的表现。
不雅观察到,就四个指标的得分而言,面向任务的微调在LLM PolyCoder上表现最好,其次是PromptCS、指令提示(短指令)和指令提示(零射门)。
在llm CodeGen-Multi和StarCoderBase上,PromptCS总体上与面向任务的微调相称,并且都明显优于这两种指令提示方案。
PromptCS乃至在一些llm上优于面向任务的微调,例如CodeGen-Multi-2B(第7行)、StarCoderBase-1B(第9行)和-3B(第10行)。
我们还对商用LLM ChatGPT进行了指令提示方案,其性能如表2末了一行所示。
不雅观察一下,ChatGPT上的两种指令提示方案的性能在所有四个指标上都优于其他三个llm,但与面向任务的微调和PromptCS比较,也不令人满意。
虽然这种比较是不合理的,但我们有情由相信,如果ChatGPT是开源的,面向任务的微调方案和PromptCS与指令提示方案比较,将显著提高其代码汇总能力。

表1 PromptCS在CSN-Java数据集上的有效性。
零射击:零射击学习的传授教化提示;短镜头:短镜头学习的传授教化提示;B:BLEU;M:METEOR;R:ROUGE-L;S:SentenceBERT。

此外,我们还比较了任务导向方案和PromptCS在培训韶光方面的培训本钱。
表2列出了三个llm在培训期间的韶光本钱。
可以看到,与面向任务的方案比较,PromptCS对所有llm所需的韶光明显减少,这可以归功于PromptCS对llm的非侵入性,并且在演习过程中不会更新llm的参数。
须要把稳的是,当模型LLM的大小非常大(例如,StarCoderBase-7B),面向任务的微调将非常耗时,并且如果可用的演习资源(例如,GPU设备的性能和数量)很少,则变得不可接管。

表2 微调和PromptCS培训韶光

RQ2。
如图1所示,提示代理中的两个关键配置可能会影响PromptCS的性能,即由伪提示决定的提示长度和代码嵌入与提示嵌入的连接办法。
为了揭示它们的效果,我们进行了全面的实验,涉及五种不同的提示长度(包括10、20、50、100和200)和三种拼接模式(包括前端模式、后端模式和两端模式)。
我们统一利用StarCoderBase-1B作为根本LLM。
实验结果如表3所示。
从表3中可以看出,采取前端模式时,PromptCS在提示长度为50(即20.41)时BLEU得分最佳,而在提示长度为200时ME-TEOR、ROUGE-L和SentenceBERT得分最佳(分别为14.40、39.68和0.6206)。
如果利用后端模式,PromptCS在提示长度为100时得到最佳BLEU和SentenceBERT分数,在提示长度为20和200时得到最佳METEOR和ROUGE-L分数。
如果利用两端模式,PromptCS在提示长度为50时得到最佳BLEU和ROUGE-L分数,在提示长度为100和20时得到最佳METEOR和SentenceBERT分数。
这些不雅观察结果表明,不同的组合两种关键配置确实对PromptCS的有效性有不同的影响。
值得把稳的是,虽然不同的组合对PromptCS有不同的影响,但在数值上,这些影响的差异是很小的。
以BLEU为例,最佳组合为后端模式,提示长度为100,得分为20.50;最差组合为两端模式,提示长度为10,得分为20.03。
两组BLEU评分差异小于0.5。

但是,须要把稳的是,随着提示长度的增加,须要演习的伪token数量也会增加,从而会提升模型的演习本钱。
图3显示了在不同提示长度设置下为一个epoch演习PromptCS所需的韶光。
从这张图中可以直不雅观地不雅观察到,随着提示长度的增加,演习所需的韶光本钱明显增加。

表3 提示语长度和连接办法对PromptCS的影响。
B:BLEU;M:METEOR;R:ROUGE-L;S:句子伯特。

图3 不同提示长度的演习本钱

RQ3。
提示代理包含一个基于BiLSTM的基于dl的提示编码器。
在实践中,我们还考试测验在一个更高等的网络(即Transformer)上构建提示编码器,以验证不同的选择对PromptCS的影响。
在这个实验中,我们统一将提示符长度设置为100,并将拼接模式设置为后端模式。
表4给出了实验结果。

不雅观察到,与在BiLSTM上构建提示编码器比较,1)在PolyCoder-160M上构建提示编码器,在Transformer上构建提示编码器在所有四个指标上都提高了PromptCS的性能;2)在CodeGen-Multi-350M上,在Transformer上构建提示编码器增强了METEOR和SentenceBERT中的PromptCS的性能改进,但导致BLEU和ROUGE-L的减少;3)在StarCoderBase-1B上,在Transformer上构建提示编码器不仅不能提高PromptCS的性能,而且还会导致四个指标的性能低落。
总体而言,随着LLM模型规模的增大,基于BiLSTM构建提示编码器的PromptCS性能有提高的趋势,而基于Transformer构建提示编码器的PromptCS性能则呈现相反的趋势。

表4 在不同的网络架构上构建提示编码器时PromptCS的性能。
我们将基于BiLSTM/Transformer构建的提示编码器的性能更好的指标分数加粗。

RQ4。
在本文中,我们还剖析了演习数据大小对PromptCS有效性的影响。
为了揭示这种影响,我们从一个小规模的演习集开始,并系统地增加演习样本的数量。
较小的演习集是从完全的演习数据中随机采样的。
所考虑的演习集大小包括100、1000、10000和164923(完全的演习数据)。
在这个实验中,我们还统一利用StarCoderBase-1B作为根本LLM,并将提示长度和拼接模式分别设置为100和后端模式。

图4展示了实验结果,个中x轴表示演习集大小,y轴表示BLEU、METEOR和ROUGE-L在左侧,SentenceBERT在右侧。
不雅观察到,随着演习集规模的增加,PromptCS在这四个指标上的得分都会增加,但增加并不明显。
利用100个样本演习的PromptCS的性能与利用164,923个样本演习的PromptCS相称。
这强调了PromptCS在小规模数据集上优胜的适应性和泛化能力。
它对付降落演习本钱、提高演习效率、在数据有限的环境中得到令人满意的性能具有深远的现实意义。
它对付在数据有限的环境中降落演习本钱、提高演习效率、得到令人满意的绩效具有深刻的现实意义。

图4 演习集大小对PromptCS的影响

RQ5。
为了验证PromptCS的泛化能力,我们还在其他两种编程措辞(包括JavaScript和Python)中进行了实验。
在这些实验中,我们还将提示符长度和拼接模式分别统一设置为100和后端模式。
实验结果如表5所示。

从表5的CSN-JavaScript专栏中可以不雅观察到,面向任务的微调方案在大多数指标和llm上优于PromptCS。
只管如此,值得把稳的是,在三个llm上,PromptCS均匀可以达到面向任务的微调方案的98%的性能,这是令人鼓舞的。
从表5的CSN-Python专栏中可以不雅观察到,在所有三个llm上,PromptCS在所有四个指标上的表现始终优于面向任务的微调方案。

表5 PromptCS在不同编程措辞中的有效性。
B:BLEU;M:METEOR;R:ROUGE-L;S:SentenceBERT。
我们利用了面向任务的微调/PromptCS表现更好的指标分数。

RQ6。
除了自动评估之外,我们还按照之前的事情进行人工评估,以评估由三个基线和PromptCS天生的择要。
详细来说,我们约请了5位具有4年以上软件开拓履历、英语能力精良的志愿者进行评估。
我们从CSN-Java数据集、相应的真值择要以及基线和PromptCS天生的择要中随机选择100个代码片段。
哀求每位志愿者根据天生的择要与相应的地面真值择要的相似程度,为其分配1到5的分数,个中1表示“完备不相似”,5表示“高度相似/相同”。
为了担保实验结果的公道性和客不雅观性,每个择要由5名志愿者进行评估,终极得分为他们得分的中位数。

表8展示了天生的择要的得疏散布。
不雅观察到PromptCS得到了最好的分数,并将均匀分数从2.31(零次学习的指令提示)、3.31(少次学习的指令提示)和3.60(面向任务的微调)提高到3.64。
详细而言,在随机选择的100个代码片段中,PromptCS可以天生15个与基本事实高度相似乃至完备相同的择要(得分= 5),56个良好的择要(得分≥4)和93个不差的择要(得分≥3)。
PromptCS的阴性结果也较少(得分≤2)。
根据每个基线和PromptCS的100个终极分数,我们遵照[76]并进行Wilcoxon符号秩考验[72]并打算Cliff 's delta效应大小[41]。
PromptCS与零次学习的指令提示、少次学习的指令提示和任务导向的微调比较,Wilcoxon符号秩考验在95%置信水平下的p值分别为5.46E-16、0.016和0.722,这意味着PromptCS与零次和少次学习的指令提示比较,取得的改进具有统计学意义。
此外,Cliff的delta效应值分别为0.5669(大)、0.1478(小)和0.0314(可忽略不计)。

表6 人工评价结果

转述:拓紫苑

标签:

相关文章

php模板查毒技巧_安卓海量破解软件哪里找

在给大家分享之前呢,先给大家说一说破解软件的安全问题,可能大家在利用的时候都会有这样的疑问,破解软件安全吗?我的回答:不屈安。软件...

SEO优化 2024-12-14 阅读0 评论0