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

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋

這篇具有很好參考價值的文章主要介紹了【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

寫在最前面

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

一位同學分享了arXiv 2023.3.28
紐約大學團隊Authors: Angelica Chen, Jérémy Scheurer, Tomasz Korbak, Jon Ander Campos, Jun Shern Chan, Samuel R. Bowman, Kyunghyun Cho, Ethan Perez的
Improving Code Generation by Training with Natural Language Feedback《通過使用自然語言反饋進行訓練來改進代碼生成》

論文:https://arxiv.org/pdf/2303.16749.pdf
代碼:https://github.com/nyu-mll/ILF-for-code-generation

主要工作

  1. 論文介紹了一種名為“Imitation learning from Language Feedback (ILF)”的解決方案,旨在解決代碼生成任務(wù)中的準確性和樣本效率問題。
  2. ILF方法的核心思想是:利用人類編寫的自然語言反饋來訓練代碼生成模型,提供更準確的訓練信息,從而改進模型性能。
  3. 實驗證明,ILF方法在MBPP基準測試中能夠?qū)ODEGEN-MONO 6.1B模型的pass@1 rate相對值提高38%,絕對值提高了10%。這表明ILF方法在代碼生成任務(wù)中具有顯著性能提升。
    • 這項研究為改進代碼生成提供了一種有效且高效的方法,通過引入人類反饋數(shù)據(jù),從而提高了生成代碼的質(zhì)量。
    • 盡管ILF方法在性能方面取得了顯著的成果,但它依賴于人類編寫的自然語言反饋數(shù)據(jù)。因此,方法的適用范圍和局限性需要進一步探索和理解。
  4. 未來可以研究結(jié)合該方法與其他代碼生成技術(shù)。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

啟發(fā)

這篇論文提供了有關(guān)使用人工反饋來提高代碼生成模型質(zhì)量的重要見解。在未來的研究中考慮:

  1. 自動化反饋生成: 論文中提到未來可能實現(xiàn)自動化或半自動化的自然語言反饋生成。這是一個非常有前景的方向,可以減少人工反饋收集的時間和成本,提高模型的實際應(yīng)用性。

  2. 多步反饋合并: 論文中提到將反饋分解為多個步驟,并逐步合并這些反饋的方法。這是一個有望提高反饋質(zhì)量的方法,未來的工作可以進一步探索這一領(lǐng)域,以優(yōu)化反饋的處理和集成。

  3. 處理多錯誤反饋: 論文中指出,當反饋中包含多個錯誤時,某些方法的效果較差。未來的研究可以探索如何更好地處理多錯誤反饋,例如使用分級反饋或多輪反饋的方法。

  4. 編程語言相關(guān)性研究: 論文中提到未研究ILF算法在不同編程語言中的性能提升。未來研究可以探究ILF算法在不同編程語言任務(wù)中的適用性,以便更全面地了解其效果。

背景介紹

近年來,預訓練的大語言模型(如GPT)在自然語言處理任務(wù)中取得了顯著的成果。

通過預訓練大語言模型,我們可以利用其強大的語言建模能力來生成代碼,提高代碼生成的質(zhì)量和效率

應(yīng)用

自動化生成復雜代碼片段

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC
改進開發(fā)者IDE Copilot

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC
AlphaCode程序競賽

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

現(xiàn)有工作的不足

都是離線算法,沒有交互式的反復實驗;沒有懲罰模型錯誤輸出的交互式指導
有的工作僅在推理階段引入了Feedback,在實際應(yīng)用時難以實現(xiàn)
大語言預訓練模型仍然很難生成非常準確的代碼

LLMs for Program Synthesis
論文 會議 訓練數(shù)據(jù)
THE PILE (Gao et al., 2020) ArXiv 大型語言文本
GPT-NeoX-20B(Black et al., 2022) ACL 大型語言文本+少量代碼
Codegen(Nijkamp et al.,2022) ICLR 大型語言文本+少量代碼
AlphaCode(Li et al., 2022;) Science 源碼文件
Bloom(Workshop et al., 2022), ArXiv 源碼和文檔
Learning from human feedback
論文 會議 Feedback類型
(Ouyang et al., 2022), NIPS 人的反饋
Codegen(Nijkamp et al.,2022) ICLR 自然語言反饋
(Scheurer et al., 2023) ArXiv 自然語言反饋

Motivation動機

