大廠紛紛押注 AI 代碼,但離代替程序員還很遠

第一財經
2024.04.24 11:26
portai
I'm PortAI, I can summarize articles.

大廠紛紛押注 AI 代碼,但離代替程序員還很遠。阿里、百度和商湯等大廠都推出了 AI 代碼助手,但短期內 AI 還無法取代程序員。業內認為,AI 代碼仍是提效工具,程序員仍是開發流程的核心。阿里雲將使用通義靈碼輔助程序員寫代碼,並計劃讓通義靈碼編寫公司 20% 的代碼。商湯也推出了智能編程助手,價格每台 35 萬元起。儘管 AI 對初級工作有幫助,但在商業級代碼開發流程中仍有限制。未來程序員的工作內容會改變,但仍需有人用好工具。

AI 能不能代替程序員?對於這一熱門話題,業界或許尚未有定論,但一線的大廠已經開始實踐,代碼助手已成為各家爭相落地的重點場景之一。

4 月初,阿里高調宣佈首個 AI 員工上崗,在內部全面推行 AI 編程,使用通義靈碼輔助程序員寫代碼。更早一點,在 3 月,百度發佈了 Comate2.0 代碼助手,對個人開發者免費。而在去年 12 月,商湯推出智能編程助手代碼小浣熊,可幫助開發者提升編程效率超 50%,就在 4 月 23 日,商湯在技術交流日上宣佈推出代碼大模型一體機,輕量版每台售價 35 萬元起,單台支持 100 人團隊使用。

眾多大廠的佈局,讓程序員看起來離被替代已經不遠,不過短期來看還不必擔心。此前被認為是全球首個 AI 程序員的 Devin,在近日被指造假,在演示視頻中 “自導自演”。有業內人士表示,AI 或許能幫忙寫一些測試腳本這樣的初級工作,但如果放在更嚴肅的商業級代碼開發流程裏,哪怕是 GPT-4 也只能做到較低的水平。

商湯科技 Copilot 產品負責人賈安亞也一直在思考未來程序開發的終局,她認為,AI 代碼仍然會是提效工具,其核心是讓程序員更輕鬆便利地工作。未來程序員的工作內容一定會改變,但也一定需要有人去用好工具,“就像有蒸汽機後,某個人可能是從馬車伕變成駕駛員,有了移動互聯網,一些店從線下搬到了線上,但是很多事情本質是沒有改變的。” 未來程序員仍然是開發流程的主體和核心,但程序員或許會被重新定義。

大廠押注 AI 代碼

4 月 2 日,阿里雲宣佈內部正全面推行 AI 編程,使用通義靈碼輔助程序員寫代碼、讀代碼、查 BUG、優化代碼等。阿里雲還專門給通義靈碼分配了一個正式的員工工號——AI001。

阿里雲相關人士透露,公司未來 20% 的代碼將由通義靈碼編寫,但程序員仍然是研發的核心,他們將有更多時間專注於系統設計以及核心業務開發工作。

據介紹,在阿里雲內部,通義靈碼已在各個開發環節擔任代碼助理角色。以 API 開發測試工作為例,通義靈碼可將數十分鐘的人工編寫測試耗時縮短到秒級,節省程序員 70% 以上的測試代碼工作量。

百度同樣已在內部推行 AI 代碼,在 3 月百度發文表示,代碼助手 Comate 已編寫了百度內部四分之一的代碼,而在百度之外, Comate 已入職喜馬拉雅、軟通動力、上海三菱電梯等 1 萬多家企業,企業代碼採納率逾 50%。

百度創始人、董事長兼首席執行官李彥宏曾表示,2024 最想推動的一件事,是讓每個人都具備程序員的能力。他還表示,未來的編程語言只會剩下兩種,一種叫英文,一種叫做中文,“以後不會存在程序員這種職業,因為只要會説話,人人都會具備程序員的能力。”

