chatgpt檢測(cè)腳本語(yǔ)法 程序員的未來(lái)屬于「?jìng)未a」
非常擅長(zhǎng)生成模板代碼,在特定指令下提供一份包含少量函數(shù)的短腳本代碼。
比如下面的例子中,研究人員要求 將四個(gè)常用函數(shù)的輸入和輸出串一起。并提供一個(gè)將此函數(shù)用于模擬數(shù)據(jù)的示例代碼。
可以看到 生成的結(jié)果幾乎是完美的,調(diào)試代碼只花了幾分鐘,不過(guò)需要在提示中非常具體地說(shuō)明 ,包括提供命名和用到的函數(shù)。
研究人員發(fā)現(xiàn),成功的關(guān)鍵在于:
1、將復(fù)雜任務(wù)分解成多個(gè)子任務(wù),每個(gè)子任務(wù)最好只需要少數(shù)幾個(gè)步驟即可完成,畢竟 生成的代碼是基于概率文本預(yù)測(cè)模型的結(jié)果。
2、 在使用已經(jīng)存在的函數(shù)時(shí)表現(xiàn)最佳,因?yàn)檫@時(shí)只涉及內(nèi)插而非外推。
例如,使用正則表達(dá)式()從文本中提取信息的代碼對(duì)于許多開發(fā)人員來(lái)說(shuō)是非常困難的,不過(guò)因?yàn)橐呀?jīng)有正則網(wǎng)站提供了大量在線示例,并可能出現(xiàn)在 示例中,所以 寫正則的性能還是不錯(cuò)的。
3、學(xué)術(shù)界對(duì) 最大的批評(píng)之一是其信息來(lái)源缺乏透明度。
對(duì)于代碼生成任務(wù),通過(guò)指定「命名空間」(),即在使用函數(shù)時(shí)顯式調(diào)用包名可以實(shí)現(xiàn)一定程度的透明性。
不過(guò) 可能會(huì)直接復(fù)制個(gè)人的公開代碼而沒(méi)有引用出來(lái),并且研究人員仍然有責(zé)任驗(yàn)證正確的代碼歸屬人。
同時(shí),如果要求生成更長(zhǎng)的腳本會(huì)暴露出一些 的缺陷,例如偽造函數(shù)名或參數(shù)等,這也是 禁用 生成代碼的原因。
但如果用戶提供了一組明確的執(zhí)行步驟, 仍然可以生成一個(gè)有用的工作流模板,定義步驟之間的輸入和輸出之間的連接,這可能是用 GPT-3 外推生成新代碼的最有用的途徑。
目前 還不能將偽代碼(用簡(jiǎn)單語(yǔ)言描述的算法步驟) 轉(zhuǎn)換為完美的計(jì)算機(jī)可執(zhí)行代碼,但這可能離現(xiàn)實(shí)并不遙遠(yuǎn)。
對(duì)于初學(xué)者、不熟悉的編程語(yǔ)言來(lái)說(shuō)特別有幫助,因?yàn)槌鯇W(xué)者只會(huì)寫一些較短的腳本,調(diào)試更方便。
更擅長(zhǎng)非創(chuàng)造性任務(wù)
最擅長(zhǎng)解決的是耗時(shí)的公式化任務(wù),可用于調(diào)試、檢測(cè)和解釋代碼中的錯(cuò)誤。
在編寫函數(shù)文檔時(shí)也非常有效,例如使用 2 的內(nèi)聯(lián)文檔語(yǔ)法,在標(biāo)識(shí)出所有參數(shù)及類上非常高效,不過(guò)卻很少解釋如何使用函數(shù)。
一個(gè)關(guān)鍵的限制是 的生成被限制在大約 500 個(gè)單詞,只能專注于較小代碼塊的生成,同時(shí)還可以生成單元測(cè)試以自動(dòng)化確認(rèn)代碼功能。
給出的大多數(shù)建議在定義測(cè)試的結(jié)構(gòu)和檢查預(yù)期的對(duì)象類方面是很有幫助的。
最后, 在對(duì)代碼進(jìn)行重新格式化以遵循標(biāo)準(zhǔn)化(例如 )代碼樣式方面非常有效。
未來(lái)屬于偽代碼
和其他人工智能驅(qū)動(dòng)的自然語(yǔ)言處理工具已經(jīng)準(zhǔn)備好將開發(fā)人員的簡(jiǎn)單任務(wù)進(jìn)行自動(dòng)化,例如編寫短函數(shù),語(yǔ)法調(diào)試,注釋和格式化,而擴(kuò)展復(fù)雜性取決于用戶的調(diào)試意愿(以及他們的熟練程度)。
研究人員總結(jié)了 在代碼生成上的功能,可以簡(jiǎn)化科學(xué)領(lǐng)域的代碼編寫過(guò)程,不過(guò)人工檢查仍然是必要的,可運(yùn)行的代碼并不一定意味著代碼能夠執(zhí)行預(yù)期的任務(wù),因此單元測(cè)試或非正式的交互式測(cè)試仍然至關(guān)重要。
在解決方案可能由人類開發(fā),并由 簡(jiǎn)單復(fù)制生成的情況下,確保正確的代碼歸屬人至關(guān)重要。
目前已經(jīng)有聊天機(jī)器人開始自動(dòng)提供指向其來(lái)源的鏈接(例如chatgpt檢測(cè)腳本語(yǔ)法,微軟的必應(yīng)),盡管這一步還處于起步階段。
與傳統(tǒng)方法相比, 提供了一種學(xué)習(xí)編碼技能的替代方法,通過(guò)將偽代碼直接轉(zhuǎn)換為代碼,可以緩解編寫初始任務(wù)的障礙。
研究人員懷疑未來(lái)的進(jìn)展將使用 這樣的工具來(lái)自動(dòng)調(diào)試編寫的代碼,根據(jù)遇到的錯(cuò)誤迭代地生成、運(yùn)行和提出新代碼chatgpt檢測(cè)腳本語(yǔ)法,在實(shí)驗(yàn)過(guò)程中,研究人員發(fā)現(xiàn)糾正代碼的能力有限,只有在非常具體的指令針對(duì)小代碼塊時(shí)才會(huì)偶爾成功,調(diào)試過(guò)程的效率遠(yuǎn)低于人工調(diào)試。
研究人員猜想,隨著技術(shù)的進(jìn)步(比如最近發(fā)布的 GPT-4 模型chatgpt檢測(cè)腳本語(yǔ)法,據(jù)稱比 GPT-3 模型大 10 倍),自動(dòng)化調(diào)試將會(huì)得到改進(jìn)。
未來(lái)即將到來(lái),現(xiàn)在是開發(fā)人員學(xué)習(xí)提示工程技能以利用新興 AI 工具的時(shí)候了,研究人員預(yù)計(jì),使用人工智能生成的代碼將成為軟件開發(fā)各個(gè)方面越來(lái)越有價(jià)值的技能,這些技能是科學(xué)發(fā)現(xiàn)和理解的基礎(chǔ)。
參考資料:
免責(zé)聲明:本文系轉(zhuǎn)載,版權(quán)歸原作者所有;旨在傳遞信息,不代表本站的觀點(diǎn)和立場(chǎng)和對(duì)其真實(shí)性負(fù)責(zé)。如需轉(zhuǎn)載,請(qǐng)聯(lián)系原作者。如果來(lái)源標(biāo)注有誤或侵犯了您的合法權(quán)益或者其他問(wèn)題不想在本站發(fā)布,來(lái)信即刪。
聲明:本站所有文章資源內(nèi)容,如無(wú)特殊說(shuō)明或標(biāo)注,均為采集網(wǎng)絡(luò)資源。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系本站刪除。