代碼生成可以提高開發(fā)人員的效率,而LLM仍然難以始終如一地生成正確的代碼。LLM自然能夠結(jié)合書面反饋,這已被證明在測試時提供反饋時可以顯著提高代碼生成模型的通過率。
LLM的失敗在很大程度上可以歸因于現(xiàn)代LLM預訓練設(shè)置。通過對模型自身輸出的明確的人工書面反饋來監(jiān)督LLM,可以更有效地訓練模型以生成功能正確的代碼。

方法

目標是從任務(wù)分布 P ( t ) P(t) P(t) 中采樣出一組高質(zhì)量的程序 x 1 ~ π θ ( ? ∣ t ) x_1 \sim \pi_{\theta}(\cdot|t) x1?πθ?(?t);

通過擬合LLM π θ \pi_{\theta} πθ? 來近似真實的分布 π t ? ( x 1 ) \pi_t^*(x_1) πt??(x1?),利用獎勵函數(shù) ( R ) (R) (R) 來衡量程序 x 1 x_1 x1? 通過單元測試的概率

π θ \pi_{\theta} πθ? 預先訓練的語言模型參數(shù)化依據(jù) θ \theta θ; t t t 為從任務(wù)分布 P ( t ) P(t) P(t) 上采樣得到的,代碼描述
擬合 π θ \pi_{\theta} πθ? π t ? \pi_t^* πt?? 的近似,可以被視為最小化從 π t ? \pi_t^* πt?? π θ \pi_{\theta} πθ? 在任務(wù)分布 P ( t ) P(t) P(t) 上的 KL 散度的期望。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC
目標是從任務(wù)分布 P ( t ) P(t) P(t) 中采樣出一組高質(zhì)量的程序 x 1 ~ π θ ( ? ∣ t ) x_1 \sim \pi_{\theta}(\cdot|t) x1?πθ?(?t);

通過擬合LLM π θ \pi_{\theta} πθ? 來近似真實的分布 π t ? ( x 1 ) \pi_t^*(x_1) πt??(x1?)

利用獎勵函數(shù) ( R ) (R) (R) 來衡量程序 x 1 x_1 x1? 通過單元測試的概率

對于任務(wù)描述 t t t,程序是否通過單元測試

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC
擬合 π θ \pi_{\theta} πθ? π t ? \pi_t^* πt?? 的近似,可以被視為最小化從 π t ? \pi_t^* πt?? π θ \pi_{\theta} πθ? 在任務(wù)分布 P ( t ) P(t) P(t) 上的 KL 散度的期望。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC
轉(zhuǎn)化為有監(jiān)督學習中的二分類任務(wù)
【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

x 1 x_1 x1?的潛在空間太大,而且不能直接在 π t ? \pi_t^* πt??中采樣?。?/p>

q t ( x 1 ) q_t(x_1) qt?(x1?)上采用重要性采樣。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC
引入預訓練模型??_Refine和人工標注的自然語言反饋??來近似??_?? (??_??)
【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

ILF

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

Experiments & Results

數(shù)據(jù)集

Mostly Basic Python Problems (MBPP) dataset

M B P P R e f i n e MBPP_{Refine} MBPPRefine?:這些是任務(wù)的ID范圍在111-310之間,CODEGEN-MONO 6.1B沒有生成任何正確的完成。這個分割用于訓練 π R e f i n e \pi_{Refine} πRefine?

M B P P T r a i n MBPP_{Train} MBPPTrain?:這些是任務(wù)的ID范圍在311-974之間,CODEGEN-MONO 6.1B沒有生成任何正確的完成。這個分割首先用于評估由 π R e f i n e \pi_{Refine} πRefine?生成的細化的正確性。然后,這個分割中的正確細化用于訓練 π θ \pi_{\theta} πθ? 以獲得 π θ \pi_{\theta} πθ? (這是算法1中的第5步)。

M B P P T e s t MBPP_{Test} MBPPTest?:這些任務(wù)的ID范圍在11-110之間,我們使用它們來評估 π θ ? \pi_{\theta}* πθ?? 的最終性能。與前兩個分割不同,我們在這個分割中使用了所有的任務(wù),而不僅僅是CODEGEN-MONO 6.1B最初未生成正確程序的任務(wù)。這使我們能夠更好地比較 π θ \pi_{\theta} πθ? 的基準性能與 π θ ? \pi_{\theta}* πθ?? 的性能。

