999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于大模型知識(shí)蒸餾的代碼摘要自動(dòng)生成

2025-08-28 00:00:00尤剛劉文杰李美鵬孫立群王煉田鐵庫(kù)
指揮控制與仿真 2025年4期

引用格式:,,,等.基于大模型知識(shí)蒸餾的代碼摘要自動(dòng)生成[J].指揮控制與仿真,2025,47(4):27-33.YOU G,LIUWJ,etalodemmaaedrgeodelkolegedistilionJmandoroliulatio,47 (4) :27-33.

中圖分類(lèi)號(hào):TP311;TP18 文獻(xiàn)標(biāo)志碼:A DOI:10.3969/j.issn.1673-3819.2025.04.005

Code summarization based on large model knowledge distillation YOU Gang,LIU Wenjie,LI Meipeng,SUN Liqun,WANG Lian, TIAN Tieku (Unit 96941 of PLA,Beijing ,China)

Abstract:Code summarization is a short natural language description ofsource code.Summariesareusuallyonlyone sentencelong,buttheyaretheprimarywayfordevelopers tounderstandcode.Recently,productsbasedonlargelanguagemodels(such as ChatGPT)havedemonstratedastrong abilitytogenerate these descriptions.However,touse these tools,programmersmustsend theircodetoanuntrustedthirdpartyforprocessing(forexample,throughAPIcalls),butthismethod is unacceptable to many organizations.This paper presents an alternative:weuse the exampleoutput generated by GPT-3.5 totrainanopensourcemodel throughaprocessrelatedtoknowledgedistilation.Enablingsmall models(with 350millon parameters) to also be comparable to GPT-3.5 in code summarization tasks.

Keywords: code summarization;large model;knowledge distillation

代碼摘要是源代碼的簡(jiǎn)短自然語(yǔ)言描述。摘要通常只有一句話。例如,當(dāng)閱讀一個(gè)Java方法時(shí),程序員可能會(huì)從Javadoc句子“將所有可見(jiàn)的多邊形更改為藍(lán)色”開(kāi)始。摘要為程序員提供了一種快速了解代碼功能的方法。軟件工程(software engineering,SE)長(zhǎng)期以來(lái)一直致力于自動(dòng)化生成摘要的過(guò)程,以減少程序員的工作量,支持文檔不足的遺留程序,并構(gòu)建可訪問(wèn)性工具[1]。代碼摘要構(gòu)成了這些工具的基礎(chǔ)。

像許多研究領(lǐng)域一樣,隨著大語(yǔ)言模型的快速崛起,實(shí)現(xiàn)自動(dòng)代碼摘要這一數(shù)十年的目標(biāo)似乎即將實(shí)現(xiàn)。本文通過(guò)蒸餾GPT-3.5的能力來(lái)生成源代碼摘要,比較了由GPT-3.5生成的源代碼摘要與人類(lèi)程序員編寫(xiě)的摘要,以確定GPT-3.5生成的摘要是否可以替代人類(lèi)編寫(xiě)的摘要。本文使用funcom-java-long數(shù)據(jù)集來(lái)獲得主要源代碼,并使用GPT-3.5為215萬(wàn)個(gè)Java方法生成了摘要。結(jié)果表明,GPT-3.5在準(zhǔn)確性、完整性、簡(jiǎn)潔性和有用性方面的質(zhì)量高于人類(lèi)編寫(xiě)的參考摘要。這一結(jié)果令人驚訝,因?yàn)槿祟?lèi)編寫(xiě)的參考摘要長(zhǎng)期以來(lái)一直被視為評(píng)估軟件文檔生成質(zhì)量的標(biāo)準(zhǔn)[2]

本文使用GPT-3.5生成的摘要作為訓(xùn)練樣本,對(duì)預(yù)訓(xùn)練的語(yǔ)言模型進(jìn)行微調(diào)以生成源代碼摘要,使用了Su等人 [3]2023 提出的微調(diào)方法,該方法使用了一種特定形式的訓(xùn)練提示,并比較了由3.5億參數(shù)版本的Jam模型(使用215萬(wàn)個(gè)示例數(shù)據(jù)集進(jìn)行訓(xùn)練)生成的摘要與GPT-3.5生成的摘要。結(jié)果表明,Jam模型能夠很好地復(fù)制GPT-3.5的源代碼摘要生成能力,盡管在整體性能方面GPT-3.5略勝一籌。

本文在三個(gè)方面推動(dòng)了代碼摘要自動(dòng)生成技術(shù)的發(fā)展:

(1)本文進(jìn)行了一項(xiàng)研究,比較了GPT-3.5生成的代碼摘要和隨代碼本身提供的參考摘要。我們發(fā)現(xiàn),人們更喜歡GPT-3.5生成的摘要,這一結(jié)果有兩個(gè)重要含義。第一,它支持了研究對(duì)按需開(kāi)發(fā)人員文檔的愿景。第二,學(xué)界可能會(huì)重新研究代碼摘要工具的新標(biāo)準(zhǔn),因?yàn)榛贏I的模型有時(shí)可能更加符合需求。

