国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】

這篇具有很好參考價值的文章主要介紹了19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

寫在最前面

隨著大規(guī)模代碼的崛起,無監(jiān)督學(xué)習(xí)成為了提高代碼預(yù)訓(xùn)練模型性能的有效手段。這些預(yù)訓(xùn)練模型在廣泛的下游任務(wù)中表現(xiàn)出色,如自然語言處理和程序語言處理。例如,像CodeBERT和GraphCodeBERT這樣的模型在預(yù)訓(xùn)練階段通過大規(guī)模代碼數(shù)據(jù)學(xué)到通用的表示,并在下游任務(wù)上進行微調(diào),取得了優(yōu)于傳統(tǒng)監(jiān)督學(xué)習(xí)方法的成績。然而,這些模型在面對代碼變異等挑戰(zhàn)時,魯棒性仍然有待提高。

該論文關(guān)注的問題是:現(xiàn)有的代碼預(yù)訓(xùn)練模型是否能夠?qū)W到魯棒的代碼表示?研究表明,這些模型在處理程序變異,如變量重命名等情況時表現(xiàn)不佳。為了提高模型的魯棒性,作者提出了一種新的方法,稱為ContraBERT。

本文為鄒德清教授的《網(wǎng)絡(luò)安全專題》課堂筆記系列的文章,本次專題主題為大模型。

李仕昕同學(xué)分享了ContraBERT: Enhancing Code Pre-trained Models via Contrastive Learning
《ContraBERT:通過對比學(xué)習(xí)增強代碼預(yù)訓(xùn)練模型》
關(guān)于提升代碼預(yù)訓(xùn)練模型魯棒性的文章,發(fā)表在ICSE2023,作者單位是南洋理工大學(xué)Nanyang Technological University, Singapore
分享時的PPT簡潔大方,重點突出

論文:https://dl.acm.org/doi/10.5555/3618408.3620098
ICSE(International Conference on Software Engineering)是軟件工程領(lǐng)域的頂級國際會議之一。ICSE會議每年都吸引來自世界各地的頂尖研究人員和學(xué)者,以展示和討論最新的軟件工程研究成果。

對nlp領(lǐng)域其他方向研究的啟發(fā)

《ContraBERT: Enhancing Code Pre-trained Models via Contrastive Learning》側(cè)重于增強代碼預(yù)訓(xùn)練模型的魯棒性,提供了一些有益的啟發(fā)可以應(yīng)用到自然語言處理(NLP)領(lǐng)域的其他方向研究中:

采用對比學(xué)習(xí)、數(shù)據(jù)增強和多任務(wù)學(xué)習(xí)等方法以提高模型性能和魯棒性的示例

  1. 對比學(xué)習(xí)的應(yīng)用:這篇論文通過對比學(xué)習(xí)方法增強了代碼預(yù)訓(xùn)練模型的性能。
    可以嘗試將對比學(xué)習(xí)引入到各種任務(wù)中,以提高模型的性能和魯棒性。

  2. 數(shù)據(jù)增強的重要性:數(shù)據(jù)增強是提高模型性能和魯棒性的關(guān)鍵因素之一。
    通過設(shè)計合適的數(shù)據(jù)增強方法,可以生成語義等價的樣本,以提高模型的泛化能力。
    這種方法可以應(yīng)用于各種NLP任務(wù),如文本分類、命名實體識別和機器翻譯等。

  3. 多任務(wù)學(xué)習(xí):ContraBERT采用了多任務(wù)學(xué)習(xí)的策略,將掩碼語言模型(MLM)和對比學(xué)習(xí)結(jié)合在一起。
    這種方法可以用來訓(xùn)練更通用的NLP模型,以適應(yīng)多種下游任務(wù)??梢試L試將多任務(wù)學(xué)習(xí)引入到NLP任務(wù)中,以提高模型的效率和性能。

  4. 預(yù)訓(xùn)練任務(wù)的設(shè)計:這篇論文的成功經(jīng)驗表明,通過設(shè)計具有挑戰(zhàn)性的預(yù)訓(xùn)練任務(wù),可以幫助模型更好地捕捉語言的特征。
    可以探索不同的預(yù)訓(xùn)練任務(wù),以進一步改進NLP模型的性能。

