日韩专区第一页-日韩中文字幕在线亚洲一区-日韩中文字幕在线观看视频-日韩中文字幕在线播放-日韩中文字幕一区二区不卡-日韩中文字幕一区

OpenI 啟智社區(qū)

啟智社區(qū),確實(shí)給力

當(dāng)前位置:首頁(yè) > 資訊 > 行業(yè)資訊 >

AI來(lái)編程,碼農(nóng)何去何從?

還記得軟件席卷世界的時(shí)候嗎?一個(gè)最近比較流行的觀點(diǎn)是,人工智能正在席卷各類(lèi)軟件。過(guò)去,谷歌的首席執(zhí)行官桑達(dá)爾·皮查伊(Sundar Pichai)談到了“自動(dòng)編寫(xiě)自己”的軟件。有些人認(rèn)為軟件開(kāi)發(fā)的工作只是比創(chuàng)造不斷重復(fù)代碼片段復(fù)雜一點(diǎn),那么現(xiàn)在,人工智能的快速發(fā)展可能會(huì)讓軟件工程師們集體失業(yè)。

傳統(tǒng)上,開(kāi)發(fā)人員編寫(xiě)軟件有著一系列固定的規(guī)則,例如:如果a發(fā)生,那么就進(jìn)行b操作。人類(lèi)碼農(nóng)指導(dǎo)著機(jī)器,這是軟件1.0時(shí)代。但在軟件2.0時(shí)代里,人們認(rèn)識(shí)到,基于深度學(xué)習(xí)研究的進(jìn)步,我們可以構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò),來(lái)學(xué)習(xí)需要哪些指令或規(guī)則才能獲得預(yù)期的結(jié)果。特斯拉人工智能總監(jiān)安德烈·卡帕西(Andrej Karpathy)等人是2.0時(shí)代的支持者,他們提出的論點(diǎn)是,未來(lái)里,我們將不再需要親手編寫(xiě)代碼。我們只需要找到數(shù)據(jù)并將其輸入機(jī)器學(xué)習(xí)系統(tǒng),一切就完成了。在這個(gè)場(chǎng)景中,軟件工程師的角色將轉(zhuǎn)變?yōu)?ldquo;數(shù)據(jù)監(jiān)管員”,或是“數(shù)據(jù)賦能者”。

然而,軟件工程不會(huì)很快消失。即使軟件工程師2.0、數(shù)據(jù)科學(xué)家2.0這樣的新職業(yè)正得到不斷的發(fā)展,人工智能技術(shù)也會(huì)反過(guò)來(lái)增強(qiáng)軟件1.0時(shí)代工作者的能力。事實(shí)上,我們還不能確定軟件工程在不久的將來(lái),是否會(huì)變得和今日完全不同。深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)系統(tǒng)中將會(huì)為我們提供幫助,但它不會(huì)完全取代我們。

機(jī)器學(xué)習(xí)將如何塑造軟件開(kāi)發(fā)?

這將是一個(gè)全新的世界,但我們并不是活在電視劇里。事實(shí)上,一般的智能辦公室助理已經(jīng)能安排一天的日程,并啟動(dòng)電話會(huì)議。甚至有些AI支持的系統(tǒng),可以為企業(yè)生成商標(biāo),并根據(jù)反饋?zhàn)詣?dòng)改進(jìn)商標(biāo)。

今天,手機(jī)會(huì)自動(dòng)檢查拼寫(xiě)并提示下一個(gè)單詞。在編寫(xiě)代碼時(shí),類(lèi)似的工具也會(huì)高亮潛在的錯(cuò)誤。例如,從事結(jié)對(duì)編程(Pair programming)的人自然會(huì)預(yù)想到軟件2.0對(duì)他們工作方式的影響。考慮到機(jī)器學(xué)習(xí)和會(huì)話接口方面的進(jìn)步,可以想象,未來(lái)的一臺(tái)機(jī)器就能撐起結(jié)對(duì)編程任務(wù)的半邊天。

多年來(lái),我們一直使用自動(dòng)化工具來(lái)節(jié)省編寫(xiě)模板代碼的時(shí)間。現(xiàn)在,AI驅(qū)動(dòng)的助手工具也越來(lái)越頻繁地出現(xiàn)在更加復(fù)雜的軟件開(kāi)發(fā)中。它們以增強(qiáng)式集成開(kāi)發(fā)環(huán)境的形式出現(xiàn),為人們推薦更好的代碼組合。

人工智能的角色