(2)為大模型的垂直應(yīng)用提供一種新思路,本文蒸餾了GPT-3.5的代碼摘要生成能力,并且發(fā)現(xiàn)一個(gè)成本較低的模型(如3.5億參數(shù)的Jam模型)在提供足夠示例的情況下,可以復(fù)制一個(gè)非常大的模型(如GPT-3.5)在代碼摘要方面的能力。

(3)本文提出方案的關(guān)鍵優(yōu)勢(shì)在于它們可以在本地運(yùn)行,這意味著模型資源消耗更小,成本更低(例如,單個(gè)16GB消費(fèi)者級(jí)GPU)。同時(shí),這也意味著本地?cái)?shù)據(jù)的安全性更有保障。

1相關(guān)工作

1.1 源代碼摘要

“源代碼摘要”一詞是由Haiduc等人[4]在2010年提出的,指的是編寫(xiě)代碼的自然語(yǔ)言描述的任務(wù)。2017年以前,大多數(shù)研究都集中在基于信息檢索(informationretrieval,IR)和基于模板的方法上。2017年至今,用于代碼摘要的神經(jīng)模型成為最主要的研究方向。神經(jīng)模型有不同的類(lèi)別,包括對(duì)代碼本身進(jìn)行更好的建模以及使用更多的上下文。例如,LeClair等人[5]將抽象語(yǔ)法樹(shù)(AST)與源代碼相結(jié)合,Allamanis等人[將AST建模為神經(jīng)模型的圖,Haque等人[]將注意力機(jī)制應(yīng)用于文件上下文,Bansal等人[8]結(jié)合了不同軟件項(xiàng)目的信息。

最近,像OpenAI的ChatGPT大語(yǔ)言模型(LLM)在程序理解方面展示出了強(qiáng)大的能力。然而,一些訓(xùn)練數(shù)據(jù)是不公開(kāi)的,在研究中使用這些模型容易出現(xiàn)數(shù)據(jù)泄露問(wèn)題。由于本文通過(guò)使用公開(kāi)且可控的數(shù)據(jù)集訓(xùn)練小模型,并模仿GPT-3.5的代碼摘要能力,從GPT-3.5中提取知識(shí)。

1.2 知識(shí)蒸餾

知識(shí)蒸餾是指教導(dǎo)一個(gè)小型機(jī)器學(xué)習(xí)模型在特定任務(wù)上表現(xiàn)得像一個(gè)大型模型[9。在大型模型執(zhí)行某些特定任務(wù)過(guò)于昂貴或安全性要求過(guò)高的場(chǎng)景中,知識(shí)蒸餾是很有用的。最近,通用模型如GPT-3.5被用來(lái)教導(dǎo)較小的模型執(zhí)行問(wèn)答任務(wù)[10],評(píng)估學(xué)生答案[1],遵循特定類(lèi)型的指令[12]以及提高現(xiàn)有小型聊天機(jī)器人的輸出[13]

知識(shí)蒸餾的一個(gè)難點(diǎn)是,為了縮小模型規(guī)模需要面對(duì)很多困難。Gudibande等人[14指出,試圖復(fù)制ChatGPT所有能力的小模型可能會(huì)面臨對(duì)訓(xùn)練樣本中未出現(xiàn)的提示進(jìn)行泛化的問(wèn)題。在訓(xùn)練小模型執(zhí)行特定任務(wù)時(shí)不應(yīng)該期望小模型能把所有任務(wù)都做好,但小模型可以通過(guò)專(zhuān)注于單個(gè)任務(wù)來(lái)模仿大型模型的部分能力。在本文中,我們專(zhuān)注于代碼摘要任務(wù),并展示一個(gè)小模型如何在這個(gè)特定任務(wù)上與大型模型表現(xiàn)相當(dāng)。

2 GPT-3.5摘要和人工編寫(xiě)摘要的比較

本節(jié)討論對(duì)GPT-3.5生成的源代碼摘要與程序員編寫(xiě)的摘要的比較。目的是確定GPT-3.5生成的摘要是否能夠替代人工。并衡量GPT-3.5生成的摘要的質(zhì)量。如果GPT-3.5生成的質(zhì)量較差,那么它就不適合用于蒸餾。因此,本文提出研究問(wèn)題(researchquestion,RQ):根據(jù)相關(guān)文獻(xiàn)中確立的關(guān)鍵質(zhì)量標(biāo)準(zhǔn),GPT-3.5生成的摘要和人工撰寫(xiě)的摘要相比效果如何?

2.1 研究方法

我們組織了一項(xiàng)調(diào)查,通過(guò)向程序員展示不同的代碼以及該代碼的摘要,并要求他們針對(duì)四個(gè)問(wèn)題對(duì)摘要進(jìn)行排序。本文設(shè)計(jì)的調(diào)查遵循Sridhara等人[5]的方法,每份調(diào)查有四個(gè)問(wèn)題。第一頁(yè)展示一個(gè)Java方法以及該方法的一個(gè)摘要,同時(shí)還有以下三個(gè)問(wèn)題:(1)獨(dú)立于其他因素,我覺(jué)得這個(gè)摘要是準(zhǔn)確的;(2)這個(gè)摘要遺漏了重要信息,這可能會(huì)妨礙對(duì)該方法的理解;(3)這個(gè)摘要包含大量不必要的信息。第一個(gè)問(wèn)題旨在衡量準(zhǔn)確性,第二個(gè)問(wèn)題衡量完整性,第三個(gè)問(wèn)題衡量簡(jiǎn)潔性。每個(gè)問(wèn)題后面都有四個(gè)單選按鈕,用于選擇以下之一:“非常同意”“同意”“不同意”和“非常不同意”。

在第二頁(yè)上,要求程序員選出相同方法之間不同的摘要哪個(gè)更好。兩個(gè)摘要的位置隨機(jī)生成。同時(shí)提供一個(gè)問(wèn)題:總體而言,你覺(jué)得哪個(gè)摘要更好?這個(gè)問(wèn)題后面有三個(gè)選項(xiàng):“摘要1”“摘要2”和“我無(wú)法決定”。為了質(zhì)量控制(見(jiàn)第3.3節(jié)),我們還要求參與者為他們對(duì)這個(gè)問(wèn)題的回答提供理由。

2.2主要源代碼、摘要、參與者

本文使用了Su等人[3]提供的 funcom-java-long數(shù)據(jù)集。這個(gè)數(shù)據(jù)集是對(duì)LeClair和McMillan2提供的數(shù)據(jù)集的修訂。該數(shù)據(jù)集包含一個(gè)約17萬(wàn)個(gè)Java方法的訓(xùn)練集,這些方法帶有專(zhuān)家編寫(xiě)的摘要,以及一個(gè)約8千個(gè)Java方法的測(cè)試集。

為了獲得GPT-3.5編寫(xiě)的摘要,本文使用了以下格式的提示:“為這個(gè)Java方法編寫(xiě)一個(gè)一句話的描述:”后面跟著該方法的源代碼。本文使用這個(gè)提示從GPT-3.5收集了總共215萬(wàn)個(gè)Java方法的數(shù)據(jù)集,其中包括來(lái)自funcom-java-long訓(xùn)練集的17萬(wàn)個(gè)方法,來(lái)自funcom-java-long 測(cè)試集的8千個(gè)方法。同時(shí),并過(guò)濾掉了一些質(zhì)量很差的摘要(這些摘要幾乎不成句子)。

我們通過(guò)招募了15名志愿者(公司開(kāi)發(fā)人員),他們都是Java領(lǐng)域的程序員,并且從8千個(gè)測(cè)試集中隨機(jī)選擇30個(gè)Java方法展示給他們。本文收集了450個(gè)Java方法的反饋。

2.3 有效性影響

本研究中有效性的關(guān)鍵影響因素在于:(1)參與者;(2)GPT-3.5版本和提示。參與者群體可能對(duì)其有效性構(gòu)成影響,因?yàn)閰⑴c者的主觀喜好可能不同,并且參與者的認(rèn)真程度也決定了這項(xiàng)研究的有效性。因此,我們手動(dòng)檢查每個(gè)參與者的調(diào)查結(jié)果,篩選出不符合要求的結(jié)果。我們過(guò)濾了一些在不到十五分鐘內(nèi)(即每個(gè)方法三十秒)完成調(diào)查的參與者。

GPT-3.5版本和提示也會(huì)對(duì)有效性構(gòu)成影響,因?yàn)镚PT-3.5是一款商業(yè)產(chǎn)品,可能會(huì)在不通知的情況下發(fā)生變化,并且不同的提示可能會(huì)給出不同的答案。

2.4RQ1結(jié)果

本文發(fā)現(xiàn)GPT-3.5生成的代碼摘要質(zhì)量要高于數(shù)據(jù)集參考摘要(數(shù)據(jù)集參考摘要為人工撰寫(xiě))。這一發(fā)現(xiàn)的證據(jù)主要有兩種,如圖1所示。第一,志愿者對(duì)準(zhǔn)確性和完整性給出的評(píng)分,GPT-3.5比參考的摘要更好。GPT-3.5準(zhǔn)確性平均值高于參考摘要,GPT-3.5的值有 90% 在3到4范圍內(nèi)。參考摘要只有 74% 在這個(gè)范圍內(nèi)。同樣,對(duì)于完整性,人們對(duì)GPT-3.5的評(píng)分更高。第二,在比較兩個(gè)摘要時(shí),志愿者更喜歡GPT-3.5的摘要。但人們認(rèn)為參考摘要更簡(jiǎn)潔,這可能是參考摘要更短,而GPT-3.5生成的摘要句子更長(zhǎng)。

圖1人工摘要與GPT-3.5摘要對(duì)比, 四張圖分別對(duì)應(yīng)3.1節(jié)中四個(gè)問(wèn)題 Fig.1Comparison between manual summary and GPT-3.5 summary,the four images correspond to the four questions in section 3.1 respectively

結(jié)果表明,GPT-3.5生成的摘要得到了更多人的偏愛(ài)。圖2中的結(jié)果說(shuō)明了GPT-3.5在準(zhǔn)確性和完整性方面表現(xiàn)更優(yōu),只是在簡(jiǎn)潔性方面較差。簡(jiǎn)而言之,本文發(fā)現(xiàn)在實(shí)際應(yīng)用中,GPT-3.5在編寫(xiě)軟件文檔方面要強(qiáng)于人類(lèi)。

3 提取GPT-3.5的知識(shí)

本節(jié)討論知識(shí)蒸餾過(guò)程和評(píng)估。本文主要研究用于代碼摘要的大型語(yǔ)言模型的知識(shí)蒸餾,因此,本文提出以下研究問(wèn)題:RQ2:在不同的模型和不同大小數(shù)據(jù)集下,語(yǔ)言模型在代碼摘要方面對(duì)GPT-3.5的模仿程度如何?

本文不同模型大小指的是根據(jù)參數(shù)數(shù)量來(lái)衡量的模型。當(dāng)前的研究前沿大多集中在類(lèi)似生成式預(yù)訓(xùn)練Transformer(GPT)的模型上,模型大小被認(rèn)為是影響模型輸出質(zhì)量和資源成本的主要因素[16]。RQ2的目標(biāo)是幫助人們?cè)谄胶饽P洼敵鲑|(zhì)量和成本方面做出決策。同樣,本文不同大小的數(shù)據(jù)集指的是根據(jù)樣本數(shù)量來(lái)衡量的大小。因?yàn)轭~外的樣本會(huì)增加訓(xùn)練成本,所以本文盡可能使用更少的樣本。

