實(shí)施方案整體涉及機(jī)器學(xué)習(xí)系統(tǒng),并且更具體地涉及用于通過經(jīng)預(yù)訓(xùn)練的模型和深度強(qiáng)化學(xué)習(xí)進(jìn)行程序合成的系統(tǒng)和方法。
背景技術(shù):
1、程序合成,通常也稱為代碼生成,是生成滿足問題規(guī)范的計(jì)算機(jī)代碼程序的任務(wù),例如,對(duì)列表進(jìn)行排序、合并兩個(gè)數(shù)據(jù)表等。當(dāng)程序合成被視為序列到序列任務(wù)時(shí),一些經(jīng)預(yù)訓(xùn)練的語言模型可以適于接收輸入序列作為自然語言下的問題規(guī)范,并且然后生成代碼序列作為輸出程序。然而,這些現(xiàn)有的語言模型可能具有有限的代碼生成性能,因?yàn)檫@些模型通常遵循標(biāo)準(zhǔn)的監(jiān)督微調(diào)程序,僅從自然語言問題描述和真值程序來訓(xùn)練程序合成模型。此類范例很大程度上忽略了問題規(guī)范中的一些重要但潛在有用的信號(hào),諸如單元測(cè)試,從而導(dǎo)致在解決復(fù)雜的未知編碼任務(wù)時(shí)性能不佳。
2、因此,需要一種高效且準(zhǔn)確的程序合成模型。
技術(shù)實(shí)現(xiàn)思路
1.一種用于程序合成的強(qiáng)化學(xué)習(xí)框架的方法,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其中所述采樣程序通過以下生成:
3.根據(jù)權(quán)利要求2所述的方法,其中當(dāng)針對(duì)所述采樣程序生成結(jié)束令牌時(shí),生成所述回饋。
4.根據(jù)權(quán)利要求1所述的方法,其中所述回饋通過以下生成:
5.根據(jù)權(quán)利要求4所述的方法,其中所述策略梯度被計(jì)算為基于所述回饋以及以先前的預(yù)測(cè)令牌和所述問題規(guī)范為條件的預(yù)測(cè)令牌的條件概率的梯度的估計(jì)。
6.根據(jù)權(quán)利要求4所述的方法,還包括:
7.根據(jù)權(quán)利要求6所述的方法,其中基于所述第一回饋值與所述第二回饋值之間的差以及以先前的預(yù)測(cè)令牌和所述問題規(guī)范為條件的預(yù)測(cè)令牌的條件概率的梯度,計(jì)算所述策略梯度。
8.根據(jù)權(quán)利要求1所述的方法,其中所述評(píng)論家模型通過以下訓(xùn)練:
9.根據(jù)權(quán)利要求8所述的方法,其中通過所述評(píng)論家模型中的解碼器的最大池化語境隱藏狀態(tài)的softmax操作,計(jì)算所述預(yù)測(cè)測(cè)試結(jié)果。
10.根據(jù)權(quán)利要求9所述的方法,其中基于由所述評(píng)論家模型生成的所述預(yù)測(cè)測(cè)試結(jié)果的概率分布以及以先前的預(yù)測(cè)令牌和所述問題規(guī)范為條件的預(yù)測(cè)令牌的條件概率的梯度,計(jì)算所述策略梯度。
11.一種用于程序合成的強(qiáng)化學(xué)習(xí)框架的系統(tǒng),所述系統(tǒng)包括:
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述采樣程序通過以下生成:
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中當(dāng)針對(duì)所述采樣程序生成結(jié)束令牌時(shí),生成所述回饋。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述回饋通過以下生成:
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述策略梯度被計(jì)算為基于所述回饋以及以先前的預(yù)測(cè)令牌和所述問題規(guī)范為條件的預(yù)測(cè)令牌的條件概率的梯度的估計(jì)。
16.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述操作還包括:
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中基于所述第一回饋值與所述第二回饋值之間的差以及以先前的預(yù)測(cè)令牌和所述問題規(guī)范為條件的預(yù)測(cè)令牌的條件概率的梯度,計(jì)算所述策略梯度。
18.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述評(píng)論家模型通過以下訓(xùn)練:
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其中通過所述評(píng)論家模型中的解碼器的最大池化語境隱藏狀態(tài)的softmax操作,計(jì)算所述預(yù)測(cè)測(cè)試結(jié)果,以及
20.一種非暫態(tài)處理器可讀存儲(chǔ)介質(zhì),其存儲(chǔ)用于程序合成的強(qiáng)化學(xué)習(xí)框架的多個(gè)處理器可執(zhí)行指令,所述處理器可執(zhí)行指令由一個(gè)或多個(gè)處理器執(zhí)行以執(zhí)行操作,所述操作包括:
21.一種程序合成的方法,所述方法包括:
22.根據(jù)權(quán)利要求21所述的方法,其中所述由所述語言模型重新生成一個(gè)或多個(gè)經(jīng)改進(jìn)的程序樣本包括:
23.根據(jù)權(quán)利要求22所述的方法,其中所述一個(gè)或多個(gè)子序列通過以下選擇:
24.根據(jù)權(quán)利要求23所述的方法,還包括:
25.根據(jù)權(quán)利要求21所述的方法,還包括:
26.根據(jù)權(quán)利要求25所述的方法,還包括:
27.根據(jù)權(quán)利要求26所述的方法,其中所述錯(cuò)誤信息包括以下任一項(xiàng):
28.根據(jù)權(quán)利要求26所述的方法,其中所述程序修復(fù)模型是序列到序列模型。
29.根據(jù)權(quán)利要求26所述的方法,其中通過訓(xùn)練目標(biāo)訓(xùn)練所述程序修復(fù)模型,所述訓(xùn)練目標(biāo)將未通過所述單元測(cè)試的程序樣本與對(duì)應(yīng)于所述問題規(guī)范的真值程序進(jìn)行比較,所述真值程序以對(duì)應(yīng)于所述程序樣本的單元測(cè)試結(jié)果和/或錯(cuò)誤子類型為條件。
30.根據(jù)權(quán)利要求25所述的方法,還包括:
31.一種程序合成的系統(tǒng),所述系統(tǒng)包括:
32.根據(jù)權(quán)利要求31所述的系統(tǒng),其中由所述語言模型重新生成一個(gè)或多個(gè)經(jīng)改進(jìn)的程序樣本的操作包括:
33.根據(jù)權(quán)利要求32所述的系統(tǒng),其中所述一個(gè)或多個(gè)子序列通過以下選擇:
34.根據(jù)權(quán)利要求33所述的系統(tǒng),其中所述操作還包括:
35.根據(jù)權(quán)利要求31所述的系統(tǒng),其中所述操作還包括:
36.根據(jù)權(quán)利要求35所述的系統(tǒng),其中所述操作還包括:
37.根據(jù)權(quán)利要求36所述的系統(tǒng),其中所述錯(cuò)誤信息包括以下任一項(xiàng):
38.根據(jù)權(quán)利要求36所述的系統(tǒng),其中通過訓(xùn)練目標(biāo)訓(xùn)練所述程序修復(fù)模型,所述訓(xùn)練目標(biāo)將未通過所述單元測(cè)試的程序樣本與對(duì)應(yīng)于所述問題規(guī)范的真值程序進(jìn)行比較,所述真值程序以對(duì)應(yīng)于所述程序樣本的單元測(cè)試結(jié)果和/或錯(cuò)誤子類型為條件。
39.根據(jù)權(quán)利要求35所述的系統(tǒng),其中所述操作還包括:
40.一種非暫態(tài)處理器可讀存儲(chǔ)介質(zhì),其存儲(chǔ)用于程序合成的多個(gè)處理器可執(zhí)行指令,所述處理器可執(zhí)行指令由一個(gè)或多個(gè)處理器執(zhí)行以執(zhí)行操作,所述操作包括: