日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 元宇宙 > AI

ChatGPT 無(wú)法取代人類程序員: IEEE 35 頁(yè)論文測(cè)出困難編碼正確率僅為 0.66%

來(lái)源: 責(zé)編: 時(shí)間:2024-07-11 09:23:55 183觀看
導(dǎo)讀 【新智元導(dǎo)讀】6 月,IEEE 刊登了一篇對(duì) ChatGPT 代碼生成任務(wù)進(jìn)行系統(tǒng)評(píng)估的論文,數(shù)據(jù)集就是程序員們最愛(ài)的 LeetCode 題庫(kù)。研究揭示了 LLM 在代碼任務(wù)中出現(xiàn)的潛在問(wèn)題和能力局限,讓我們能夠?qū)δP妥龀鲞M(jìn)一步

【新智元導(dǎo)讀】6 月,IEEE 刊登了一篇對(duì) ChatGPT 代碼生成任務(wù)進(jìn)行系統(tǒng)評(píng)估的論文,數(shù)據(jù)集就是程序員們最愛(ài)的 LeetCode 題庫(kù)。研究揭示了 LLM 在代碼任務(wù)中出現(xiàn)的潛在問(wèn)題和能力局限,讓我們能夠?qū)δP妥龀鲞M(jìn)一步改進(jìn),并逐漸了解使用 ChatGPT 寫代碼的最佳姿勢(shì)。y5b28資訊網(wǎng)——每日最新資訊28at.com

有了 ChatGPT,還需要人類程序猿編碼嗎?y5b28資訊網(wǎng)——每日最新資訊28at.com

上個(gè)月,一項(xiàng)發(fā)表在 IEEE TSE 期刊(Transactions on Software Engineering)上的研究評(píng)估了 ChatGPT 所生成的代碼在功能性、復(fù)雜性和安全性方面的表現(xiàn)。y5b28資訊網(wǎng)——每日最新資訊28at.com

結(jié)果顯示,ChatGPT 生成可用代碼的能力差異很大。y5b28資訊網(wǎng)——每日最新資訊28at.com

其成功率從 0.66% 到 89% 不等,這主要取決于任務(wù)的難度、編程語(yǔ)言等多種因素。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

論文地址:https://ieeexplore.ieee.org/ document / 10507163y5b28資訊網(wǎng)——每日最新資訊28at.com

具體來(lái)說(shuō),研究人員測(cè)試了 GPT-3.5 在 5 種編程語(yǔ)言(C、C++、Java、JavaScript 和 Python)中,解決 LeetCode 測(cè)試平臺(tái)上的 728 個(gè)編碼問(wèn)題,以及應(yīng)對(duì) 18 個(gè) CWE(常見(jiàn)缺陷枚舉)場(chǎng)景的能力。y5b28資訊網(wǎng)——每日最新資訊28at.com

雖然在某些情況下,AI 能夠生成比人類更優(yōu)質(zhì)的代碼,但分析也揭示了,一些 AI 生成代碼的安全性問(wèn)題。y5b28資訊網(wǎng)——每日最新資訊28at.com

論文作者、格拉斯哥大學(xué)助理教授 Yutian Tang 指出,「AI 代碼生成一定程度上,可以提升開(kāi)發(fā)效率,自動(dòng)化軟件工程。然而,我們必須認(rèn)識(shí)這類模型優(yōu)勢(shì)和不足,以便合理應(yīng)用」。y5b28資訊網(wǎng)——每日最新資訊28at.com

「通過(guò)全面的分析,可以發(fā)現(xiàn) ChatGPT 生成代碼過(guò)程中,出現(xiàn)的潛在問(wèn)題和局限性,進(jìn)而改進(jìn)生成技術(shù)」。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

有網(wǎng)友慶幸地發(fā)出疑問(wèn),所以我還沒(méi)有被解雇?另一人對(duì)此表示,至少不是今天。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

還有人指出,這項(xiàng)研究是關(guān)于 GPT-3.5 的評(píng)估。要是 GPT-4 早就在編碼能力上大幅提升,Claude 3.5 更是如此。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

確實(shí),現(xiàn)在我們有了更好的模型,對(duì)于 GPT-3.5 模型的評(píng)估,并沒(méi)有太大的意義。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

0.66%-89%,驚人反差率

總體而言,ChatGPT 在不同編程語(yǔ)言的問(wèn)題上表現(xiàn)相當(dāng)不錯(cuò) —— 特別是在嘗試解決 2021 年之前 LeetCode 上的編碼問(wèn)題時(shí)。y5b28資訊網(wǎng)——每日最新資訊28at.com

例如,它能夠?yàn)楹?jiǎn)單、中等和困難的問(wèn)題生成可運(yùn)行代碼,成功率分別約為 89%、71% 和 40%。y5b28資訊網(wǎng)——每日最新資訊28at.com

然而,當(dāng)涉及到 2021 年之后的算法問(wèn)題時(shí),ChatGPT 生成正確運(yùn)行代碼的能力受到影響。即使是簡(jiǎn)單級(jí)別的問(wèn)題,它有時(shí)也無(wú)法理解問(wèn)題的含義。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

比如,ChatGPT 在生成「簡(jiǎn)單」編碼問(wèn)題的可運(yùn)行代碼方面的能力,在 2021 年后從 89% 下降到 52%。y5b28資訊網(wǎng)——每日最新資訊28at.com

