自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

流量工程將代碼生成的準(zhǔn)確率提高一倍:由19%提高至44%

譯文
人工智能
代碼生成是人工智能中一項(xiàng)越來越重要的能力。它指訓(xùn)練機(jī)器學(xué)習(xí)模型,基于對所需程序功能的自然語言描述自動(dòng)生成計(jì)算機(jī)代碼,并有許多潛在的應(yīng)用,從將軟件規(guī)格轉(zhuǎn)換成實(shí)用代碼、自動(dòng)化后端開發(fā)到協(xié)助人類程序員,不一而足。

一篇新論文的作者提出了一種“強(qiáng)化”代碼生成的方法。

代碼生成是人工智能中一項(xiàng)越來越重要的能力。它指訓(xùn)練機(jī)器學(xué)習(xí)模型,基于對所需程序功能的自然語言描述自動(dòng)生成計(jì)算機(jī)代碼,并有許多潛在的應(yīng)用,從將軟件規(guī)格轉(zhuǎn)換成實(shí)用代碼、自動(dòng)化后端開發(fā)到協(xié)助人類程序員,不一而足。

然而,與翻譯或總結(jié)等相關(guān)語言任務(wù)相比,生成高質(zhì)量代碼對AI系統(tǒng)依然具有挑戰(zhàn)性。代碼必須精確匹配目標(biāo)編程語言的語法,優(yōu)雅地處理極端情況和意外輸入,并準(zhǔn)確地處理問題描述中指定的許多小細(xì)節(jié)。就連在其他領(lǐng)域無害的小錯(cuò)誤也可能完全破壞程序的功能,導(dǎo)致編譯或運(yùn)行失敗。

最近,CodiumAI的研究人員提出了一種名為AlphaCodium的新方法,可大幅提高GPT-4等大語言模型的代碼生成能力。他們的主要觀點(diǎn)是,僅僅調(diào)整提示的措辭對于復(fù)雜的編碼問題具有固有的局限性。相反,他們設(shè)計(jì)了一個(gè)多階段流程,專注于對照測試用例迭代地生成、運(yùn)行和調(diào)試代碼,從而使模型能夠從經(jīng)驗(yàn)中學(xué)習(xí)。

提示工程的局限性

在自然語言任務(wù)中,提示工程指仔細(xì)調(diào)整提示的措辭和結(jié)構(gòu),以指導(dǎo)模型生成所需的輸出。比如說,在輸入文本之前添加短語“寫簡明的摘要:”可以從模型中得到針對性更強(qiáng)的摘要。

提示工程已被證明在做文本生成引導(dǎo)大語言模型行為方面非常有效。然而針對編碼問題,研究人員發(fā)現(xiàn),就連廣泛的及時(shí)調(diào)整也只能獲得極小的效益。原因發(fā)人深省。生成高質(zhì)量的代碼需要:

  • 精確匹配目標(biāo)編程語言的語法
  • 優(yōu)雅地處理極端情況和意外輸入
  • 解決問題陳述中描述的所有小細(xì)節(jié)和需求
  • 為所有的有效輸入確保代碼正確編譯和運(yùn)行

這些結(jié)構(gòu)性需求遠(yuǎn)遠(yuǎn)超出了文本生成的范疇。將它們硬編碼到提示中對于復(fù)雜的問題是行不通的。單單提示本身缺乏模型學(xué)習(xí)這些的編碼技巧和細(xì)微差別所需要的具體反饋。

AlphaCodium迭代流程

為了應(yīng)對這些挑戰(zhàn),研究人員設(shè)計(jì)了一個(gè)針對代碼生成問題結(jié)構(gòu)的迭代流程。關(guān)鍵的創(chuàng)新在于針對測試用例利用所生成代碼的執(zhí)行,以提供直接的學(xué)習(xí)信號。

AlphaCodium的流程有兩個(gè)主要階段:

預(yù)處理

  • 模型將問題描述釋義為項(xiàng)目符號,以提取關(guān)鍵細(xì)節(jié)。
  • 解釋每個(gè)示例輸入/輸出背后的預(yù)期邏輯。
  • 提供兩三個(gè)自然語言解決方案。
  • 為代碼覆蓋生成額外的不同測試用例。

代碼迭代

  • 模型生成初始代碼解決方案。
  • 針對公共測試用例重復(fù)運(yùn)行該代碼,修復(fù)出現(xiàn)的錯(cuò)誤。
  • 對模型生成的測試用例執(zhí)行同樣的事情。
  • 額外的測試用例被添加到不斷增大的“測試錨”(test anchor)套件中,以防止回歸。

通過增量推理問題、開發(fā)解決方案假設(shè)、擴(kuò)展測試覆蓋,以及反復(fù)生成和調(diào)試代碼,模型通過經(jīng)驗(yàn)來學(xué)習(xí)——這正是高質(zhì)量代碼生成所需的技能。

圖1. 具有結(jié)構(gòu)化輸出的提示示例(生成可能的解決方案階段)

