20 世紀 60 年代末出現的“軟件危機”揭示了軟件開發中的諸多問題,也是在此時,軟件工程概念正式誕生。此后,軟件工程的發展經歷了多個階段。自去年 ChatGPT 帶火大語言模型熱潮后,軟件工程的發展迎來了里程碑式的新跨越:大模型增強了自然語言處理能力,使得人機交互更直觀,并以協同者的形式參與到軟件開發的整個周期中,推動了編碼任務的自動化,加快了開發周期和提升軟件產品的質量。
如今,大模型已經可以在軟件開發的多個環節(如功能設計、代碼開發、測試)中發揮作用,未來,大模型的能力邊界還將繼續擴大。越來越多的開發者擔心自己在某一天會被 AI 所取代,甚至有人用“OpenAI 殺死了開發者”來形容當下的困局。一些技術專家也給出了悲觀的預測:
Fixie 聯合創始人兼 CEO、前谷歌 Chrome 移動團隊工程總監 Matt Welsh:“程序員這個工作或許在三五年內不復存在,甚至編程這個學科都會被終結。”
Stability AI 創始人兼 CEO Emad Mostaque:“五年內,人類程序員將徹底消失。”
馬斯克:“有一天,人們將告別艱苦的工作,人工智能將接管大部分任務。”
……
以大模型為代表的 AI 技術在過去一年以超乎想象的速度進化,不斷重塑我們的生活和工作方式。回溯大模型技術在軟件開發領域落地應用這一年,究竟帶來了哪些改變?開發者如何應對大模型帶來的沖擊?在大模型的驅動下,軟件開發又將走向怎樣的未來?
大模型已經成為 軟件工程變革的最大推動力 大模型浪潮下,編碼助手走向自動化
早在 2020 年,大模型就已經在技術領域得到應用,但在當時,大模型還局限在自然語言中。隨著 2022 年 11 月底 ChatGPT 的發布,以及 GPT-4、LLaMA 等大模型相繼亮相,大模型早已超越了自然語言范疇,發展到了編程語言。
匯量科技 Mobvista 技術 VP 兼首席架構師蔡超認為,2023 年 AI 領域的大事件除了包括 GPT-4、LLaMA、Falcon 等大模型的發布,以 Copilot 形式為代表的大模型技術在不同領域的應用同樣值得關注,如 Microsoft 365 Copilot、GitHub Copilot 等等,這些 Copilot 讓 AI 真正成為了一個人類的虛擬助手或員工,并深刻地改變很多行業的工作模式。
與傳統的機器學習方案相比,這波大模型浪潮在編碼助手領域的明顯趨勢是性能獲得顯著提升、且構建門檻大幅降低:基于大模型的自動編碼能力可以遵循設計指令,通過簡單的自然語言交互生成高質量代碼和程序。同時,項目研發過程中形成的數據、經驗和業務需求也可以被大模型掌握并轉化為通用的軟件工程能力,進而取代更多的流程和工具,解決復雜的開發難點和團隊協作問題。
騰訊機器學習平臺技術總監、算法負責人康戰輝認為,大模型浪潮的興起推動了 AI 編碼助手邁向自動化,并存在以下三大發展趨勢:
第一,過去的 AI 編碼助手主要應用于軟件工程領域。但如今,所有通用的大模型都具備編碼功能,這是該領域的一項明顯變革。
第二,盡管過去存在諸如啟發式規則和深度學習等方法,但現今的 AI 編碼助手展現出了更高的智能化水平。它們不僅處理代碼輔助輸入和續寫,還能通過自然語言與人類交互,這一特點尤為強大。
第三,大家過去常談及低代碼或無代碼的趨勢,主要通過拖拽和積木式工具實現。而今,借助 AI 編碼助手,開發人員和技術人員只需用自然語言清晰地描述想法,便能輕松實現低代碼、無代碼開發。這意味著低代碼、無代碼的概念已發生變化。
2023 年,大模型正加速進化。最新發布的 GPT-4 顯著提升了代碼能力,也讓大家看到了其在多個公開代碼測試集上的出色表現。同時,LLaMA 等開源大模型也加速了 AI 編碼助手在業界的應用,不少企業基于開源大模型進行領域增訓,代碼版本表現卓越。
“現如今,許多公司可以基于開源的代碼模型構建自己的 Copilot,進一步加速 AI 代碼助手的實際應用。這不僅在閉源和開源領域產生了積極影響,還促使更多公司開發自己的代碼助手。隨著 Copilot 概念的普及,各公司正采取多種方式提升效能,深入整個研發鏈路。這可能標志著 AI 編碼助手領域的一個重要趨勢變化。”康戰輝提到,更加值得思考的是,代碼在從大模型中獲取大量世界知識和邏輯知識的同時,也在反哺大模型。
通用大語言模型其邏輯能力的提升在很大程度上得益于代碼續寫。代碼作為一種類似于自然語言的表達方式,為模型提供了豐富的邏輯訓練數據。由于很多代碼是用英語編寫的,其中的保留詞與英語非常相似,這種以自然語言為基礎的代碼符號實際上表達了一種人類的邏輯。因此,代碼續寫和大語言模型之間存在著相輔相成的關系。通過代碼續寫,大語言模型能夠更好地理解和表達人類的邏輯,從而提升其邏輯推理能力。同時,大語言模型的發展也為代碼續寫提供了更強大的工具和平臺,使得代碼續寫更加高效和準確。
這種相輔相成的關系不僅有助于提升大語言模型的邏輯能力,還能夠促進代碼續寫的進一步發展。未來,隨著技術的不斷進步和應用場景的不斷擴大,代碼續寫和大語言模型將會在更多領域發揮其巨大的潛力。
思碼逸創始人兼 CEO 任晶磊認為,從長期來看,大模型已經成為軟件工程變革的最大推動力,并有望為軟件開發團隊提供新的人工智力資源和更高效的協作方式。但短期內,大模型的基礎能力未必能夠達到人們想象中的美好愿望。“所以我們在 2023 年也看到了 GPT 編程的‘冷熱’交替。人們對大模型的認知被推上‘愚昧之巔’,又走向‘絕望之谷’——親歷種種跌宕起伏,我們的心態也受到很多沖擊。”
大模型時代下的編碼工具及背后技術
不少受訪專家提到,在大模型技術的加持下,編碼工具能力邊界得到了進一步拓展。
過去的編碼工具主要依賴于語法樹和部分統計機器學習技術,應用場景主要是針對函數級的續寫,例如在編寫代碼時,可以快速地利用某個代碼庫中的公共功能,但通常只能理解某個函數或 API 上下文,然后生成相關代碼片段,存在一定的局限性。
據網易杭州研究院人工智能專家、AI 算法團隊負責人劉東介紹,目前 IT 行業主要存在兩大類經過大模型改造過的工具:面向專業程序員,主要是專注于編程開發環節的編碼助手工具產品,包括代碼補全、函數生成、代碼糾錯、Chat 咨詢開發相關問題,以及簡單的測試用例生成,典型工具如在 JetBrains、VSCode 等主流 IDE 中提供智能編程助手插件等。面向數據消費人員,尤其是業務、產品、運營等非技術人員,過去主要是 GUI 形式的 BI 工具,涉及維度、指標等概念的理解,門檻比較高、操作復雜。目前已有基于大模型的對話式 BI 產品,如有數 ChatBI 等,能夠降低非技術人員取數門檻、提升數據分析效率。
雖然當前主流的 AI 編碼工具與傳統編碼工具存在相似性——都是在主流 IDE 中作為插件產品提供給開發者,但其背后的技術方案卻存在顯著的差異:在 AIGC 時代,主要的算法技術方案是大模型和檢索增強。背后具體又涉及到幾個關鍵技術,如以自然語言為代表的深度學習技術、強化學習技術等。此外,代碼模型需要處理大量的代碼數據,同時還需要通用數據來學習背后的邏輯和知識,因此大模型技術還包括大數據處理能力,特別是處理代碼的能力。
“目前在 AIGC 編程工具中,代碼領域大模型、項目代碼等檢索增強技術必不可少,對實際編程體驗都有顯著影響。代碼大模型是讓編程工具更聚焦到編程領域,檢索增強技術更能有效利用企業項目代碼或個人代碼倉庫、以實現個性化實時信息增強。”網易數帆人工智能產品線總經理胡光龍總結道。
代碼模型開發有哪些關鍵點?
隨著大模型熱潮持續升溫,越來越多的國內外科技公司參與其中,押注 AI 大模型及相關 AI 應用。其中,國內的 AI 大模型包括百度“文心一言”、阿里云“通義千問”、騰訊“混元”、華為“盤古”、網易“玉言”、抖音“云雀”、智譜 AI“ChatGLM”、中科院“紫東太初”、百川智能“百川”、浪潮信息“源”、商湯“日日新”、科大訊飛“星火”等等。值得一提的是,不少大模型都具備編程能力,大模型通過學習大量的代碼樣本,可以理解和生成代碼,甚至可以完成代碼修復和自動編程等任務。
浪潮信息人工智能軟件研發總監吳韶華認為,大模型通常在語言相關任務上表現出色,在邏輯和計算方面相對較弱。但從 GPT-4 開始,編程能力逐漸受到開發者的重視,并成為評估大模型能力的重要標準。盡管編程能力不一定是大模型的“基本”能力,但當前許多大模型確實具備了一定的編程能力。對于大模型來說,提升編程能力的關鍵在于建立代碼更改與人類指令之間的聯系。通過層次化的自然語言將算法任務分解,逐步引導模型完成代碼生成。 這種方法對訓練數據的質量要求極高。為了實現這一目標,開發者需要精心選擇和準備高質量的訓練數據,以確保模型能夠從中學習到有用的知識和技能。此外,還要不斷優化模型的架構和訓練過程,以提高模型的編程能力和泛化能力。
據康戰輝介紹,在代碼模型的開發中,有幾個關鍵點不容忽視:
首先,高質量的代碼數據是基礎。這不僅涉及到數據的收集,更重要的是數據的清洗。由于編程語言的多樣性,人工干預在代碼清洗過程中是必要的,團隊需要理解什么是高質量的代碼,這涉及到代碼的格式和實現質量。這就需要領域代碼的專業人員來進行高質量的代碼識別和清洗,他們能夠識別出優秀的代碼并進行整理。
其次,如果代碼存在缺陷或錯誤,如何進行修正也是關鍵。這相當于為代碼模型提供一些“老師”,以確保模型不僅能學習到數據,還能糾正錯誤。因此,高質量的數據標注對于模型的表現至關重要。這需要團隊投入大量的時間和精力在數據清洗和修正上。
此外,安全性是另一個重要考慮因素。雖然底層代碼可能是安全的,但如果涉及到與用戶界面的交互,如 SQL 查詢等,就可能存在 SQL 注入等安全風險,前端代碼也可能存在漏洞。這需要團隊對領域代碼語言有深入理解,并關注安全性問題。因此,具備綜合能力的人才在解決這些問題上將發揮關鍵作用。
“總的來說,代碼模型的開發是一個多目標的過程,既要求對代碼本身有深刻理解,又要求對安全性等方面有專業知識。這意味著需要各領域的專家,并且需要具備多方面技能的人來處理這些問題。”康戰輝總結道。
除了基礎大模型,2023 年也涌現出了很多軟件開發垂直領域的專業模型,以及各種協助型 AI 編程工具。比如在低代碼平臺領域,網易數帆自研玉言 NL2NASL 領域大模型,將低代碼平臺升級為 CodeWave 智能開發平臺,聚焦在以全棧低代碼、智能大模型為基座打造的軟件開發工具平臺;思碼逸基于 ChatGPT 開發了一款可以輔助研發效能提升的插件 DevChat,支持 VS Code 和 IntelliJ 多種主流 IDE,將大模型能力送到開發者手邊。
劉東認為,大模型在落地應用方面有著巨大的想象空間,其中最重要的一個方向是利用自然語言進行人機交互(LUI),LUI 相比傳統的命令行和 GUI 方式更為便捷和自然。在軟件工程領域,大模型的應用目前仍處于探索階段,“大模型在軟件研發工作流中最大的價值是輔助人工提效。業界期望能夠在軟件工程全鏈路中使用大模型,包括項目管理、需求分析、編程開發、智能測試、部署運維等環節,期望能提升全鏈路效率,加速軟件開發。”
AI 大模型在研發效能提升方面 具有獨特的優勢和潛力
那么,在軟件開發的過程中應用大模型或其他 AI 技術,實際體驗如何?真的可以提效嗎?
分析公司 O'Reilly 日前發布的《2023 Generative AI in the Enterprise》報告指出,越來越多的開發者正積極在工作中應用 AI 技術:77% 受訪者使用 AI 來輔助編程;54% 受訪者預計,AI 的最大好處是提高生產力;66% 受訪者預計,利用 AI 編程是未來開發人員“最需要的技能”;16% 從事 AI 工作的受訪者表示正在使用開源模型。
不少受訪專家在接受 InfoQ 采訪時也提到,個人及團隊會在內部研發中廣泛應用大模型,確實提升了研發效率。“我們在 2023 年初,GPT3.5-Turbo 發布之后就開始著手將大語言模型應用到我們軟件開發過程中,并且與公司的 DevOps 平臺 MaxCloud 結合,構建了 DevOps Copilot,還開發了我們自己的 VS Code 插件。”蔡超提到,隨著時間的推移,大模型的應用范圍已經從最初的運維和部署環節擴展到了軟件開發的全過程,包括設計、編碼、測試、部署以及線上維護。從實際效果來看,大語言模型在軟件開發中的應用取得了顯著成果。“根據我們的統計數據,現在的使用頻率和代碼生成量都比最初翻了近 10 倍,線上系統的發布效率及穩定性都有很大提升。”
對于企業而言,研發效能的提升至關重要,甚至有觀點認為,研發效能高已經成為一家科技公司的核心競爭力。AI 大模型通過自動學習和生成代碼,加快開發速度,減少開發時間和人力成本,并通過自動化的測試和優化來進一步提高開發效率,提高代碼質量和穩定性,其在研發效能提升方面具有獨特的優勢和潛力,能夠降低人們落實最佳工程實踐的阻礙和成本。
任晶磊提到,實際上,許多開發者并不是不知道什么是最佳工程實踐,而是由于時間和精力的限制,或者是因為惰性,不愿意去做。僅僅依靠管理者的口頭要求往往很難推動實施。例如,按照規范編寫提交信息、編寫單元測試等,需要開發者付出額外的精力。如果 AI 大模型能夠顯著減少人們在這些方面所需的精力消耗,降低成本和阻礙,那么它就能夠有效地推動開發者和團隊采取實際行動。因此,AI 大模型的應用有望提高開發者的生產力和效率,推動軟件開發行業的持續發展。
但一個事實是,當前大模型的產出還是需要人來把握和負責,類似于 L1/L2 級別的自動駕駛,人在其中扮演的角色至關重要。這也代表著,研發效能度量本身并沒有發生根本性變化,依然可以通過統計項目或團隊的需求吞吐、代碼當量、缺陷密度等指標度量研發效能。
“從務實的角度出發,我們建議企業首先將大模型應用于效果更加可見的場景中,否則這部分投入很快也會被管理層挑戰。例如,輔助寫好單元測試,可以提升單元測試覆蓋率(可見的結果),特別是覆蓋復雜度高、被依賴多的高危函數(也是可見的結果);輔助寫好提交消息,項目獲得可讀性更高的提交歷史,效果直接可見,還能方便數據分析(比如可以呈現投入在新功能、bug 修復、重構等不同類型工作中的代碼當量占比);輔助重構代碼,可以直接估算 AI 替代人重復勞動的工作量。行勝于言,這三個場景正是我們打造 DevChat 過程中優先選擇的重點。”任晶磊說道。
OpenAI 殺死了開發者?
新技術的出現往往會對傳統的工作方式和職業產生沖擊,大模型技術也是如此。大模型在為開發者帶來生產力提高等機遇的同時,也引發了大家對其“是否會取代開發者”的擔憂,甚至有一種更加極端的聲音認為“OpenAI 殺死了開發者”。
表面上看,OpenAI 確實具備加速殺死大大小小 AI 開發者的能力:從企業層面來看,OpenAI 的每次重磅發布、開發者大會都會顛覆原有的市場競爭格局,有開發者感嘆“OpenAI 每發布一個功能,就消滅了一家初創公司”“OpenAI 殺死了 YC 2023 年整個 batch 的項目”;從個人層面來看,自 ChatGPT 發布以來,關于 AI 取代開發者的討論甚囂塵上,更有聲音認為“程序員這個工作或許在三五年內不復存在,甚至編程這個學科都會被終結”。
不少專家在接受采訪時表示,“AI 取代開發者”這個觀點過于偏激。吳韶華認為,AI 在編程領域的能力還沒有達到完全取代開發者的水平,雖然 AI 編程助手可以提高程序員的效率,讓程序員的產出更高質更大量,但目前主要還是體現在效率方面。“軟件開發行業是拼效率的行業,同樣的產品,誰更高效更快速的推向市場,誰就能贏得市場的先機,而沒有大模型外掛加持的開發者和有大模型加持的開發者,其效率的差距會越來越大。因此,對于軟件開發行業來說,現在就應該毫不猶豫地引入大模型技術,以提高開發效率。同時也要考慮將大模型引入到目前的軟件中,給用戶帶來更高效流暢的體驗。”
胡光龍對此也有相同的觀點,當前,基于大模型的智能編程工具在實際業務中的應用,并沒有像外界所想象的那樣徹底顛覆現有的軟件開發流程,而是作為一種輔助工具,增強了開發者的能力。在軟件開發流程中,開發者需要承擔許多職責,包括需求溝通、評審、分析建模、架構與模塊設計、測試等。實際上,編碼只占整個開發流程的約 30%,即使 AI 生成的代碼占比達到 20%,全鏈路的效率提升也只有 6% 左右,效果并不顯著。
對于開發者來說,這些智能編程工具是一種新的工具,掌握和使用這些工具可以提升項目開發效率,這是這些工具的最大價值。在 AI 時代,開發者需要掌握這些新式編程工具,并利用它們提升自身技能,更好地支持企業項目并創造價值。因此,開發者需要積極擁抱這些新技術,不斷學習和適應新的開發方式,以保持自身的競爭力和適應未來的發展。
從另一方面來看,大家對“OpenAI 殺死了開發者”的擔憂實際上也在提醒我們:在 AIGC 時代,“開發者”角色正在被重新定義。AI 技術正在軟件開發領域扮演越來越重要的角色,它通過自動化重復性任務和提供深入見解來改變軟件開發流程,并賦予了開發者新的涵義。蔡超認為,在 AI 時代,開發者不再只是編寫代碼的人,而是需要具備利用 AI 工具來提高生產效率和創造力的能力。這個時代的開發者應該是一個能夠與 AI 合作,利用 AI 的能力來解決更復雜問題的創新者。“所以說,OpenAI 并沒有殺死開發者,而是在推動開發者向更高層次的角色轉變。”
與其擔心被 AI 取代,開發者真正的挑戰是如何更好地與 AI 合作,積極探索與 AI 的協作方式。在 AI 大模型的驅動下,軟件開發過程將變得更加自動化,因此在開發過程中,開發人員的角色也可能會發生變化。比如,測試人員將更加側重于驗證模型生成的代碼是否滿足需求和質量標準,研發人員還需要額外關注模型的持續學習和優化,以確保軟件能夠適應不斷變化的需求。“總的來說,由大語言模型驅動的軟件開發可能會使一些角色變得不那么重要,而另一些角色變得更加關鍵。特別是,編碼工作可能會減少,而對于理解和指導模型的能力的需求可能會增加。”蔡超總結道。
未來,大模型將如何 改變軟件研發工作流?
盡管當前各式大模型及 AI 編碼工具百花齊放,但我們還需清晰地認知到,目前大模型還不能生成復雜項目級別的代碼。不少受訪專家提到,當前 GPT-4 依然是天花板,國內大模型仍在追趕中。預計 2024 年,基于大模型的編程能力的工具軟件將逐漸落地,越來越多的開發者將開始使用大模型進行輔助編程。隨著用戶基數的增加,大模型的編程能力將進一步提升,最終達到易用好用的目標。
展望未來,下一代生產力工具應該是什么樣子的?不少專家表示,下一代生產力工具不僅僅是一個知識庫,更是一個具備強大推理能力和多模態理解能力的伙伴。它能夠根據不同的外界輸入進行推理,并提供精準的答案和建議。這種伙伴關系可以幫助我們更好地應對各種挑戰,提高工作效率和創造力,并肩作戰,取長補短。
“理想中的編程工具應該是用戶只需描述需求,軟件就能自動完成開發。這種工具需要具備自動完成需求分析、接口定義、編碼開發、自動測試和發布部署等功能。然而,根據目前的 AIGC 技術原理,實現這一目標可能還有一定難度。未來,我們可以關注低代碼 +AIGC、多模態和 Agent 等方向的發展。”胡光龍提到。
從短期和長期視角來看,康戰輝認為短期內需要探索如何利用大模型來快速生成原型。例如,根據用戶的需求和設計,快速生成出相應的模塊框架圖和原型。這需要開發者克服一些技術挑戰,比如如何將設計轉化為模型可理解的形式,如何保證生成的原型的質量和功能等。從長期來看,我們有望實現更為遠大的目標。例如,給定一個原型圖,模型能夠自動構建出一個完整的原型,包括前端和后端的實現。這需要我們解決一些關鍵的技術問題,如如何將圖形信息轉化為代碼,如何處理底層邏輯和復雜的模塊組織等。
“總之,要讓大模型在軟件開發領域發揮更大的作用,我們需要不斷提升其多模態的能力、推理能力和復雜模塊組織能力。這將有助于提高開發者的效率和軟件的質量,進一步推動軟件開發行業的發展。”康戰輝總結道。
審核編輯:劉清
-
GPT
+關注
關注
0文章
354瀏覽量
15420 -
ai技術
+關注
關注
1文章
1280瀏覽量
24345 -
OpenAI
+關注
關注
9文章
1099瀏覽量
6569 -
ChatGPT
+關注
關注
29文章
1563瀏覽量
7791
原文標題:“百模大戰”誕生各種編程工具,但GPT-4 依然是天花板
文章出處:【微信號:AI前線,微信公眾號:AI前線】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論