評價指標

在本文中使用Kulal等人(2019年)引入的pass@k指標通常用于評估代碼生成模型的性能。
這個公式計算了 k 個模型生成的樣本中通過所有單元測試的比例,然后通過求和取平均值來得到 pass@k 指標的估計值。
p a s s @ k = 1 k ∑ i = 1 k Indicator ( T e s t ( x i ) ) pass@k = \frac{1}{k} \sum_{i=1}^{k} \text{Indicator}(Test(x_i)) pass@k=k1?i=1k?Indicator(Test(xi?))

在這個公式中:

  • pass@k 是 “pass@k” 指標的值。
  • k 是模型生成的樣本數(shù)量。
  • ??? 表示生成的代碼樣本中的第 i 個樣本。
  • Indicator 是指示函數(shù),如果括號中的條件為真則返回1,否則返回0。
  • Test(???) 是用于測試代碼 ??? 是否通過所有單元測試的函數(shù)。

本文使用了Chen等人(2021年)提供的這一數(shù)量的經(jīng)驗估計,它是一個無偏估計器,給出如下公式:
【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

3.1.驗證 π Reffine \pi_{\text{Reffine}} πReffine? 與NLF結(jié)合的有效性(可以使用反饋來修復不正確的代碼)

CODEGEN-MONO 6.1B Incorporates Feedback
只有最初無法通過測試的code才需要feedback

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC
結(jié)論

Baseline模型可以使用feedback來修復不正確的代碼,而Fine-tuning更有效。

  1. 我們首先驗證我們的基線模型可以使用feedback來修復不正確的代碼,這是ILF工作的先決條件。

  2. 我們評估了 CODEGEN-MONO 6.1B 在給定成對(incorrect code, natural language feedback)的情況下,以 few-shot 的方式和 fine-tuning 后生成 Refinements 的能力。

  3. 只有最初無法產(chǎn)生正確響應(yīng)的任務(wù)才需要feedback,因此我們首先在所有 MBPP 上評估 CODEGEN-MONO 6.1B few-shot,每個任務(wù)生成 30 個程序,溫度為 0.8。 表1 顯示了由此產(chǎn)生的通過率。 共有 321 項任務(wù),零樣本 CODEGEN-MONO 6.1B 沒有產(chǎn)生正確樣本的任務(wù)有 321 個(表1: ( ( 100 % ? 67 % ) × 974 ?任務(wù) ) ≈ 321 ((100\%-67\%) \times 974 \text{ 任務(wù)}) \approx 321 ((100%?67%)×974?任務(wù))321 個)。 然后,我們用反饋 feedback 和細化 refinements 為每個任務(wù)注釋一個不正確的程序,如第3節(jié)所述。

表1. 在整個 MBPP 數(shù)據(jù)集上的初始零射擊 CODEGEN-MONO 6.1B 性能。“1+正確”是指 CODEGEN-MONO 6.1B 生成至少一個通過所有單元測試的程序的任務(wù)百分比。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

少樣本反饋合并,我們使用人工反饋注釋來創(chuàng)建少樣本反饋提示,格式如圖2所示。我們評估了 CODEGEN-MONO 6.1B 產(chǎn)生包含反饋并通過單元測試的改進的能力。然而,產(chǎn)生通過單元測試的精化并不能保證反饋已經(jīng)被納入;一個編程任務(wù)可以有多種解決方案,包括那些功能上完全不同,并且不使用反饋來改進原始代碼的解決方案。或者,模型可能已經(jīng)能夠在沒有反饋的情況下修復程序。因此,我們還評估了在打亂數(shù)據(jù)集中反饋樣本后的通過率,以評估當呈現(xiàn)不相關(guān)反饋時,模型修復代碼的能力是否會下降。

圖2. 基于人工編寫的反饋修復錯誤代碼的零樣本 LLM 提示示例。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

表2:

  1. baseline模型把feedback納入相關(guān)任務(wù)的能力較弱 (13.8%);
  2. 模型確實在使用feedback,使用相關(guān)feedback效果明顯。

表2. 在提示符中給出相關(guān)或不相關(guān)的文本反饋,評估由 CODEGEN-MONO 6.1B (ILF之前) 生成的1次優(yōu)化。只有在 CODEGEN-MONO 6.1B 之前沒有輸出任何正確程序的任務(wù)上才提供反饋。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