介紹

19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程

大代碼時代的到來使得目前有很多工作開始利用無監(jiān)督學(xué)習(xí),來通過大量的代碼數(shù)據(jù)學(xué)習(xí)到通用的預(yù)訓(xùn)練模型,然后再針對不同的下游任務(wù)對預(yù)訓(xùn)練模型進行微調(diào)。這些預(yù)訓(xùn)練模型對不同的下游任務(wù)有比較強的泛化性,并且得到了廣泛的使用。
比如預(yù)訓(xùn)練模型CodeBert和GraphCodeBert都是在數(shù)據(jù)集codesearchnet上進行預(yù)訓(xùn)練的模型,然后在下游任務(wù)上進行微調(diào),達到了優(yōu)于監(jiān)督學(xué)習(xí)的方法。
(CodeBert在自然語言NL和程序語言PL對上進行學(xué)習(xí),(結(jié)構(gòu):多層雙向transformer),GraphCodeBert利用代碼的語義結(jié)構(gòu)來學(xué)習(xí)代碼表征,利用了代碼的數(shù)據(jù)流來進行編碼。)

文章針對這兩個預(yù)訓(xùn)練模型做了一個魯棒性的初步研究,結(jié)論是發(fā)現(xiàn)這些預(yù)訓(xùn)練模型對于變量重名名這種程序變異都不夠魯棒。
具體實驗是使用了克隆檢測的數(shù)據(jù)集,將程序中的多個變量隨機重命名,然后計算程序在變量重命名前后預(yù)訓(xùn)練模型輸出的embedded vectors的余弦相似度,從這個圖中可以看出,在重命名的變量數(shù)從1增加到8時,紅線和藍線代表的兩個預(yù)訓(xùn)練模型對于程序變異前后的輸出相似度由1降到了0.4,說明他們對這種對抗樣本是十分敏感的。

為了提高預(yù)訓(xùn)練模型魯棒性,文章提出的方法ContraBert
如上圖所示,上面兩條線就是文章提出的方法應(yīng)用在codebert和grapgcodebert上的結(jié)果,方法的魯棒性是優(yōu)于原始模型的。

Contrabert

19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程

ContraBERT采用了一種基于對比學(xué)習(xí)的無監(jiān)督學(xué)習(xí)框架,旨在增強現(xiàn)有代碼預(yù)訓(xùn)練模型的魯棒性。該方法結(jié)合了兩個預(yù)訓(xùn)練任務(wù):掩碼語言模型(MLM)和對比學(xué)習(xí)。

  • MLM任務(wù)旨在通過將一部分句子中的標(biāo)記進行掩碼,然后嘗試從剩余部分還原這些標(biāo)記,從而學(xué)習(xí)更好的標(biāo)記表示。
  • 對比學(xué)習(xí)通過最小化相似樣本之間的距離,同時最大化不同樣本之間的距離來學(xué)習(xí)表示,以提高模型的魯棒性。
    對比學(xué)習(xí)來提高模型魯棒性背后的直覺就是:程序變異前后作為相似樣本進行拉進,使得模型對程序變異這種對抗攻擊更加魯棒

方法Method

ContraBERT

  • MLM is utilized to help the model learn better token representations
  • Contrastive is utilized to help the model group the similar vector representations to enhance model robustness.