在 3 月底的 GDC 大會開幕式上,商湯科技董事長兼 CEO 徐立曾提到旗下代碼小浣熊產品,在聚焦一些重複性的勞動後,其能夠減少軟件開發全流程需要的時間,幫助開發者提升編程效率超 50%。以代碼小浣熊的誕生為例,他表示,如果從需求分析到最終完成產品開發,一般需要 100 人天(注:人天是衡量人力資源消耗量的單位,人數和天數相乘),在去年,代碼小浣熊已經能做到節省 30% 的工作量,來到 70 人天。

作為代碼小浣熊產品的團隊負責人,賈安亞介紹,軟件開發全生命週期包括從設計階段到架構,然後到開發、測試、部署、維護等的階段。目前,在開發和測試階段,代碼助手的提效是最明顯的,因為開發和測試環節裏有很多較為枯燥的重複性工作。

“比如要理解上下文做一些代碼補全,或者代碼寫完了做一些單元測試,擺脱這些枯燥工作本身對程序員來説也是一種解放,可以花更多精力聚焦在一些有創造性的工作,比如架構設計等。” 賈安亞説。

在一開始,代碼小浣熊能做的是相對較為重複的工作,隨着模型的推理能力增強,賈安亞表示,現在也可以做一些創造性的工作,比如幫助做需求文檔編寫、架構設計,甚至是面對不同客户的一些具體場景做一些部署方案,屆時整個軟件開發週期就能大幅縮短。

在 AI 代碼上,商湯已經發布了更完整的產品。4 月 23 日,在 2024 年商湯技術交流日上,商湯發佈了 “日日新 5.0” 大模型,同時面向包括代碼在內的四個行業推出企業級大模型一體機。據介紹,小浣熊代碼大模型一體機輕量版能夠幫助開發人員更高效地編寫、理解和維護代碼,且相較於傳統的雲服務模式,一體機的所有數據處理過程均在私有環境內完成,能避免數據在傳輸過程中的泄露風險。商湯表示,小浣熊代碼大模型一體機在 HumanEval 的測試通過率達 78.1%,超過 GPT-4 的 74.4%。

2024 年被認為是大模型應用爆發的一年,在眾多場景中,代碼為什麼成為各家廠商重點佈局板塊?在交流中,賈安亞認為,過去一年多大模型智能化的能力有了進一步增強,其中的推理能力、代碼能力、理科思維也是過去一年商湯在大模型上的重點突破。這些能力都是代碼助手落地的重要基礎。

另一方面是與真實場景的結合。賈安亞提到,現在的大模型還很難保證 100% 的精確,但是在代碼這種場景下,本身程序員編寫的代碼也需要再次審查,因此即便現在大模型還有不確定性,AI 仍然可以很好去賦能程序員提效。

“結合商湯本身的一些積累,和商湯大模型的一些進展,以及用户的反饋需求,辦公小浣熊和代碼小浣熊是我們當前選定比較重點的方向。” 賈安亞表示。

重新定義程序員

“很多人説,你們 AI(代碼)都出來了,會不會把程序員代替掉?” 談到 AI 程序員代替論,通義靈碼產品負責人張燎原的第一反應是,“不會,程序員還是核心,人永遠是主體,AI 是客體和輔助。”

阿里雲此前提到,公司未來 20% 的代碼都可以由 AI 去輔助生成,在這個基礎上,AI 寫作代碼的上限有可能提高到 80% 嗎?張燎原認為,短期內是做不到的,設計或者提供思路這件事情還是需要人。

“寫代碼的過程,也是人在思考和設計的過程,在寫一個框架時腦子裏在做相應的設計,只是框架寫完之後,有一些很簡單很明確的任務,AI 可以獨立幫助我們完成,但是在軟件研發過程當中,尤其遇到生產上的軟件研發工作,是非常大型的,會涉及到比較多得靠人腦去思考的內容。” 張燎原説。

張燎原認為,在程序設計階段裏很多都是 AI 難以代替人的。“還是需要人去表達意圖、分配活,這些活做得好不好、對不對,也要人去判斷,從這個角度來説,一頭一尾都是以人為主去做的。”