3. 1 蒸餾過(guò)程

本文的蒸餾過(guò)程如下:使用GPT-3.5生成的摘要作為訓(xùn)練樣本,對(duì)一個(gè)預(yù)訓(xùn)練的語(yǔ)言模型進(jìn)行微調(diào),以訓(xùn)練模型的代碼摘要生成能力。本文使用Su等人[3]2023年提出的微調(diào)過(guò)程,即以下形式的訓(xùn)練提示:TDAT: ,COM:。本文為第3節(jié)中從GPT-3.5收集的全部樣本創(chuàng)建這種形式的訓(xùn)練提示。在微調(diào)過(guò)程中,本文使用標(biāo)準(zhǔn)的自回歸訓(xùn)練,模型根據(jù)之前的所有標(biāo)記來(lái)生成提示中的每個(gè)標(biāo)記。模型將學(xué)習(xí)在TDAT之后逐個(gè)生成代碼標(biāo)記地,然后學(xué)習(xí)在COM之后生成一個(gè)代碼摘要。

3.2主要語(yǔ)言模型和數(shù)據(jù)集大小

作為本文研究的一部分,本文對(duì)兩種語(yǔ)言模型架構(gòu)進(jìn)行微調(diào),設(shè)置不同的模型和數(shù)據(jù)集大小。

