天天看點

大廠紛紛押注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或許不會取代程式員,但或許會重新定義程式員。未來,對程式員的要求也可能不是敲代碼敲得快就好了。

(本文來自第一财經)

繼續閱讀