研究人員發(fā)現(xiàn),與端到端模型相比,將流程設(shè)計(jì)為具有清晰接口和目標(biāo)的模塊可以獲得更好的結(jié)果。每個(gè)階段首先專注于更簡單的子任務(wù),以積累知識,并發(fā)掘?yàn)橄掠坞A段提供依據(jù)的洞察力。像測試生成這樣的上游階段不需要完整的解決方案,只需要基本的推理。

實(shí)驗(yàn)結(jié)果

研究人員依據(jù)CodeContests衡量基準(zhǔn)對AlphaCodium進(jìn)行了評估,該衡量基準(zhǔn)包含來自競爭性編程比賽的數(shù)百個(gè)編碼問題。

圖2. 問題描述和反思——一個(gè)典型的CodeContests問題的例子,基于人工智能對問題進(jìn)行自我反思。雖然最初的描述冗長而復(fù)雜,但適當(dāng)?shù)淖晕曳此伎梢允箚栴}更清晰、更連貫,從而改進(jìn)代碼解決方案

針對GPT-4模型,與經(jīng)過大量優(yōu)化的單個(gè)提示相比,AlphaCodium將驗(yàn)證集上的代碼生成準(zhǔn)確率從19%提高到了44%。面對不同的模型大小和測試集,這個(gè)好處依然適用,與單獨(dú)的提示工程相比收效顯著。

AlphaCodium的性能也顯著優(yōu)于之前發(fā)布的方法,比如AlphaCode和CodeChain,同時(shí)使用更少的計(jì)算資源。比如說,它通過避免不必要的蠻力生成,其準(zhǔn)確性可以媲美AlphaCode,而模型查詢少10000倍。

這些結(jié)果證明了圍繞任務(wù)結(jié)構(gòu)整體設(shè)計(jì)AI系統(tǒng)的價(jià)值,而不是將其視為通用文本生成器。通過合并迭代代碼運(yùn)行和調(diào)試,AlphaCodium更好地將訓(xùn)練過程與生成健壯實(shí)用代碼的最終目標(biāo)結(jié)合起來。

更廣泛的影響

雖然針對競爭性編程問題進(jìn)行了演示,但AlphaCodium中使用的概念為AI推進(jìn)代碼生成提供了更廣泛的適用經(jīng)驗(yàn):

  • 單單提示工程對于處理復(fù)雜的代碼任務(wù)具有局限性。具體解決問題的經(jīng)驗(yàn)至關(guān)重要。
  • 基于測試的開發(fā)規(guī)范可以為模型訓(xùn)練提供依據(jù)。測試提供了明確的適應(yīng)度函數(shù)。
  • 迭代代碼調(diào)試將模型改進(jìn)的重點(diǎn)放在實(shí)際發(fā)生的錯(cuò)誤上。
  • 測試覆蓋擴(kuò)展突出了提示中不可見的泛化性差距。
  • 具有雙重驗(yàn)證的軟決策減少了脆弱性和偏差。

AlphaCodium為基于軟件工程最佳實(shí)踐的代碼生成提供了一種大有前途的新范式。關(guān)于泛化性和計(jì)算開銷仍然存在有待商榷的研究問題。但這里展示的原則(從經(jīng)驗(yàn)中學(xué)習(xí)、測試驅(qū)動(dòng)開發(fā)、模塊化推理和迭代式調(diào)試)似乎為提高AI的編碼能力提供了堅(jiān)實(shí)的基礎(chǔ)。

論文鏈接:https://arxiv.org/pdf/2401.08500.pdf

代碼庫:https://github.com/Codium-ai/AlphaCodium

原文標(biāo)題:"Flow engineering" doubles code generation accuracy (19% vs 44%),作者:Mike Young

鏈接:https://notes.aimodels.fyi/flow-engineering-intensifies-for-code-generation/

責(zé)任編輯:姜華 來源: 51CTO
相關(guān)推薦

2009-09-16 10:05:06

GoogleChrome 3.0瀏覽器

2022-06-24 08:20:56

requests爬蟲Python

2017-09-28 09:40:36

圖像分類準(zhǔn)確率

2012-07-04 08:48:59

程序員

2023-04-10 14:22:26

PCIe6.0PCIe

2012-07-04 09:30:49

程序員開發(fā)效率

2023-06-27 09:48:40

谷歌AML AI 工具

2023-06-28 13:49:12

AI人工智能

2022-11-21 10:18:24

AI谷歌

2011-02-22 09:29:33

無線網(wǎng)絡(luò)無線網(wǎng)速

2020-05-12 10:43:30

谷歌算法人工智能

2020-10-12 11:01:53

AWSSageMaker德比軟件

2020-09-14 14:10:04

開發(fā)技能代碼

2019-04-02 11:36:11

AI

2016-01-27 13:37:53

機(jī)器學(xué)習(xí)數(shù)據(jù)模型算法

2024-04-02 10:13:25

在線小工具開發(fā)

2020-12-24 19:29:08

PCIntel芯片

2019-05-10 14:28:27

MySQL技巧數(shù)據(jù)庫

2020-04-22 09:04:27

Linux命令行搜索工具

2009-06-15 08:47:33

微軟Windows 7操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號