今天小編分享的科技經驗:關于軟體/代碼生成的思考,歡迎閲讀。
** 作者:宿文
一、智能代碼生成的優勢
1、軟體應用的實現方式主要是代碼
信息革命後,軟體應用将每種業務行為映射到二進制世界的載體,進而實現可表達、可優化的數字化目的。
軟體應用的實現方式主要是代碼。發展至今,全球已經有近 1 億程式員,中國近 1000 萬程式員。
随着機器學習和人工智能技術的不斷進步 , 智能代碼生成正成為業界關注的新焦點。基于大規模訓練的軟體代碼生成模型 , 不僅可以自動編寫高質量代碼 , 還可以完成各種復雜的軟體開發任務 , 極大地提高了軟體開發的效率和生產力。
這些都在深刻的影響着軟體產業。作為越來越重要的生產資料,軟體產業經常臨着需求與供給的不平衡,未來通過代碼生成的方式,或可以解決軟體消費的需求。
随着代碼生成的日臻成熟,企業會更加聚焦于業務自身的迭代。
當下,全球 AGI 的能力在解決代碼生成的能力天花板是明顯存在的。
根據統計數據看,代碼生成的準确率在 30%-40% 之間,所以產品形态多是以代碼補齊功能為主的 copilot,也有不少 agent 產品湧現。
實現代碼生成的 autopilot,端到端生成軟體和應用,是代碼生成更加廣闊的方向。
在更長線的未來," 代碼不僅僅是一個產品,同時也是通往通用人工智能的路徑 "。
2、智能代碼生成的優勢
與傳統的代碼編寫方式相比 , 智能代碼生成具有以下突出優勢 :
智能自動編碼
代碼大模型通過深度學習的方式 , 能夠理解代碼的語義和結構 , 并根據輸入的需求自動生成高質量的代碼。用户只需簡單描述需求 , 模型就能快速生成符合要求的代碼 , 大大減輕了編碼工作量。
跨語言支持
先進的代碼大模型已經實現跨編程語言的代碼生成能力 , 開發者可以使用自然語言描述需求 , 模型就能自動生成對應的代碼 , 而不局限于特定的編程語言,這極大地提高了軟體開發的靈活性和适應性。
代碼優化與重構
代碼大模型不僅能生成新的代碼 , 還可以對現有代碼進行優化和重構 , 提高代碼的可讀性、可維護性和效率。這對于代碼質量把控和技術債務管理非常有幫助。
自動化軟體開發
結合更多的 AI 技術與產品 , 代碼大模型可以實現軟體開發的全自動化 , 從需求分析、設計、編碼到測試部署 , 整個軟體生命周期都可以由 AI 系統自主完成,這将大大提高軟體交付的速度和質量。
二、智能代碼生成對軟體產業的影響
1、智能代碼生成的終局:更加聚焦的專業化服務 + 自動化交付的軟體生成平台
大模型代碼生成能力對于軟體產業的影響,市面上的讨論雖然集中體現在對 SaaS 領網域的影響,但實際當中更應該從全景來看。
概括來説,代碼生成的終局有望将軟體業态改造成兩類——更加聚焦的專業化服務和自動化交付的軟體生成平台。
我們将從幾個方面來拆解:
軟體業态的三個分類:專業化服務、大眾化标準產品、企業解決方案
在麥肯錫 1999 年出版的《Secrets of Software Success》一書中,對于軟體業态的三個分類依然經典:專業化服務、大眾化标準產品、企業解決方案。
專業化服務限于邊際成本難以優化具備高度的分散特征,幾無規模化;
以各類工具軟體為代表的大眾化标準產品則往往呈現出充分市場競争下的頭部效應,面臨的衝擊主要來自斜刺裏殺出的新品類或者雲化技術形态的變革;
企業解決方案則往往是非标軟體平台與專業化服務的融合,以 SAP、Saleforce、用友、金蝶國内外軟體等為代表,經過幾十年的發展體量不小。
當下,海外 SaaS 大部分屬于第二類,并通過客户成功的多手段增強服務。國内眾多的軟體企業,特别是大多數 SaaS 初創企業,業務發展往往屬于第三類,重售前、重方案、重交付且重運營,本質上屬于軟體服務業。
2、為什麼是專業服務?中國的軟體采購消費的本質是業務代碼,而非產品
為什麼第一類專業服務在未來受益最大,甚至是成為終局?
這是有 2 點決定的:
中國的軟體采購消費的本質是業務代碼,而非產品。
當編程的成本趨近于 0,個性化的數字化需求或能得到滿足。
歐美市場誕生了很多或大而美、或小而美的 SaaS 軟體企業,產品的标準化、收費方式、部署方式等均形成了中國軟體從業者與投資人豔羨的生态。
回看過去 10-20 年,在中國為軟體付費的大甲方主要是政府(G 端)與大 B 端,而大 B 端則主要由國央企與少量頭部的民營企業構成。這也造成了中國 SaaS 行業普遍不賺錢。
背後的主要原因則是:中國的 SaaS 消費本質是消費代碼,而非產品。
簡單來説,實際運營中,從選型期、實施期到驗收期,再到維保期,軟體業态的信息鏈條長,服務占比居高不下。
具體來看:
甲方需求迭代:甲方的需求由于自身業務的差異性導致五花八門,呈現出大量的長尾、非标定制需求,且随着業務的發展,軟體的供給匹配一定是滞後的,即便有 PaaS 平台可以滿足 80% 的業務需求,但剩餘的 20% 卻消耗了 80% 的交付成本。
甲方組織:甲方的數字化需求發布者是七嘴八舌的,應用軟體往往伴随着流程梳理與再造,也是軟體服務企業的必然特征,軟體開發裹挾着大量的咨詢服務,軟體的用户必然會在交付過程中提出各類需求。由于供需雙方在數字化經驗和專業度上的欠缺,很多用户和客户只有見到最終交付的軟體才知道如何重提或者修改需求,讓軟體的交付返工問題異常突出,長鏈條的收尾直接導致項目利潤的消耗和難堪的回款數據。
甲方付費:大多數具備付費意願和能力的客户往往是預算制,付款并非嚴格按照軟體交付的實質推進。更加窘迫的事實是軟體需求側驗收階段的 " 不講武德 ",修改、增加需求屬于常規操作,否則不确收、不回款,造成了大量軟體企業普遍困擾的交付長、确收少、應收多等現場。究其根源,又涉及甲方在選型過程中的成本驅動或商務驅動的非專業選型,私有化部署帶來的軟體維護難度大,乙方軟體技術功底差、過度承諾等問題,以及政府 / 國央企在驗收或打款後的歸責制。
中國市場對于軟體的消費量是客觀存在且巨量的,但我們看到的是是消費代碼定制,可以稱之為消費代碼。
當編程的成本趨近于 0,個性化的數字化需求或能得到滿足。
3、當編程的成本趨近于 0,改變軟體供給側三大核心要素,個性化的數字化需求或能得到滿足
當前,軟體 / 代碼消費的目的——業務需求的數字化轉譯,自身就伴随着非标、定制、長尾的特征,而且業務需求是發展和增長的,個性化會持續湧現。由于供給端的不足,需求端要麼對解決方案做出讓步即接受盡可能标準化的模式,要麼在預算有限的情況下不停地重復造失敗的輪子,讓供給端的生存生态更差。
代碼生成的應用領網域,在很長一段時間内都聚焦在軟體服務業,旨在将軟體與服務區隔,讓軟體的實現變成自動化的端到端代碼生成,成為标準化的工具;服務環節将變得越來越專業化。
代碼生成的終局有望将軟體業态改造成兩類——更加聚焦的專業化服務和自動化交付的軟體生成平台。
實現從需求 PRD 走向軟體工程的自動化,主要是因為改變的是軟體供給側的三大核心要素 QCD(質量 Quality、成本 Cost、效率 Delivery)三大瓶頸,最終實現軟體消費的普适與平權。
代碼生成與軟體供給的三要素
全球近 1 億程式員,中國近 1000 萬程式員,在軟體產業占據的人力成本達萬億美元級别,其中高質量的編程人力占比較低,同時面對軟體消費的巨大市場又沒法即時且高效的響應,呈現出供需的嚴重不平衡。
效率:常見的軟體交付過程除了需求梳理階段的咨詢服務,後續的開發周期與上線後的需求增改删周期都是以周和月為考量的,軟體企業的邊際成本會不降反升。在代碼生成的終局裏,與業務場景強綁定的專業咨詢服務依然存在,但後續的軟體需求交付可以變成分鍾 / 小時級,給軟體行業帶來巨大的效率紅利。
質量:PC/ 移動互聯網圍繞 cloud-native、big data、algorithm 催化出來的很多優質的 infra 能力,但在軟體產業優質的技術供給是極其稀缺的,代碼生成可以讓各類高階技術能力的應用門檻大幅度降低,實現技術普惠,改造軟體行業的基建。
成本:在很多軟體品類的交付中,都有比例客觀的軟體服務成本,常見的收費方式是 " 人 · 天 " 模式,代碼生成可以讓軟體工程的交付邊際成本趨近于代碼生成所需的算力成本,讓信息技術變成基礎設施而非上層建築。
三、智能代碼生成的關鍵能力與現狀
1、智能代碼生成的關鍵能力
代碼大模型通過深度學習的方式 , 能夠理解代碼的語義和結構 , 并根據輸入的需求自動生成高質量的代碼。具體來説 , 代碼大模型具有以下關鍵能力 :
語義理解
代碼大模型能夠理解代碼中藴含的語義信息 , 包括函數、變量、控制流等各個層面的意義。這使得模型可以根據實際需求生成符合業務邏輯的代碼。
結構感知
模型不僅能理解代碼的語義 , 還能感知代碼的結構特點 , 如面向對象的類結構、模塊化的設計等。這樣可以确保生成的代碼具有良好的可讀性和可維護性。
上下文建模
代碼大模型擁有強大的上下文建模能力 , 能夠根據輸入的需求描述 , 結合代碼的上下文信息生成合适的代碼片段。這種上下文感知有助于确保代碼的連貫性和适用性。
多樣性生成
代碼大模型不僅可以生成單一的代碼解決方案 , 還能生成多樣化的代碼備選方案 , 為開發者提供更多的選擇。這有利于探索更優的編碼實現。
面向對象建模
代碼大模型能夠識别面向對象編程中的類、對象、繼承、多态等概念 , 并根據這些結構特點生成符合面向對象設計原則的代碼。這确保了生成代碼的可復用性和可擴展性。
模塊化設計
模型可以感知軟體系統的模塊化設計 , 理解不同模塊之間的依賴關系和接口契約。這樣可以确保生成的代碼能夠很好地融入現有的軟體架構 , 實現良好的模塊化拆分。
設計模式識别
代碼大模型能夠識别常見的軟體設計模式 , 如單例模式、工廠模式、觀察者模式等。它可以根據實際需求自動應用合适的設計模式 , 生成高質量、可復用的代碼結構。
2、當前代碼生成的 2 種模式
目前,代碼生成領網域的產品解決方案主要包括兩類:基于現有 AGI 的 Agent vs 基于專用模型的端到端解決方案。
大多數的參與者屬于前一類,產品形态多是以代碼補齊功能為主的插件形式為主,幾乎所有的主流的 LLM 公司都會提供代碼能力產品,也有不少獨立的 agent 產品湧現,代表性公司為 Github Copilot、Cursor、August、Cognition 等。根據統計數據看,代碼生成的準确率在 30%-40% 之間。
實現代碼生成的 "autopilot",端到端生成軟體和應用,是代碼生成更加終局的技術方向。此類解決方案的在于解決 AGI 在代碼精準生成方向的模型底層技術卡點,基于 transformer,自研更為先進的模型架構,讓大模型的商業化場景走向低容錯率的場景,代表性公司為 Poolside、Magic、AIGCode。