ContraBERT的訓(xùn)練過程包括兩個關(guān)鍵任務(wù):MLM和對比學(xué)習(xí)contrastive learning。

  1. 首先,原始輸入樣本對以及由數(shù)據(jù)增強算法生成的增強樣本對被送入模型。
  2. 然后,模型執(zhí)行MLM任務(wù),其中一組標(biāo)記被隨機掩碼,模型需要預(yù)測被掩碼的標(biāo)記。
  3. 接下來,模型執(zhí)行對比學(xué)習(xí)任務(wù),通過最小化相似樣本之間的距離,同時最大化不同樣本之間的距離,以增強模型的魯棒性。
  4. 最后,MLM和對比學(xué)習(xí)兩個任務(wù)的損失被加權(quán)相加以進行訓(xùn)練。

對比學(xué)習(xí)是需要拉進相似樣本的,所以使用對比學(xué)習(xí)的時候需要用數(shù)據(jù)增強在原始樣本的基礎(chǔ)上構(gòu)造一系列的相似樣本。

19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程

可以從這個流程圖看到:

  1. 原始的輸入C,W這種函數(shù)和注釋樣本對在進行訓(xùn)練前,會使用文章定義的一系列程序語言和自然語言的數(shù)據(jù)增強算法f和g來構(gòu)造c和w的增強樣本,
  2. 然后使用原始樣本對和增強樣本對這個四元組作為輸入,
  3. 之后使用兩個預(yù)訓(xùn)練任務(wù)MLM和contrastive對給定的模型進行訓(xùn)練。

所以整個方法具體分為兩個部分,

  1. 首先,是如何設(shè)計的這個程序語言和自然語言的數(shù)據(jù)增強操作f和g,
  2. 第二步,是如何設(shè)計Contrabert模型的訓(xùn)練。

數(shù)據(jù)增強和訓(xùn)練細節(jié)

數(shù)據(jù)增強在ContraBERT中發(fā)揮關(guān)鍵作用,以提高模型魯棒性。
對于程序語言(PL)和自然語言(NL)的數(shù)據(jù)增強,作者提出了一系列操作,包括函數(shù)重命名、變量重命名、插入未使用的語句、隨機交換函數(shù)中的語句和隨機刪除函數(shù)中的語句。
這些增強方法旨在構(gòu)造語義等價的變種樣本,以供對比學(xué)習(xí)使用。
19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程
19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程

