如今,隨著大模型在編程、程式碼生成、自動化測試等領域展現出越來越強大的能力,一個引人深思的問題浮現出來:大模型會不會最終取代程式設計師的工作?
有些人認為,世界上本就沒有哪項工作是絕對安全的,機器取代人工本就是遲早的事。從 GitHub Copilot、ChatGPT 到國產的通義靈碼,各類替代工具紛紛湧現。AI 會做得越來越多,人類做得越來越少。百度 CEO 李彥宏就曾說過,基本上以後不會存在 「程式設計師」 這種職業了,因為只要會說話,人人都會具備程式設計師的能力。
但另一些人,則持不同的觀點。他們認為:「低端程式設計師會消失,有創造力的程式設計師會做大」,「編程仍是基礎,是必須要學的,程式都看不懂,再有創造力也沒用」。360 CEO 周鴻祎就覺得,程式設計師熱十年內不會減弱。盡管未來人人都會用電腦,所謂人人都是程式設計師,但不同的人用電腦創造的產品完全不一樣,AI 時代更需要電腦專家和程式設計師,他們可能是各行各業最有發言權的。
那麽,真實的情況是怎樣的?大模型技術到底能取代哪些工作,又會如何影響程式設計師的職業生涯?作為普通程式設計師,應該如何適應變化?
第 12 期【開源漫談】,我們邀請到了科大訊飛 AI 工程院智慧體研究負責人楊彥波、PingCAP AI Lab 團隊數據科學家孫逸神、Infra 工程師馬工,一起來探討一下,大模型的發展,究竟會如何塑造未來的技術職場?
分享嘉賓:
楊彥波
科大訊飛 AI 工程院智慧體研究負責人,高級研發工程師,熱愛開源,負責大模型模型微調平台 (Maas) 以及智慧體相關技術研究。
孫逸神
PingCAP AI Lab Data Scientist. 自 ChatGPT 震撼釋出至今,聚焦 LLM 套用開發及 Multi-Agents 等套用方向的探索,開發了 TiDB Bot、LinguFlow 等套用,並參與 AutoGen 社群開發。
主持人:
馬工
北歐 Infra 工程師,公眾號【瑞典馬工】主理人。【開源漫談】常駐嘉賓。
01 現在的大模型發展到哪一步了?能替代哪些工作?
馬工: 目前,大模型發展到什麽程度了?對程式設計師的替代到了哪一步?有哪些產品是已經做得不錯的了?各位能講一講嗎?
楊彥波: 今天我們講的話題是大模型會不會取代程式設計師,那我們首先看下程式設計師的定義哦。維基百科上說,程式設計師一開始,指的就是單純的軟體開發者,但很顯然,在今天,程式設計師已經不單單指軟體開發者了,所做的工作也不再局限於寫程式碼。像寫指令碼、軟體測試這種工作,在今天就有可能會被逐步取代。現在的話,像轉譯、文件整理、數據標註這些,在一些簡單的場景,大模型配合一些 agent 的框架已經做得比較好了,這種場景下的職位,相對來說就比較容易被大模型替代掉。
孫逸神: ChatGPT 面世的時候,確實很驚艷,對以往的一些 AI 套用確實是降維打擊。不過,經過大家的體驗,大家會發現,它確實存在亮點,但也還有很多弊端。而對於一個程式設計師來說,真正需要用在生產上面的話,我肯定不是看它的天花板在哪裏,而是要看它的平均水平,或者說它的底線在哪裏,因為這才是保障你服務品質的重點。
那現在看下來的話,它在文字領域也只能做一些比較初級的東西。比如說它比較擅長總結,比較擅長做閱讀理解,但是要真的讓它去做一個很高級的文本關系,它又沒那麽擅長,或者說它的準確率沒那麽高。
放到程式設計師這個領域來看,其實也是類似的。一些基礎的活,它是能做的。但是高級的活,理論上它是不具備所謂的邏輯推理能力的。為什麽它看起來有邏輯推理能力,是因為我們大部份情況下邏輯是蘊含在語言之中的,那它在學習語言的過程當中,只要學習的文本足夠好,它就自然會蘊含一些邏輯在裏面,但是它本身其實並不理解這個東西。你要是真讓它開發一個很復雜的東西,或者一個很新的東西,那它基本上是做不了的。
馬工: 是的,Copilot 給我提供了一些程式碼,很好用,很方便,但是你還是得自己看一遍,不然放進去就是個災難。但是如果老板把我開掉,那他就得自己去看 Copilot 程式碼,我相信他不如請我來看。
話又說回來,你說它不能做高級的東西,但是一個程式設計師的日常工作中,有多少是高級的東西?也許我們 99% 的工作都是不高級的東西。你怎麽看?
楊彥波: 大模型本身它是包含一些原子能力的,比如說基礎的對話,還有它本身頁面上的一些功能,等等。這些都是比較簡單的使用方式,能讓你體驗大模型的效果。
更多的復雜任務,我們一般是利用大模型的 API,在客戶端或者以編程的方式去做一些更高級的套用。我們現在所說的大模型,不僅僅是它自己的那個原子能力的發展,更多的、也是今年最火熱的是編程範式,就是 agent 的一個範式。這一塊也屬於大模型發展的一部份。以後復雜的任務,可能更多會靠智慧體這一塊的概念去解決,這是我的觀點。
馬工: 這個範式轉移究竟是怎麽一個轉移?是說以後不需要程式設計師去寫程式碼、測試、套用、然後部署到生產環境,還是......?
楊彥波: 我舉個例子。現實世界裏,開發一個計畫,往往有一個計畫負責人,有計畫經理,有開發測試,有運維部署,還有其他的各種角色,共同把這個計畫做起來。大模型出來之後,我們可以用大模型去扮演這些角色,去實作它們在這個計畫中的不同目標,共同完成一個計畫。這就是大家最近在搞的智慧體平台。實際上,作為編程這樣一個比較特殊的環境,利用多個角色協同去編碼,其實是非常有希望的。
02 未來還需要人類程式設計師嗎?
馬工: 所以您的意思是,大模型不僅會取代程式設計師,還會把整個 IT 團隊都給幹掉,也就是說以後產品經理直接就跟 agent 打交道,不需要人了,不需要公司了,是這個意思吧?
楊彥波: 我的觀點可能比較激進,可能大概是這樣,當然,取代了這些崗位以後,一定會誕生一些新的崗位。
馬工: 很恐怖的場景啊。
孫逸神: 是這樣子的,因為今天這個題目討論的是最終會不會代替,做到最終這個事情上就很難說了,我們肯定得給它加個時間限制。
以我的經驗來說的話,我做了挺多實驗了,像彥波說的那樣,讓 agent 組成一個團隊,這對解決問題流程是一個比較好的抽象。甚至我在這個層面上再加了一層抽象 —— 就是本身任務怎麽去做?因為任務會有相應的 SOP 來支撐這個任務怎麽做,而不同的 SOP 都會有一整套的工作流程,我可以用這個 group 去組合各個不同的角色去做這個事情。
但這兩層抽象我都做完了以後,它依然很難滿足我實際生產上的工作需求。比如說我讓它做一些數據分析類的工作,實際操作中因為你本身可能輸入 token 數量就很多,然後在這個過程當中,它的上下文交流互動也很頻繁,那這樣的話,其實整個上下文可能超過 100K 以上。
在這種情況下,它最終能完成任務的機率其實還是挺小的。因為你每一個環節都存在它出錯的可能性,最後就是一個乘法原理乘起來!那乘完了以後,它總的來說,成功率還是相當低的。
因為人家寫論文的時候,他一定是會給你看它最棒的亮點!但是這個亮點如果重復 100 次,是不是裏面有 90% 都是這個樣子的,其實不好說。實際我最後用下來,如果上下文足夠長,或者邏輯足夠復雜的情況下,光靠一個 PM 去跟它溝通是挺難的。
PM 要具備稽核所有生成程式碼的能力,那他其實不就已經相當於一個程式設計師?一個很復雜的計畫我認為 PM 基本上沒什麽能力去稽核,甚至他光看輸入輸出都不一定能對得上號。
馬工: 你提到的這個現象,會不會只是一個臨時的現象,過兩三年情況就大不一樣了?比如說你剛才說的 100K 上下文,也許以後只有十兆上下文?又或者,當它復雜度上升的時候,工作不太順暢了我再加一個程式設計師,就能解決問題。但是,相比於以前可能需要 100 個程式設計師,現在加 1 個就行,是不是也就相當於取代了 99% 的程式設計師了?
孫逸神: 根據阿特曼的說法,chatGPT5 之後又是一個飛躍性的進展,所以這個還是挺難預測的。但是基於現在的 Transformer 模型,說白了還是比較傾向於一個馬可夫決策過程,還是以機率為基礎,根據之前的狀態去預測下一個狀態。如果這一點沒有什麽本質的改變,或者說人類對自己的認知科學也沒有一個很完善的理解的話,至少這幾年,取代程式設計師的情況是不會出現的。
現在,大家都在關註上下文增加之後,大模型的品質怎麽樣,關註如何拓展上下文的大小。但是到 100K200K 以上這個級別,它的準確率目前可能 50% 都不到。這種情況下,要突破,估計沒有那麽快。
今年上半年,我試過讓 AutoGen 組成一個 group,讓它能夠按順序去和人聊天,它都做不到。現在你說不光要讓整個 group 的工作流程能夠符合需求,還要讓整個業務的 SOP 符合你的操作需求,整個步驟綜合下來,至少我認為是很差的。
馬工: 這會不會是因為你們做分布式資料庫的要求太高了呢?假如我就寫個什麽醫療資訊管理系統,對程式設計師的要求很低,再把你那一套放到我這個醫療套用上,會不會效果就是可以接受的了?
孫逸神: 一樣的,我覺得對於不同領域來說,存在的問題是比較類似的。LLM 作為輔助肯定是 ok 的,但你讓它真的去自動駕駛,這個肯定是不 ok 的。在程式設計師以外,還有一個比較重要的點,就是這個商業道德的問題,或者說商業責任的問題到底由誰來承擔?
在醫療行業,大家都知道那個影像辨識 CT 在這個領域用了很多,像看片子,其實 AI 都能給出一些結論,但是最終還是要醫生來蓋章簽字。那落到程式設計師這邊來說,也是一樣的。PM 可以把這個任務交給一個 AI 去做,但最後還是要有一個人來簽字畫押。PM 來簽這個字不太可能,最終還是要有一個程式設計師來簽這個字,程式設計師還是要對這個結果做一個檢查。不檢查的話,那他簽了字,老板就要背商業責任了。
馬工: 是個很有趣的點,大模型不能背鍋。
03 什麽樣的崗位最危險?
楊彥波: 自動駕駛的例子我不太贊同。事實上,現在很多城市已經試點了一些公交路線,像我們合肥就有一些試點無人公交,還有無人送快遞,現實的例子已經 OK 了,只不過可能取代真正的人類還需要一段時間。不過,程式設計師這行也一樣,它取代也是逐步的取代,先從一些簡單的場景再到更復雜的場景逐步地去取代。
像我公司現在有一些工作,偏向簡單重復的程式碼開發,我們之前都是招實習生來做,在大模型出來之後,我們已經探索出用一些依賴大模型的 agent 技術來取代這一類工作,極大降低了用人成本。
馬工: 你之前說的智慧體是什麽東西?跟 chatGPT 有什麽區別?
楊彥波: 智慧體這個概念,在大模型沒有出來之前就有了,它的英文名字叫 agent。Agent 中文叫代理人,意思就是你完成一件事情,可能不需要你親自去幹,但你需要一個工具,或者是要一個實體人去幫你幹。現在,這個代理人就是 agent,它可能幹的事情不僅僅是調大模型,它會有一些高階的能力:它知道在這個事情的領域內,怎麽跟大模型互動,怎麽呼叫外部的一些工具。這就是智慧體的概念。它本質上也是大模型,但它是在大模型之上,又封裝了一些特定領域的任務規劃,或者是一些知識,相當於它是更加貼近於我們的真實使用者的。
馬工: 我這樣理解:以前打電話給攜程,需要告訴那個客服,讓他幫我訂票。現在這個客服可能改成了 LLM,對我來說,他就是智慧體。
孫逸神: 沒錯,你可以認為它就是一個控制器,或者說就是一個機器人。它主要做的事情,首先是接受一定的輸入,能夠去感知一個環境,然後透過這些輸入的資訊,自己做一定的決策,最後輸出一些 action 去改變這個 environment。
04 被取代了該怎麽辦?
馬工: 我問一個問題,如果我們程式設計師真的被取代了,能有什麽出路?彥波剛剛說了會有新的崗位產生,但是新的崗位是什麽?我們應該怎麽準備應對這一切?
楊彥波: 我們最初發明 AI 是為了幹啥?為了解放我們人類,提高我們的效率。那麽,大模型一旦它的能力邊界越來越大,能做的事情越來越多,那我們更需要關註的就是大模型給我們做的這些事情的品質,輸出的東西是不是安全的,是不是符合倫理的,怎麽控制大模型更好地輸出?像大模型的內容安全這一塊,一些新的崗位已經出來了。
還有一種崗位就是,怎麽更高級地去使用大模型?像開發 agent,就是一種新的崗位:怎麽去開發 agent,讓大模型可以為小白所用?我覺得這種崗位會越來越多,而且每個領域它的 agent 可能都不一樣,大家的開發方式也逐漸變化了。
馬工: 第一,普通程式設計師哪有能力去開發智慧體?那我只能做那種智慧體的小助手,稽核一下它寫的東西。也就是說,現在它是我的助手,但是過了若幹年之後,我會變成它的助手。聽起來不是很讓我興奮的旅程。
孫逸神: 彥波剛剛提到了,大模型替代一些基礎能力,是 ok 的。它其實還是你的助手,它在幫你幹一些雜活,或者說價值不高、附加值很差的活。作為一個程式設計師來說,你也不可能完全的就幹 「接收一個 stc 的輸入,然後輸出一個程式」 這麽簡單的事情。很多工作越往後,越可能往業務方向去走。那你在不同的領域,你可能還是需要在這個領域的知識裏面去做很多的事情。
CS 這一塊的話,系統架構也在不斷的演進。只要是新的東西,都可以認為大模型是沒有很強的能力的。因為它本質上來說,還是在總結既往已有的知識。在已有的知識前提下,它去創造,那它的創造力是很讓人捉摸不定的。它也許偶爾靈光乍現能給你一些有用的資訊,但是大部份情況下是沒有的。
另外,它對物理定律的理解其實就是沒有。如果去做一個極其復雜的 BI 場景,或者說我是一個開發 CAE 軟體的人,如果連微積分都搞不定,AI 它也一樣算不出來。我覺得,每個領域其實都有很多專業知識可以挖的。
馬工: 明白,如果我是個程式設計師,我要保證我的職業安全,我就應該讓領導盡量用新的語言。每個語言出來了,我就趕緊用。LLM 它還沒有讀到足夠的文本,它就用不了。哈哈。
END
更多直播內容,掃碼看看回放吧↓↓↓
【開源漫談】
OSCHINA 視訊號暢聊欄目【開源漫談】,每期一個技術話題,三五位專家圍坐,各抒己見,暢聊開源。給大家帶來最新的行業前沿、最熱門的技術話題、最有趣的開源計畫、最犀利的思想交鋒。
如果你手上也有新點子、好計畫,想要跟同行交流分享,歡迎聯系我們,講壇隨時開放~
熱門文章
-
-
-
-
-