上海人工智能實驗室領軍科學家林達華教授此前對第一財經表示,AI 作為代碼助手這個事,是經過驗證,確確實實能夠帶來生產力提升的,“比如我寫一個功能(的代碼),這個功能我自己本來沒寫過不會寫,那通常是到 Google 或百度查一下別人怎麼寫的,借鑑過來改改,現在代碼助手同樣也是這個邏輯,因為它學了上億個代碼庫,所以寫函數級的代碼的填空,甚至幫忙寫一些測試腳本等等初級的工作,確實能夠幫助程序員節省非常多的時間。”

不過,林達華也提到,如果把 AI 代碼放在一個更加嚴肅的商業級的代碼開發流程裏,就會發現哪怕是 GPT-4 也只能做到一個比較低的水平,甚至在一些場景下 10% 的成功率都做不到。

現在某種意義上 AI 代碼還是一種語言能力,“就是以前見過的內容能夠大差不差地,根據一定的場景改一改調出來,但是它現在顯然並不具備非常深層次的邏輯思維的能力,這個對於我們構建一個真實的軟件來説其實是最重要的。” 林達華認為,現在談取代程序員,大模型還有一定的距離。

此前一位大廠程序員也有同樣的感觸,他對第一財經提到,大模型雖然對 AI 編程有幫助,但離解決複雜問題還是有很長的距離。“就像造房子一樣,不是隻拿着榔頭在那錘,首先得把怎麼造的設計圖構思好,然後第一步造什麼,第二步造什麼,怎樣造它不會塌,要造多久都想清楚了,然後再一步一步地去敲。” 這些都是程序員需要做的部分。

3 月初,初創公司 Cognition 發佈的首個 AI 軟件工程師 Devin 曾轟動一時,號稱 “全球首位 AI 程序員”,雖然尚未公測,但根據官方的報告,只需一句指令,就可端到端地處理整個開發項目,此外視頻顯示它具備自主學習新技術、端到端構建和部署應用、自主查找和修復代碼問題等能力。

就在 4 月 9 日,一位自稱有 35 年軟件工程師經驗的網絡博主逐幀復現了 Devin 的演示視頻並提出四點質疑,包括 Devin 所展示的編程能力存在一定欺騙性,“它處理的任務並非隨機,而是演示者精心選擇的刻意呈現”;此外,Devin 在操作過程中看似修復了許多問題,但這些問題很多都是 Devin 的 “自導自演”。這也證明目前 AI 還難以處理複雜問題,去代替程序員。

賈安亞在採訪中也表示,現在還很難靠 AI 完全端到端去寫正式業務的代碼。“所以我們到後續發佈的產品,其實還會是人類和工具交互的一個邏輯,其實是半人工、半模型的狀態去做一個交互,做端到端的提效。”

對於未來的終局,賈安亞認為,可能會衍生出基於自然語言的編程語言框架。本身程序員的開發語言就是不斷迭代的,面向人類用更友好的方式去呈現,如 Java、Python 其實都是在低級編程語言上抽象出的高級編程語言,不過,未來如果用人類的自然語言去編程,一個問題在於,機器語言不太會有歧義,是非常嚴謹的語言,但自然語言特點在於其複雜性,在語法、語境、語音、語調中都隱含着很多信息,表達靈活多變,呈現的語義是模糊的。而程序執行,需要的是準確、穩定地輸入和輸出。因此,我們最習慣的自然語言一定不是能直接引起廣泛共識的下一代編程語言,可能會在此基礎上衍生新的語言框架。

到最後,賈安亞認為,AI 會是一個提效工具,它的核心是讓我們更輕鬆便利地工作。未來程序員的工作內容一定會改變,未來也一定需要有人去用好這些工具,“就像有蒸汽機後,某個人可能是從馬車伕變成駕駛員,有了移動互聯網,一些店從線下搬到了線上,但是很多事情本質是沒有改變的,只是説我們怎麼去用好它。”

“產品經理、數據分析師、軟件開發工程師這些崗位大多是前一批科技變革的產物。” 賈安亞認為,在下一個科技變革的時代,一些具體的崗位和內容可能會有一些變化,但世界的內核並沒有變。

AI 或許不會取代程序員,但或許會重新定義程序員。未來,對程序員的要求也可能不是敲代碼敲得快就好了。