首先介紹數(shù)據(jù)增強操作f和g,數(shù)據(jù)增強主要是為了在原始樣本的基礎(chǔ)上構(gòu)造語義等價的變體來提供給對比學(xué)習(xí)這個任務(wù)
給定一個函數(shù)和注釋的樣本對
首先針對程序語言PL的數(shù)據(jù)增強,文章提出了五種增強操作,
第一個是函數(shù)重命名,將函數(shù)名稱進行替換(有額外詞匯集,從預(yù)訓(xùn)練數(shù)據(jù)集中提?。?,
第二個是變量重命名,將每個函數(shù)里的變量進行隨機重命名,
第三個是在函數(shù)中插入未使用的語句,構(gòu)造一個沒有在函數(shù)中出現(xiàn)的變量的賦值語句插入函數(shù)中
第四個是隨機交換函數(shù)中沒有相互依賴關(guān)系的語句(遍歷 AST 并分析數(shù)據(jù)依賴性以進行提取。)
第五個是隨機抽取函數(shù)里的一行語句進行刪除,這個主要是作為正則化來避免訓(xùn)練的過擬合(?)
這些增強方法都可以構(gòu)造出語意等價的相似樣本,被視為原始樣本的正樣本。

針對自然語言的數(shù)據(jù)增強主要是

  • 一個是反向翻譯,就是將源語句翻譯成另一種語言,然后將翻譯后的語言再轉(zhuǎn)換為原語言,比如文章就是講英語轉(zhuǎn)換成德語在翻譯回英語。
  • 除此之外還有一些簡單的如隨機刪除注釋里的一個單詞,隨機交換注釋里的兩個單詞,或者是復(fù)制一個單詞插入注釋里面。

文章會使用這些增強方法講PL-NL對進行增強形成一個增強集合,然后在每個訓(xùn)練step中隨機選擇一對出來進行訓(xùn)練。

(和之前的工作比增加了自然語言的數(shù)據(jù)增強)

19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程
模型的訓(xùn)練需要兩個編碼器M和M’,它們具有相同的模型結(jié)構(gòu)和初始參數(shù)。在訓(xùn)練過程中,原始輸入樣本對和增強樣本對被用于執(zhí)行MLM和對比學(xué)習(xí)任務(wù)。MLM任務(wù)通過隨機掩碼標(biāo)記來訓(xùn)練模型,而對比學(xué)習(xí)任務(wù)則使用對比學(xué)習(xí)損失函數(shù)(infonce loss)來最小化相似樣本之間的距離,同時最大化不同樣本之間的距離。

將樣本進行數(shù)據(jù)增強后,就是正式進行模型訓(xùn)練了。

具體設(shè)計細節(jié)如圖,contrabert需要兩個encoder
M和M’,他們的模型結(jié)構(gòu)一樣,并且初始參數(shù)相同,文章具體會使用codebert或者是graphcodebert

  • 每一個樣本對c,w通過數(shù)據(jù)增強得到四元組(c,w,c’,w’)后,構(gòu)建兩個輸入序列,一個是原始樣本對序列x和增強樣本對序列x’,其中用CLS標(biāo)識符來標(biāo)記序列開始,SEP來標(biāo)記鏈接自然語言和程序語言兩種序列的符號。

  • 構(gòu)造了輸入之后,整個訓(xùn)練過程有兩個訓(xùn)練任務(wù),首先是MLM,在圖中的左半部分,訓(xùn)練時將原始輸入序列X中一組隨機位置的token mask掉然后訓(xùn)練模型能夠?qū)W到被mask掉的標(biāo)記,這個訓(xùn)練任務(wù)為了讓模型學(xué)到更好的特征表示,MLM是被廣泛使用的訓(xùn)練任務(wù),我就不過多介紹了。

  • 第二個訓(xùn)練任務(wù)就是對比學(xué)習(xí),對比學(xué)習(xí)的損失函數(shù)使用的事infonce,可以看到這個函數(shù)表示,q指的是圖中的query,是原始樣本序列X的encoder的[cls]位置的向量表示,k+指的是增強樣本序列X’encode的向量表示,被視為原始樣本的正樣本,i=1到n的ki值得是其他樣本的增強樣本,被視為原始樣本的負樣本,通過infoloss這個公式可以將分子上原始樣本和正樣本拉進,分母上原始樣本和其他負樣本拉遠,使模型能夠?qū)⒃紭颖舅械淖儺悩颖径紝W(xué)到相似的語義特征。
    該文章參考了對比學(xué)習(xí)的一個有代表性的方法moco,設(shè)置了一個隊列來儲存之前batch的負樣本來動態(tài)更新進行學(xué)習(xí)。

  • 最后MLM和對比學(xué)習(xí)兩個loss進行加權(quán)相加來進行訓(xùn)練。在訓(xùn)練過程中M使用梯度下降進行參數(shù)更新,M’使用動量來更新weight

19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程
模型訓(xùn)練好后,就可以根據(jù)不同的下游任務(wù)進行微調(diào)了,文章關(guān)注了三類下游任務(wù)
第一類是檢索任務(wù),包含克隆檢測和代碼搜索(根據(jù)自然語言query所需程序),第二類是分類任務(wù),如缺陷檢測,第三類是生成任務(wù),比如代碼到代碼的翻譯。
可以根據(jù)不同任務(wù)添加特定模塊進行微調(diào)

實驗Experiment

作者從四個方面來評估了他們的方法,

RQ1 :Robustness Enhancement魯棒性提升

Performance of different augmentation operators in enhancing the robustness of the pre-trained model