而它在生成「困難」問(wèn)題的可運(yùn)行代碼方面的能力也在此時(shí)間后從 40% 下降到 0.66%。y5b28資訊網(wǎng)——每日最新資訊28at.com

Tang 對(duì)比表示,「一個(gè)合理的假設(shè)是,ChatGPT 在 2021 年之前的算法問(wèn)題上表現(xiàn)更好的原因是這些問(wèn)題在訓(xùn)練數(shù)據(jù)集中經(jīng)常出現(xiàn)」。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

接下里,具體看看研究者們對(duì) ChatGPT 進(jìn)行了哪些方面的評(píng)估。y5b28資訊網(wǎng)——每日最新資訊28at.com

實(shí)驗(yàn)評(píng)估

評(píng)估的整體流程如圖 2 所示。y5b28資訊網(wǎng)——每日最新資訊28at.com

首先為給定的 LeetCode 問(wèn)題或 CWE 場(chǎng)景構(gòu)造合適的提示并發(fā)送給 ChatGPT,讓它根據(jù)提示和上一輪對(duì)話的上下文信息給出響應(yīng)。y5b28資訊網(wǎng)——每日最新資訊28at.com

之后,研究人員將模型響應(yīng)中的代碼片段提交給 LeetCode 平臺(tái),利用其在線判斷功能來(lái)檢驗(yàn)代碼的正確性,CWE 漏洞則使用 CodeQL 進(jìn)行手動(dòng)分析。y5b28資訊網(wǎng)——每日最新資訊28at.com

如果測(cè)試結(jié)果通過(guò),則生成結(jié)束,否則就需要利用 LeetCode 和 CodeQL 的反饋繼續(xù)建立新的提示、輸入給 ChatGPT,再次進(jìn)行代碼生成。y5b28資訊網(wǎng)——每日最新資訊28at.com

如果 ChatGPT 在對(duì)話輪數(shù)限制(5 輪)之內(nèi)始終沒(méi)有生成出通過(guò)測(cè)試的代碼,則認(rèn)為生成任務(wù)失敗。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

功能性正確代碼生成

ChatGPT 生成的代碼在功能上是否正確?y5b28資訊網(wǎng)——每日最新資訊28at.com

研究動(dòng)機(jī):y5b28資訊網(wǎng)——每日最新資訊28at.com

給定提示,ChatGPT 生成相應(yīng)的文本,這種能力可能會(huì)提高開(kāi)發(fā)者的生產(chǎn)力。首先去評(píng)估 ChatGPT 在單輪對(duì)話中,自動(dòng)生成功能正確代碼的能力。y5b28資訊網(wǎng)——每日最新資訊28at.com

研究方法:y5b28資訊網(wǎng)——每日最新資訊28at.com

- 讓 ChatGPT 閱讀問(wèn)題描述,在單輪對(duì)話中生成相應(yīng)代碼。(最大對(duì)話輪數(shù)設(shè)為 1)y5b28資訊網(wǎng)——每日最新資訊28at.com

- 使用 LeetCode 平臺(tái)上的編程問(wèn)題作為數(shù)據(jù)集,截止研究時(shí),有 2500 個(gè)難度不等的問(wèn)題。y5b28資訊網(wǎng)——每日最新資訊28at.com

- 將 LeetCode 所有問(wèn)題分為 2021 年之前(Bef.problems)和 2021 年之后(Aft.problems)兩類,因?yàn)?ChatGPT 的訓(xùn)練數(shù)據(jù)截止于 2021 年。y5b28資訊網(wǎng)——每日最新資訊28at.com

- 考慮到 2021 年之前的問(wèn)題可能已存在于 ChatGPT 的訓(xùn)練集中,這可能使代碼生成任務(wù)退化為簡(jiǎn)單的數(shù)據(jù)庫(kù)查詢(即代碼復(fù)用)。為了進(jìn)行全面評(píng)估,研究中同時(shí)考慮了這兩類問(wèn)題。y5b28資訊網(wǎng)——每日最新資訊28at.com

具體而言,研究人員重點(diǎn)關(guān)注 LeetCode 上的算法問(wèn)題,因?yàn)樗惴▎?wèn)題是該平臺(tái)上最重要、最多和最多樣化的問(wèn)題。y5b28資訊網(wǎng)——每日最新資訊28at.com

Bef.problems 和 Aft.problems 的總數(shù)分別為 1624 個(gè)和 354 個(gè)。此外,兩者的難度分布為難、中、易,比例為 1:2:1。y5b28資訊網(wǎng)——每日最新資訊28at.com

在所有 Bef.problems 中,作者隨機(jī)抽取了 374 個(gè)問(wèn)題,其數(shù)量與 Aft.problems 相似,難度分布也與 Aft.problems 相同。y5b28資訊網(wǎng)——每日最新資訊28at.com

同樣,在 354 個(gè) Aft.problems 和 Bef.problems 中,難、中、易問(wèn)題的數(shù)量比例也是 1:2:1,與 LeetCode 平臺(tái)上所有問(wèn)題的難度分布一致。y5b28資訊網(wǎng)——每日最新資訊28at.com

此外,研究人員還檢查了 Bef.problems 和 Aft.problems 之間是否存在顯著差異。y5b28資訊網(wǎng)——每日最新資訊28at.com

如果 Aft.problems 只是 Bef.problems 的重構(gòu),那么 ChatGPT 很可能可以輕松解決這些問(wèn)題,這可能會(huì)影響實(shí)驗(yàn)結(jié)果在區(qū)分時(shí)間段方面的可靠性。y5b28資訊網(wǎng)——每日最新資訊28at.com

論文中,作者總共找到了 142 對(duì)問(wèn)題。然后,再讓 2 名研究生獨(dú)立檢查這些問(wèn)題對(duì)。y5b28資訊網(wǎng)——每日最新資訊28at.com

通過(guò)仔細(xì)核對(duì)和討論,結(jié)果發(fā)現(xiàn)這些相似的問(wèn)題要么情景相似,但求解目標(biāo)完全不同;要么情景和條件不同,但可以使用類似的算法(如動(dòng)態(tài)編程)求解。y5b28資訊網(wǎng)——每日最新資訊28at.com

經(jīng)過(guò)仔細(xì)的人工分析,作者沒(méi)有發(fā)現(xiàn)在任何情況下,Bef.problems 可以很容易地重新表述為 Aft.problems。y5b28資訊網(wǎng)——每日最新資訊28at.com

因此,作者認(rèn)為 Aft.problems 和 Bef.problems 之外,對(duì)于每個(gè)問(wèn)題,都要求 ChatGPT 用 5 種不同的語(yǔ)言生成代碼:C、C++、Java、Python3 和 JavaScript。y5b28資訊網(wǎng)——每日最新資訊28at.com

此外,他們還使用相同的提示模板為每個(gè) <問(wèn)題、語(yǔ)言> 對(duì)創(chuàng)建了相應(yīng)的提示。y5b28資訊網(wǎng)——每日最新資訊28at.com

Bef.problems 和 Aft.problems 分別共有 1,870 和 1,770 個(gè)提示。由于 ChatGPT 的查詢速度有限,研究者將每條提示輸入一次,要求生成代碼。y5b28資訊網(wǎng)——每日最新資訊28at.com

然后,研究者將解析后的解決方案,提交給 LeetCode 進(jìn)行功能正確性判斷,并得到提交狀態(tài),包括接受、回答錯(cuò)誤、編譯錯(cuò)誤、超過(guò)時(shí)間限制和運(yùn)行錯(cuò)誤。y5b28資訊網(wǎng)——每日最新資訊28at.com

它們分別對(duì)應(yīng)于 A.、W.A.、C.E.、T.L.E.和 R.E.。一個(gè)問(wèn)題對(duì)應(yīng)一個(gè)唯一的對(duì)話,以避免從其他問(wèn)題觸發(fā) ChatGPT 的推理。y5b28資訊網(wǎng)——每日最新資訊28at.com

實(shí)驗(yàn)中,作者以狀態(tài)率(SR)來(lái)評(píng)估 ChatGPT 的代碼生成能力。其中 Nc 和 Ni 分別是根據(jù)狀態(tài)生成的代碼片段數(shù)和輸入的提示數(shù)。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

提示:y5b28資訊網(wǎng)——每日最新資訊28at.com

所設(shè)計(jì)的提示模板由 4 個(gè)部分組成:它們分別是 <Content>、<Examples>、<Template > 和 < Command>。y5b28資訊網(wǎng)——每日最新資訊28at.com

<Content> 用自然語(yǔ)言描述問(wèn)題,<Examples> 顯示功能正確的代碼 <input, output> 對(duì),<Template> 指定生成代碼的方法簽名(method signature),<Command> 要求用特定語(yǔ)言生成代碼。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

結(jié)果:y5b28資訊網(wǎng)——每日最新資訊28at.com

表 1 和表 2 顯示,LeetCode 對(duì)五種編程語(yǔ)言在兩個(gè)時(shí)間段、兩種形式下的代碼生成結(jié)果、SR 以及相應(yīng)的相對(duì)頻率柱形圖。y5b28資訊網(wǎng)——每日最新資訊28at.com

由于 Python3 和 JavaScript 都是動(dòng)態(tài)編程語(yǔ)言,因此這兩列不包含 C.E.。y5b28資訊網(wǎng)——每日最新資訊28at.com

從總體結(jié)果來(lái)看,ChatGPT 為 Bef.problems 生成的功能正確代碼的 A.率明顯高于 Aft.problems。y5b28資訊網(wǎng)——每日最新資訊28at.com

具體來(lái)說(shuō),Bef.problems 的五種語(yǔ)言平均正確率(68.41%)比 Aft.problems 的(20.27%)高出 48.14%。y5b28資訊網(wǎng)——每日最新資訊28at.com

五種語(yǔ)言在不同階段的代碼生成性能差異顯著,P 值為 0.008,效應(yīng)大小值為 1。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

對(duì)于 Aft.problems,總體正確率低于 25%,其中難、中、易問(wèn)題的正確率分別為 0.66%、13.90% 和 52.47%。y5b28資訊網(wǎng)——每日最新資訊28at.com

用 Holm-Bonferroni 校正程序調(diào)整的 P 值和五種語(yǔ)言不同難度之間的效應(yīng)大小值分別小于 0.05 和等于 1。y5b28資訊網(wǎng)——每日最新資訊28at.com

結(jié)果表明,面對(duì) Aft.problems,隨著問(wèn)題難度的增加,ChatGPT 在功能上正確生成代碼的能力明顯下降。y5b28資訊網(wǎng)——每日最新資訊28at.com