第一個(gè)模型叫做Jam,是一個(gè)類(lèi)似于GPT-2的模型,使用520萬(wàn)個(gè)Java方法進(jìn)行預(yù)訓(xùn)練。Jam模型是由Su 等人 [3]2023 年發(fā)布的用于處理Java代碼的語(yǔ)言模型。預(yù)訓(xùn)練數(shù)據(jù)集已經(jīng)清理掉了來(lái)自funcom-java-long測(cè)試集的8千個(gè)樣本,本文在第3節(jié)的研究中以及本節(jié)后面都使用了這個(gè)測(cè)試集。本文使用表1中的關(guān)鍵配置參數(shù),在像Jam 這樣的類(lèi)似于GPT-2的架構(gòu)中,這些參數(shù)導(dǎo)致總的網(wǎng)絡(luò)參數(shù)大小為 350m,110m 和38m。Jam的輸入是一個(gè)詞序列,每個(gè)詞首先被轉(zhuǎn)換為一個(gè)固定維度的詞向量(wordembedding)。詞向量可以捕捉到詞的語(yǔ)義信息,使得模型能夠在向量空間中對(duì)詞進(jìn)行操作和計(jì)算。除了詞向量,輸入還包含位置編碼(positionencoding)。由于Transformer本身不具有對(duì)序列順序的天然感知能力,位置編碼被添加到詞向量中,以向模型提供每個(gè)詞在序列中的位置信息。位置編碼的公式如下:

其中, pos 表示詞在序列中的位置,i表示向量的維度索引, dmodel 是模型的隱藏層維度。通過(guò)這種正弦和余弦函數(shù)的組合方式,可以為不同位置的詞生成獨(dú)特的位置表示,并且能夠捕捉到相對(duì)位置關(guān)系。多頭注意力機(jī)制是 Jam 中的核心組件之一。它允許模型同時(shí)關(guān)注輸人序列的不同部分,從不同的表示子空間中學(xué)習(xí)信息,從而增強(qiáng)模型對(duì)文本語(yǔ)義的理解能力。多頭注意力機(jī)制首先將輸人的查詢(xún)(query)、鍵(key)和值(value)線性投影到不同的子空間,得到多個(gè)頭(head)。對(duì)于每個(gè)頭 i ,計(jì)算注意力權(quán)重 ai 和對(duì)應(yīng)的輸出z:

其中, Qi≤Ki,Vi 分別是第 i 個(gè)頭的查詢(xún)、鍵和值矩陣, dk 是鍵向量的維度。然后,將各個(gè)頭的輸出拼接在一起,并通過(guò)一個(gè)線性投影得到最終的多頭注意力輸出:

Ψz=Wo[z1;z2;?;zn]

其中, Wo 是線性投影的權(quán)重矩陣。在多頭注意力機(jī)制之后, Jam 使用了一個(gè)兩層的前饋神經(jīng)網(wǎng)絡(luò)(feed-forwardneuralnetwork,F(xiàn)FN)來(lái)進(jìn)一步處理信息。每層前饋神經(jīng)網(wǎng)絡(luò)都包含一個(gè)線性變換和一個(gè)非線性激活函數(shù)(通常是GELU激活函數(shù))。其公式表示為

FFN(x)=max(0,xW1+b1)W2+b2

其中, x 是多頭注意力機(jī)制的輸出, W1、b1、W2、b2 分別是第一層和第二層線性變換的權(quán)重和偏置。

為了加速模型的訓(xùn)練和提高模型的穩(wěn)定性,GPT-2在每個(gè)子層(多頭注意力機(jī)制和前饋神經(jīng)網(wǎng)絡(luò))的輸入和輸出都添加了層歸一化(layernormalization)操作。層歸一化的作用是將輸入的特征向量歸一化到均值為0、方差為1的分布,使得模型更容易學(xué)習(xí)到數(shù)據(jù)的內(nèi)在規(guī)律。其公式表示為

其中, 是輸入的特征向量, u 和 σ2 分別是輸人特征向量在批次維度上的均值和方差,δ是一個(gè)很小的常數(shù)(通常為 10-8 ),防止分母為 0,γ 和 β 是可學(xué)習(xí)的參數(shù),用于調(diào)整歸一化后的特征向量的尺度和偏移。Jam將多個(gè)相同的解碼器層(包含多頭注意力機(jī)制、前饋神經(jīng)網(wǎng)絡(luò)和層歸一化)堆疊在一起,以逐步提取和處理輸入文本信息,從而生成更高質(zhì)量的語(yǔ)言表示。隨著層數(shù)的增加,模型可以捕獲更高級(jí)的語(yǔ)義和語(yǔ)法信息,以及更長(zhǎng)遠(yuǎn)的依賴(lài)關(guān)系。GPT-2采用無(wú)監(jiān)督的預(yù)訓(xùn)練方式,其訓(xùn)練目標(biāo)是最大化下一個(gè)詞的預(yù)測(cè)概率。具體來(lái)說(shuō),給定一個(gè)長(zhǎng)度為 n 的文本序列 x=(x1,x2,? |xn ),模型的目標(biāo)是預(yù)測(cè)下一個(gè)詞 xn+1 的概率分布P(xn+1∣x1,x2,?,xn) 。在訓(xùn)練過(guò)程中,模型通過(guò)在大規(guī)模文本語(yǔ)料庫(kù)上進(jìn)行自回歸訓(xùn)練來(lái)學(xué)習(xí)語(yǔ)言的統(tǒng)計(jì)規(guī)律和語(yǔ)義信息。

表1模型參數(shù)設(shè)置和參數(shù)量

Tab.1Model parameter setingand parameterquantity

第二個(gè)模型,本文使用Starcoder[17],這是一個(gè)15.5B參數(shù)的類(lèi)似于GPT-2的模型。Starcoder模型使用“TheStack\"進(jìn)行預(yù)訓(xùn)練,“TheStack”是一個(gè)包含超過(guò)350種編程語(yǔ)言的6TB源代碼的集合。這個(gè)模型是Jam的一個(gè)強(qiáng)有力的替代方案,因?yàn)樗砹艘环N最先進(jìn)的語(yǔ)言模型,擁有數(shù)十億個(gè)參數(shù)和一個(gè)互聯(lián)網(wǎng)規(guī)模的預(yù)訓(xùn)練數(shù)據(jù)集大小。與Jam相比,Jam是一個(gè)成本較低且實(shí)驗(yàn)變量控制嚴(yán)格的模型,而Starcoder是一個(gè)工業(yè)級(jí)別的模型,因?yàn)槠漕A(yù)訓(xùn)練數(shù)據(jù)更大且更難搜索。

本文在微調(diào)過(guò)程中使用四種數(shù)據(jù)集大小:215萬(wàn)、125萬(wàn)、62萬(wàn)和17萬(wàn)。17萬(wàn)數(shù)據(jù)集大小使用來(lái)自fun-com-java-long訓(xùn)練集的相同Java方法,以保持與先前研究的一致性,并能夠進(jìn)行與人工編寫(xiě)參考進(jìn)行比較的實(shí)驗(yàn)(funcom-java-long中的所有17萬(wàn)個(gè)Java方法都有人工編寫(xiě)的摘要,本文在微調(diào)之前將其移除,并替換為GPT-3.5生成的摘要)。然后本文從第3節(jié)中創(chuàng)建的215萬(wàn)個(gè)GPT-3.5生成的摘要數(shù)據(jù)集中隨機(jī)子采樣,并將這些樣本添加到17萬(wàn)數(shù)據(jù)集中,以創(chuàng)建125萬(wàn)和62萬(wàn)數(shù)據(jù)集。

