麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種基于大模型的標題生成方法

文檔序號:41757945發(fā)布日期:2025-04-29 18:26閱讀:4來源:國知局
一種基于大模型的標題生成方法

本發(fā)明涉及標題生成方法,尤其涉及針對模板化缺陷報告和非模板化缺陷報告的標題生成方法。


背景技術:

1、缺陷報告是軟件開發(fā)生命周期中必不可少的工件,在維護軟件質(zhì)量和可用性方面發(fā)揮著至關重要的作用。這些報告使用戶能夠傳達他們在使用軟件系統(tǒng)時遇到的問題,幫助開發(fā)人員識別和解決缺陷。鑒于缺陷報告在軟件開發(fā)中的核心作用,其標題的質(zhì)量變得尤為重要。缺陷報告的標題是開發(fā)人員的第一個切入點,簡潔、描述性的標題可以加快缺陷分類和解決過程。相反,低質(zhì)量的標題和報告通常會增加開發(fā)人員的認知負擔并阻礙有效的缺陷解決。因此,為缺陷報告自動生成高質(zhì)量的標題是非常有意義的。

2、陳等人提出了一種名為itape的自動化方法,該方法專注于為github等平臺上的缺陷報告生成準確的標題。itape的核心思想是將缺陷報告標題生成視為一項一句話摘要任務。在這種方法中,缺陷報告的內(nèi)容作為輸入提供,itape采用序列到序列(seq2seq)模型自動生成標題。itape利用先進的自然語言處理技術,例如機器翻譯任務中常用的注意力和編碼器-解碼器架構(gòu)。這種先進的架構(gòu)使itape取得了有希望的初步結(jié)果。盡管取得了這些進步,我們對itape的分析發(fā)現(xiàn)了阻礙進一步進展的兩個主要性能瓶頸。

3、第一個限制是未充分考慮缺陷報告的不同組成部分,itape直接將整個缺陷報告視為原始輸入并直接生成標題,沒有區(qū)分缺陷報告的不同組成部分,但實際上每個組成部分對缺陷的描述都有獨特的貢獻。

4、第二個限制是忽略了缺陷報告樣式的多樣性,李等人研究發(fā)現(xiàn),截止2020年,在github上提交的缺陷報告中只有大約30%是模板化的。因此,很大一部分缺陷報告是非模板化的,它們信息不一致或雜亂無章,使得它們更難以處理。但itape直接統(tǒng)一處理模板化和非模板化的缺陷報告,未對非模板化的缺陷報告中的混亂信息做結(jié)構(gòu)化處理,最終導致標題生成效果不佳。


技術實現(xiàn)思路

1、針對現(xiàn)有技術存在的上述問題,本發(fā)明要解決的技術問題是:如何自動生成高質(zhì)量的標題。

2、為解決上述技術問題,本發(fā)明采用如下技術方案:一種基于大模型的標題生成方法,包括離線訓練階段和在線推理階段,離線訓練階段分為訓練文檔組件分析器dca和構(gòu)建標題生成模型tgm。

3、從公開數(shù)據(jù)上收集數(shù)據(jù)并構(gòu)建數(shù)據(jù)集,數(shù)據(jù)集中每條數(shù)據(jù)都是一個完整的缺陷報告,缺陷報告中包含description、reproduction、expected?behavior、others這四個字段,且這四個字段格式相同,則認為該條數(shù)據(jù)為模板化缺陷報告數(shù)據(jù),否則為非模板化缺陷報告數(shù)據(jù)。

4、在離線訓練階段,構(gòu)建和訓練文檔組件分析器dca,dca的結(jié)構(gòu)包含嵌入層、編碼層、分類層和輸出層,包括如下步驟:

5、s101:獲取模板化缺陷報告數(shù)據(jù),其中每條數(shù)據(jù)由文本和標題構(gòu)成。

6、s102:將每段文本分割成一系列的單個句子,每個句子都打上真實類別標簽,真實類別標簽為description、reproduction、expected?behavior和others。

7、s103:使用預訓練的bert模型對dca的參數(shù)進行初始化【即dca初始化的參數(shù)使用預訓練的bert模型的參數(shù)】,使用預訓練的bert模型將句子s轉(zhuǎn)換為標記序列t。

8、s104:通過嵌入層,將標記序列t轉(zhuǎn)換為嵌入序列x(t)。

9、s105:對于x(t),將其輸入編碼層,得到標記向量h[cls],然后,h[cls]被傳遞到分類層,通過softmax函數(shù)來預測句子的預測類別,計算預測類別與句子真實類別標簽之間的損失,并根據(jù)該損失更新dca的參數(shù);每輪訓練會將模板化缺陷報告數(shù)據(jù)中所有數(shù)據(jù)均輸入dca進行訓練,當進行完設定輪次訓練后,得到訓練好的dca。

10、構(gòu)建標題生成模型tgm,tgm的結(jié)構(gòu)包含嵌入層、編碼器層、解碼器層和輸出層,包括如下步驟:

