文|深燃 鄒帥
編輯|唐亞華
“去年年底,我看到大佬們都在分享ChatGPT相關(guān)的內(nèi)容,一開始我以為還是資本和大佬fomo的玩具,但是經(jīng)過使用、和朋友交流,加上自己的研究,我確信ChatGPT模型是革命性的。”樊高曾在國內(nèi)大廠做過后端工程師,離開程序員崗位許久,他因為ChatGPT又再一次將目光投向代碼世界。
樊高覺得,作為生成式AI,ChatGPT的交互能力極強,“它其實是用整個人類在互聯(lián)網(wǎng)中的語調(diào),訓練成了一個大語言集合,可以想象它會開啟一個使用自然語言和機器交互的新時代。”而作為曾經(jīng)的技術(shù)人員,樊高也承認, 部分初級和重復(fù)勞動的工作都會被AI代勞,這在程序員工作中也一樣。
“我們?nèi)粘懘a,最早是一行行的碼,每個變量方法都要自己生成,后來idea有代碼補全和編譯器,現(xiàn)在GitHub Copilot(微軟與OpenAI共同推出的AI編程工具)可以通過描述需求和上下文,智能寫代碼?!卑凑者@個邏輯,他認為,編碼也并不是不可取代的能力,交給AI指日可待。
市場上也有AI取代程序員的消息傳出。據(jù)CNBC報道,據(jù)谷歌內(nèi)部的測試顯示,ChatGPT能夠通過谷歌的初級軟件工程師面試,這個職位通常適用于新的大學畢業(yè)生和第一次從事編碼工作的求職者。有計算機從業(yè)者也進行了嘗試,發(fā)現(xiàn)ChatGPT確實能夠進行寫基礎(chǔ)的腳本,雖不能進行完整的編程直接開發(fā)一個程序,但它能通過一步步指令,教人類完成這一項工作,它甚至有debug(排錯)的能力。
如此看來,大量基礎(chǔ)的編碼工作可以由AI完成,而AI通過長時間學習能否無限提升自己的編碼能力,也未可知。有程序員向深燃表達了自己的擔憂,曾以為搞IT會是比高速收費員穩(wěn)定的“鐵飯碗”,然而現(xiàn)在發(fā)現(xiàn)自己也是那個小窗里隨時會被取代的人。
沒人能在人工智能的洪流前保持傲慢。推動科技的人,都有可能反過來被科技取代。
01 “我?guī)追昼妼懙拇a,ChatGPT只要幾秒鐘”
譚林是一位前端開發(fā)工程師,目前在加拿大工作。去年年底,ChatGPT面世,北美科技圈就已經(jīng)開始關(guān)注并討論了。她說,同事們試用之后,都從技術(shù)角度充分肯定了這款工具的優(yōu)勢,也有人開玩笑說要轉(zhuǎn)行,以后讓ChatGPT寫代碼就行了。
“我試著用ChatGPT寫了代碼之后,確實感受到了一絲焦慮?!弊T林告訴深燃,她給ChatGPT的指令是:寫一個JS(JavaScript)文件,生成一個restart button(重啟按鈕),點擊這個button要求刷新頁面。ChatGPT很快就給出了一段完整的代碼,并在下面解釋了自己的思路。“這段如果我寫可能需要幾分鐘,它只要幾秒鐘。”
譚林嘗試的僅僅是一段基礎(chǔ)的代碼,需求只是在頁面添加一個功能。樹莓健康A(chǔ)PP聯(lián)合創(chuàng)始人阿晨告訴深燃,他讓ChatGPT寫了一個小程序,它也能又快又好地完成?!拔业男枨笫情_發(fā)一個AI識別錯別字的軟件。我首先問了一下ChatGPT開發(fā)思路是什么,從后端用哪個框架去搭建,前端用微信小程序的某某框架去做,再到小程序怎么上架發(fā)布,它都能夠一一列舉出來。”阿晨表示,他此前沒有小程序開發(fā)經(jīng)驗,這次也是正好讓ChatGPT教他做,從提供思路到如何執(zhí)行,阿晨按照它的指引,成功開發(fā)完了這個小程序,并在微信開發(fā)平臺上架了。
和譚林的感受相似,阿晨也發(fā)現(xiàn),ChatGPT不僅能幫用戶解決具體問題,還能有理有據(jù)地解釋背后的邏輯,既能授人以魚,又能授人以漁。阿晨舉例,他對ChatGPT提出指令“小程序textarea指定位置顏色變紅”,ChatGPT給出回答:“要在小程序中的‘textarea’中指定某個位置的文本顏色變濃,可以通過在‘textarea’中插入‘rich-text’標簽來實現(xiàn)。在‘rich-text’中使用‘’標簽,并為該標簽指定‘style’屬性來控制文字的顏色、字體大小等樣式?!被卮疬@些原理之后,ChatGPT還給出了具體的操作步驟。
阿晨在開發(fā)過程中還遇到了幾個程序報錯,他把報錯信息貼入ChatGPT讓它檢查,它也能準確地debug,“我根據(jù)它的回答可以直接解決問題?!卑⒊勘硎荆跊]有小程序開發(fā)經(jīng)驗的情況下,他可能需要查閱資料學習,大概兩三天能完成開發(fā),遇到問題也不一定很快地解決?!拔覀兤綍r會用百度這樣的搜索引擎,但因為這類工具給出的答案不是特別準確,我還需要在海量的信息中做二次篩選,所以整體時間會拉長。而放到ChatGPT里面,它從告訴我怎么做,到解決bug成功運行,總共就花了3個小時。”
人類幾天才能完成的工作,ChatGPT只要幾小時;人類要做幾分鐘的工作,ChatGPT只要幾秒鐘。速度和效率的提升,是AI的價值之一,而在程序員的眼中,從分到秒的進化,也幾乎是“恐怖”的程度,因為很難想象AI在速度上的上限。
除了速度,ChatGPT的“邏輯”和“思考”能力也超出了一些程序員的預(yù)期。譚林在日常工作中會經(jīng)常尋求ChatGPT的幫助,他覺得比以前用Google效率高得多。
“比如我要寫一個軟件,這里面包含幾十個文件,我把其中一個文件中的一段代碼篩下來給ChatGPT,這里邊可能會出現(xiàn)很多變量和數(shù)據(jù)是來自其他文件的,它就會在底下解釋的時候,說這部分變量雖然在這段代碼里沒有出現(xiàn),但可能是從其他文件中傳遞過來的。同樣的問題如果問Siri這類AI,它們就會說‘我不知道你這個變量從哪來的?!?/p>
接觸了ChatGPT一段時間,譚林的心情也經(jīng)歷了幾次變化,“最開始聽到的時候還是持質(zhì)疑態(tài)度,以為只是類似Siri一樣的東西。發(fā)現(xiàn)它能跟我一樣寫代碼,并且可以運行的時候,我是很震驚的。這種震驚直接引發(fā)了一些職業(yè)焦慮,它的速度比我快這么多,那如果它經(jīng)歷長時間的學習和訓練,是不是就會有取代我的一天?”
譚林以前學生物,轉(zhuǎn)做程序員理由之一就是覺得這個職業(yè)很難像收銀、銀行柜臺、高速收費員一樣快速被機器取代,“疫情也讓我有一些僥幸心理,因為我們這個工作沒有受什么影響,還能居家辦公,但直到ChatGPT這種AI的出現(xiàn),我才反應(yīng)過來,原來程序員也不是鐵飯碗,原來我的職業(yè)危機可能會是它帶來的?!?/p>
02 能部分代工,但不能完全取代程序員
ChatGPT具備基礎(chǔ)的代碼能力,而且寫起來速度更快。不過,如果真的把ChatGPT放在程序員的工作場景中,它還是暴露出了不少局限性。
先說寫代碼這一基礎(chǔ)環(huán)節(jié)。幾位程序員的共同體驗是,讓ChatGPT寫一些基礎(chǔ)的腳本,為網(wǎng)頁寫一個功能,指導(dǎo)完成小程序的開發(fā),從技術(shù)角度來說都是可行的。但是,“它只能寫代碼片段,不能寫完整的代碼?!卑⒊拷忉專翱梢赃@樣理解,比如我想生成一個word文檔,但ChatGPT只能生成一個文字形式,我如果需要兩個word文檔,它還是只能給我一段文字,要生成文檔我還需要手動拷貝到office軟件進行人工處理,而且ChatGPT是有字數(shù)限制的,最多15000個字符?!卑⒊空J為,只從寫代碼這個層面來說,不能寫一個完整的程序是ChatGPT最大的劣勢,因為開發(fā)人員是需要有把控整個框架的能力的。
有人曾這樣形容程序員工種的不可替代性:“程序員的核心競爭力不在于寫代碼,而是在于跟各種人扯皮,斗智斗勇。”實際上,在業(yè)務(wù)場景中,不管是前端還是后端,測試還是運維,程序員工作中最困難和耗費時間的是需求轉(zhuǎn)換,測試、修改。簡單來說就是明確公司要什么,然后做出來。這一項需要大量人類經(jīng)驗和創(chuàng)意的工作,ChatGPT目前還很難完成。
阿晨舉例,他們做的是健康管理類的APP,里面需要有一些減肥菜譜,這種菜譜之間存在一定邏輯,“如果讓ChatGPT幫我實現(xiàn)一個菜譜查詢的功能,它不知道這個減肥菜譜是怎么插入數(shù)據(jù)庫、怎么調(diào)出來、工作人員怎么通過后臺維護,需要我把步驟跟它講一遍,但這樣的步驟等于是我自己已經(jīng)把代碼的框架寫完了,它只是幫我實現(xiàn)框架里的內(nèi)容填充?!?/p>
讓ChatGPT理解業(yè)務(wù),目前來看顯然是一個偽命題,所以程序員在日常工作中最耗時耗力的那一部分,很難被取代。不僅是具體的業(yè)務(wù)難以理解,涉及一些復(fù)雜的極端的生產(chǎn)活動,ChatGPT也只能從自己的數(shù)據(jù)庫中歸攏總結(jié)一些“漂亮的廢話”。
樊高說,比如向ChatGPI提問“k8s中的Workload Type有哪些”,這個問題很基礎(chǔ),一般是用于面試程序員的,ChatGPT能非常完整地作答?!暗侨绻麊枴绾巫鲭p十一淘寶的下單功能,讓它支持54萬/gps?’,它只能列舉采用分布式架構(gòu)、采用緩存技術(shù)、使用負載均衡、數(shù)據(jù)庫優(yōu)化、代碼優(yōu)化這幾點?!狈哒J為,這只是一個模棱兩可的,沒有給出具體模型理論和實操價值的答案?!岸覀儸F(xiàn)實生活中的一些業(yè)務(wù)場景,只能使用人腦去探索和解決,這也是程序員的工作。解決這些專業(yè)性強,跟隨市場變化的問題,人腦甚至都很難給出完美答案,AI暫時更是無法代勞。”
“各行各業(yè)都有一些擰螺絲的工作,一般都會交給實習生或者剛?cè)腴T的人員來做。在我們的工作中,比如設(shè)立一個技術(shù)方案,需要有人去具體地把它實現(xiàn),但這個crud(數(shù)據(jù)庫的增刪改查)就比較無聊和繁瑣。類似這種已經(jīng)設(shè)計好了,只需要執(zhí)行的工作,以后完全可以交給AI來做?!眹鴥?nèi)某大廠程序員阿冬認為,這種來自AI的‘侵入’是個好事,“能被AI替代的工作,本來我就不想干了。這些沒有創(chuàng)造性的工作由AI接手,正好能讓我有精力做更多有意思的事情。”
從事基礎(chǔ)工作的“底層程序員”也許會感到一絲涼意,前美的集團AIoT算法負責人連詩路告訴深燃,高階程序員,也就是“大?!笔呛茈y被取代的。
“拿開發(fā)一個ChatGPT來舉例。在搭建這個模型的時候,大牛會提出,第一個環(huán)節(jié)要用supervised deep learning(有監(jiān)督的深度學習),而且用的是GPT3這樣一個成熟的模型?!彼忉?,搭建框架的這撥人很難替代,原因就在于如果一個沒有足夠開發(fā)經(jīng)驗的人,萬一把損失函數(shù)放到第一步,優(yōu)化損失函數(shù)值的空間會極低,那對結(jié)果來說就是南轅北轍。“我認為底層程序員做的事情就是,大牛已經(jīng)告訴他用什么框架,告訴他如何調(diào)整dataset和參數(shù)的大小,他只需要引入,寫一些固定的代碼即可,這部分ChatGPT就會做。這一撥人已經(jīng)產(chǎn)生不了更高的價值,或者說這一撥人的價值會被ChatGPT替代?!?/p>
“山腳下很擠,山腰上人少一些,山頂上就能呼吸到新鮮空氣了?!边B詩路說,歸根結(jié)底,有頂層設(shè)計能力,并且能夠發(fā)現(xiàn)和解決問題,創(chuàng)造新的生產(chǎn)力的程序員,才會在ChatGPT面前更加從容和自信。
03 未來已來,程序員不再是“鐵飯碗”
在對效率和生產(chǎn)力的無限追求中,人類創(chuàng)造并訓練人工智能。當人工智能發(fā)展到ChatGPT出現(xiàn)的這一刻,被人類創(chuàng)造出來的機器,反過來撕下了人類無效工作的假面,將一些重復(fù)、機械、含金量低的工作推到懸崖邊。
相比普通大眾,計算機行業(yè)人士作為多年來始終身處這個賽道,見證人工智能一步步來到今天的親歷者,他們又興奮又焦慮。連詩路說,興奮是因為對ChatGPT以及人工智能的未來充滿希望,“現(xiàn)在ChatGPT走大數(shù)據(jù)、大模型、大算力的路線,采用龐大的Dataset(數(shù)據(jù)集),這個路子很可能是完全正確的,因為以前我們嘗試過很多小數(shù)據(jù)、小調(diào)優(yōu)算法都達不到這種效果?!?/p>
焦慮的原因就更為復(fù)雜,簡單來說就是怕被拋下。連詩路說,現(xiàn)在很多互聯(lián)網(wǎng)的大佬都在沒日沒夜地找ChatGPT的應(yīng)用方向,大家都在浪潮上,他從十年前就大喊AI,現(xiàn)在更怕自己起了大早趕個晚集?!案闼惴ǖ娜艘步箲],焦慮自己的算法方向有沒有問題?!?/p>
在譚林看來,ChatGPT給程序員帶來的焦慮,也是一件好事。千千萬萬個普通程序員的核心競爭力還是對需求的理解能力,獨立完成設(shè)計架構(gòu)的能力,而這恰恰也是避免自己被AI取代的核心競爭力。“像我從事的網(wǎng)站開發(fā)工作,可能前端人性化設(shè)計類的工作比較難取代,但后端數(shù)據(jù)庫操作、傳參接口這些可能過個幾十年就不好說了,這些也沒辦法,只能多去鍛煉自己的代碼能力,繼續(xù)學習?!?/p>
阿晨最近也在為自己的團隊面試技術(shù)人員,有了ChatGPT之后,他對經(jīng)驗較少的面試者的要求也會更辯證一些?!皼]有真實開發(fā)經(jīng)驗不要緊,我會更希望他們有自己的邏輯思維,不能只會執(zhí)行,只會做ChatGPT能夠做的事情?!?/p>
連詩路還提出,如果將來ChatGPT這類AI大規(guī)模進入企業(yè),伴隨而生可能是對于復(fù)合型技術(shù)人才的需求,也就是產(chǎn)品型技術(shù)人員,或技術(shù)型產(chǎn)品人員,這種人才現(xiàn)在是非常稀缺的。他解釋,從他的觀察來看,國內(nèi)外很多大型互聯(lián)網(wǎng)公司里,產(chǎn)品人員和技術(shù)人員是水火不相容的,雙方不愿意良性溝通。“ChatGPT則需要一個兼容的角色,懂技術(shù),又能快速發(fā)現(xiàn)需求,并把需求清晰地解釋出來,因為理論上講,未來只要給ChatGPT明確的prompts(提示、激勵),它是可以給你編程的?!?/p>
另一個繞不開的話題是成本。阿晨說,參考文心一言的模式,很多企業(yè)都宣布準備接入?!斑@個可能就像現(xiàn)在很多的云服務(wù)器,最開始使用的時候肯定由生產(chǎn)商支付了大部分費用,企業(yè)端可能覺得很便宜,但是一旦依賴了,人工智能公司造成壟斷,這個使用成本就會慢慢增加,現(xiàn)在很多企業(yè)開始考慮搭建私有化的服務(wù)器,我覺得人工智能系統(tǒng)也會經(jīng)歷這樣一種消費階段。”
人工智能進入企業(yè),應(yīng)用于智能傳呼、智能客服等等崗位已經(jīng)有跡可循,但對于程序員這個崗位來說,需要視情況而定。一方面,判斷一個工種能否被人工智能取代,首先要看該工種與智能化的結(jié)合程度,包含大量人類經(jīng)驗和創(chuàng)意的工種尚能保住飯碗。另一方面則是成本的對比,如果人工智能系統(tǒng)用于做客服的價格比雇傭人力要低,那自然可以取代,但如果人工智能系統(tǒng)用于做編程的價格更高,那程序員就會一直被需要。
不可否認的是,機會在走向高處,走向控制AI的算法工程師,走向懂需求和技術(shù)的復(fù)合型人才?;A(chǔ)性工作會逐漸喪失價值感,這一部分人要么離開,要么就要被AI驅(qū)使著,跑得更快。這或許正是人工智能與人類應(yīng)該有的關(guān)系,如果人類創(chuàng)造AI的初衷就是解決掉人類工作和生活中的繁文縟節(jié),那AI就不會是敵人,而是更聰明的諍友。
譚林說,就像馬車協(xié)會抵制燃油車一樣,面對新生事物,舊的事物會天然地排斥和恐慌,但當你發(fā)現(xiàn)潮水不可逆轉(zhuǎn)的時候,你同時也發(fā)現(xiàn),你正和潮水涌向同一個方向。
應(yīng)受訪者要求,樊高、譚林、阿晨、阿冬為化名。