表3 顯示了 π Refine \pi_{\text{Refine}} πRefine? 在評估數(shù)據(jù)集上的通過率,該數(shù)據(jù)集是在溫度0.8的情況下,每個任務(wù)采樣30個 refinements 產(chǎn)生的。與單次優(yōu)化相比,微調(diào)顯著提高了 CODEGEN-MONO 6.1B 整合反饋的能力,將通過率提高了三倍以上( 2 → 19 % ?pass@1 2\rightarrow 19\% \text{ pass@1} 219%?pass@1 13.8 → 47 % ?pass@10 13.8\rightarrow 47\% \text{ pass@10} 13.847%?pass@10,來自表2和表3)。此外,61%的任務(wù)至少有一次正確的優(yōu)化??紤]到我們只選擇了未經(jīng)微調(diào)的 CODEGEN MONO 6.1B 模型最初沒有輸出任何正確程序的任務(wù)(表3中最右邊的列),這一點尤為重要。對于61%的驗證任務(wù), π Refine \pi_{\text{Refine}} πRefine? 生成了正確的細化,我們?yōu)槊總€任務(wù)隨機選擇了一個這樣的正確程序來形成我們最終模型 π θ ? \pi_{\theta}^* πθ?? 的訓練數(shù)據(jù)集,產(chǎn)生了78個示例的最終訓練數(shù)據(jù)集。

表3. π Refine \pi_{\text{Refine}} πRefine?-generated 改進與零射擊 CODEGEN-MONO 6.1B 程序在 MBPPTrain 中的任務(wù)的通過率。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

3.2 驗證ILF比Fine-Tuningon黃金數(shù)據(jù)或人工編寫的程序的通過率更高

ILF Yields Pass Rates Higher Than Fine-Tuning on Gold Data or Human-Written Programs Alone

結(jié)論

π Refine \pi_{\text{Refine}} πRefine? 使用 NLF 預訓練后更有效。人工編寫的 NLF 最有效。使用 MBPP Gold 預訓練和 Zero-shot 推理無顯著差異,可能 MBPP Gold 脫離了本文使用的 baseline 的數(shù)據(jù)分布。

我們的 ILF 算法與基線和消融的結(jié)果如表4所示。盡管我們使用的反饋和改進樣本很少,但 ILF 產(chǎn)生最高的 pass@1 和 pass@10 率。特別是 pass@1 率顯示了在改進方面比零樣本基線的顯著增加,代表了 10% 的絕對增加(38% 的相對增加)。Pass@1 改進尤其有助于協(xié)助軟件工程,在軟件工程中,建議一個正確的完成比建議 10 個可能的完成更有幫助,供用戶從中選擇。

與黃金標準相比,ILF 優(yōu)于 MBPP 黃金計劃的微調(diào)和 pass@1 指標的人工精煉,pass@1 利率的絕對增長率分別為 14%(相對 64%)和 3%(相對 9%)。然而,人工編寫的改進訓練產(chǎn)生了與 ILF 相當?shù)?pass@10 率,這并不奇怪,因為 π Refine \pi_{\text{Refine}} πRefine? 是在人工編寫的改進上訓練的。

當人工編寫的反饋和 π Refine \pi_{\text{Refine}} πRefine? 生成的精煉被去除(表4的 “Ablations” 部分)時,ILF 在 1 次和 2 次 instructgpt 生成的精煉上的訓練效果也分別高出 17% 和 11% 的絕對效果(89% 和 44% 的相對效果)。
【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC
然而,我們也注意到一個令人驚訝的事實,即僅僅在 MBPP 金牌項目的一小部分樣本上進行訓練,并沒有在零射擊推理的準確性上產(chǎn)生顯著差異。我們推測來自 MBPP 數(shù)據(jù)集的黃金程序可能在某種程度上偏離了 CODEGEN-MONO 6.1B 的分布。為了驗證這一假設(shè),我們使用預訓練的 CODEGEN-MONO 6.1B 模型計算了 MBPP 黃金程序、 π Refine-generated \pi_{\text{Refine-generated}} πRefine-generated? 細化和人工編寫細化的困惑度。結(jié)果如圖3所示。雖然這三個數(shù)據(jù)源的分布看起來很相似,但 MBPP 數(shù)據(jù)集包含的高困惑度程序(即困惑度 ≥ 1 0 ? 2 \geq 10^{-2} 10?2 的程序)比 π Refine \pi_{\text{Refine}} πRefine? 生成的細化或人工編寫的細化都要多。因此,CODEGEN-MONO 6.1B 可能更容易從后兩個數(shù)據(jù)集學習,因為它們更接近 CODEGEN-MONO 6.1B 的原始分布,同時仍然是功能正確的。