此外,即使是簡(jiǎn)單的問(wèn)題,它也只能正確回答一半。y5b28資訊網(wǎng)——每日最新資訊28at.com

在這五項(xiàng) / 四項(xiàng)指標(biāo)中,W.A.率是所有語(yǔ)言中最高的一項(xiàng),達(dá)到 58%。y5b28資訊網(wǎng)——每日最新資訊28at.com

此外,每個(gè) W.A.代碼片段平均有 109 個(gè)測(cè)試用例,而 ChatGPT 生成的代碼只能通過(guò)其中的 25%。y5b28資訊網(wǎng)——每日最新資訊28at.com

難題、中難題和簡(jiǎn)單難題的測(cè)試用例通過(guò)率分別為 20.90%、21.03% 和 38.41%。因此,無(wú)論難度如何,生成代碼的語(yǔ)義都與相應(yīng)問(wèn)題描述的邏輯有很大差異。y5b28資訊網(wǎng)——每日最新資訊28at.com

此外,C.E.率和 R.E.率也都達(dá)到了 16%,而且難題和中難題的 C.E.率明顯高于簡(jiǎn)單難題。y5b28資訊網(wǎng)——每日最新資訊28at.com

ChatGPT 生成的中難題代碼,更容易出現(xiàn)編譯和運(yùn)行時(shí)錯(cuò)誤。比如,圖 4 中顯示生成的函數(shù) cmpfunc,在調(diào)用前沒(méi)有聲明。語(yǔ)法錯(cuò)誤只占這些錯(cuò)誤的一小部分(3.7%)。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

至于 T.L.E.率,雖然數(shù)值不高(6%),但測(cè)試用例的平均通過(guò)率為 51%,高于 W.A.代碼片段。y5b28資訊網(wǎng)——每日最新資訊28at.com

T.L.E.問(wèn)題的難、中、易三個(gè)難度級(jí)別的測(cè)試用例,平均通過(guò)率分別為 68%、50% 和 1%(易問(wèn)題由于其 T.L.E.率接近 0%,可以忽略不計(jì))。y5b28資訊網(wǎng)——每日最新資訊28at.com

由于 T.L.E.代碼片段的測(cè)試用例通過(guò)率是部分的,不過(guò)生成的代碼中最多還有 6% 在功能上是正確的,盡管它們的時(shí)間復(fù)雜度可能并不理想。y5b28資訊網(wǎng)——每日最新資訊28at.com

細(xì)分到每種語(yǔ)言,C、C++、Java、Python3 和 JavaScript 的 A.率分別為 15.38%、19.37%、20.17%、23.93% 和 22.51%。y5b28資訊網(wǎng)——每日最新資訊28at.com

此外,圖 5 顯示了將五種不同語(yǔ)言與每個(gè)問(wèn)題(僅考慮至少有一個(gè)正確解決方案的問(wèn)題)相結(jié)合的 A.率分布(接受率分布)。y5b28資訊網(wǎng)——每日最新資訊28at.com

從圖中可以看出,Medium 語(yǔ)言的平均線和中位線都≤0.5,而 Easy 語(yǔ)言的平均線和中位線都≥0.6。y5b28資訊網(wǎng)——每日最新資訊28at.com

對(duì)于簡(jiǎn)單問(wèn)題 ChatGPT 更容易將生成的代碼泛化到不同的語(yǔ)言中。簡(jiǎn)單問(wèn)題和中等問(wèn)題的中位數(shù)和均值分別為 0.4 和 0.5。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

對(duì)于 Bef. Problems 問(wèn)題方面,難、中、易問(wèn)題的正確率分別為 40.13%、70.95% 和 89.80%,遠(yuǎn)高于 Aft. problems,但不同難度之間仍存在顯著差異。y5b28資訊網(wǎng)——每日最新資訊28at.com

用 Holm-Bonferroni 校正程序調(diào)整后的 P 值和難與中、難與易之間的效應(yīng)大小值分別小于 0.05 和大于 0.9。y5b28資訊網(wǎng)——每日最新資訊28at.com

五種語(yǔ)言中,中等難度和簡(jiǎn)單難度之間的調(diào)整后 P 值和效應(yīng)大小值分別為 0.056 和 0.76。y5b28資訊網(wǎng)——每日最新資訊28at.com

ChatGPT 在解決 2021 年之前訓(xùn)練集中可能出現(xiàn)的問(wèn)題時(shí),表現(xiàn)更好,尤其是中等難度和簡(jiǎn)單難度的問(wèn)題。y5b28資訊網(wǎng)——每日最新資訊28at.com

解決難題的正確率提高了 40%,但仍低于 50%,這表明 ChatGPT 生成邏輯復(fù)雜問(wèn)題代碼的能力仍有很大的提升空間。y5b28資訊網(wǎng)——每日最新資訊28at.com

總體正確率下降到 17.03%,難、中、易問(wèn)題的正確率分別為 32.89%、15.05% 和 6%。y5b28資訊網(wǎng)——每日最新資訊28at.com

生成的代碼仍能通過(guò)平均 112 個(gè)測(cè)試用例中的 25%。難、中、易問(wèn)題的測(cè)試用例通過(guò)率分別為 19.19%、31.12% 和 47.32%。y5b28資訊網(wǎng)——每日最新資訊28at.com

后兩者都提高了 10%,這表明 ChatGPT 對(duì) Bef. Problems 有更好的理解力。y5b28資訊網(wǎng)——每日最新資訊28at.com

不過(guò),C.E.率和 R.E.率仍達(dá)到 13%,接近 Aft. problems 的 16%,兩個(gè)階段之間的 P 值和效應(yīng)大小值分別為 0.328 和 0.3125,且困難問(wèn)題通過(guò)率最高,中難度問(wèn)題通過(guò)率次之。y5b28資訊網(wǎng)——每日最新資訊28at.com

編譯錯(cuò)誤和運(yùn)行時(shí)錯(cuò)誤與 Aft. problems 類似,例如,圖 6 所示代碼用于重塑給定的二維矩陣,但在第 15 行引發(fā)了運(yùn)行時(shí)錯(cuò)誤,該行為 * returnColumnSizes 分配了錯(cuò)誤大小的內(nèi)存。y5b28資訊網(wǎng)——每日最新資訊28at.com

至此,T.L.E.率降至 1.87%,測(cè)試用例平均通過(guò)率為 74%。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

接下來(lái),再細(xì)分到每種語(yǔ)言,C、C++、Java、Python3 和 JavaScript 的 A.率分別為 47.24%、68.63%、76.37%、75.35% 和 74.44%。y5b28資訊網(wǎng)——每日最新資訊28at.com

后四種語(yǔ)言的 A.率值彼此接近,且大大高于 C(最低級(jí)別語(yǔ)言)的 A.率值,至少高出 20%。y5b28資訊網(wǎng)——每日最新資訊28at.com

圖 7 顯示的是與圖 5 相同的 Bef. Problems。從圖中可以看出,中等題和簡(jiǎn)單題的平均線和中位線都≥0.75,而且它們的中位數(shù)和平均值之間的差異比之前的 Aft. problems 要小一半。y5b28資訊網(wǎng)——每日最新資訊28at.com

此外,有難度的平均線和中位線都≥ 0.55。對(duì)于 Bef. Problems,ChatGPT 更容易將代碼擴(kuò)展到不同的語(yǔ)言中。y5b28資訊網(wǎng)——每日最新資訊28at.com

ChatGPT 接受的問(wèn)題的人類平均接受率為 55%,而 ChatGPT 未接受的問(wèn)題的人類平均接受率為 47%。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

總而言之,通過(guò)實(shí)驗(yàn),ChatGPT 在功能性正確代碼生成任務(wù)上,比起 Aft. problems,更加擅長(zhǎng)解決不同編程語(yǔ)言中的 Bef. Problems。y5b28資訊網(wǎng)——每日最新資訊28at.com

尤其是,前者的平均正確率比后者高出 48.14%。此外,不同的難度也會(huì)影響基于 ChatGPT 的代碼生成。y5b28資訊網(wǎng)——每日最新資訊28at.com

對(duì)于兩個(gè)階段的問(wèn)題,ChatGPT 都能生成運(yùn)行時(shí)間和內(nèi)存開(kāi)銷小于至少 50% 的人類解決方案的代碼。y5b28資訊網(wǎng)——每日最新資訊28at.com

無(wú)論哪個(gè)階段的問(wèn)題,ChatGPT 生成的代碼出現(xiàn)編譯或運(yùn)行時(shí)錯(cuò)誤的概率都差不多,平均為 14.23%。y5b28資訊網(wǎng)——每日最新資訊28at.com

在所有問(wèn)題中,C++、Java、Python3 和 JavaScript 的 A.率值分別為 44.75%、48.74%、50.00% 和 48.80%,彼此接近,且大大超越 C 的 31.28%。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

多輪修復(fù)功能管用嗎

在這個(gè)方面,作者想探究 ChatGPT 支持的多輪對(duì)話能力在改進(jìn)代碼正確性上究竟表現(xiàn)如何?人類能夠「知錯(cuò)就改」,LLM 可以嗎?y5b28資訊網(wǎng)——每日最新資訊28at.com

首先,研究人員對(duì) ChatGPT 生成的 157 段代碼的錯(cuò)誤類型進(jìn)行了分析,可以大致分為以下幾類:y5b28資訊網(wǎng)——每日最新資訊28at.com

- 細(xì)節(jié)錯(cuò)誤(WD):代碼細(xì)節(jié)上的錯(cuò)誤一般源于誤解題意,或者代碼與問(wèn)題理解不一致,但大體邏輯基本正確,因此這類錯(cuò)誤很容易被修復(fù)。y5b28資訊網(wǎng)——每日最新資訊28at.com

- 誤解某些內(nèi)容(MCC):生成代碼沒(méi)有滿足給定問(wèn)題的主要條件,使用的算法合適,但需要修改其核心。y5b28資訊網(wǎng)——每日最新資訊28at.com

- 誤解問(wèn)題(MP):指 ChatGPT 完全錯(cuò)解了題意,這是最難修復(fù)的一種情況,代碼需要完全重寫,y5b28資訊網(wǎng)——每日最新資訊28at.com

將錯(cuò)誤信息反饋給 ChatGPT 的方式依舊延續(xù)了圖 3 所示的格式,包括原始問(wèn)題、生成代碼片段、LeetCode 的報(bào)錯(cuò)信息以及相應(yīng)指令。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

進(jìn)行不超過(guò) 5 輪的對(duì)話修復(fù)后,得到了表 5 所示的結(jié)果。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

可以看到,157 個(gè)問(wèn)題中能通過(guò)自動(dòng)化修復(fù)的只有 25 個(gè),其中 16 個(gè)屬于簡(jiǎn)單模式,困難問(wèn)題的錯(cuò)誤答案幾乎不可能被修復(fù)。y5b28資訊網(wǎng)——每日最新資訊28at.com

如果把對(duì)話輪數(shù)的上限增加到 10 輪呢?結(jié)果依舊不樂(lè)觀。y5b28資訊網(wǎng)——每日最新資訊28at.com

從 157 個(gè)問(wèn)題中隨機(jī)選出 10 個(gè),結(jié)果只有其中 2 個(gè)能在 10 輪內(nèi)成功修復(fù),剩下的 8 個(gè)依舊無(wú)法通過(guò)。這能讓研究人員進(jìn)一步分析 ChatGPT 很難自動(dòng)修復(fù)的原因。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

作者認(rèn)為,一方面,ChatGPT 缺乏掌握邏輯細(xì)節(jié)的能力;另一方面,在需要復(fù)雜邏輯推理的問(wèn)題中,生成代碼往往偏離問(wèn)題的實(shí)際含義,這即使對(duì)于人類程序員也很難修復(fù)。y5b28資訊網(wǎng)——每日最新資訊28at.com

代碼復(fù)雜度

代碼的復(fù)雜性對(duì)于可讀性、可維護(hù)性以及整體質(zhì)量來(lái)說(shuō),都是一個(gè)重要的影響因素。想象一下,如果 ChatGPT 對(duì)簡(jiǎn)單的排序問(wèn)題都生成出了你很難看懂的代碼,那會(huì)大大拉低使用體驗(yàn)。y5b28資訊網(wǎng)——每日最新資訊28at.com

作者利用了 SonarQube 和 cccc 兩個(gè)指標(biāo)來(lái)評(píng)估 LeetCode 數(shù)據(jù)集中 Bef.問(wèn)題的復(fù)雜程度,并評(píng)估響應(yīng)生成代碼的循環(huán)復(fù)雜度(cyclomatic complexity)和認(rèn)知復(fù)雜度(cognitive complexity)。y5b28資訊網(wǎng)——每日最新資訊28at.com

循環(huán)復(fù)雜度會(huì)計(jì)算執(zhí)行時(shí)線性獨(dú)立路徑的數(shù)量,從而體現(xiàn)源代碼的測(cè)試難度。認(rèn)知復(fù)雜度則從人類角度衡量理解、推理一段代碼的難度。y5b28資訊網(wǎng)——每日最新資訊28at.com

由于以上量化標(biāo)準(zhǔn)不夠直觀,研究人員還同時(shí)評(píng)估了人類編寫的 C++ 和 Python3 的 LeetCode 問(wèn)題解答來(lái)與 ChatGPT 進(jìn)行比較。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

圖 20 的對(duì)比中可以看出,C 代碼的復(fù)雜度最高,C++、Java 和 JavaScript 次之并基本處于同一水平,Python3 是最不復(fù)雜的,這與我們的固有認(rèn)知基本吻合。y5b28資訊網(wǎng)——每日最新資訊28at.com

此外,與人類相比,ChatGPT 生成的代碼雖然復(fù)雜度稍高,但差距并不明顯。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

隨著 LeetCode 問(wèn)題難度逐漸升高(表 16),無(wú)論是人類還是 ChatGPT,低復(fù)雜度代碼的占比都會(huì)逐漸降低,復(fù)雜度被分類為「高」和「非常高」的占比也隨之逐漸提高,這種趨勢(shì)也是類似的。y5b28資訊網(wǎng)——每日最新資訊28at.com

然而,不好的消息是,ChatGPT 的多輪修復(fù)功能似乎沒(méi)法讓代碼更簡(jiǎn)潔,多數(shù)情況下會(huì)維持甚至提高代碼的復(fù)雜y5b28資訊網(wǎng)——每日最新資訊28at.com

性,這或許也是多輪修復(fù)功能效果不理想的原因之一。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

代碼安全性

由于 ChatGPT 訓(xùn)練時(shí)可能學(xué)習(xí)到了各種各樣的內(nèi)容,包括質(zhì)量較低、易受攻擊的代碼,因此評(píng)估生成代碼的安全性也非常重要。y5b28資訊網(wǎng)——每日最新資訊28at.com

由于 LeetCode 的算法代碼通常專注于解決特定的邏輯或計(jì)算問(wèn)題,并不涉及管理系統(tǒng)資源、網(wǎng)絡(luò)通信等通常有敏感安全問(wèn)題的操作,因此在這部分的評(píng)估中,論文同時(shí)采取了兩種路徑。y5b28資訊網(wǎng)——每日最新資訊28at.com

1) 利用 CodeQL 對(duì) LeetCode 答案的所有 C、C++ 和 Java 代碼進(jìn)行漏洞檢測(cè),針對(duì) MITRE Top25 中的 5 個(gè) CWE 問(wèn)題,包括指針和內(nèi)存相關(guān)的共 30 個(gè)查詢。y5b28資訊網(wǎng)——每日最新資訊28at.com

2) 針對(duì) MITRE Top25 中的 18 個(gè) CWE 問(wèn)題,每個(gè)問(wèn)題提供 3 種上下文場(chǎng)景,給 ChatGPT「挖坑」,要求它補(bǔ)全代碼,再用 CodeQL 自動(dòng)檢測(cè)看是否確實(shí)出現(xiàn)了相應(yīng)問(wèn)題。y5b28資訊網(wǎng)——每日最新資訊28at.com

在第一個(gè)測(cè)試中(表 18),ChatGPT 表現(xiàn)良好,91.8% 的錯(cuò)誤集中在 MissingNullTest 這一類,其余的漏洞的出現(xiàn)頻次則一般不超過(guò) 5 次。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

但仍要注意的是,ChatGPT 在 CWE 787,即「越界寫入」問(wèn)題上表現(xiàn)不佳,這可能會(huì)導(dǎo)致潛在的代碼漏洞。y5b28資訊網(wǎng)——每日最新資訊28at.com

而且,由于這些漏洞的修復(fù)比較簡(jiǎn)單,因此在給定錯(cuò)誤信息并要求生成修復(fù)代碼后,ChatGPT 也能較好完成任務(wù)。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

要求 ChatGPT 修復(fù) CWE-787 問(wèn)題的提示模板y5b28資訊網(wǎng)——每日最新資訊28at.com

在第二個(gè)測(cè)試 —— 安全代碼生成方面,ChatGPT 共生成了 2983(99.07%)個(gè)有效代碼片段,其中 994 個(gè)存在安全漏洞,占比達(dá)到 33.32%。y5b28資訊網(wǎng)——每日最新資訊28at.com

而且,C 語(yǔ)言中的易受攻擊片段的百分比(51.64%)遠(yuǎn)遠(yuǎn)高于 Python3(17.08%),這有可能是由于 C 代碼本身就對(duì)程序的內(nèi)存安全提出了更高的要求,也可能源于訓(xùn)練數(shù)據(jù)中 C 和 Python3 代碼的質(zhì)量差距。y5b28資訊網(wǎng)——每日最新資訊28at.com

多輪修復(fù)功能依舊表現(xiàn)出色,89.4% 的漏洞都能在給出 CWE 信息后成功解決,比如溢出、數(shù)據(jù)泄露、不安全內(nèi)存操作、未經(jīng)身份驗(yàn)證訪問(wèn)等相關(guān)問(wèn)題。y5b28資訊網(wǎng)——每日最新資訊28at.com

ChatGPT 非確定性

ChatGPT 的非確定性輸出如何影響代碼生成?y5b28資訊網(wǎng)——每日最新資訊28at.com

如下表所示,表 22 和表 23 分別列出了所選算法問(wèn)題和溫度為 0.7 時(shí)的實(shí)驗(yàn)結(jié)果。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

在溫度為 0 的條件下,10 次試驗(yàn)中,算法問(wèn)題和 CWE 代碼場(chǎng)景的非確定性代碼生成統(tǒng)計(jì)結(jié)果如表 24、表 25 和表 26 所示。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

其中表 26 列出了所選的 20 個(gè) CWE 代碼場(chǎng)景。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

此外,作者還研究了非確定性對(duì)多輪修復(fù)過(guò)程的影響,修復(fù)結(jié)果如表 27-32 所示。y5b28資訊網(wǎng)——每日最新資訊28at.com

溫度設(shè)為 0.7,5 次試驗(yàn)中算法問(wèn)題的多輪修復(fù)過(guò)程。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

溫度設(shè)為 0,5 次試驗(yàn)中算法問(wèn)題的多輪修復(fù)過(guò)程。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

溫度設(shè)為 0.7,5 次試驗(yàn)中算法問(wèn)題的 CWE 多輪修復(fù)過(guò)程。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

溫度設(shè)為 0,5 次試驗(yàn)中算法問(wèn)題的 CWE 多輪修復(fù)過(guò)程。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

溫度設(shè)為 0.7,5 次試驗(yàn)中安全代碼生成的多輪修復(fù)過(guò)程。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

溫度設(shè)為 0,5 次試驗(yàn)中安全代碼生成的多輪修復(fù)過(guò)程。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

總之,實(shí)驗(yàn)中,當(dāng)溫度設(shè)置為 0.7 時(shí),單輪流程中的代碼生成可能會(huì)受到 ChatGPT 非確定性因子的影響,從而導(dǎo)致代碼片段在功能正確性、復(fù)雜性和安全性方面出現(xiàn)差異。y5b28資訊網(wǎng)——每日最新資訊28at.com

要減輕 ChatGPT 在單輪過(guò)程中的非確定性,一種可能的策略是將溫度設(shè)置為 0。y5b28資訊網(wǎng)——每日最新資訊28at.com

然而,在多輪修復(fù)過(guò)程中,無(wú)論溫度設(shè)置為 0.7 還是 0,ChatGPT 固定的代碼片段在功能正確性、復(fù)雜性和安全性方面都可能存在差異。y5b28資訊網(wǎng)——每日最新資訊28at.com

y5b28資訊網(wǎng)——每日最新資訊28at.com

參考資料:y5b28資訊網(wǎng)——每日最新資訊28at.com

https://ieeexplore.ieee.org/document/10507163y5b28資訊網(wǎng)——每日最新資訊28at.com

https://spectrum.ieee.org/chatgpt-for-codingy5b28資訊網(wǎng)——每日最新資訊28at.com

https://arxiv.org/abs/2308.04838y5b28資訊網(wǎng)——每日最新資訊28at.com

本文來(lái)自微信公眾號(hào):新智元(ID:AI_era)y5b28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-45-5079-0.htmlChatGPT 無(wú)法取代人類程序員: IEEE 35 頁(yè)論文測(cè)出困難編碼正確率僅為 0.66%

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 五糧液濃香酒:勞動(dòng)節(jié)送禮的精致藝術(shù)

下一篇: 振興鄉(xiāng)村發(fā)展 助力青少年教育 中國(guó)三星連續(xù)十一年蟬聯(lián)企業(yè)社會(huì)責(zé)任榜外企第一

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 雷克薩斯高管,“受賄”5000萬(wàn)?

    來(lái)源:毒舌科技作者:潘磊雷克薩斯的高管,好像出事了。五六家日本小媒體,突然曝出了一個(gè)與中國(guó)市場(chǎng)有關(guān)的大新聞&mdash;&mdash;雷克薩斯中國(guó)區(qū)一個(gè)高管受賄10億日元(約合人民幣5000
  • 這一超級(jí)富豪“逆襲”,身價(jià)大增4330億

    來(lái)源:侃見(jiàn)財(cái)經(jīng)互聯(lián)網(wǎng)的突圍沒(méi)有&ldquo;終點(diǎn)&rdquo;。在快節(jié)奏的商業(yè)環(huán)境下,不斷的試錯(cuò)成了互聯(lián)網(wǎng)企業(yè)的標(biāo)配,一年一個(gè)風(fēng)口,一個(gè)風(fēng)口造就一個(gè)熱點(diǎn),但是回頭來(lái)看,最終受益的還是身處
  • 錯(cuò)過(guò)了BRC20還有eths,eth銘文協(xié)議

    來(lái)源:三頭鳥NFT大家好,我是鳥哥,了解鳥哥的人都知道鳥哥擅擼空投,說(shuō)實(shí)話擼毛雖然回報(bào)大但周期還是有點(diǎn)長(zhǎng)的,所以除了擼毛我們自己也在研究早期項(xiàng)目,打新,比如BRC20協(xié)議ordi當(dāng)時(shí)就有
  • 區(qū)塊鏈產(chǎn)業(yè)人才發(fā)展報(bào)告

    工業(yè)和信息化部作為工業(yè)和信息化行業(yè)主管部門,正在著力推進(jìn)“兩個(gè)強(qiáng)國(guó)”建設(shè),加快推動(dòng)以區(qū)塊鏈為代表的新興技術(shù)與實(shí)體經(jīng)濟(jì)深度融合。我國(guó)區(qū)塊鏈技術(shù)和應(yīng)用想要
  • 銀保監(jiān)會(huì):打擊以“元宇宙”為名義的違法行為

    今日,銀保監(jiān)會(huì)發(fā)布《關(guān)于防范以“元宇宙”名義進(jìn)行非法集資的風(fēng)險(xiǎn)提示》,全文如下:近期,一些不法分子蹭熱點(diǎn),以“元宇宙投資項(xiàng)目”“元宇宙鏈游”等名目吸收資金,涉
  • 本周NFT領(lǐng)域重要資訊回顧

    NFT在蘇富比拍賣是一波三折的嗎?其實(shí)不完全如此,但本周在蘇富比拍賣行發(fā)生了一系列有趣的事。與此同時(shí),美聯(lián)社因其最新的NFT銷售被推到了風(fēng)口浪尖,而Opensea正面臨
  • 王老吉啟動(dòng)元宇宙“吉空間”,HTC發(fā)布元宇宙應(yīng)用VIVERSE

    今日《元宇宙新鮮事》有:王老吉啟動(dòng)元宇宙“吉空間”;HTC發(fā)布元宇宙應(yīng)用VIVERSE;Meta將在馬德里構(gòu)建一個(gè)元宇宙創(chuàng)新中心;央視網(wǎng)《新聞+》推出系列視頻《聊聊元宇宙
  • GameFi 深度解析,元宇宙內(nèi)容雛形顯現(xiàn)

    GameFi=Game(游戲)+Defi(去中心化金融),核心特點(diǎn)為“Play to Earn”。通過(guò)技術(shù)與去中心化價(jià)值觀賦能,GameFi 游戲資產(chǎn)化身為NFT 和代幣上鏈,具備了可驗(yàn)證性和流通性;開(kāi)
  • Ceramic:為Web3.0社交應(yīng)用打造的中間件

    大家關(guān)注老雅痞公眾號(hào)這么久,對(duì)Web3的概念不陌生吧?讓我們做一個(gè)簡(jiǎn)短的回顧,Web3主要被描述為去中心化的網(wǎng)絡(luò),旨在實(shí)現(xiàn)無(wú)服務(wù)器、去中心化的互聯(lián)網(wǎng),即用戶掌握自己
Top 主站蜘蛛池模板: 光泽县| 邯郸县| 韶山市| 大竹县| 太湖县| 会东县| 北海市| 舟山市| 自治县| 连城县| 咸阳市| 宿松县| 宝应县| 三门峡市| 玛沁县| 淮南市| 桃源县| 繁峙县| 修武县| 洪雅县| 双牌县| 孟津县| 磐安县| 太谷县| 司法| 古浪县| 仲巴县| 黎城县| 牟定县| 和田县| 澄江县| 孟州市| 门头沟区| 松潘县| 泰州市| 安陆市| 林西县| 京山县| 嵩明县| 青河县| 奉贤区|