AI妄圖替代程序員,這一次它踢到鐵板了!
最近有個(gè)朋友說:“我有種不詳?shù)念A(yù)感,AI編程按照現(xiàn)在這個(gè)速度迭代下去,程序員失業(yè)的日子就在未來幾年?!?/p>
我明白他說的意思,2025年,各個(gè)大廠、小廠的程序員們都在發(fā)瘋似地推出自家的AI編程工具,有股不把自己干掉就誓不罷休的勁頭兒。
AI編程工具效果也越來越好,尤其前端開發(fā),那理解力和生成的效果讓我驚嘆,后端可能要更安全一些,但以后也不好說。
但是我倒不恐慌,因?yàn)槲矣X得AI編程能不能保持現(xiàn)在的速度持續(xù)迭代,還是要打上幾個(gè)大大的問號(hào):
這些看起來“嚇人”的工具是不是已經(jīng)觸及了大模型的能力極限?
是不是無論怎么反復(fù)折騰,依然在一個(gè)框框內(nèi)無法突破,依然是個(gè)半吊子的程序員?
這一波AI熱潮的起點(diǎn)是ChatGPT,到現(xiàn)在為止也沒有很大的改變,它的最大問題就是輸出的東西不能保證正確性。
所以你會(huì)看到大模型廠商都得用小字兒“偷偷”聲明:
內(nèi)容由 AI 生成,請(qǐng)仔細(xì)甄別
ChatGPT 也可能會(huì)犯錯(cuò)。請(qǐng)核查重要信息。
服務(wù)生成的所有內(nèi)容均由人工智能模型生成,其生產(chǎn)內(nèi)容的準(zhǔn)確性和完整性無法保證,不代表我們的態(tài)度或觀點(diǎn)
所以,你要膽敢直接把它的回答拿到“正式場(chǎng)合”,“生產(chǎn)環(huán)境”,跌了大跟頭,人家廠商是不負(fù)責(zé)任的。
但是,人工智能這個(gè)“二把刀”在很多場(chǎng)景下確實(shí)能發(fā)揮作用,比如寫個(gè)“八股文”,起草個(gè)“講話稿”,寫一段代碼,查找一下資料,潤(rùn)色一下文章,翻譯一篇英文,簡(jiǎn)直就是一個(gè)神器。
這些場(chǎng)景的最大特點(diǎn)就是,最終都有人站在最后一關(guān)做“終審判決”。
人會(huì)檢查它做得對(duì)不對(duì),講話稿中領(lǐng)導(dǎo)稱呼錯(cuò)了,改過來就是;生成的圖片背景不對(duì),重新生成。代碼錯(cuò)了,程序員能改過來。
但人類從來不滿足于一個(gè)“二把刀”。
他們開始野心勃勃地把多個(gè)二把刀串聯(lián)起來,想要搞定更復(fù)雜的任務(wù)。
但是要命的事情來了,即使一個(gè)“二把刀”的準(zhǔn)確率是90%,把10個(gè)“二把刀”串聯(lián)起來,完成一個(gè)復(fù)雜任務(wù),最后的準(zhǔn)確性一下子降低為34.87%,可以說是慘不忍睹了。
圖片
我們拼命提高一個(gè)二把刀的準(zhǔn)確率,提升到95%,最終的結(jié)果是59.87%,依然不及格。
圖片
如果把二把刀的準(zhǔn)確率提升到99% ,結(jié)果會(huì)好一些:
圖片
但是,如果二把刀再多一些(達(dá)到20個(gè)),準(zhǔn)確率又迅速下跌:
圖片
在計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)中,為了防止一個(gè)組件失效,我們通常會(huì)采用并聯(lián)的方式提高可用性。
圖片
兩個(gè)組件并聯(lián),可用性計(jì)算方法是:
圖片
假設(shè)一個(gè)組件的可用性是90%,并聯(lián)后的可用性是:
圖片
一下子達(dá)到了99%,提高了很多?。?/p>
人工智能的二把刀能這么干嗎?
不能,因?yàn)闇?zhǔn)確率不等于可用性。
準(zhǔn)確率是一個(gè)“判斷對(duì)不對(duì)”的統(tǒng)計(jì)屬性。兩個(gè)系統(tǒng)可能都犯錯(cuò),甚至錯(cuò)得一模一樣。
如何提高多個(gè)二把刀的準(zhǔn)確性呢?我在這方面也不是專家,問了一個(gè)朋友,他給我說了一堆方法,比如DyLAN(優(yōu)勝劣汰的競(jìng)爭(zhēng)機(jī)制),就是讓多個(gè)“二把刀”并行解決同一個(gè)問題,然后由一個(gè)決策者評(píng)估每個(gè)“二把刀”的表現(xiàn),保留好的,淘汰差的......
但是決策者如何自動(dòng)評(píng)估每個(gè)“二把刀”的表現(xiàn)呢? “決策者”本身也是個(gè)“二把刀”啊!它的正確性怎么保證呢?
可以用多個(gè)決策者,然后再引入一個(gè)決策者的決策者......
這就變成雞生蛋,蛋生雞的問題了....
當(dāng)然,還有其他手段和機(jī)制來提升復(fù)雜AI系統(tǒng)的準(zhǔn)確率,但也是“修修補(bǔ)補(bǔ)”,結(jié)果依然是:
“內(nèi)容由 AI 生成,請(qǐng)仔細(xì)甄別”
人,依然是最終的審判者。
不過沒關(guān)系,AI找到了一個(gè)非常適合自己的領(lǐng)域。
在這個(gè)領(lǐng)域,無數(shù)人不但自己要?jiǎng)?chuàng)作,還要“審判”自己創(chuàng)作的正確性。
這些人被稱為程序員。
他們使用的是一種叫編程語言的東西,相比自然語言,它非常簡(jiǎn)單,非常規(guī)范,用一堆BNF就能精確定義,語法出錯(cuò)了,馬上就能檢查出來。
程序員還非??犊炎约旱膭趧?dòng)成果都放到了一個(gè)叫做GitHub的地方,AI可以輕松學(xué)習(xí),量大管飽。
然后,AI就可以干活了, 它可以用多個(gè)Coding Agent來并行生成代碼,然Review Agent來做代碼靜態(tài)分析,找出潛在邏輯缺陷,讓Test Agent自動(dòng)生成測(cè)試,執(zhí)行驗(yàn)證,讓Fix Agent來進(jìn)行多輪修復(fù),最后再裁決,輸出一份最終結(jié)果。
準(zhǔn)確性怎么辦呢?
不用擔(dān)心,反正有程序員最終負(fù)責(zé)。
“我都幫你生成這么多代碼了,審查下正確性又怎么了?”
簡(jiǎn)直是完美。
于是,大量的公司開始向這個(gè)領(lǐng)域發(fā)起沖鋒了,各種各樣的編程助手讓人眼花繚亂。
不過,程序員們也不用擔(dān)心,適應(yīng)變化,密切關(guān)注它的發(fā)展,在這些武器庫中挑選自己趁手的工具就行了。
如果真有那么一天,AI把程序員都能替換掉了,它肯定也把無數(shù)行業(yè)的人都替換掉了。



