3.3 評(píng)估指標(biāo)

本文使用兩個(gè)指標(biāo)進(jìn)行評(píng)估:METEOR和USE。METEOR[18]是一種考慮每個(gè)詞之間的相似性和詞重疊性來(lái)進(jìn)行評(píng)估的指標(biāo)。USE[9]是一種通過(guò)使用通用編碼器將參考摘要和預(yù)測(cè)摘要編碼為固定長(zhǎng)度向量,并計(jì)算兩個(gè)摘要之間的相似性得分的指標(biāo)。

3.4RQ2結(jié)果

自動(dòng)評(píng)估指標(biāo)METEOR和USE表明,隨著訓(xùn)練數(shù)據(jù)集和模型參數(shù)數(shù)量的增加,對(duì)GPT-3.5的匹配度總體上呈上升趨勢(shì),如表2和表3所示。使用 38m 參數(shù)的Jam模型對(duì)170k數(shù)據(jù)集的METEOR得分是33.88,對(duì)于350m 參數(shù)的Jam模型,該得分上升到40.73,對(duì)于Starcoder則為 44.8 同樣, 350m 的Jam模型的40.73分隨著數(shù)據(jù)集從170k增加到 2.15m 個(gè)樣本,上升到44.77? 。USE得分也呈現(xiàn)相同的模式,隨著數(shù)據(jù)集大小的增加, 350m 的 Jam 模型的得分在68.21到70.85之間。

表2RQ2的METEOR得分Tab.2MeteorscoreforRQ2

表3RQ2的USE得分Tab.3Usescore forRQ2

從訓(xùn)練成本和效果來(lái)看,使用 350m 的Jam模型更有性?xún)r(jià)比。表4顯示,Starcoder的成本是 350m 的Jam模型的28倍,但METEOR得分僅高出 10% ,USE得分僅高出 5% 。由于估算需要14天的時(shí)間成本,并且之前數(shù)據(jù)量的增長(zhǎng)對(duì)模型提升較小,本文放棄了Starcoder模型對(duì)于215萬(wàn)數(shù)據(jù)集的微調(diào)工作。相比之下, 350m 的 Jam 模型的成本僅略高于較小的模型,并且可以在單個(gè)16GBGPU上運(yùn)行??傊?, 350m 的Jam模型在成本和性能之間提供了一種平衡。

表4訓(xùn)練所需時(shí)間(小時(shí))Tab.4Training time required (h)

4GPT-3.5與蒸餾模型生成摘要的比較

本節(jié)我們將討論GPT-3.5生成的代碼摘要與使用215萬(wàn)數(shù)據(jù)集訓(xùn)練的 350m 參數(shù)版本的Jam模型生成的代碼摘要之間的比較。本文的目的是衡量Jam模型在代碼摘要任務(wù)中對(duì)GPT-3.5的復(fù)制程度。本文選擇比較 350m 參數(shù)版本的Jam模型是因?yàn)?350m 的Jam模型在性能和成本之間取得了平衡。就METEOR和USE分?jǐn)?shù)而言,該模型與Starcoder模型的差距在 10% 以?xún)?nèi),同時(shí)只需要單個(gè)16GB的GPU訓(xùn)練較短時(shí)間。Starcoder模型雖然性能更高,但成本也高得多。同時(shí),350m 參數(shù)的Jam模型在METEOR和USE分?jǐn)?shù)上比110m 參數(shù)模型的提升超過(guò) 10% ,在實(shí)際中成本相對(duì)較低。

圖2展示了比較的結(jié)果。我們可以看到, 350m 參數(shù)的Jam模型和GPT-3.5在準(zhǔn)確性、完整性或簡(jiǎn)潔性方面并不存在顯著差異。GPT-3.5的準(zhǔn)確性和完整性的平均值比Jam更好,但是差異并不明顯。同樣,簡(jiǎn)潔性的平均值Jam略好一些,但是也不顯著??傮w而言,參與者在 52% 的情況下更喜歡GPT-3.5的摘要,在46% 的情況下喜歡Jam的摘要( 2% 未決定)。綜合來(lái)看, Jam 復(fù)制了GPT-3.5的源代碼摘要,盡管在總體偏好方面GPT-3.5略占優(yōu)勢(shì)。

圖2 Jam模型和GPT-3.5效果比較Fig. 2 Comparison of Jam model andGPT-3.5 performance

