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