讓我們想象一個(gè)更高級(jí)的人工智能助手在未來(lái)發(fā)揮的巨大作用。在進(jìn)行編碼工作時(shí),你的AI同時(shí)會(huì)通過(guò)分析確定你正在編寫(xiě)的是哪種代碼,并且根據(jù)你的風(fēng)格來(lái)自動(dòng)完成其余的代碼撰寫(xiě)。本質(zhì)上,人工智能助手更像是獲得你的授意,為你完成剩下的工作。

另一個(gè)人工智能助手將大有作為的領(lǐng)域是測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。與人類(lèi)工作速度形成鮮明對(duì)比的是,一個(gè)機(jī)器同事可以快速進(jìn)行數(shù)百萬(wàn)次的迭代,來(lái)找到解決測(cè)試的正確代碼段。擁有一個(gè)AI同事意味著,測(cè)試驗(yàn)證這項(xiàng)任務(wù)將交由AI完成。我們不用同時(shí)應(yīng)對(duì)編寫(xiě)測(cè)試和測(cè)試驗(yàn)證這兩項(xiàng)工作,從而節(jié)約了在編碼上花費(fèi)的時(shí)間,讓我們有更多的時(shí)間用于理解和解決業(yè)務(wù)問(wèn)題。

將來(lái),軟件2.0甚至可能會(huì)幫助指導(dǎo)測(cè)試驅(qū)動(dòng)開(kāi)發(fā),為測(cè)試提出建議,并給出它自己的原因。讓我們想象一下,營(yíng)銷(xiāo)人員來(lái)到開(kāi)發(fā)團(tuán)隊(duì),說(shuō)他們想要這樣或那樣的功能。如果他們能以機(jī)器能夠理解的方式表達(dá)他們想要的東西,機(jī)器就能自動(dòng)選擇必要的測(cè)試,并提出下一步的建議。

強(qiáng)化,而不是代替

這引發(fā)了一個(gè)終極問(wèn)題:機(jī)器會(huì)完全取代軟件工程師嗎?現(xiàn)實(shí)情況是,我們最多只能達(dá)到百分之九十幾的能力,而這仍然意味著1%的失敗和不可預(yù)測(cè)性。一個(gè)監(jiān)控系統(tǒng)需要用來(lái)確保所寫(xiě)的代碼能夠正常工作。也許軟件工程師的新角色就是監(jiān)控代碼并幫助機(jī)器學(xué)習(xí)系統(tǒng)達(dá)到接近100%的準(zhǔn)確率。

既然我們已經(jīng)概述了可以想象的好處,下一個(gè)問(wèn)題就出現(xiàn)了:軟件編程的哪些部分可以轉(zhuǎn)移到深度學(xué)習(xí)2.0框架中,哪些部分應(yīng)該保留在傳統(tǒng)的1.0框架中?時(shí)至今天,我們得到的結(jié)論是,這些深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)在監(jiān)督學(xué)習(xí)環(huán)境下表現(xiàn)得很好。如果向它們提供訓(xùn)練數(shù)據(jù),提供好的和壞的實(shí)例,那么它們就能學(xué)會(huì)正確地輸出。

但這些系統(tǒng)的好壞取決于訓(xùn)練數(shù)據(jù)的質(zhì)量。正如我的一位同事所指出的,改進(jìn)模型的性能常常包括改進(jìn)底層代碼、部署環(huán)境,以及改進(jìn)訓(xùn)練數(shù)據(jù)。事實(shí)上,一些機(jī)器學(xué)習(xí)系統(tǒng)因?yàn)檫^(guò)于優(yōu)秀,以至于它們實(shí)際上被訓(xùn)練數(shù)據(jù)中的人為缺陷所耽誤。

最終的一點(diǎn)想法

我們需要設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)來(lái)處理其他解決方案。軟件開(kāi)發(fā)的某些部分能夠很好地進(jìn)行深度學(xué)習(xí),而另一些部分則不能。如果我們?cè)倏纯唇Y(jié)對(duì)編程,通過(guò)與他人共享控制權(quán),會(huì)有許多不同的方法來(lái)完成問(wèn)題。軟件開(kāi)發(fā)是一個(gè)不斷與其他同事協(xié)作的過(guò)程。每一對(duì)新的工作伙伴都會(huì)帶來(lái)不同的經(jīng)歷和解決問(wèn)題的不同方法。組合越多,得到的解就越多。

在軟件2.0中,我們得到了一個(gè)新的AI伙伴來(lái)幫助開(kāi)發(fā)人員更好地完成他們的工作。我們展望一個(gè)更有活力的人機(jī)合作環(huán)境,它將帶來(lái)更多、更有效的解決方案。這對(duì)每個(gè)人都有好處。

來(lái)源 | 網(wǎng)易智能
選自 | The Next Web
作者 | Hans A. Gunnoo
編譯 | 網(wǎng)易智能 
參與 | 毅立