在第一個實驗中,作者評估了不同增強操作對模型魯棒性的影響。實驗結(jié)果表明,通過使用設(shè)計的PL-NL數(shù)據(jù)增強方法,模型的魯棒性得到了顯著提升。將這些增強方法組合使用可以獲得最佳效果。
19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程
第一個方面是提出的不同的數(shù)據(jù)增強算法對提高模型魯棒性的表現(xiàn)。
實驗通過檢測contrabert對克隆檢測的對抗攻擊的魯棒性來評估(因為克隆檢測也是從其他干擾項中識別出語義等效的樣本)
如表所示,contrabert在訓(xùn)練模型時使用了提出的所有增強方法,所以這個表每一行分別去掉一個提出增強方法來觀察不同增強方法帶來的魯棒性提升,具體做法是將模型能夠正確預(yù)測的樣本(num)進行隨機次數(shù)的變異來觀察模型的預(yù)測準(zhǔn)確性。
可以看到設(shè)計的 PL-NL 數(shù)據(jù)增強每一個方法都對模型魯棒性有幫助(縱向?qū)Ρ?,每一個和最后一行對比),當(dāng)這些增強合并時,預(yù)訓(xùn)練模型的魯棒性能獲得最佳效果。

存在問題:沒有給對比實驗,就是提供直接用codebert和graphcodebert在對抗攻擊下的魯棒性進行參考。

RQ2: Visualization for Code Embeddings代碼嵌入可視化

第二個實驗通過可視化ContraBERT的向量空間來觀察模型是否學(xué)到了更好的向量表示。結(jié)果顯示,ContraBERT學(xué)習(xí)到的向量空間更加緊湊,能夠更好地區(qū)分不同問題的程序表示,從而提高了模型的性能。
19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程
第二個實驗室可視化contrabert的向量空間來觀察此方法是否學(xué)到了更好的向量表示
從圖中我們可以看出,contrabert比單純的codebert和graphcodebert學(xué)習(xí)到的向量空間更加緊湊,代表同一個問題的程序表示更想死,不同問題之間也隔的更開。所以ContraBERT 能夠?qū)φZ義等效的樣本進行分組并排除不相似的樣本,從而學(xué)習(xí)更好的向量表示。

(也是使用了克隆檢測,可以觀察樣本表示的相似度,該數(shù)據(jù)集由 104 個編程問題組成,其中每個問題都有 500 個語義等效的程序,但具有不同的實現(xiàn)。隨機選擇 5 個不同的問題和 100 個樣本)

RQ3: Performance of ContraBERT on Downstream Tasks下游任務(wù)性能

第三個實驗評估了ContraBERT在四個下游任務(wù)上的性能,包括克隆檢測、缺陷檢測、代碼翻譯和代碼搜索。實驗結(jié)果表明,ContraBERT在這些任務(wù)上取得了顯著的性能提升,特別是在克隆檢測和缺陷檢測任務(wù)中表現(xiàn)出色。

表2是在克隆檢測和缺陷檢測上的結(jié)果,表3是代碼翻譯,表4是代碼搜索
19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程
19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程
19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程

可以觀察到ContraBERT 全面提升了原始 CodeBERT 和 GraphCodeBERT 在四個下游任務(wù)上的性能,我們將這些改進歸因于模型魯棒性的增強,在這些任務(wù)上具有更好的性能。
同時也可以看到這些結(jié)果都展示了模型分別使用兩個預(yù)訓(xùn)練任務(wù)MLM和contrastive對下游任務(wù)的影響,可以看出兩個任務(wù)結(jié)合能獲得最好的效果。
(代碼搜索提升不高是任務(wù)本身難度,程序和自然語言中的映射是很難提升的)
(MAP@R:評估在給定查詢的情況下檢索集合中R個最相似樣本的結(jié)果。 MAP@R 用于克隆檢測,其中 R 設(shè)置為 499 進行評估。)
(BLEU-4:生成的序列與真實值之間的文本相似性。)
(MRR:平均倒數(shù)排名,評估檢索系統(tǒng)性能,第一個結(jié)果匹配,分數(shù)為1,第二個匹配分數(shù)為0.5,第n個匹配分數(shù)為1/n)

