新聞中心
你有沒有想過(guò),有一天,碼農(nóng)是不需要寫代碼的。你只需要提供函數(shù)簽名和注釋,代碼就能自己在屏幕上打出來(lái)?!赴岽u碼農(nóng)可以都辭退了,留下項(xiàng)目經(jīng)理提需求即可,大霧!」

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),卡若企業(yè)網(wǎng)站建設(shè),卡若品牌網(wǎng)站建設(shè),網(wǎng)站定制,卡若網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,卡若網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
上面這段 demo 是不是看著很爽?這就是 OpenAI CEO Sam Altman 剛剛介紹的最新研究成果——根據(jù)函數(shù)簽名和注釋,利用語(yǔ)言模型自動(dòng)生成 Python 代碼。這個(gè)語(yǔ)言模型用到了和 OpenAI 的 GPT 模型相同的無(wú)監(jiān)督技術(shù)。
為了讓模型學(xué)會(huì)「寫代碼」,研究人員在微軟的超級(jí)計(jì)算機(jī)上,借助數(shù)千個(gè)開源 GitHub 庫(kù)里的代碼對(duì)該模型進(jìn)行了微調(diào)。
先來(lái)看一下生成效果。
研究人員首先展示了一個(gè)較為簡(jiǎn)單、使用 Python 編寫回文檢測(cè)的例子。回文指的是「正讀反讀都能讀通的句子」,例如:「anna」、「level」等。下面是使用該模型自動(dòng)生成的代碼:
可以看到,在你輸入了函數(shù)簽名和注釋之后,模型正確地生成了回文檢測(cè)的代碼。當(dāng)然,對(duì)于回文檢測(cè),我們也可以用如下更「秀」的遞歸方法來(lái)實(shí)現(xiàn):
看到這里,也許大家并沒有對(duì)該模型的效果感到很驚艷,畢竟像回文檢測(cè)這類基礎(chǔ)任務(wù)的代碼網(wǎng)上一抓一大把,模型大可以直接從訓(xùn)練集中復(fù)制過(guò)來(lái)即可。
先別著急,咱們繼續(xù)往下看。
接下來(lái),研究人員要求模型生成從一個(gè)列表中查找長(zhǎng)度不少于 7 個(gè)字符的代碼,而且該任務(wù)并沒有在訓(xùn)練集中。我們來(lái)看看在這樣的情況下,模型表現(xiàn)如何:
還是出色地完成了任務(wù)!
從這個(gè)例子我們可以確定,模型不是簡(jiǎn)單地復(fù)制網(wǎng)上的現(xiàn)成代碼,而是依據(jù)函數(shù)名及相關(guān)注釋產(chǎn)生了對(duì)應(yīng)的解決方案,它甚至還使用了之前生成的代碼。
試過(guò)了單一函數(shù)的例子,研究者還展示了其在類中的運(yùn)行效果。
這次的任務(wù)是計(jì)算商品的總價(jià)格,并對(duì)名稱是回文的商品打折。我們來(lái)看一看該模型生成的代碼:
模型自動(dòng)地為我們生成了計(jì)算商品總價(jià)方法的注釋及對(duì)應(yīng)代碼。然而這并不是我們想要的結(jié)果,我們只想要對(duì)名字是回文的商品打折,而不是對(duì)所有商品都打八折。研究人員之后修改了該方法的注釋,詳細(xì)描述了想要實(shí)現(xiàn)的功能。修改注釋后,該模型生成的代碼如下:
可以看到模型幾乎生成了我們想要的結(jié)果。這里僅有一個(gè)小問題,我們想要對(duì)回文名稱的商品打八折,而不是打二折,簡(jiǎn)單修改一下即可。
最后研究者展示了讓模型生成購(gòu)物收據(jù)的結(jié)果:
OpenAI 的介紹視頻
OpenAI 放出的 demo 的確驚艷,甚至是革命性的。如果照這個(gè)思路走下去,以后簡(jiǎn)單的「搬磚工」似乎都不需要了。但問題也出在這兒:效果未免太驚艷了,讓人不禁懷疑是否存在造假或精心挑選……
不過(guò)也有人說(shuō),「這可是 OpenAI!他們的口袋里有的是好玩意兒?!?/p>
那么,如果這是真的,對(duì)程序員來(lái)說(shuō)意味著什么?
程序員的未來(lái)何去何從?
在 AI 領(lǐng)域,每種新鮮技術(shù)的出現(xiàn)似乎都會(huì)掀起一番「XX 從業(yè)者是否會(huì)被 AI 取代」的討論,這次也不例外。
[[327236]]
首先,這種工具的出現(xiàn)所帶來(lái)的效率提升是毋庸置疑的。我們假設(shè)這個(gè) demo 是沒有摻水的,那么公司可能會(huì)出于成本的考慮裁掉一些初級(jí)碼農(nóng),用一個(gè)碼農(nóng)來(lái)充當(dāng)「審碼員」,完成原來(lái)十個(gè)碼農(nóng)的工作。
也有人認(rèn)為,就目前這個(gè)模型來(lái)討論程序員是否會(huì)被取代未免有點(diǎn)超前。首先,這還只是一個(gè)語(yǔ)言模型,即使在非常簡(jiǎn)單的函數(shù)中也可能出錯(cuò),更別說(shuō)遇到比較難以理解的自然語(yǔ)言注釋語(yǔ)句了。這時(shí)候,還是需要人來(lái)介入。
其次,這一流程中用到的「注釋」還不是需要人來(lái)寫嗎?
但也有人認(rèn)為,這些都可以通過(guò)時(shí)間和技術(shù)來(lái)解決:總有一天,模型犯的錯(cuò)誤會(huì)越來(lái)越少,甚至少于檢查代碼的那個(gè)人類。
或者你再訓(xùn)練一個(gè)模型來(lái)寫單元測(cè)試,然后不斷對(duì)其進(jìn)行改進(jìn),直到它可以給出大部分時(shí)候合理的解決方案。
當(dāng)然,這些都是一些非常超前的假設(shè),現(xiàn)在的技術(shù)還很難做到,真正應(yīng)用起來(lái)也會(huì)有各種各樣的問題。但回想起 19 世紀(jì)初期大批紡織工人的命運(yùn),這種討論還是很有意義的。
本文題目:看看函數(shù)名和注釋,AI自動(dòng)生成代碼,程序員:這不真實(shí),我要失業(yè)
網(wǎng)站路徑:http://m.fisionsoft.com.cn/article/dphcdii.html


咨詢
建站咨詢
