ChatGPT能取代多少程式設計師?

鈦媒體app 發佈 2024-04-30T04:21:10.082147+00:00

樊高覺得,作為生成式AI,ChatGPT的交互能力極強,「它其實是用整個人類在網際網路中的語調,訓練成了一個大語言集合,可以想像它會開啟一個使用自然語言和機器交互的新時代。」

圖片來源 @視覺中國

文|深燃,作者 | 鄒帥,編輯 | 唐亞華

「去年年底,我看到大佬們都在分享ChatGPT相關的內容,一開始我以為還是資本和大佬fomo的玩具,但是經過使用、和朋友交流,加上自己的研究,我確信ChatGPT模型是革命性的。」樊高曾在國內大廠做過後端工程師,離開程式設計師崗位許久,他因為ChatGPT又再一次將目光投向代碼世界。

樊高覺得,作為生成式AI,ChatGPT的交互能力極強,「它其實是用整個人類在網際網路中的語調,訓練成了一個大語言集合,可以想像它會開啟一個使用自然語言和機器交互的新時代。」而作為曾經的技術人員,樊高也承認,⼤部分初級和重複勞動的工作都會被AI代勞,這在程式設計師工作中也一樣。

「我們日常寫代碼,最早是一行行的碼,每個變量方法都要自己生成,後來idea有代碼補全和編譯器,現在GitHub Copilot(微軟與OpenAI共同推出的AI編程工具)可以通過描述需求和上下文,智能寫代碼。」按照這個邏輯,他認為,編碼也並不是不可取代的能力,交給AI指日可待。

市場上也有AI取代程式設計師的消息傳出。據CNBC報導,據谷歌內部的測試顯示,ChatGPT能夠通過谷歌的初級軟體工程師面試,這個職位通常適用於新的大學畢業生和第一次從事編碼工作的求職者。有計算機從業者也進行了嘗試,發現ChatGPT確實能夠進行寫基礎的腳本,雖不能進行完整的編程直接開發一個程序,但它能通過一步步指令,教人類完成這一項工作,它甚至有debug(排錯)的能力。

如此看來,大量基礎的編碼工作可以由AI完成,而AI通過長時間學習能否無限提升自己的編碼能力,也未可知。有程式設計師向深燃表達了自己的擔憂,曾以為搞IT會是比高速收費員穩定的「鐵飯碗」,然而現在發現自己也是那個小窗里隨時會被取代的人。

沒人能在人工智慧的洪流前保持傲慢。推動科技的人,都有可能反過來被科技取代。

「我幾分鐘寫的代碼,ChatGPT只要幾秒鐘」

譚林是一位前端開發工程師,目前在加拿大工作。去年年底,ChatGPT面世,北美科技圈就已經開始關注並討論了。她說,同事們試用之後,都從技術角度充分肯定了這款工具的優勢,也有人開玩笑說要轉行,以後讓ChatGPT寫代碼就行了。

「我試著用ChatGPT寫了代碼之後,確實感受到了一絲焦慮。」譚林告訴深燃,她給ChatGPT的指令是:寫一個JS(JavaScript)文件,生成一個restart button(重啟按鈕),點擊這個button要求刷新頁面。ChatGPT很快就給出了一段完整的代碼,並在下面解釋了自己的思路。「這段如果我寫可能需要幾分鐘,它只要幾秒鐘。」

譚林嘗試的僅僅是一段基礎的代碼,需求只是在頁面添加一個功能。樹莓健康APP聯合創始人阿晨告訴深燃,他讓ChatGPT寫了一個小程序,它也能又快又好地完成。「我的需求是開發一個AI識別錯別字的軟體。我首先問了一下ChatGPT開發思路是什麼,從後端用哪個框架去搭建,前端用微信小程序的某某框架去做,再到小程序怎麼上架發布,它都能夠一一列舉出來。」阿晨表示,他此前沒有小程序開發經驗,這次也是正好讓ChatGPT教他做,從提供思路到如何執行,阿晨按照它的指引,成功開發完了這個小程序,並在微信開發平台上架了。