此外,ILF 對于無法獲得大量黃金代碼的設(shè)置特別有用。在這種情況下,ILF 可以被認為是一種不僅產(chǎn)

圖3. 使用預訓練的 CODEGEN-MONO 6.1B 模型測量的各種訓練數(shù)據(jù)源的困惑度直方圖。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

3.3 評估使用多少 GPT 生成的 Feedback 能趕上人工 NLF

Scaling Up Model Feedback Does Not Offer the Same Benefits As Human Feedback

結(jié)論

增加 InstructGPT 生成的 Feedback 數(shù)量可以適度提高代碼通過率,但 π Refine \pi_{\text{Refine}} πRefine? 的結(jié)果仍然更好,盡管只使用了 122 組數(shù)據(jù) fine-tuning。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

3.4 Human Feedback Is More Informative Than InstructGPT Feedback

結(jié)論

InstructGPT 生成的 Feedback 要么是錯的,是無關(guān)的,要么沒有給人工書寫 NLF 平均解決了更多錯誤,不給無關(guān)的。

為了更好地理解為什么人類反饋比 InstructGPT 反饋在通過率方面產(chǎn)生了更大的改進,我們?yōu)槊總€來源(即人類或 InstructGPT)隨機選擇了 50 個反饋樣本,并注釋了每個反饋樣本所解決的錯誤的數(shù)量和類型。結(jié)果如表5和表6所示。
我們觀察到 InstructGPT 經(jīng)常不提供反饋(例如“代碼是正確的”或“干得好!”),提供無關(guān)或不正確的反饋,或重申任務(wù)描述,而不是解決關(guān)于代碼應(yīng)該修復的地方。盡管如此,InstructGPT 的改進通常是正確的,即使反饋本身不是。人工撰寫的反饋平均解決了更多的 bug,而且從來沒有給出過無關(guān)的反饋。我們在附錄A.3中提供了關(guān)于人類反饋和 InstructGPT 反饋之間差異的進一步示例。

表5. 解決每種類型 bug 的反饋比例,來自人類和 InstructGPT 的反饋。每個反饋樣本都可以被標記為多個類別,因此每一列中的數(shù)量加起來不一定是 100%。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC
表6. 人類與 InstructGPT 生成的反饋的描述性統(tǒng)計。* 表示指標是在我們手動檢查的 50 個隨機樣本上計算的,而其他指標是從完整數(shù)據(jù)集計算的。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

3.5 π Refine \pi_{\text{Refine}} πRefine? 努力合并解決許多 bug 的反饋

最后,我們探討了反饋中解決的 bug 數(shù)量是否影響了 π Refine \pi_{\text{Refine}} πRefine? 的修復原始代碼樣本的能力。結(jié)果如圖5所示。解決的 bug 數(shù)量越多, π Refine \pi_{\text{Refine}} πRefine? 的細化的平均通過率越低。
這表明,未來工作的一個有希望的方向可能包括:自動將反饋分解為多個步驟,并讓 π Refine \pi_{\text{Refine}} πRefine? 一次合并一個步驟的反饋。
事實上,Nijkamp 等人 (2022) 表明,當指令跨多個回合給出時,CODEGEN 模型通常更有效地遵循指令,而最近的思維鏈工作 (Wei 等人,2022) 說明了類似的提示技術(shù)。

結(jié)論

隨著 NLF 中解決的 bug 增加, π Refine \pi_{\text{Refine}} πRefine? 生成的 Refinements 的通過率逐漸降低。 Feedback 中處理的錯誤數(shù)量削弱了 π Refine \pi_{\text{Refine}} πRefine? 修復原始代碼樣本的能力。

【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋,大模型,前沿AIGC:網(wǎng)絡(luò)安全領(lǐng)域最新應(yīng)用與論文解讀,筆記,自動化,運維,1024程序員節(jié),安全,筆記,chatgpt,AIGC

結(jié)果如圖4所示。 盡管增加 InstructGPT 生成的 feedback 數(shù)量可以適度提高通過率,這些 refinement 的通過率沒有超過 π θ ? \pi_{\theta^*} πθ??。 即使 π θ ? \pi_{\theta^*} πθ?? 在其整個訓練過程中僅使用總共 122 條 feedback(44 條用于訓練 π Refine \pi_{\text{Refine}} πRefine?,78 條用于生成要訓練的 refinement 在 π θ ? \pi_{\theta^*} πθ?? 上)。 然而,隨著預先訓練的大型語言模型在質(zhì)量上不斷顯著提高,我們預計人工和模型書面反饋之間的差距將越來越小。

我們從 CODEGEN-MONO 6.1B 最初沒有輸出正確答案的 MBPP 任務(wù)集中隨機選擇 k 個任務(wù),并提示 InstructGPT 生成 feedback 和 refinement。 然后,我們評估 refinement 的正確性,并在正確的 refinement 上訓練 CODEGEN-MONO 6.1B。

  1. 為了更好地理解為什么人類 feedback 比 InstructGPT feedback 在通過率方面有更大的改進,我們?yōu)槊總€來源(即人類或 InstructGPT)隨機選擇了 50 個 feedback 樣本,并注釋了每個反饋樣本所處理的錯誤的數(shù)量和類型。 結(jié)果如表5和表6所示。 我們觀察到,InstructGPT 通常沒有給出任何 feedback(例如“代碼是正確的”或“干得好!”),提供了無關(guān)或不正確的 feedback,或者重述了任務(wù)描述,而不是解決應(yīng)該修復的代碼問題。 盡管如此,InstructGPT 的 refinement 通常是正確的,即使 feedback 本身不是。 人工書面 feedback 平均解決了更多的錯誤,并且從不給出無關(guān)的 feedback。 我們在附錄A.3中提供了人類和 InstructGPT 反饋之間差異的進一步示例。

  2. 最后,我們探討了 feedback 中處理的錯誤數(shù)量是否影響 π Refine \pi_{\text{Refine}} πRefine? 修復原始代碼樣本的能力。 結(jié)果如圖5所示。 解決的錯誤數(shù)量越多, π Refine \pi_{\text{Refine}} πRefine? 的 refinement 平均通過率就越低。 這表明,未來工作的一個有希望的方向可能包括將 feedback 自動分解為多個步驟,并讓 π Refine \pi_{\text{Refine}} πRefine? 一步一步地將 feedback 合并。 事實上,Nijkamp 等人(2022)表明,當指令在多個回合中給出時,CODEGEN 模型通常在遵循指令方面更有效,最近的思想鏈工作(Wei 等人,2022)說明了類似的提示技術(shù)。

Conclusion & Discussions

Conclusion

ILF可以顯著提高代碼生成模型的質(zhì)量,即使只需要少量的人工反饋和改進。
這種方法不是針對特定模型的,可以分多輪進行,以不斷改進模型。
這種方法不僅能生成正確的代碼,而且針對模型可能輸出特定的錯誤。這一點是最近的LLM離線預訓練所缺少的。
這種方法是樣本高效的,盡管只對78組數(shù)據(jù)進行了微調(diào),但是在Zero-shot baseline和 MBPP 數(shù)據(jù)的微調(diào)上,pass@1 rate 相對增加了38% 和64%

展望

隨著LLM的發(fā)展,未來可能會部分的或者自動化的生成自然語言反饋,減少收集反饋所需的時間和成本。
未來工作的一個有希望的方向可能包括將feedback自動分解為多個步驟,并讓Refine一步一步地將反饋合并。

不足之處

當一個Feedback中包含多個錯誤時, ??_Refine整合Feedback的效果較差
僅僅對比了一個baseline模型,未能說明ILF算法對更多的LLM都有用
僅僅評估了??_Refine能否通過單元測試,缺乏對所生成代碼的質(zhì)量的評估,例如時間復雜度等
沒有探究ILF算法在代碼生成任務(wù)中的性能提升是否與具體的代碼語言相關(guān),僅僅對比了Python語言文章來源地址http://www.zghlxwxcb.cn/news/detail-736949.html

到了這里,關(guān)于【網(wǎng)安AIGC專題10.11】論文2:利用人類編寫的 自然語言反饋 來訓練代碼生成模型CODEGEN -M ONO 6.1 B model自動化反饋生成+多步反饋合并+處理多錯誤反饋的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包