RQ4: Ablation Study for Pre-training Tasks預(yù)訓(xùn)練任務(wù)的消融研究

作者還進行了預(yù)訓(xùn)練任務(wù)的消融研究,驗證了MLM和對比學(xué)習(xí)任務(wù)的重要性,結(jié)果表明兩者的結(jié)合能夠獲得最佳效果。

討論

盡管ContraBERT在提高代碼預(yù)訓(xùn)練模型的魯棒性方面取得了顯著的成果,但仍存在一些潛在限制。例如,作者采用了與計算機視覺任務(wù)中的對比學(xué)習(xí)框架相似的參數(shù)設(shè)置,這可能不是最適用于代碼模型的參數(shù)。此外,作者在評估模型魯棒性時只使用了克隆檢測任務(wù),未提供與傳統(tǒng)模型的對比實驗。

然而,這項工作為提高代碼預(yù)訓(xùn)練模型的性能和魯棒性提供了有價值的思路。未來的研究可以進一步探索更復(fù)雜的數(shù)據(jù)增強方法,以進一步提高模型的魯棒性,并改進對代碼搜索任務(wù)的性能提升方法。

通過對比學(xué)習(xí)和數(shù)據(jù)增強,ContraBERT為提高代碼預(yù)訓(xùn)練模型的性能和魯棒性提供了一種新的方法,為代碼領(lǐng)域的研究和應(yīng)用提供了有力支持。
19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,# 大模型,科研筆記與實踐,AIGC,論文閱讀,人工智能,AI編程,自然語言處理,copilot,軟件工程

這篇文章主要就是提倡在訓(xùn)練代碼模型的時候除了考慮模型在下游任務(wù)上的表現(xiàn)還要考慮模型的魯棒性。
這篇文章在實現(xiàn)上還是存在一些limitation
這篇論文參考的對比學(xué)習(xí)框架MOCO,MOCO是為計算機視覺中的圖像分類任務(wù)設(shè)計的,而這篇文章的參數(shù)照搬了moco的原始設(shè)置,可能這些參數(shù)對于代碼模型來說不是最佳的。
第二點是在實驗時評估模型魯棒性的時候只使用克隆檢測任務(wù)來說明問題(POJ-104),并且沒有設(shè)置baseline對比實驗。

關(guān)于工作的思考,可以發(fā)現(xiàn)在對下游任務(wù)的提升中,contrabert對代碼搜索的下游任務(wù)的提升相對于其他下游任務(wù)的性能提升來說是比較微小。
文章關(guān)于這個現(xiàn)象的解釋是,對于代碼搜索任務(wù),由于模型需要學(xué)習(xí)查詢與其相應(yīng)代碼之間的語義映射,是比較難的,然而設(shè)計的增強算法都僅僅修改代碼或查詢語言本身,無法捕獲它們的相關(guān)性,這導(dǎo)致提升受到限制。
所以對于代碼搜索任務(wù),進一步提高性能的一個可能的解決方案是為增強變體建立 PL 和 NL 之間的標(biāo)記關(guān)系,然而,這需要大量工作來分析程序和自然語言注釋之間的關(guān)系。

除此之外,文章證明了提出的數(shù)據(jù)增強能夠提高預(yù)訓(xùn)練模型的魯棒性,后續(xù)還可以探究更多復(fù)雜的數(shù)據(jù)增強,使得模型魯棒性有更大的提升的空間


希望這篇博客對您理解《ContraBERT: Enhancing Code Pre-trained Models via Contrastive Learning》論文提供了有益的信息。如果您對該論文或相關(guān)領(lǐng)域有更多疑問,歡迎隨時交流。文章來源地址http://www.zghlxwxcb.cn/news/detail-755454.html