和譚林的感受相似,阿晨也發現,ChatGPT不僅能幫用戶解決具體問題,還能有理有據地解釋背後的邏輯,既能授人以魚,又能授人以漁。阿晨舉例,他對ChatGPT提出指令「小程序textarea指定位置顏色變紅」,ChatGPT給出回答:「要在小程序中的『textarea』中指定某個位置的文本顏色變濃,可以通過在『textarea』中插入『rich-text』標籤來實現。在『rich-text』中使用『』標籤,並為該標籤指定『style』屬性來控制文字的顏色、字體大小等樣式。」回答這些原理之後,ChatGPT還給出了具體的操作步驟。

阿晨在開發過程中還遇到了幾個程序報錯,他把報錯信息貼入ChatGPT讓它檢查,它也能準確地debug,「我根據它的回答可以直接解決問題。」阿晨表示,在沒有小程序開發經驗的情況下,他可能需要查閱資料學習,大概兩三天能完成開發,遇到問題也不一定很快地解決。「我們平時會用百度這樣的搜尋引擎,但因為這類工具給出的答案不是特別準確,我還需要在海量的信息中做二次篩選,所以整體時間會拉長。而放到ChatGPT裡面,它從告訴我怎麼做,到解決bug成功運行,總共就花了3個小時。」

人類幾天才能完成的工作,ChatGPT只要幾小時;人類要做幾分鐘的工作,ChatGPT只要幾秒鐘。速度和效率的提升,是AI的價值之一,而在程式設計師的眼中,從分到秒的進化,也幾乎是「恐怖」的程度,因為很難想像AI在速度上的上限。

除了速度,ChatGPT的「邏輯」和「思考」能力也超出了一些程式設計師的預期。譚林在日常工作中會經常尋求ChatGPT的幫助,他覺得比以前用Google效率高得多。

「比如我要寫一個軟體,這裡面包含幾十個文件,我把其中一個文件中的一段代碼篩下來給ChatGPT,這裡邊可能會出現很多變量和數據是來自其他文件的,它就會在底下解釋的時候,說這部分變量雖然在這段代碼里沒有出現,但可能是從其他文件中傳遞過來的。同樣的問題如果問Siri這類AI,它們就會說『我不知道你這個變量從哪來的。』」

接觸了ChatGPT一段時間,譚林的心情也經歷了幾次變化,「最開始聽到的時候還是持質疑態度,以為只是類似Siri一樣的東西。發現它能跟我一樣寫代碼,並且可以運行的時候,我是很震驚的。這種震驚直接引發了一些職業焦慮,它的速度比我快這麼多,那如果它經歷長時間的學習和訓練,是不是就會有取代我的一天?」

譚林以前學生物,轉做程式設計師理由之一就是覺得這個職業很難像收銀、銀行櫃檯、高速收費員一樣快速被機器取代,「疫情也讓我有一些僥倖心理,因為我們這個工作沒有受什麼影響,還能居家辦公,但直到ChatGPT這種AI的出現,我才反應過來,原來程式設計師也不是鐵飯碗,原來我的職業危機可能會是它帶來的。」

能部分代工,但不能完全取代程式設計師

ChatGPT具備基礎的代碼能力,而且寫起來速度更快。不過,如果真的把ChatGPT放在程式設計師的工作場景中,它還是暴露出了不少局限性。

先說寫代碼這一基礎環節。幾位程式設計師的共同體驗是,讓ChatGPT寫一些基礎的腳本,為網頁寫一個功能,指導完成小程序的開發,從技術角度來說都是可行的。但是,「它只能寫代碼片段,不能寫完整的代碼。」阿晨解釋,「可以這樣理解,比如我想生成一個word文檔,但ChatGPT只能生成一個文字形式,我如果需要兩個word文檔,它還是只能給我一段文字,要生成文檔我還需要手動拷貝到office軟體進行人工處理,而且ChatGPT是有字數限制的,最多15000個字符。」阿晨認為,只從寫代碼這個層面來說,不能寫一個完整的程序是ChatGPT最大的劣勢,因為開發人員是需要有把控整個框架的能力的。