11、s201:獲取非模板化缺陷報告數(shù)據(jù),將非模板化的缺陷報告數(shù)據(jù)輸入訓練好的dca轉(zhuǎn)化為模板化缺陷報告數(shù)據(jù)。

12、轉(zhuǎn)化后的模板化缺陷報告數(shù)據(jù)中的每條數(shù)據(jù)由文本和標題構(gòu)成;將文本中的每個句子都打上真實類別標簽,真實類別標簽為description、reproduction、expectedbehavior和others。

13、s202:設計四個輸入槽位,分別對應轉(zhuǎn)化后的每條模板化缺陷報告數(shù)據(jù)中的description、reproduction、expected?behavior和others,將轉(zhuǎn)化后的每條模板化缺陷報告數(shù)據(jù)嵌入輸入槽位生成輸入序列finput,finput=des:[x]:rep:[y]:exp:[z]:oth:[v],其中[x]、[y]、[z]和[v]為轉(zhuǎn)化后的模板化缺陷報告數(shù)據(jù)中不同真實類別標簽的文本;des、rep、exp和oth為不同真實類別標簽的占位符。

14、s203:使用預訓練的codet5對tgm的參數(shù)進行初始化【即tgm初始化的參數(shù)使用預訓練的codet5的參數(shù)】,采用自注意力機制self-attention和編碼器-解碼器注意力機制encoder-decoder?attention對finput進行編碼后表示為

15、s204:將傳入多個transformer編碼器,并應用自注意力機制、前饋網(wǎng)絡和層歸一化操作,得到上下文表示向量r。

16、s205:將r輸入tgm生成預測標題,計算預測標題與真實標題之間的損失,并根據(jù)該損失更新tgm參數(shù),每輪訓練會將非模板化缺陷報告數(shù)據(jù)中所有數(shù)據(jù)均輸入tgm進行訓練,當進行完設定輪次訓練后,得到訓練好的tgm。

17、在線推理階段,包括如下步驟:

18、s300:對于一個缺陷報告,判斷該缺陷報告是否是模板化的,若缺陷報告中包含description、reproduction、expected?behavior、others這四個字段,且這四個字段格式相同,則認為該缺陷報告為模板化缺陷報告,否則,為非模板化缺陷報告。

19、如果是模板化缺陷報告,則直接提取分類好的句子;使用s202的方法將分類好的句子嵌入輸入槽位生成f′input,再使用s203的方法將f′input轉(zhuǎn)化為使用s204的方法將轉(zhuǎn)化為r’,將r’輸入訓練好的tgm,輸出即為預測的該缺陷報告的標題;

20、如果是非模板化缺陷報告,則利用訓練好的dca將該缺陷報告轉(zhuǎn)化為模板化的缺陷報告;使用s202的方法將轉(zhuǎn)化為模板化的缺陷報告嵌入輸入槽位生成f′input,再使用s203的方法將f′input轉(zhuǎn)化為使用s204的方法將轉(zhuǎn)化為r’,將r’輸入訓練好的tgm,輸出即為預測的該缺陷報告的標題。

21、進一步的,所述s103中將句子s轉(zhuǎn)換為標記序列t的過程為:

22、設s=[w1,w2,…,wm],其中ωm表示s中第m個詞,使用預訓練的bert模型對s進行分詞,將s轉(zhuǎn)換為標記序列t=[[cls],t1,t2,…,tn,[sep]],其中[cls]是代表整個句子的特殊標記,[sep]是標記句子結(jié)尾的分隔符標記,ti代表句子中的每個標記。

23、具體的,所述中s104將標記序列t轉(zhuǎn)換為嵌入序列x的步驟為:

24、dca的嵌入層包括詞嵌入層和位置嵌入層,對于標記序列t,詞嵌入表示為e(t)=[e([cls]),e(t1),e(t2),...,e(tn),e([sep])],其中e(t)為t的詞嵌入矩陣;位置嵌入可以表示為,其中p(t)為t的位置嵌入矩陣,最終嵌入序列為x(t),

25、具體的,所述預測類別的計算過程為:

26、通過線性變換計算h[cls]出得分向量z,z=w·h[cls]+b,其中w為分類層的權(quán)重矩陣,b是偏置項,z是一個4維向量,表示4個類別的得分,記作z=[z1,z2,z3,z4];

27、應用softmax函數(shù)將這個得分向量z轉(zhuǎn)換為一個概率分布y=[y1,y2,y3,y4],每個yi表示類別i的概率,softmax函數(shù)的公式是:

28、選擇概率最大的類別作為預測類別,其中arg?max(?)表示取出其中的最大值。

29、進一步的,所述s203中得到的過程為:

30、輸入為缺陷報告中的所有句子,每個句子根據(jù)其真實類別標簽嵌入輸入槽位得到finput,對finput使用子詞標記器進行標記,并將復雜的標識符分解為子標記來幫助緩解詞匯外問題,得到標記序列tinput=[[cls],sentence1,[sep],sentence2,[sep],...,sentencem,[sep]],其中[cls]是代表整個段落的特殊標記,[sep]是標記句子結(jié)尾的分隔符標記,sentencei代表段落中的每個句子,sentencei=[t1,t2,..,tn],ti代表句子中的每個標記。

31、將標記化的輸入序列通過tgm的嵌入層,使其中每個標記都映射到嵌入向量嵌入層包括詞嵌入、位置嵌入和段嵌入,對于標記ti,詞嵌入表示為eword(ti)=eword[ti],其中eword表示嵌入矩陣,對于位置i,位置嵌入表示為epos(i)=epos[i],其中epos代表位置嵌入矩陣,對于標記ti,詞嵌入可表示為eseg(ti)=eseg[j],j∈{0,1,...,m-1}and?ti∈sentencej,eseg[j]為段嵌入矩陣向量,基于詞嵌入、位置嵌入和段嵌入,得到ti的最終嵌入為由此可得到sentencei的嵌入序列為所以,最終的嵌入序列為

32、進一步的,所述s204中得到上下文表示向量r的過程為:

33、經(jīng)過多個堆疊的transformer塊進行處理,每個transformer塊包含多頭注意力機制、前饋網(wǎng)絡和層歸一化,定義單頭注意力機制為:

34、

35、其中q為查詢矩陣,k為鍵矩陣,v為值矩陣,dk為鍵向量的維度。

36、基于單頭注意力機制,定義多頭注意力機制為:

37、multihead=concat(head1,head2,…,headh)wo

38、其中headi是第i個頭的注意力計算,即attention(q,k,v)i,wo是輸出投影矩陣,h是多頭注意力的頭數(shù),concat表示將所有頭的輸出headi按維度拼接。

39、定義前饋網(wǎng)絡ffn為:

40、ffn(x)=max(0,xw1+b1)w2+b2

41、其中w1是第一層權(quán)重矩陣,w2是第二層權(quán)重矩陣,b1是第一層偏置向量,b2是第二層偏置向量,max(0,·)是relu激活函數(shù)。

42、定義層歸一化layernorm為:

43、

44、其中μ是輸入向量的均值,σ2是輸入向量的方差,∈是平滑項,防止分母為0,γ和β是可學習參數(shù)。

45、對應用multihead得到

46、

47、對應用前饋網(wǎng)絡和層歸一化操作得到第i個transformer層的輸出xi:

48、

49、經(jīng)過l個transformer層的處理后,輸入序列finput被編碼為上下文嵌入序列即為輸入序列finput的上下文表示向量r。

50、進一步的,所述s205將r輸入tgm生成預測標題的步驟為:

51、tgm通過解碼器逐個生成標題的單詞,每個生成的單詞是依賴于先前已生成的內(nèi)容和當前輸入的缺陷報告數(shù)據(jù),生成概率公式為:p(yt|y<t,finput)=softmax(wo·layernorm(multihead(y<t)+multihead(y<t,r)+ffn))

52、其中wo是線性變換矩陣,yt表示當前準備生成的單詞,y<t表示先前已生成的內(nèi)容。根據(jù)生成概率,解碼器會選擇概率最大的詞作為生成單詞,最終通過連接所有生成的單詞得到預測標題。

53、相對于現(xiàn)有技術,本發(fā)明至少具有如下優(yōu)點:

54、1.本發(fā)明訓練了一個標題生成模型,充分利用了模板化缺陷報告中不同類別的數(shù)據(jù),更精確地捕捉了缺陷報告中的語義和結(jié)構(gòu)信息,為自動生成高質(zhì)量標題提供了強大支撐。

55、2.解決了現(xiàn)有方法為非模板化缺陷報告生成標題的局限性。通過訓練一個文檔組件分析器,有效地將非模板化缺陷報告轉(zhuǎn)換為了模板化缺陷報告,再利用標題生成模型,大大提高了為非模板化缺陷報告自動生成標題的質(zhì)量。

56、3.為處理模板化和非模板化缺陷報告提供了一個統(tǒng)一的方法,本發(fā)明方法在rouge-l、meteor和chrf指標上優(yōu)于現(xiàn)有最好方法,并且人工評估結(jié)果表明,我們的方法生成的標題具有良好的相似性、自然性和信息量。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 吴江市| 通江县| 昌平区| 正蓝旗| 定日县| 泉州市| 铁岭市| 昌都县| 年辖:市辖区| 固安县| 哈巴河县| 拉萨市| 康保县| 六安市| 井陉县| 安岳县| 大庆市| 盘山县| 理塘县| 睢宁县| 襄汾县| 会同县| 凤台县| 六枝特区| 元朗区| 阳泉市| 襄垣县| 屏边| 五家渠市| 门头沟区| 都兰县| 镇坪县| 赤水市| 北流市| 黄梅县| 苍溪县| 通山县| 阿巴嘎旗| 依安县| 车致| 册亨县|