然而,這些結(jié)果并不意味著Jam和GPT-3.5的摘要是完全相同的。表5給出了一些生成摘要的示例。參與者更喜歡GPT-3.5的前兩個(gè)樣本和Jam的后兩個(gè)樣本。由于篇幅限制本文無(wú)法包含完整代碼,但這些樣本說(shuō)明了模型如何提供大致相似的內(nèi)容,盡管它們?cè)谖谋镜谋砻娉尸F(xiàn)或關(guān)于壓縮哪些信息的決策上有所不同。作為一個(gè)一般性的觀察,本文注意到GPT-3.5往往更冗長(zhǎng),盡管這種冗長(zhǎng)是否更受歡迎并不清楚。例如,第二個(gè)例子展示了GPT-3.5如何寫(xiě)“從緩沖區(qū)讀取下一個(gè)字節(jié)并返回相應(yīng)的字符”,而Jam寫(xiě)的是“從緩沖區(qū)讀取一個(gè)字符”來(lái)表達(dá)相同的信息。Jam的摘要更簡(jiǎn)潔但不太完整,然而GPT-3.5的摘要更受青睞。同樣,第三個(gè)樣本展示了Jam如何寫(xiě)“帶有指定參數(shù)”摘要,而不是像GPT-3.5那樣列出它們,盡管在這個(gè)例子中Jam更受青睞。

表5GPT-3.5和Jam生成的摘要示例,偏好表示志愿者的選擇

Tab.5Summary examples generated by GPT-3.5 and Jam,preference representingvolunteer choices

5 結(jié)束語(yǔ)

本文從三個(gè)關(guān)鍵方面推動(dòng)了技術(shù)前沿研究。

(1)本文將GPT-3.5生成的源代碼摘要與作為代碼參考提供的摘要進(jìn)行比較,發(fā)現(xiàn)人們明顯更喜歡GPT-3.5生成的摘要。這個(gè)結(jié)果表明:第一,基于AI的模型可能是用于增強(qiáng)甚至替代人工編寫(xiě)文檔的有用工具。第二,作為訓(xùn)練和評(píng)估源代碼摘要工具的標(biāo)準(zhǔn)可能被更改,AI模型有時(shí)可能表現(xiàn)更好。

(2)本文將GPT-3.5的代碼摘要能力蒸餾到幾個(gè)較小的模型中,在使用自動(dòng)評(píng)估指標(biāo)METEOR和USE衡量時(shí),一些比GPT-3.5小幾個(gè)數(shù)量級(jí)的模型能夠在很多情況下取得類(lèi)似結(jié)果。同時(shí),這些模型還有一個(gè)關(guān)鍵優(yōu)勢(shì),就是它們很輕松地可以在本地運(yùn)行,成本可控(例如,一個(gè)單個(gè)的16GB消費(fèi)級(jí)GPU),并且,本地模型執(zhí)行意味著對(duì)數(shù)據(jù)的本地保管,這提高了數(shù)據(jù)的安全性。

(3)本文將GPT-3.5與一個(gè)蒸餾模型( 350m 參數(shù)的Jam)進(jìn)行比較,展示了Jam如何能夠在代碼摘要方面媲美GPT-3.5,兩個(gè)模型生成的摘要在準(zhǔn)確性、完整性或簡(jiǎn)潔性方面并沒(méi)有顯著差異??傮w而言,當(dāng)提供足夠的數(shù)據(jù)集時(shí),一個(gè)像 350m 的Jam這樣的低成本模型能夠在代碼摘要任務(wù)中復(fù)制一個(gè)像GPT-3.5這樣的非常大的模型。

參考文獻(xiàn):

[1]Robillard MP,Marcus A,Treude C,et al. On-demand developer documentation[C]//2017 IEEE International conference on software maintenance and evolution (ICSME).IEEE,2017:479-483.

[2]HE J, SHEN Y, XIE R F. Identification and optimization of illusion phenomena in large language models[J/OL]. Computer Applications,1-5[2024-11-21]. http://kns. cnki.net/kcms/detail/51.1307.tp.20241119.1223.004.html.

[3]SU C Y,BANSAL A, JAIN V,et al. A language model of java methods with train/test deduplication[C]//Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering.2023:2 152-2 156.

[4]Haiduc S,Aponte J,Moreno L,et al. Onthe use of automated text summarization techniques for summarizing source code[C]//201O 17th Working conferenceon reverse engineering. IEEE,2010:35-44.

[5]LECLAIRA,JIANGSY,MCMILLAN C,et al.A neural model for generating natural language summariesof program subroutines [EB/OL]. 2019:1902.01954. https://arxiv.0rg/abs/1902.01954v1.

[6]ALLAMANIS M,BROCKSCHMIDT M,KHADEMI M. Learning to represent programs with graphs[EB/OL]. 2017:1711.00740.https://arxiv.org/abs/1711.00740v3.

[7]HAQUE S,LECLAIR A,WU L F, et al. Improved automaticsummarization of subroutines via attention to file context[EB/OL]. 2020:2004.04881. https://arxiv.org/ abs/2004.04881v1.

[8]Bansal A,Haque S,McMillan C. Project-level encoding for neural source code summarization of subroutines[C]// 2021IEEE/ACM 29th International Conferenceon Program Comprehension(ICPC). IEEE,2021:253-264.

[9]Wang L,Yoon K J. Knowledge distillation and studentteacherlearningforvisual intelligence:A reviewand new outlooks[J].IEEE transactions on pattern analysis and machine intellgence,2021,44(6): 3 048-3 068.

[10] ZHANG RR,HAN J M, LIU C, et al. LLaMA-adapter: efficient fine-tuning of language modelswith zero-init attention[EB/OL].2023:2303.16199.https://arxiv.org/ abs/2303.16199v3.

[11]LIJZ,GUIL,ZHOUYX,etal.DistillingChatGPTfor explainable automated student answer assessment[EB/ OL].2023:2305.12962.htps://arxiv.org/abs/ 2305.12962v2.

[12]TangY,DaCostaAAB,ZhangX,etal.Domainknowledgedistillation from large languagemodel:An empirical studyinthe autonomousdrivingdomain[C]//2o23 IEEE 26th International Conference on Inteligent Transportation Systems(ITSC).IEEE,2023:3893-3900.

[13]CHEN ZH,JIANGF,CHENJY,et al.Phoenix:democratizing ChatGPT across languages[EB/OL]. 2023: 2304.10453.https://arxiv.org/abs/2304.10453v1.

[14]GUDIBANDE A,WALLACE E,SNELL C,et al. The 1 promise of imitating proprietary LLMs[EB/OL]. 2023:2305.15717.https://arxiv.org/abs/2305.15717v1.

[15]Sridhara G,Hill E,MuppaneniD,et al. Towards automatically generating summary comments for java methods [C]//Proceedingsofthe25th IEEE/ACM international conference on Automated software engineering. 2010: 43-52.

[16]XUCW,XUYC,WANGSH,etal.Small modelsare valuable plug-ins for large language models[EB/OL]. 2023:2305.08848. https://arxiv.org/abs/2305.08848v1.

[17]LiR,AllalLB,ZiY,etal.Starcoder:maythesourcebe with you![J].arXiv preprint arXiv:2305.06161,2023.

[18]Banerjee S,Lavie A.METEOR:An automatic metric for MT evaluation with improved correlation with human judgements[C]//Proceedings of the ACL workshop on intrinsicand extrinsic evaluation measures formachine translation and/or summarization.20o5:65-72.

[19]Haque S,Eberhart Z,Bansal A,et al.Semantic similarity metrics for evaluating source code summarization [C]//Proceedings of the 3Oth IEEE/ACM International Conference on Program Comprehension.2022:36-47.

(責(zé)任編輯:李楠)

主站蜘蛛池模板: 精品亚洲麻豆1区2区3区| yjizz国产在线视频网| 亚洲日韩精品欧美中文字幕| 啪啪啪亚洲无码| 国产激情无码一区二区APP| 热久久综合这里只有精品电影| 国产主播福利在线观看| 在线a视频免费观看| 看国产一级毛片| 久久综合国产乱子免费| 玖玖免费视频在线观看| 欧美日韩国产系列在线观看| 午夜久久影院| 狠狠色狠狠综合久久| 国产在线自在拍91精品黑人| 日本三区视频| av大片在线无码免费| 国产精品一区二区久久精品无码| 最近最新中文字幕在线第一页| 狠狠v日韩v欧美v| 91免费国产高清观看| 国产精品人人做人人爽人人添| 亚洲高清无码久久久| 亚洲欧美日韩另类| av在线无码浏览| 国产内射在线观看| 91午夜福利在线观看| 无码中文字幕精品推荐| 亚洲欧美综合在线观看| 欧美区日韩区| 一个色综合久久| 国产精品大尺度尺度视频| 亚洲久悠悠色悠在线播放| 国产精品毛片一区| 久草网视频在线| 精品无码国产一区二区三区AV| 亚洲第一中文字幕| 中文字幕在线永久在线视频2020| 日韩午夜片| 日韩av无码精品专区| 国产精品亚洲综合久久小说| 久久这里只有精品免费| 精品久久综合1区2区3区激情| 19国产精品麻豆免费观看| 久久国产精品嫖妓| 日韩在线1| 在线欧美一区| 亚洲清纯自偷自拍另类专区| 色综合天天娱乐综合网| 视频一区亚洲| 亚洲国产精品一区二区第一页免 | 国产亚洲欧美日韩在线观看一区二区| 国产精品专区第1页| 一本色道久久88| 亚洲区欧美区| 亚洲一级色| 亚洲va欧美ⅴa国产va影院| 亚洲日韩久久综合中文字幕| 欧美黄网在线| 99精品视频九九精品| 欧美日本在线一区二区三区| 亚洲AV无码不卡无码| 91国内视频在线观看| 婷婷亚洲视频| 国产欧美日韩精品综合在线| 国产精品免费p区| 亚洲成人网在线观看| 国产福利观看| 日韩最新中文字幕| 青草91视频免费观看| 婷婷综合色| 国产在线无码一区二区三区| 国产视频只有无码精品| 久久久久久久久18禁秘| 国产成人久久777777| 国产真实二区一区在线亚洲| 日韩高清一区 | 国产电话自拍伊人| 91九色最新地址| 久久精品无码一区二区日韩免费| 夜夜高潮夜夜爽国产伦精品| 国产视频资源在线观看|