有人曾這樣形容程式設計師工種的不可替代性:「程式設計師的核心競爭力不在於寫代碼,而是在於跟各種人扯皮,鬥智鬥勇。」實際上,在業務場景中,不管是前端還是後端,測試還是運維,程式設計師工作中最困難和耗費時間的是需求轉換,測試、修改。簡單來說就是明確公司要什麼,然後做出來。這一項需要大量人類經驗和創意的工作,ChatGPT目前還很難完成。

阿晨舉例,他們做的是健康管理類的APP,裡面需要有一些減肥菜譜,這種菜譜之間存在一定邏輯,「如果讓ChatGPT幫我實現一個菜譜查詢的功能,它不知道這個減肥菜譜是怎麼插入資料庫、怎麼調出來、工作人員怎麼通過後台維護,需要我把步驟跟它講一遍,但這樣的步驟等於是我自己已經把代碼的框架寫完了,它只是幫我實現框架里的內容填充。」

讓ChatGPT理解業務,目前來看顯然是一個偽命題,所以程式設計師在日常工作中最耗時耗力的那一部分,很難被取代。不僅是具體的業務難以理解,涉及一些複雜的極端的生產活動,ChatGPT也只能從自己的資料庫中歸攏總結一些「漂亮的廢話」。

樊高說,比如向ChatGPI提問「k8s中的Workload Type有哪些」,這個問題很基礎,一般是用於面試程式設計師的,ChatGPT能非常完整地作答。「但是如果問『如何做雙十一淘寶的下單功能,讓它支持54萬/gps?』,它只能列舉採用分布式架構、採用緩存技術、使用負載均衡、資料庫優化、代碼優化這幾點。」樊高認為,這只是一個模稜兩可的,沒有給出具體模型理論和實操價值的答案。「而我們現實生活中的一些業務場景,只能使用人腦去探索和解決,這也是程式設計師的工作。解決這些專業性強,跟隨市場變化的問題,人腦甚至都很難給出完美答案,AI暫時更是無法代勞。」

「各行各業都有一些擰螺絲的工作,一般都會交給實習生或者剛入門的人員來做。在我們的工作中,比如設立一個技術方案,需要有人去具體地把它實現,但這個crud(資料庫的增刪改查)就比較無聊和繁瑣。類似這種已經設計好了,只需要執行的工作,以後完全可以交給AI來做。」國內某大廠程式設計師阿冬認為,這種來自AI的『侵入』是個好事,「能被AI替代的工作,本來我就不想幹了。這些沒有創造性的工作由AI接手,正好能讓我有精力做更多有意思的事情。」

從事基礎工作的「底層程式設計師」也許會感到一絲涼意,前美的集團AIoT算法負責人連詩路告訴深燃,高階程式設計師,也就是「大牛」是很難被取代的。

「拿開發一個ChatGPT來舉例。在搭建這個模型的時候,大牛會提出,第一個環節要用supervised deep learning(有監督的深度學習),而且用的是GPT3這樣一個成熟的模型。」他解釋,搭建框架的這撥人很難替代,原因就在於如果一個沒有足夠開發經驗的人,萬一把損失函數放到第一步,優化損失函數值的空間會極低,那對結果來說就是南轅北轍。「我認為底層程式設計師做的事情就是,大牛已經告訴他用什麼框架,告訴他如何調整Dataset和參數的大小,他只需要引入,寫一些固定的代碼即可,這部分ChatGPT就會做。這一撥人已經產生不了更高的價值,或者說這一撥人的價值會被ChatGPT替代。」

「山腳下很擠,山腰上人少一些,山頂上就能呼吸到新鮮空氣了。」連詩路說,歸根結底,有頂層設計能力,並且能夠發現和解決問題,創造新的生產力的程式設計師,才會在ChatGPT面前更加從容和自信。

未來已來,程式設計師不再是「鐵飯碗」

在對效率和生產力的無限追求中,人類創造並訓練人工智慧。當人工智慧發展到ChatGPT出現的這一刻,被人類創造出來的機器,反過來撕下了人類無效工作的假面,將一些重複、機械、含金量低的工作推到懸崖邊。

相比普通大眾,計算機行業人士作為多年來始終身處這個賽道,見證人工智慧一步步來到今天的親歷者,他們又興奮又焦慮。連詩路說,興奮是因為對ChatGPT以及人工智慧的未來充滿希望,「現在ChatGPT走大數據、大模型、大算力的路線,採用龐大的Dataset(數據集),這個路子很可能是完全正確的,因為以前我們嘗試過很多小數據、小調優算法都達不到這種效果。」

焦慮的原因就更為複雜,簡單來說就是怕被拋下。連詩路說,現在很多網際網路的大佬都在沒日沒夜地找ChatGPT的應用方向,大家都在浪潮上,他從十年前就大喊AI,現在更怕自己起了大早趕個晚集。「搞算法的人也焦慮,焦慮自己的算法方向有沒有問題。」

在譚林看來,ChatGPT給程式設計師帶來的焦慮,也是一件好事。千千萬萬個普通程式設計師的核心競爭力還是對需求的理解能力,獨立完成設計架構的能力,而這恰恰也是避免自己被AI取代的核心競爭力。「像我從事的網站開發工作,可能前端人性化設計類的工作比較難取代,但後端資料庫操作、傳參接口這些可能過個幾十年就不好說了,這些也沒辦法,只能多去鍛鍊自己的代碼能力,繼續學習。」

阿晨最近也在為自己的團隊面試技術人員,有了ChatGPT之後,他對經驗較少的面試者的要求也會更辯證一些。「沒有真實開發經驗不要緊,我會更希望他們有自己的邏輯思維,不能只會執行,只會做ChatGPT能夠做的事情。」

連詩路還提出,如果將來ChatGPT這類AI大規模進入企業,伴隨而生可能是對於複合型技術人才的需求,也就是產品型技術人員,或技術型產品人員,這種人才現在是非常稀缺的。他解釋,從他的觀察來看,國內外很多大型網際網路公司里,產品人員和技術人員是水火不相容的,雙方不願意良性溝通。「ChatGPT則需要一個兼容的角色,懂技術,又能快速發現需求,並把需求清晰地解釋出來,因為理論上講,未來只要給ChatGPT明確的prompts(提示、激勵),它是可以給你編程的。」

另一個繞不開的話題是成本。阿晨說,參考文心一言的模式,很多企業都宣布準備接入。「這個可能就像現在很多的雲伺服器,最開始使用的時候肯定由生產商支付了大部分費用,企業端可能覺得很便宜,但是一旦依賴了,人工智慧公司造成壟斷,這個使用成本就會慢慢增加,現在很多企業開始考慮搭建私有化的伺服器,我覺得人工智慧系統也會經歷這樣一種消費階段。」

人工智慧進入企業,應用於智能傳呼、智能客服等等崗位已經有跡可循,但對於程式設計師這個崗位來說,需要視情況而定。一方面,判斷一個工種能否被人工智慧取代,首先要看該工種與智能化的結合程度,包含大量人類經驗和創意的工種尚能保住飯碗。另一方面則是成本的對比,如果人工智慧系統用於做客服的價格比僱傭人力要低,那自然可以取代,但如果人工智慧系統用於做編程的價格更高,那程式設計師就會一直被需要。

不可否認的是,機會在走向高處,走向控制AI的算法工程師,走向懂需求和技術的複合型人才。基礎性工作會逐漸喪失價值感,這一部分人要麼離開,要麼就要被AI驅使著,跑得更快。這或許正是人工智慧與人類應該有的關係,如果人類創造AI的初衷就是解決掉人類工作和生活中的繁文縟節,那AI就不會是敵人,而是更聰明的諍友

譚林說,就像馬車協會抵制燃油車一樣,面對新生事物,舊的事物會天然地排斥和恐慌,但當你發現潮水不可逆轉的時候,你同時也發現,你正和潮水湧向同一個方向。

*應受訪者要求,樊高、譚林、阿晨、阿冬為化名。

關鍵字: