本技術(shù)涉及人工智能,尤其涉及一種代碼生成模型的訓(xùn)練方法、代碼生成方法、設(shè)備以及介質(zhì)。
背景技術(shù):
1、隨著人工智能技術(shù)的不斷發(fā)展進(jìn)步,借助大語言模型(large?language?model,llm)進(jìn)行自動(dòng)化編程已經(jīng)成為現(xiàn)實(shí)。相關(guān)技術(shù)中,大語言模型自動(dòng)化編程只能做到按照文本提示在簡單的功能函數(shù)層面自動(dòng)編寫代碼。對(duì)于很難通過文字進(jìn)行清楚描述的結(jié)構(gòu)復(fù)雜的網(wǎng)站界面,仍然需要耗費(fèi)大量的時(shí)間和人力資源手動(dòng)編寫與該網(wǎng)站界面相對(duì)應(yīng)的代碼數(shù)據(jù),如此就導(dǎo)致針對(duì)類似網(wǎng)站界面的圖像數(shù)據(jù)進(jìn)行代碼編寫的效率非常低下。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例的主要目的在于提出一種代碼生成模型的訓(xùn)練方法、代碼生成方法、設(shè)備以及介質(zhì),旨在提升代碼生成模型自動(dòng)化編程的能力,使得代碼生成模型能夠自動(dòng)生成結(jié)構(gòu)復(fù)雜的網(wǎng)站界面的代碼,從而提高代碼編寫的效率。
2、為實(shí)現(xiàn)上述目的,本技術(shù)實(shí)施例的第一方面提出了一種代碼生成模型的訓(xùn)練方法,所述方法包括:
3、獲取多模態(tài)的模型訓(xùn)練數(shù)據(jù);其中,所述多模態(tài)的模型訓(xùn)練數(shù)據(jù)包括第一文本數(shù)據(jù)和第一圖像數(shù)據(jù),所述第一文本數(shù)據(jù)為對(duì)所述第一圖像數(shù)據(jù)進(jìn)行特征描述的數(shù)據(jù);
4、基于所述第一文本數(shù)據(jù)和所述第一圖像數(shù)據(jù)對(duì)預(yù)設(shè)的人工智能模型進(jìn)行模型訓(xùn)練,得到代碼生成模型;
5、其中,所述人工智能模型結(jié)合多模態(tài)大語言模型和擴(kuò)散模型構(gòu)建得到;所述代碼生成模型用于至少對(duì)第二圖像數(shù)據(jù)進(jìn)行學(xué)習(xí)并輸出與所述第二圖像數(shù)據(jù)對(duì)應(yīng)的代碼。
6、在一些實(shí)施例中,在所述基于所述第一文本數(shù)據(jù)和所述第一圖像數(shù)據(jù)對(duì)預(yù)設(shè)的人工智能模型進(jìn)行模型訓(xùn)練,得到代碼生成模型之前,所述方法還包括:
7、獲取預(yù)設(shè)的人工智能模型;
8、其中,所述人工智能模型包括編碼器組件、去噪器組件、解碼器組件和分類頭;所述編碼器組件基于多模態(tài)大語言模型創(chuàng)建得到,所述去噪器組件基于擴(kuò)散模型創(chuàng)建得到。
9、在一些實(shí)施例中,所述基于所述第一文本數(shù)據(jù)和所述第一圖像數(shù)據(jù)對(duì)預(yù)設(shè)的人工智能模型進(jìn)行模型訓(xùn)練,包括:
10、基于所述編碼器組件對(duì)所述第一文本數(shù)據(jù)和所述第一圖像數(shù)據(jù)進(jìn)行對(duì)比學(xué)習(xí),得到表征所述第一文本數(shù)據(jù)與所述第一圖像數(shù)據(jù)之間匹配關(guān)系的合成向量;
11、基于所述去噪器組件對(duì)所述合成向量進(jìn)行擴(kuò)散學(xué)習(xí)得到擴(kuò)散目標(biāo);
12、基于所述解碼器組件生成與所述擴(kuò)散目標(biāo)對(duì)應(yīng)的隱藏表示,并基于所述分類頭計(jì)算所述隱藏表示對(duì)應(yīng)的代碼標(biāo)記分布。
13、在一些實(shí)施例中,所述基于所述去噪器組件對(duì)所述合成向量進(jìn)行擴(kuò)散學(xué)習(xí)得到擴(kuò)散目標(biāo),包括:
14、基于所述去噪器組件逐步對(duì)所述合成向量疊加高斯噪聲;
15、對(duì)所述合成向量、與所述合成向量對(duì)應(yīng)的預(yù)測噪聲以及所述高斯噪聲進(jìn)行自注意力處理,得到與所述合成向量對(duì)應(yīng)的擴(kuò)散目標(biāo)。
16、在一些實(shí)施例中,所述方法還包括:
17、獲取預(yù)設(shè)的模型訓(xùn)練損失函數(shù);其中,所述模型訓(xùn)練損失函數(shù)基于所述預(yù)測噪聲與所述高斯噪聲之間的誤差、所述隱藏表示與嵌入碼之間的誤差和標(biāo)準(zhǔn)的交叉熵?fù)p失函數(shù)進(jìn)行計(jì)算得到;其中,所述嵌入碼為所述第一文本數(shù)據(jù)中的源代碼;
18、基于所述模型訓(xùn)練損失函數(shù)對(duì)所述去噪器組件、所述解碼器組件和所述分類頭進(jìn)行訓(xùn)練。
19、在一些實(shí)施例中,所述方法還包括以下至少一項(xiàng):
20、基于預(yù)設(shè)高斯噪聲對(duì)所述去噪器組件和所述解碼器組件進(jìn)行無監(jiān)督代碼生成的預(yù)訓(xùn)練;
21、基于所述編碼器組件對(duì)預(yù)設(shè)代碼片段進(jìn)行計(jì)算得到去噪器輸入數(shù)據(jù),并基于所述去噪器輸入數(shù)據(jù)對(duì)所述去噪器組件和所述解碼器組件進(jìn)行對(duì)代碼連續(xù)段落去噪的預(yù)訓(xùn)練。
22、在一些實(shí)施例中,所述獲取多模態(tài)的模型訓(xùn)練數(shù)據(jù),包括以下至少一項(xiàng):
23、從預(yù)設(shè)代碼托管平臺(tái)獲取網(wǎng)站源代碼作為第一文本數(shù)據(jù),并獲取與所述網(wǎng)站源代碼對(duì)應(yīng)的網(wǎng)站界面作為第一圖像數(shù)據(jù),以構(gòu)建得到多模態(tài)的模型訓(xùn)練數(shù)據(jù);
24、確定符合預(yù)設(shè)網(wǎng)站排名條件的目標(biāo)網(wǎng)站,抓取所述目標(biāo)網(wǎng)站的代碼作為第一文本數(shù)據(jù),并抓取與所述目標(biāo)網(wǎng)站的代碼對(duì)應(yīng)的網(wǎng)站截圖作為第一圖像數(shù)據(jù),以構(gòu)建得到多模態(tài)的模型訓(xùn)練數(shù)據(jù);
25、從預(yù)設(shè)組件庫獲取組件源代碼作為第一文本數(shù)據(jù),并獲取與所述組件源代碼對(duì)應(yīng)的組件圖像作為第一圖像數(shù)據(jù),以構(gòu)建得到多模態(tài)的模型訓(xùn)練數(shù)據(jù);
26、基于動(dòng)量蒸餾對(duì)所述模型訓(xùn)練數(shù)據(jù)進(jìn)行多模態(tài)表示學(xué)習(xí),以去除所述模型訓(xùn)練數(shù)據(jù)中的原始噪聲數(shù)據(jù)。
27、為實(shí)現(xiàn)上述目的,本技術(shù)實(shí)施例的第二方面提出了一種代碼生成方法,所述方法包括:
28、獲取模型輸入數(shù)據(jù);其中,所述模型輸入數(shù)據(jù)至少包括第二圖像數(shù)據(jù);
29、將所述第二圖像數(shù)據(jù)輸入如上述第一方面所述的代碼生成模型,以基于所述代碼生成模型對(duì)所述第二圖像數(shù)據(jù)進(jìn)行學(xué)習(xí)并輸出與所述第二圖像數(shù)據(jù)對(duì)應(yīng)的代碼。
30、為實(shí)現(xiàn)上述目的,本技術(shù)實(shí)施例的第三方面提出了一種代碼生成模型的訓(xùn)練裝置,所述裝置包括:
31、第一獲取模塊,用于獲取多模態(tài)的模型訓(xùn)練數(shù)據(jù);其中,所述多模態(tài)的模型訓(xùn)練數(shù)據(jù)包括第一文本數(shù)據(jù)和第一圖像數(shù)據(jù),所述第一文本數(shù)據(jù)為對(duì)所述第一圖像數(shù)據(jù)進(jìn)行特征描述的數(shù)據(jù);
32、模型訓(xùn)練模塊,用于基于所述第一文本數(shù)據(jù)和所述第一圖像數(shù)據(jù)對(duì)預(yù)設(shè)的人工智能模型進(jìn)行模型訓(xùn)練,得到代碼生成模型;其中,所述人工智能模型結(jié)合多模態(tài)大語言模型和擴(kuò)散模型構(gòu)建得到;所述代碼生成模型用于至少對(duì)第二圖像數(shù)據(jù)進(jìn)行學(xué)習(xí)并輸出與所述第二圖像數(shù)據(jù)對(duì)應(yīng)的代碼。
33、為實(shí)現(xiàn)上述目的,本技術(shù)實(shí)施例的第四方面提出了一種代碼生成裝置,所述裝置包括:
34、第二獲取模塊,用于獲取模型輸入數(shù)據(jù);其中,所述模型輸入數(shù)據(jù)至少包括第二圖像數(shù)據(jù);
35、代碼生成模塊,用于將所述第二圖像數(shù)據(jù)輸入如上述第一方面所述的代碼生成模型,以基于所述代碼生成模型對(duì)所述第二圖像數(shù)據(jù)進(jìn)行學(xué)習(xí)并輸出與所述第二圖像數(shù)據(jù)對(duì)應(yīng)的代碼。
36、為實(shí)現(xiàn)上述目的,本技術(shù)實(shí)施例的第五方面提出了一種電子設(shè)備,所述電子設(shè)備包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,在所述電子設(shè)備應(yīng)用于車輛時(shí),所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述第一方面所述的方法,和/或者,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述第二方面所述的方法。
37、為實(shí)現(xiàn)上述目的,本技術(shù)實(shí)施例的第六方面提出了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述第一方面所述的方法,和/或者,實(shí)現(xiàn)上述第二方面所述的方法。
38、為實(shí)現(xiàn)上述目的,本技術(shù)實(shí)施例的第七方面提出了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上第一方面提供的方法,和/或者,實(shí)現(xiàn)上述第二方面提供的方法。
39、本技術(shù)實(shí)施例通過結(jié)合多模態(tài)大語言模型和擴(kuò)散模型構(gòu)建得到人工智能模型,然后獲取多模態(tài)的模型訓(xùn)練數(shù)據(jù)(包括第一文本數(shù)據(jù)和第一圖像數(shù)據(jù),第一文本數(shù)據(jù)為對(duì)第一圖像數(shù)據(jù)進(jìn)行特征描述的數(shù)據(jù)),從而基于第一文本數(shù)據(jù)和第一圖像數(shù)據(jù)對(duì)預(yù)設(shè)的人工智能模型進(jìn)行模型訓(xùn)練,得到代碼生成模型。即,本技術(shù)實(shí)施例結(jié)合多模態(tài)大語言模型和擴(kuò)散模型訓(xùn)練得到基于多模態(tài)和擴(kuò)散的代碼生成模型,從而利用該代碼生成模型對(duì)第二圖像數(shù)據(jù)進(jìn)行學(xué)習(xí)并輸出與該第二圖像數(shù)據(jù)對(duì)應(yīng)的代碼。如此,相比于傳統(tǒng)需手動(dòng)編寫與復(fù)雜網(wǎng)站界面對(duì)應(yīng)的代碼數(shù)據(jù)的方式,本技術(shù)實(shí)施例能夠提升基于人工智能的代碼生成模型基于圖像或者文字實(shí)現(xiàn)自動(dòng)化編程的能力,通過采用本技術(shù)實(shí)施例提供的代碼生成模型的訓(xùn)練方法得到的代碼生成模型,能夠自動(dòng)生成結(jié)構(gòu)復(fù)雜的網(wǎng)站界面的代碼,從而提高代碼編寫的效率。