AI在軟件開(kāi)發(fā)中的角色:輔助而非替代

時(shí)間:2024-05-22

來(lái)源:21ic電子網(wǎng)

導(dǎo)語(yǔ):事實(shí)表明,AI無(wú)法替代開(kāi)發(fā)者,但更適用于優(yōu)秀的開(kāi)發(fā)者。而識(shí)別大型語(yǔ)言模型(LLM)生成的代碼什么時(shí)候會(huì)出錯(cuò),需要開(kāi)發(fā)人員具有豐富的知識(shí)和經(jīng)驗(yàn)。

  事實(shí)表明,AI無(wú)法替代開(kāi)發(fā)者,但更適用于優(yōu)秀的開(kāi)發(fā)者。而識(shí)別大型語(yǔ)言模型(LLM)生成的代碼什么時(shí)候會(huì)出錯(cuò),需要開(kāi)發(fā)人員具有豐富的知識(shí)和經(jīng)驗(yàn)。

  軟件工程師David Showalter在談到AI編程時(shí)表示:“目前,AI模型在幫助編程人員提高工作效率方面表現(xiàn)出色?!蹦敲?,這一觀點(diǎn)是否站得住腳?Showalter的言論實(shí)則是對(duì)AI專家Santiago Valdarrama的回應(yīng)——他認(rèn)為大型語(yǔ)言模型(LLM)作為編碼助手目前還不完全可靠。Valdarrama說(shuō):“除非LLM給我們同樣的保證(就像編程語(yǔ)言一樣讓計(jì)算機(jī)始終響應(yīng)命令),否則它們只能被視為華而不實(shí)的‘炫技’, 對(duì)多數(shù)應(yīng)用程序的開(kāi)發(fā)來(lái)說(shuō)并無(wú)實(shí)際價(jià)值?!彼挠^點(diǎn)頗具見(jiàn)地,LLM在如何回應(yīng)提示方面顯然是不一致的,即使是同一提示可能會(huì)得到截然不同的回應(yīng)。因此,Showalter的看法可能過(guò)于樂(lè)觀:雖然AI模型在輔助開(kāi)發(fā)人員編寫(xiě)更多代碼方面有不俗的表現(xiàn),但這并不等同于能夠生成高質(zhì)量的可用代碼。

  AI和軟件開(kāi)發(fā)成功的關(guān)鍵在于敏銳地識(shí)別那些潛在的不完善之處。許多開(kāi)發(fā)人員并沒(méi)有意識(shí)到這一點(diǎn),他們過(guò)于依賴LLM的輸出結(jié)果。正如計(jì)算機(jī)科學(xué)網(wǎng)站HackerNews的一位評(píng)論員所說(shuō),“我想知道的是,用戶對(duì)于ChatGPT的信任有多少是建立在那些看似完美無(wú)缺的示例之上的……尤其是對(duì)于特定類型的用戶來(lái)說(shuō)。”為了能夠在軟件開(kāi)發(fā)中有效地使用AI,開(kāi)發(fā)人員需要足夠的經(jīng)驗(yàn)判斷LLM的輸出什么時(shí)候可能不夠準(zhǔn)確或存在誤導(dǎo)。

  并沒(méi)有簡(jiǎn)單的解決方案

  關(guān)于LLM在軟件開(kāi)發(fā)中的應(yīng)用和表現(xiàn)存在不同的看法。正如HackerNews網(wǎng)站的一些評(píng)論所展示的那樣,許多開(kāi)發(fā)人員并不贊同過(guò)度依賴LLM的輸出。他們反駁的理由通常歸結(jié)為:“當(dāng)然,開(kāi)發(fā)人員不能盲目地信任LLM的輸出,就像他們不會(huì)無(wú)條件地信任在Stack Overflow上找到的代碼,或者完全依賴集成開(kāi)發(fā)環(huán)境(IDE)等工具一樣?!?/p>

  就目前而言,這種看法是正確的,但現(xiàn)實(shí)往往并不盡如人意。例如,雖然開(kāi)發(fā)人員不應(yīng)該完全相信他們使用的集成開(kāi)發(fā)環(huán)境(IDE),但I(xiàn)DE在處理基本編程任務(wù)時(shí)具備一定程度的準(zhǔn)確性和穩(wěn)定性,例如不會(huì)隨意“破壞”程序或弄亂Lisp括號(hào)。ChatGPT很可能會(huì)出錯(cuò),但是IDE很少出現(xiàn)這種情況。

  對(duì)于堆棧溢出(Stack Overflow)上的代碼來(lái)說(shuō),可能有不同的使用方式。有些開(kāi)發(fā)人員可能會(huì)直接復(fù)制粘貼代碼,而不進(jìn)行檢查。但明智的開(kāi)發(fā)人員則會(huì)采取更為審慎的態(tài)度。他們會(huì)首先查看有關(guān)代碼的評(píng)論,以評(píng)估其質(zhì)量和適用性。

  LLM的輸出并不包含這樣的信號(hào)。正如一位開(kāi)發(fā)人員所建議的那樣,“將Stack Overflow和LLM的輸出都視為可能是錯(cuò)誤的結(jié)果,并且可能是由經(jīng)驗(yàn)不足的開(kāi)發(fā)人員編寫(xiě)的代碼?!边@是一種明智的做法。即使存在錯(cuò)誤,這些代碼片段或建議也可能為提供有價(jià)值的啟示,幫助開(kāi)發(fā)人員朝著正確的方向前進(jìn)。

  同樣,這需要開(kāi)發(fā)人員具備足夠的經(jīng)驗(yàn)以識(shí)別Stack Overflow的代碼示例或LLM生成的代碼是否存在錯(cuò)誤?;蛘唛_(kāi)發(fā)人員足夠明智,只將這些代碼用在“200行樣板文件”或“React頁(yè)面中的大表”等常見(jiàn)的場(chǎng)景中。在這些場(chǎng)景中,可以不必完全信任這些代碼,只需在完成之后進(jìn)行測(cè)試即可。

  總之,正如一位開(kāi)發(fā)人員所總結(jié)的那樣,“我對(duì)LLM的信任程度就像我對(duì)初級(jí)開(kāi)發(fā)人員或?qū)嵙?xí)生的信任一樣。我會(huì)給它分配一些我知道如何完成的任務(wù),以此驗(yàn)證其準(zhǔn)確性,但不會(huì)在這些任務(wù)上花費(fèi)過(guò)多的時(shí)間。這無(wú)疑是最佳的策略。從AI中獲益最大的開(kāi)發(fā)人員是那些明智的人,他們知道LLM什么時(shí)候可能會(huì)出錯(cuò),但同時(shí)也能從中得到一些好處?!?/p>

  尋求正確使用的方法

  開(kāi)源Python工具Datasette創(chuàng)始人Simon Wilison曾經(jīng)提出這樣的觀點(diǎn),“從AI中獲得最佳結(jié)果實(shí)際上需要大量的知識(shí)和經(jīng)驗(yàn),因?yàn)楹芏喽細(xì)w結(jié)于直覺(jué)?!彼ㄗh經(jīng)驗(yàn)豐富的開(kāi)發(fā)人員測(cè)試不同LLM的局限性,以衡量它們的相對(duì)優(yōu)勢(shì)和劣勢(shì),即便一些LLM模型表現(xiàn)不盡如人意,仍然可以利用其價(jià)值。

  初級(jí)開(kāi)發(fā)人員如何有效利用AI進(jìn)行編程?AWS AI開(kāi)發(fā)者體驗(yàn)主管Doug Seven表示,像Amazon Q Developer(前身為CodeWhisperer)這樣的編碼助手,對(duì)經(jīng)驗(yàn)不足的開(kāi)發(fā)人員同樣可以提供幫助。這些工具能夠?yàn)樗麄兲峁┯袃r(jià)值的建議,幫助他們明確編程思路,從而減少編程過(guò)程中頻繁向他人求助的需求。

  也許正確的答案是:取決于具體情況!

  而且重要的是,軟件開(kāi)發(fā)的理念通常不是“更快、更多地編寫(xiě)代碼”。實(shí)際上,優(yōu)秀的開(kāi)發(fā)人員編寫(xiě)代碼的時(shí)間很少,而花費(fèi)更多的時(shí)間思考需要解決的問(wèn)題以及如何找到最佳解決方案。LLM可以在這方面提供幫助,正如Willison所指出的那樣:“ChatGPT(以及GitHub Copilot)為我節(jié)省了大量的‘深思熟慮’的時(shí)間。從在Bash中編寫(xiě)For循環(huán)到記住如何在Javascript中進(jìn)行跨域CORS請(qǐng)求,我甚至不需要再查找其他資料。”


AI
中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

關(guān)注伺服與運(yùn)動(dòng)控制公眾號(hào)獲取更多資訊

關(guān)注直驅(qū)與傳動(dòng)公眾號(hào)獲取更多資訊

關(guān)注中國(guó)傳動(dòng)網(wǎng)公眾號(hào)獲取更多資訊

最新新聞
查看更多資訊

娓娓工業(yè)

廣州金升陽(yáng)科技有限公司

熱搜詞
  • 運(yùn)動(dòng)控制
  • 伺服系統(tǒng)
  • 機(jī)器視覺(jué)
  • 機(jī)械傳動(dòng)
  • 編碼器
  • 直驅(qū)系統(tǒng)
  • 工業(yè)電源
  • 電力電子
  • 工業(yè)互聯(lián)
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機(jī)界面
  • PLC
  • 電氣聯(lián)接
  • 工業(yè)機(jī)器人
  • 低壓電器
  • 機(jī)柜
回頂部
點(diǎn)贊 0
取消 0