到了這里,關(guān)于19ContraBERT:頂會ICSE23 數(shù)據(jù)增強+對比學(xué)習(xí)+代碼預(yù)訓(xùn)練模型,提升NLP模型性能與魯棒性:處理程序變異(變量重命名)【網(wǎng)安AIGC專題11.15】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Pytorch和Tensoflow對比學(xué)習(xí)第三周--Day 19-20: 數(shù)據(jù)加載和預(yù)處理

    這兩天的學(xué)習(xí)重點是掌握在PyTorch和TensorFlow中進行數(shù)據(jù)加載和預(yù)處理的方法。正確的數(shù)據(jù)處理是訓(xùn)練有效模型的關(guān)鍵步驟。 數(shù)據(jù)加載和預(yù)處理: 學(xué)習(xí)了如何使用PyTorch的DataLoader和Dataset類以及TensorFlow的數(shù)據(jù)API來加載和預(yù)處理數(shù)據(jù)。 理解了數(shù)據(jù)標(biāo)準(zhǔn)化、轉(zhuǎn)換和批處理的重要性。

    2024年01月20日
    瀏覽(27)
  • 第19屆高級數(shù)據(jù)挖掘與應(yīng)用國際會議(ADMA‘23)

    第19屆高級數(shù)據(jù)挖掘與應(yīng)用國際會議(ADMA‘23)

    歡迎參加2023年8月21日至23日在中國沈陽舉辦的第19屆高級數(shù)據(jù)挖掘與應(yīng)用國際會議(ADMA\\\'23)。 主頁:ADMA2023.UQCloud.Net 我們非常榮幸地介紹第19屆高級數(shù)據(jù)挖掘與應(yīng)用國際會議(ADMA\\\'23)。2023年標(biāo)志著國際高級數(shù)據(jù)挖掘與應(yīng)用會議(ADMA\\\'23)的19周年,會議將于2023年8月21日至23日

    2024年02月07日
    瀏覽(21)
  • Python數(shù)據(jù)分析案例19——上市銀行財務(wù)指標(biāo)對比

    Python數(shù)據(jù)分析案例19——上市銀行財務(wù)指標(biāo)對比

    我代碼欄目都是針對基礎(chǔ)的python數(shù)據(jù)分析人群,比如想寫個本科畢業(yè)論文,課程論文,做個簡單的案例分析等。過去寫的案例可能使用了過多的機器學(xué)習(xí)和深度學(xué)習(xí)方法,文科的同學(xué)看不懂,可能他們僅僅只想用python做個回歸或者畫個圖。本期開始我會更新一些簡單的案例,

    2024年02月08日
    瀏覽(28)
  • ASPLOS‘23 系統(tǒng)頂會論文 Plugsched :安全、高效的多場景調(diào)度器熱升級詳解

    ASPLOS‘23 系統(tǒng)頂會論文 Plugsched :安全、高效的多場景調(diào)度器熱升級詳解

    阿里云基礎(chǔ)軟件/達摩操作系統(tǒng)實驗室的論文 \\\"Efficient Scheduler Live Update for Linux Kernel with Modularization\\\" 被系統(tǒng)領(lǐng)域著名會議 28th Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS\\\'2(3) 錄用為長論文(Full Paper)。 ASPLOS 會議在體系結(jié)構(gòu)領(lǐng)域被認為是頂會之一,同

    2024年02月09日
    瀏覽(25)
  • 界面組件DevExpress ASP.NET Core v23.1新版亮點 - 增強的數(shù)據(jù)可視化

    界面組件DevExpress ASP.NET Core v23.1新版亮點 - 增強的數(shù)據(jù)可視化

    DevExpress ASP.NET Core?Controls使用強大的混合方法,結(jié)合現(xiàn)代企業(yè)Web開發(fā)工具所期望的所有功能。該套件通過ASP.NET Razor標(biāo)記和服務(wù)器端ASP.NET Core Web API的生產(chǎn)力和簡便性,提供客戶端JavaScript的性能和靈活性。ThemeBuilder工具和集成的Material Design、通用主題集可以讓您提供現(xiàn)代化的用

    2024年02月13日
    瀏覽(18)
  • Web3 隱私增強技術(shù)對比:探秘加密時代的數(shù)據(jù)安全與隱私保護

    Web3 隱私增強技術(shù)對比:探秘加密時代的數(shù)據(jù)安全與隱私保護

    作者:Anders Dalskov(博士,Partisia Blockchain 密碼學(xué)科學(xué)家) 來源:https://medium.com/partisia-blockchain/mpc-fhe-dp-zkp-tee-and-where-partisia-blockchain-fits-in-c8e051d053f7 編譯:TinTinLand 本文重點是對主題提及的每種技術(shù)提供最簡短、最直觀的技術(shù)介紹。本文涉及的技術(shù)(Differential Privacy 除外)均

    2024年04月26日
    瀏覽(22)
  • 視頻增強技術(shù)-對比度增強

    視頻增強技術(shù)-對比度增強

    ????????在圖像處理中,由于獲取的圖像質(zhì)量不好,需要通過對比度增強來提升圖片質(zhì)量,主要解決的是由于圖像灰度級范圍較小造成的對比度較低的問題,作用是使圖像的灰度級范圍放大,從而讓圖像更加清晰。主要對比度增強方法包括線性變換、直方圖正規(guī)化、伽馬變

    2024年02月10日
    瀏覽(25)
  • 【深度學(xué)習(xí):數(shù)據(jù)增強】計算機視覺中數(shù)據(jù)增強的完整指南

    【深度學(xué)習(xí):數(shù)據(jù)增強】計算機視覺中數(shù)據(jù)增強的完整指南

    可能面臨的一個常見挑戰(zhàn)是模型的過擬合。這種情況發(fā)生在模型記住了訓(xùn)練樣本的特征,但卻無法將其預(yù)測能力應(yīng)用到新的、未見過的圖像上。過擬合在計算機視覺中尤為重要,在計算機視覺中,我們處理高維圖像輸入和大型、過度參數(shù)化的深度網(wǎng)絡(luò)。有許多現(xiàn)代建模技術(shù)可

    2024年02月03日
    瀏覽(34)
  • 21Dak攻擊:計算機頂會PLDI‘23 針對語義依附代碼模型的對抗攻擊方法:Destroyer篡改輸入程序,F(xiàn)inder尋找關(guān)鍵特征,Merger關(guān)鍵特征注入【網(wǎng)安AIGC專題11.22】

    21Dak攻擊:計算機頂會PLDI‘23 針對語義依附代碼模型的對抗攻擊方法:Destroyer篡改輸入程序,F(xiàn)inder尋找關(guān)鍵特征,Merger關(guān)鍵特征注入【網(wǎng)安AIGC專題11.22】

    本文為鄒德清教授的《網(wǎng)絡(luò)安全專題》課堂筆記系列的文章,本次專題主題為大模型。 陳蘇寧同學(xué)分享了Discrete Adversarial Attack to Models of Code《對代碼模型的離散對抗性攻擊》 PPT很清爽接受起來比較順暢 論文發(fā)布在:PLDI 2023(Programming Language Design and Implementation)計算機科學(xué)領(lǐng)

    2024年01月16日
    瀏覽(22)
  • opencv-圖像對比度增強

    opencv-圖像對比度增強

    對比度增強,即將圖片的灰度范圍拉寬,如圖片灰度分布范圍在[50,150]之間,將其范圍拉升到[0,256]之間。這里介紹下 線性變換,直方圖正規(guī)化,伽馬變換,全局直方圖均衡化,限制對比度自適應(yīng)直方圖均衡化等算法。 線性變換 通過函數(shù)y=ax+b對灰度值進行處理,例如對于過暗

    2024年01月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包