《中國信通院&華為:智能化軟件開發落地實踐指南(2024年)(58頁).pdf》由會員分享,可在線閱讀,更多相關《中國信通院&華為:智能化軟件開發落地實踐指南(2024年)(58頁).pdf(58頁珍藏版)》請在三個皮匠報告上搜索。
1、中國信息通信研究院人工智能研究所華為云計算技術有限公司2024年9月智能化軟件開發落地智能化軟件開發落地實踐指南實踐指南(2022024 4 年年)版權聲明版權聲明本報告版權屬于中國信息通信研究院、華為云計算技術有限公司,并受法律保護。轉載、摘編或利用其它方式使用本報告文字或者觀點的,應注明本報告版權屬于中國信息通信研究院、華為云計算技術有限公司,并受法律保護。轉載、摘編或利用其它方式使用本報告文字或者觀點的,應注明“來源:中國信息通信研究院、華為云計算技術有限公司來源:中國信息通信研究院、華為云計算技術有限公司”。違反上述聲明者,編者將追究其相關法律責任。違反上述聲明者,編者將追究其相關法律
2、責任。前言前言2024 年政府工作報告首次提出“人工智能+”戰略行動,旨在推動人工智能賦能各行各業。以大模型為代表的新一代人工智能技術迅猛發展,已成為軟件工程領域智能化轉型的關鍵驅動力,為軟件開發、測試等環節注入新智力。智能化軟件開發工具憑借其強大的代碼理解和生成能力,有效降低了開發人員的技術門檻,并提高開發效率和質量,進一步推動軟件開發領域的進步。然而,在軟件開發的智能化能力建設和應用過程中,仍面臨諸多挑戰,如代碼大模型選擇困難、開發工具的工程化建設復雜、智能化能力建設無參考、開發場景選擇和落地難,以及與現有開發工具或流水線的集成難等問題。為此,本指南旨在為正在進行軟件開發智能化轉型的企業提
3、供一份實用指南,為企業制定落地策略、建設智能開發能力體系提供有力參考。本指南系統梳理了智能化軟件開發的發展歷程、現狀和面臨的挑戰,結合大模型和軟件開發特點,提出了具體的落地方向、路徑和框架,詳細闡述了落地所需的核心能力和使能能力,并對多個行業的落地案例進行了深入剖析,最后對智能化軟件開發的發展趨勢進行了展望。由于大模型等人工智能技術產業仍處于快速發展階段,智能開發相關的技術產品、服務和應用也在不斷演變,我們的認識將隨著產業實踐而不斷深化,報告存在的不足之處,懇請大家批評指正。目錄目錄一、智能開發發展概述.1(一)軟件工程步入 3.0 時代.1(二)智能開發發展現狀.5(三)智能開發價值顯現.7
4、(四)智能開發落地挑戰.9二、智能開發落地策略.11(一)智能開發落地原則.11(二)智能開發落地步驟.12(三)智能開發落地框架.15三、智能開發核心能力建設.17(一)代碼生成與補全.17(二)單元測試用例生成.19(三)代碼轉換與優化.21(四)代碼解釋與注釋.22(五)代碼檢查與修復.23(六)研發問答.24四、智能開發使能能力建設.26(一)代碼數據處理能力.26(二)代碼大模型優化能力.28(三)智能開發能力評估.30(四)智能開發安全能力.32(五)其他工程化能力.36五、智能開發落地案例分析.41(一)云服務行業案例.41(二)軟件服務業案例.42(三)電力行業案例.44(四)
5、金融行業案例.46(五)制造行業案例.47六、總結與展望.50圖 目 錄圖 目 錄圖 1軟件工程發展歷程圖.1圖 2軟件工程 3.0 示意圖.3圖 3智能開發落地步驟圖.12圖 4企業智能化能力自我診斷等級圖.13圖 5智能開發能力實施的多階方案圖.14圖 6智能開發落地框架示意圖.15圖 7三“碼”合一方案圖.19圖 8單測生成實戰方案示意圖.21圖 9基于 RAG 的代碼理解流程圖.23圖 10數據處理流程圖.26圖 11代碼大模型優化過程示意圖.29圖 12智能開發能力評估架構圖.31圖 13安全能力體系架構圖.33圖 14數據安全治理流程示意圖.33圖 15模型安全治理架構圖.35圖
6、16應用安全治理框架圖.35圖 17RAG 落地流程示意圖.39圖 18某云服務企業案例落地方案示意圖.42圖 19某軟件服務企業案例落地方案示意圖.44圖 20某電力行業企業案例落地方案示意圖.45圖 21某銀行案例落地方案示意圖.47圖 22某家電制造企業案例落地方案示意圖.49表 目 錄表 目 錄表 1準確性評估場景與指標參考清單.32表 2提示詞示例 1.38表 3提示詞示例 2.38智能化軟件開發落地實踐指南(2024 年)1一、智能開發發展概述一、智能開發發展概述隨著人工智能技術的不斷進步,特別是大模型能力的持續提升,軟件工程領域正迎來前所未有的變革,軟件開發的流程和模式正被重新定
7、義,智能化進程顯著加速。本章將簡要回顧軟件工程的發展歷程,重點介紹軟件工程 3.0 的發展特點,以及智能化軟件開發(以下簡稱:智能開發)領域發展現狀,并深入探討智能化能力為軟件開發帶來的價值提升,最后梳理落地挑戰。(一)軟件工程步入(一)軟件工程步入 3.0 時代時代1.軟件工程發展歷程軟件工程自 1968 年誕生以來,其發展歷程可分成三個階段,包括軟件工程 1.0、軟件工程 2.0 和軟件工程 3.0,如圖 1 所示。圖 1 軟件工程發展歷程圖軟件工程 1.0,即第一代軟件工程,亦稱為“傳統軟件工程”。本階段的發展起點可追溯至上個世紀六十年代,隨著大容量、高速度計算機的問世,軟件開發需求急劇
8、增長,軟件系統的規模越來越大,復雜程度越來越高,可靠性問題更加突出。為解決該類軟件危機,智能化軟件開發落地實踐指南(2024 年)21968 年北大西洋公約組織(NATO)在國際會議上首次提出“軟件工程”概念,期望將軟件開發帶出混亂的局面,走向有紀律、有流程的規范化之路。軟件工程 1.0 推崇結構化方法,重視流程和文檔規范化等工程實踐,對提升軟件產品交付成功率和質量有重大意義。但在軟件工程 1.0 時期,由于軟件被當作傳統的工業制造產品進行交付,無法及時滿足業務需求的變化和更新,使得交付周期長。軟件工程 2.0,亦稱“敏捷軟件工程”。本階段的發展自 2001 年“敏捷軟件開發宣言1”發布起,通
9、過踐行敏捷開發最佳實踐,實現持續集成(CI)、持續交付(CD)和快速迭代以更好地滿足日益變化的業務需求。軟件工程 2.0 時期,軟件形態從“產品”發展為“服務”,而服務的性能、效率、可靠性、可持續性也更加重要,這推動人們將軟件開發和運維融合起來,DevOps 模式應運而生,使得軟件交付效率更加高效。但本時期的開發、測試等核心工作,多以人工為主,技術門檻和研發成本居高不下,對技術人員的依賴性非常高,雖然陸續有自動化技術的出現和落地,對效能提升方面未有顯著成效,“軟件工程沒有銀彈2”這一觀點仍然有效。軟件工程 3.0,亦稱“智能化軟件工程”。2022 年底以來,隨著ChatGPT 等大模型相繼發布
10、,軟件工程迎來新一輪變革。大模型憑借其強大的理解和生成能力,通過代碼生成、代碼續寫、測試用例生成、智能問答等能力,為軟件工程帶來了智能化能力升級,為提1https:/agilemanifesto.org/2沒有銀彈:軟件工程的本質與偶然智能化軟件開發落地實踐指南(2024 年)3升軟件質量和效率帶來了新動力,全新的軟件開發范式正在誕生。軟件工程中到底有沒有“銀彈”,在大模型時代成為熱議的話題。2.軟件工程 3.0 發展特點軟件工程 3.0 圍繞“智能化”理念以構建智能化助手為起點,通過使用大模型為核心的 AI 技術驅動軟件全生命周期能力升級(如圖 2所示)。本階段以構建支持軟件開發、測試或運維
11、等環節的 AI 模型為基礎,將智能化技術逐步運用至軟件工程各階段,促進軟件研發和運營效率的提升、質量的躍進、成本的降低。本階段的發展特性較為明顯,核心特點包括智能化、數據驅動性、交互性、自適應和持續優化。圖 2 軟件工程 3.0 示意圖智能化,軟件工程中各工具都將逐步實現對大模型等 AI 能力的調取和應用,以實現工具自身能力的提高,為智能化軟件工程打下堅實基礎。例如,將大模型與測試平臺對接,提供測試用例生成、測試結果分析等能力,提高測試平臺效能;將大模型與用戶界面智能化軟件開發落地實踐指南(2024 年)4(UI)測試工具對接,提供界面要素和組件等識別能力,提高 UI 測試準確率3。數據驅動性
12、,高質量數據是大模型成功的關鍵,“Garbage In,Garbage Out”仍然適用。在軟件工程中,代碼數據集、需求數據集、規范類文檔數據集、測試用例數據集、日志數據集等,均將應用于大模型的訓練、調優和推理過程,其質量高低直接影響推理結果,從而影響軟件工程智能化能力帶來的效果。例如,使用了精調代碼數據集訓練后的模型,相比基座模型在 MultiPL-E 上的評測結果絕對值提升了 8.2%,而使用了未精調的普通的代碼加注釋的數據集訓練后的模型,評測結果反而降低了 5.5%4。交互性,包括兩個方面,一是大模型與人之間的人機交互,二是大模型與工具間的交互。人機交互將不斷相互啟發、相互促進,大模型可
13、學習特定項目的上下文和研發人員的偏好,并根據更優的提示詞,激發出更符合期望的推理結果,提高協作效率;大模型與工具間交互,將通過智能體(AI Agent)、編排等方式,實現大模型對各工具的調取和執行,以解決更加復雜的工程級問題,推動全生命周期智能化能力的提升。例如,2024 年 3 月 Cognition 公司發布的全球首個 AI 程序員 Devin,以及 8 月 Cosine 公司發布的全球最強 AI 程序員 Genie,對復雜的軟件工程問題解決能力不斷得到刷新。自適應性,根據對工程級代碼的更優理解能力,以及檢索增強3中國信息通信研究院調研4Magicoder:Empowering Code
14、Generation with OSS-INSTRUCT智能化軟件開發落地實踐指南(2024 年)5生成(RAG)等技術的輔助能力,大模型的自學習能力越發強大,這使得智能化軟件工程對場景化的業務和數據具備更好的理解和適應能力,從而實現自主提升其推理性能和準確性。例如,代碼大模型可在不同角色設定下展現良好的自適應性,MetaGPT 為大模型賦予了多個人設(產品經理、架構師、開發工程師等)后,其HumanEval 評測結果為 85.9%,相比未設定人設的大模型評測結果絕對值提升了 18.9%5。持續優化,通過建立數據飛輪和反饋閉環,根據用戶反饋、場景化數據和監控數據對大模型進行持續改進,從而使軟件
15、工程智能化能力持續提升。例如,某銀行的智能開發助手上線后,每周由研發部門的各團隊提交優秀代碼數據,對代碼大模型進行定期的優化訓練、測試和部署,從而持續保持和提升開發助手的能力6。(二)智能開發發展現狀(二)智能開發發展現狀開發是軟件工程全生命周期中的核心環節,開發人員大約有三分之二的工作時間與開發代碼直接相關7,應用大模型助力軟件開發具有得天獨厚的優勢。一方面開發人員對新技術的接納度較高,能夠更快地適應開發新范式;另一方面各類編程語言對業務的依賴度不是非常高,使得代碼生成能力的普適性較強。因此軟件開發是大模型率先應用落地的領域之一,Gartner 已將“AI 增強軟件開發”列5MetaGPT:
16、Meta Programming for AMulti-Agent Collaborative Framework6中國信息通信研究院調研7https:/thenewstack.io/how-much-time-do-developers-spend-actually-writing-code/智能化軟件開發落地實踐指南(2024 年)6入 2024 年十大戰略技術趨勢之一8。智能開發工具市場迅速發展,國內外百花齊放。國外,截止2024 年 4 月微軟的 GitHub Copilot 擁有 180 萬付費訂閱用戶,近60%財富 500 強公司使用 Copilot AI 工具9,GitHub C
17、opilot 的市場占有率達到 64.5%10。亞馬遜的 CodeWhisperer、谷歌的 Project IDX 等產品雖難以并肩,但依靠其強大的用戶規?;A,仍具備較強競爭力。國內,智能化軟件開發工具已發布近 40 余款11,如華為、阿里、百度等提供的智能開發工具產品,其核心功能較為同質化,但工具的性能、工程化能力、用戶體驗度、整體準確度等方面存在差異。智能開發工具能力持續提升,應用行業更加多元化。智能開發工具重點聚焦于代碼生成、代碼補全、代碼注釋、代碼檢查、智能單測等能力。一方面代碼大模型能力的持續提升為工具提供了更強的 AI 底座,根據智源大模型排行榜顯示,榜首大模型在 HumanE
18、val數據集上的 Pass112從 2023 年 8 月的 24.4%提升至 2024 年 8 月的81.1%13;另一方面通過 RAG、自學習、AIAgent 等技術的加持,為工具提供了更強的工程化能力,如微軟的 Copilot WorkSpace 作為 AI輔助的下一代開發工具,為工程級代碼提供了更優的理解和生成能力。隨著能力的持續提升,智能開發工具被越來越多行業所接受和應用,包括如互聯網等科技行業的成熟落地,金融、電信、軟件服8Gartner2024 十大戰略技術趨勢9https:/ 202411https:/ai- 是指代碼大模型為每個問題生成 1 個答案,其答案通過測試的比例。13h
19、ttps:/ 年)7務等行業的逐步落地,能源、零售、教育、制造、物流等領域的試點試行,未來智能開發工具將為各行各業的軟件研發提供強有力支撐。應用需求快速增長,編碼階段提效顯著。無論個人還是企業開發者,使用智能開發工具的人數和頻次越來越多。根據 StackOverflow 2024 年的全球開發者調研顯示,76%的受訪者正在或計劃使用 AI 工具進行軟件開發,使用 AI 工具的開發者數量占比從去年44%提升至 62%14。根據 CSDN 2024 年的調查顯示,48.6%開發者每天使用智能開發工具15。根據 Deloitte 報告指出,超過 60%的金融機構正在探索或已經實施了智能開發工具以加速
20、創新。智能開發工具的使用助力開發人員編碼效率提升明顯。根據 GitHub 報告顯示,使用 GitHub Copilot 的開發者編碼速度提升 55%,編寫代碼量增加46%16。根據中國信通院 2024 年初調研問卷數據顯示,受訪者在開發階段使用 AI 工具的提效最為明顯,人效提升達到約 40%。(三)智能開發價值顯現(三)智能開發價值顯現在大模型應用浪潮中,軟件開發的智能化轉型正成為企業提升軟件產品競爭力的關鍵因素,通過智能化能力的注入,為軟件開發的價值提升帶來巨大動力。提升開發效率,降低項目風險。通過代碼生成、代碼補全和問答等能力,開發人員能夠更迅速地編寫高質量代碼,顯著減少手動14the
21、2024 results from Stack OverflowsAnnual Developer Survey152024 中國開發者調查報告16The economic impact of theAI-powered developer lifecycle and lessons from GitHub Copilot智能化軟件開發落地實踐指南(2024 年)8調試和錯誤修復時間。同時可降低項目對開發人員的依賴,通過智能開發工具的學習和記憶能力,一方面可輔助新的開發人員快速開發出符合項目需求和規范的代碼,另一方面可幫助開發人員快速學習新的編程語言,從而減少人員流動帶來的項目風險。根據 BI
22、S 年度經濟報告顯示,智能開發工具對程序員的生產力提升超過 50%,且其中僅有小部分來自于代碼的直接生成,而更多是通過與機器交互的過程激發了程序員的創造力17。改善代碼質量,提高產品穩定性。通過代碼質量檢查和智能單測等能力,開發人員能夠快速進行代碼驗證和測試,及時發現并修復潛在的問題和漏洞,如代碼缺陷、代碼異常、代碼風險等,從而幫助開發人員編寫出更高質量的代碼,降低軟件發布后的故障率,提升軟件的穩定性和性能。例如,GitHub Copilot 可幫助開發人員在編碼過程中解決超過三分之二的漏洞18。加速產品創新迭代,增強企業競爭力。通過提升開發效率和改善產品質量,企業能夠更快地推出創新產品,搶占
23、市場先機,從而在激烈的市場競爭中脫穎而出。一方面,智能化的軟件開發流程使開發周期縮短,企業能夠更靈活地適應市場變化,加快產品迭代速率;另一方面,智能開發工具的輔助使得開發人員能夠從重復性的繁瑣的低端編碼工作中釋放出來,從而擁有更多時間投入創新相關工作,提升企業創新能力。例如,2023 年 5 月 GitHub 首席執行官17國際清算銀行(BIS)2024 年度經濟報告18https:/ 年)9在全球網絡峰會(Web Summit)上,演示 GitHub Copilot X 實現簡單的貪吃蛇小游戲用時為 18 分鐘,而 2024 年 8 月通過真實操作,使用 Deepseek 開發助手(V2)僅
24、需 2 分鐘左右,開發時長大幅減少,開發人員將有更多時間思考產品創新。(四)智能開發落地挑戰(四)智能開發落地挑戰隨著智能化技術在軟件開發領域的廣泛應用,其帶來的質效提升日益顯著。然而,企業在推進軟件開發的智能化能力建設和落地時,仍面臨諸多挑戰,涵蓋組織、技術、應用落地及安全等多個層面。組織變革和轉型的挑戰。軟件開發的智能化轉型首先帶來的是組織變革,一是組織文化的重塑,其落地要求組織具備開放合作、持續學習和創新的文化氛圍,促進跨部門溝通與協作,打破信息孤島;二是全員認知水平的提升,自頂向下每位員工都應深刻理解智能化的潛力與挑戰,客觀且正確地了解大模型等人工智能技術及其作用;三是人才結構的調整與
25、補充,由于數據治理及模型訓練調優等過程需要專業技術人員參與,因此補充人才,或調整或融合 AI 團隊和軟件工程團隊的結構,方能匹配能力建設和應用的需求。模型技術迭代及與工具融合的挑戰。當前智能開發能力建設的核心技術是大模型,因此圍繞大模型面臨著技術迭代的挑戰。一是大模型的技術能力仍以較快速度迭代更新,企業需配備良好的維護更新機制,以保證智能開發工具的底座 AI 能力;二是智能開發能力智能化軟件開發落地實踐指南(2024 年)10如何與現有軟件研發工具集有效融合或改造,從而提升軟件工程全流程能力水平。產品選型與應用場景落地的挑戰。企業需根據自身行業特點、業務需求及已有 AI 能力,選擇適合的業務場
26、景,合理規劃落地路徑和方案。然而,一方面現有代碼大模型和智能開發工具數量繁多,如何建設或選擇出一款合適的模型或工具,如何評價模型或工具的能力,均是落地時考慮的重點;另一方面不同業務場景的編程語言可能不盡相同,或代碼數據集或規范不一致,如何選擇最優場景試點落地,如何優化模型或工具使其滿足多場景需求,同樣面臨挑戰。代碼數據、模型和工具的安全性挑戰。生成式代碼可能會帶來更多不可控的風險,因此企業應從數據、模型和工具多維度構筑風險防線,以應對安全挑戰。第一道數據防線,面向模型訓練和調優階段所需的代碼數據集,可能面臨敏感代碼數據的泄露、未經許可代碼的訓練、非法代碼的推理等問題;第二道模型防線,面向代碼大
27、模型在推理和管理階段,可能面臨暴力攻擊、非法套取、非法提問、敏感內容推理、被惡意使用生成惡意軟件代碼或攻擊腳本等問題;第三道工具防線,對智能開發工具的輸入輸出進行檢查和處理,并關注關聯代碼庫、第三方軟件開發工具的數據傳輸和集成安全,構筑最后一層安全圍欄減少應用風險。智能化軟件開發落地實踐指南(2024 年)11二、智能開發落地策略二、智能開發落地策略隨著代碼大模型和智能開發工具如雨后春筍般出現,各行業陸續規劃和試點將智能化能力有效地落地應用于開發環節。本章將首先總結智能開發落地遵守的主要原則,其次就落地關鍵步驟進行深入剖析,最后梳理當前行業的通用落地框架。(一)智能開發落地原則(一)智能開發落
28、地原則智能化軟件開發落地是指應用方企業通過采購或自研等方式,構建智能化能力,包括代碼大模型能力和智能開發工具能力,并將其應用落地于軟件開發過程。作為大模型應用的重要場景,根據中國信息通信研究院對金融、軟件、電信等行業關于智能開發落地實踐的調查顯示,智能開發能力的落地通??紤]以下主要原則。目標導向原則,以企業戰略定位為首要目標,落地策略和方案應在該目標指導下完成。如是否落地智能開發,落地范圍預計多大,預期目標是什么,都應遵循企業組織級的人工智能戰略目標。因地制宜原則,從企業實際情況出發,清晰了解已有 AI 基礎及成本預算,從而制定合適的策略。如企業自身的科技實力、人才儲備、AI 基礎設施能力、資
29、金支持等情況,應作為落地基礎進行考慮。應用優先原則,從業務實際需求出發,明確亟需解決的問題,以及為業務賦能的目標。如軟件開發過程中面臨的最大問題是什么,最耗成本和資源的環節是哪些等。標準化原則,參考行業標準開展能力構建,以保證數據質量、模型性能及工具可塑性。如代碼數據如何處理如何配比,模型如何智能化軟件開發落地實踐指南(2024 年)12調優,工程化能力如何建設,推理準確性應達到何等水平,均可以行業標準為依據,少走彎路,提高建設質量。安全性原則,圍繞能力建設全過程構建安全保障機制,降低新工具引入的風險,提升安全治理能力。如代碼大模型推理安全、數據安全、安全圍欄建設等。持續改進原則,構建持續反饋
30、機制和數據驅動流程,通過效能指標數據推動工具和流程的持續改進。如面臨模型退化、新項目新代碼數據等情況,應通過持續改進從而保證代碼大模型的能力穩定性。(二)智能開發落地步驟(二)智能開發落地步驟落地智能化能力是一個全面且系統化的過程,尤其面向已成體系的軟件開發過程,構建清晰明確的落地步驟,將為有效落地提供良好指引。智能開發落地過程可劃分為自我診斷、方案設計、部署實施、持續優化四個關鍵步驟,如圖 3 所示。圖 3 智能開發落地步驟圖開展多維度自我診斷,科學客觀定位自身能力。診斷維度上,通過應用場景診斷,明確智能開發能力在企業內部的落地場景,幫助梳理當前需求和未來規劃的需求;通過技術能力診斷,明晰企
31、業在人工智能領域的優勢和不足,明確是否具備足夠技術儲備開發或智能化軟件開發落地實踐指南(2024 年)13維護代碼大模型或智能開發工具的能力;通過基礎設施診斷,深入了解企業現有算力資源、存儲資源、數據資源等,幫助企業做好基礎性準備;通過安全可信診斷,明確企業自身對安全可信的要求,如代碼數據安全性要求、用戶安全性要求、研發場景安全性要求等,從而便于制定安全保障機制。能力定位上能力定位上,企業根據戰略規劃、基礎設施、數據資產、人才儲備、經費預算等方面的能力現狀,并結合安全可信要求,綜合研判自身已有智能化能力等級,可劃分五個不同等級(如圖 4 所示)。圖 4 企業智能化能力自我診斷等級圖根據自我診斷
32、及能力定位結果,選擇合適的實施方案。L1 企業適宜采用低成本的智能開發工具 SaaS 服務,以便快速達到應用效果;L2 企業可采購軟硬件集成的智能開發工具(如智能編碼一體機),以實現智能開發能力的本地化部署,形成一體化解決方案;L3 企業可采購包含代碼大模型的智能開發工具進行私有化部署,保障企業級代碼資產的安全,并通過采購模型調優和升級等服務,保證大模型能力的穩定;L4 企業可采購解耦的代碼大模型和智能開發工具,智能化軟件開發落地實踐指南(2024 年)14或者選用高性能大模型訓練微調成自有代碼大模型,構建定制化的智能開發能力;L5 企業依托豐富的算力、數據、人才等基礎,可考慮自主研發代碼大模
33、型,并依此構建軟件工程領域的工程化能力,全面賦能軟件開發流程,引領行業創新。圖 5 智能開發能力實施的多階方案圖根據實施方案按計劃部署和實施。一是明確項目的時間節點、資源配置、任務分工等,并制定風險管理計劃;二是根據能力等級開展必要的軟硬件采購與資源配置,確保相關工具和平臺能夠滿足落地要求;三是開展代碼大模型和智能開發工具的部署、評估和測試,確保其準確性、穩定性、安全性和可靠性;四是對使用人員進行培訓并提供技術支持,選定試點項目或團隊;五是根據試點結果進行優化調整,并逐步宣貫和拓展至更多團隊。根據實施效果持續優化和改進。建立有效的指標體系和監控機制,一方面持續地自動化監測大模型推理效果和應用成
34、效,如推理準確率、代碼采納率、代碼修復率、代碼生成占比等指標;另一方智能化軟件開發落地實踐指南(2024 年)15面定期收集用戶反饋,根據數據分析結果明確問題和優化方向。構建大模型維護更新機制,通過獲取和生成高質量代碼數據集,開展模型的定期訓練或調優,持續優化代碼大模型質量。(三)智能開發落地框架(三)智能開發落地框架智能化軟件開發的能力落地框架(如圖 6 所示)由三部分組成,分別包括模型層、服務層和應用層,應用層的能力是模型層和服務層能力的組合體現。圖 6 智能開發落地框架示意圖模型層以各類 AI 模型為主體,為智能開發提供 AI 底座能力。本層建設目標是在基座大模型的基礎上訓練調優生成代碼
35、大模型,而代碼大模型普遍由 2 個大模型組成,分別是代碼補全大模型和研發問答大模型。代碼補全大模型的任務是代碼生成與補全,由于其使用頻率最高,通常設計為參數規模較小但推理速度較快的如 3B、7B、13B 等較小型模型,以匹配編碼速度;研發問答大模型的任務是應對更為復雜的代碼解釋、代碼檢查和研發問答等各類任務,通常設計為參數量更龐大的如 65B、72B、128B 等較大規模模型,以滿足復雜的軟件開發需求。智能化軟件開發落地實踐指南(2024 年)16服務層依托 AI 底座能力,運用更多技術手段增強或調度大模型能力。通過模型調度,針對工具層不同的操作精確匹配調度相應模型,確保模型資源的合理分配與高
36、效利用;通過提示詞封裝,對用戶常用功能設計提示詞模板,豐富用戶問題的表述,使模型能夠更全面、準確地理解用戶意圖,提供更精確的推理結果;通過 RAG 將內部數據形成知識庫注入推理過程,提升推理結果更符合項目特性;通過 AI Agent 輔助,以感知和記憶能力將復雜研發問題進行拆解,以決策和執行能力調用各類工具或組件,提升問題解決能效。應用層以用戶為核心提供各類智能開發功能,主要包括智能編碼和開發者輔助兩大類功能,并將其集成于 IDE(集成開發環境)等工具中為用戶提供直接服務。應用層能力一方面基于服務層對大模型能力進行了加強,如對工程級別的代碼理解和生成能力更強,能夠智能識別 IDE 當前打開的多
37、文件內容,并將其作為大模型輸入的上下文,提升跨文件感知能力;另一方面應用層為工具打造了更優異的用戶體驗,如兼容適配主流 IDE、操作系統以及常見自然語言等,建設自定義配置相關功能,優化輸入輸出性能,建立用戶反饋機制等,滿足開發者需求并提升體驗度。智能化軟件開發落地實踐指南(2024 年)17三、智能開發核心能力建設三、智能開發核心能力建設在軟件開發過程中,無論是企業開發者還是個人開發者,都面臨重復書寫代碼、缺少編寫單元測試用例和代碼注釋的習慣等問題,從而導致編碼效率低下或存在質量隱患。因此,在智能開發能力建設過程中,可優先構建核心能力,如代碼生成與補全、單元測試用例生成、代碼轉換與優化等能力可
38、提升編碼效率,代碼解釋與注釋生成等能力可增強代碼可讀性,代碼檢查與修復等能力可提高代碼質量。本章重點對各核心能力的構建進行剖析19。(一)代碼生成與補全(一)代碼生成與補全代碼生成與補全是指根據自然語言描述或代碼上下文,自動生成或補全代碼的能力。通過代碼生成與補全,可幫助開發人員提高編程效率、降低開發門檻。1.關鍵能力 代碼生成能力:基于自然語言描述,生成有效的片段級或文件級或工程級代碼;代碼補全能力:根據代碼上下文,補全有效的引用、類/方法/函數名稱、行級或片段級或文件級或工程級代碼;多維兼容能力:支持多種主流(或所需)編程語言和開發框架;代碼質量能力:生成和補全的代碼滿足基本的質量規范要求
39、19本章核心能力的闡述以中國信息通信研究院聯合發布的智能化軟件工程技術和應用要求:第 1 部分代碼大模型和智能化軟件工程技術和應用要求:第 2 部分 智能開發為參考依據。智能化軟件開發落地實踐指南(2024 年)18和安全性要求。2.擴充能力 根據多模態輸入生成代碼能力;知識庫接入能力,可提供更符合企業內部業務邏輯或規范的代碼或用例;第三方工具對接能力,如與版本管理工具的對接,支持代碼合并沖突時提出解決和修復建議。3.重點和難點 推理效率提升:代碼生成與補全是使用頻率較高的功能,且流式生成對推理速度有較高要求,因此優化模型推理效率是本能力的建設重點;高質量數據集構建:在代碼大模型訓練或調優過程
40、中,高質量代碼數據集的構建成為重點,其中包括對各類代碼的清洗、處理、安全過濾、標注等;提示詞工程優化:基于意圖識別對提示詞模板進行調優,輔助推理效果的提升;上下文理解能力:準確理解代碼上下文,如變量的作用域、函數的調用關系、跨文件間代碼邏輯等,對提升推理準確度有明顯作用;模型持續改進:通過代碼采納與拒絕等歷史數據構建數據飛輪,對持續改進和維持推理質量有明顯作用。智能化軟件開發落地實踐指南(2024 年)19實戰經驗參考:實戰經驗參考:采用三“碼”合一方案(將訓練態 SFT 代碼語料、檢索態 RAG 代碼語料、推理態補充代碼語料組裝)優化 Prompt 模板,形成統一的Prompt 模板,構建成
41、一個一致的訓練和推理邏輯,通過將訓練階段與推理階段的格式保持一致,可明顯提升代碼模型在垂直領域上的適應性和魯棒性,使其在不同場景下保持較一致的性能。圖 7 三“碼”合一方案圖(二)單元測試用例生成(二)單元測試用例生成單元測試用例生成是指根據輸入的代碼,自動生成用于測試該代碼的單元測試用例。通過單元測試用例生成,可幫助開發人員減少編寫單元測試用例的時間,并提高單元測試覆蓋率,提升代碼質量。1.關鍵能力 用例生成能力:根據函數級或文件級代碼,生成單元測試用例;用例質量能力:生成的用例滿足基本的質量規范要求,且具智能化軟件開發落地實踐指南(2024 年)20備所需覆蓋度;多維兼容能力:支持多種主流
42、(或所需)單元測試框架。2.擴充能力 生成的單元測試用例包含較為清晰的注釋,且執行性能較好;生成的單元測試用例可自動對部分外部依賴進行打樁,且打樁用法合理。3.重點和難點 結合傳統代碼分析技術:加強大模型對代碼結構和邏輯的理解,如對函數、類和模塊級的接口,以及各類控制流和數據流進行分析和識別,可幫助提升單元測試用例生成的質量;結合多樣性測試技術:支持隨機測試、符號執行、模糊測試等,通過組合不同測試技術,提高單元測試質量和覆蓋度;單元測試用例生成能力的評估:通過編譯正確性、覆蓋充分性、錯誤檢出率等指標對推理結果進行綜合評價,是本能力建設難點。實戰經驗參考:實戰經驗參考:采用大模型與傳統軟件分析等
43、技術相組合的方式提升單元測試用例生成效果,傳統分析工具通過整體分析被測工程,獲取被測函數的依賴、測試場景等,生成用例初始化部分,而大模型生成用例的函數部分可結合軟件分析的后處理算法,大幅度提高生成用例的編譯通過率和覆蓋率。智能化軟件開發落地實踐指南(2024 年)21圖 8 單測生成實戰方案示意圖(三)代碼轉換與優化(三)代碼轉換與優化代碼轉換與優化是指在保持代碼邏輯和功能不變的基礎上,對輸入的代碼進行不同語言或不同框架之間的轉換,或特定方向的優化。通過代碼轉換可幫助快速理解代碼,通過代碼優化可幫助解決代碼中存在的規范性、性能等問題,降低開發人員的技術門檻。1.關鍵能力 代碼轉換能力:根據給定
44、的代碼,轉換成不同編程語言、不同編程范式或不同框架等維度的代碼;代碼優化能力:根據給定的代碼,提供規范性、性能和復雜度等維度的優化建議;轉換和優化質量能力:轉換和優化后的代碼滿足基本的質量規范要求,且保留了原代碼功能。智能化軟件開發落地實踐指南(2024 年)222.擴充能力 知識庫的接入能力:使轉換和優化后的代碼更符合企業內部業務邏輯或規范;對多文件的工程級代碼進行轉換和優化。3.重點和難點 集成優化算法:集成各種優化算法,如循環優化、內存訪問優化和并發執行策略,提高代碼優化的性能和質量;結合 RAG 的代碼轉換:檢索歷史代碼以及外部依賴信息等,使轉換后代碼更符合項目需求。(四)代碼解釋與注
45、釋(四)代碼解釋與注釋代碼解釋與注釋是指對輸入的代碼進行解釋或注釋的生成。通過代碼解釋,可幫助開發人員快速理解大量代碼或不熟悉的代碼,通過代碼注釋,可提高代碼的可讀性和可維護性,幫助開發人員生產和維護更符合規范的代碼資產。1.關鍵能力 代碼解釋能力:根據給定的代碼,提供基本準確的解釋內容;代碼注釋能力:根據給定的代碼,提供基本準確的注釋內容;注釋質量能力:代碼的注釋內容滿足基本的注釋規范要求。2.擴充能力 知識庫的接入能力:使代碼的解釋和注釋內容更符合企業內部規范;智能化軟件開發落地實踐指南(2024 年)23 對變更的代碼進行解釋。3.重點和難點 語義理解及關鍵詞識別:準確理解代碼語法、語義
46、,并識別出關鍵代碼元素和結構,是本環節的難點。實戰經驗參考:實戰經驗參考:設計基于 RAG 的上下文感知的代碼理解流程,協同模型能力與業務領域知識(如設計文檔、開發規范等)、工程上下文調用信息等,并根據開發者實時行為,精確檢索上下文,提高代碼解釋與注釋的生成準確率。圖 9 基于 RAG 的代碼理解流程圖(五)代碼檢查與修復(五)代碼檢查與修復代碼檢查與修復是指對代碼進行相關問題的檢查,并根據檢查出的問題進行自動修復。通過代碼檢查,可幫助開發人員發現代碼中存在的問題,如靜態缺陷、運行時錯誤、安全漏洞、架構問題等,通過代碼修復,可幫助開發人員解決問題并提高代碼質量。1.關鍵能力智能化軟件開發落地實
47、踐指南(2024 年)24 代碼檢查能力:根據給定的代碼,進行代碼規范性問題、代碼異味、代碼語法錯誤、代碼邏輯錯誤、代碼安全漏洞等問題的檢查;代碼修復能力:根據檢查出的問題,提供代碼修復建議及修復后的代碼;檢查和修復的質量能力:代碼檢查的錯誤檢出率和誤報率達到要求,修復后的代碼需滿足基本的質量規范要求,且保留了原代碼功能。2.擴充能力 對多文件的工程級代碼進行問題檢查和修復;代碼檢查規則的自定義能力;對污點類問題進行檢查,可跟蹤和分析污點數據(或輸入)在代碼中的流動情況,定位可能污染的關鍵位置。3.重點和難點 提示詞優化:制定代碼檢查與修復提示詞模板,支持檢查風格類問題、質量類問題、安全漏洞、
48、性能缺陷、邏輯缺陷、行業規范等多種問題的提示詞;降低誤報率:傳統漏洞掃描工具誤報率較高,基于大模型的理解生成能力降低漏掃誤報率成為重點和難點,(六)研發問答(六)研發問答研發問答是指利用自然語言處理、信息檢索等技術進行研發相關問題的解答,幫助開發人員提供問答輔助能力,提高研發和創新智能化軟件開發落地實踐指南(2024 年)25能力。1.關鍵能力 問答能力:根據對話可理解研發相關問題,并提供相關解釋、建議、教程或示例代碼,較為準確地回答用戶提問;代碼搜索能力:根據關鍵詞分析或語義理解等,快速、準確地查找和定位所需代碼;多輪對話能力:可通過多輪對話,不斷優化答案以更加準確地滿足用戶需求。2.擴充能
49、力 可追溯能力:可明確推理答案的參考來源;對工程級代碼庫的理解和分析能力,并基于其進行問答。3.重點和難點 多輪對話感知:理解和保存用戶多輪問答交互結果,作為下次提問上下文,以便提供更加準確的答案;交互式反饋機制:提供答案反饋機制,以便不斷優化答案的準確性和相關性。智能化軟件開發落地實踐指南(2024 年)26四、智能開發使能能力建設四、智能開發使能能力建設智能開發落地過程中,通過核心能力建設可實現各項關鍵需求,但在持續改進迭代環節,為持續維持或提升代碼大模型推理準確性,構建代碼數據集、調優代碼大模型、評估代碼大模型或智能開發工具等使能能力同樣重要。本章將圍繞數據、模型、評估、安全和相關工程化
50、能力展開分析其建設要點。(一)代碼數據處理能力(一)代碼數據處理能力代碼大模型所需的代碼數據集包括純代碼數據,以及代碼和文本的混合數據。通過有效地管理和處理代碼數據集,將其處理成可直接被用于模型訓練調優的高質量代碼數據集,為代碼大模型提供基礎支持,應用于企業在建設和維護優化代碼大模型的過程。圖 10 數據處理流程圖數據清洗數據清洗用于過濾低質代碼數據,提升數據質量。代碼數據清洗主要包括數據過濾、數據去重、敏感數據處理、許可協議(License)過濾等環節。不同數據可采用不同處理方式,開源代碼數據可進行所有方式的清洗,私有代碼數據可進行數據過濾、數據去重、敏感信息過濾等方式的清洗。數據過濾是篩選
51、、排除或提取數據集中特定部分,過濾方法主要包含三種?;谝巹t過濾是采用基于正則表達式、專家規則、點智能化軟件開發落地實踐指南(2024 年)27贊數量等規則的過濾器,識別并刪除空白文件、自動生成的代碼數據、有效信息過少的數據等;基于程序分析過濾是采用語法解析器和抽象語法樹過濾存在語法錯誤的代碼數據,采用規范檢查規則或工具過濾掉不符合規范和不安全的代碼數據;基于模型過濾是采用標注的高質量和低質量數據,訓練質量模型分類器,對代碼數據質量進行評估和過濾。數據去重是從數據集中消除冗余的重復記錄,僅保留具有唯一性的數據條目,提升數據質量和存儲效率。去重方式包含精確去重和近似去重,去重策略包含代碼的文件級
52、去重和倉庫級去重,有效壓縮數據規模。敏感信息處理是指識別并移除或替換數據中的敏感信息,包含代碼中的密鑰、令牌、個人身份信息、URL、IP 地址、機密算法等,可采用正則表達式、深度學習與機器學習、人工審查等技術實現敏感信息過濾。License 過濾是檢驗并去除開源代碼中不允許使用的數據。開源代碼 License 包含允許使用、不允許使用和無規定,為保證開源數據使用的合規性,可使用 ScanCode-Toolkit 等許可檢測工具,過濾掉非法數據,將允許使用和無規定的開源數據用于模型訓練調優。數據增強數據增強是通過對現有代碼數據執行有意義的變換和擴充,生成新代碼樣本,增加數據集的多樣性和豐富度,提
53、高模型泛化能力和魯棒性。注釋增強是通過人工或自動化方式在代碼的方法定義、智能化軟件開發落地實踐指南(2024 年)28循環、條件語句等位置新增注釋,增強代碼可讀性,例如開源代碼可采用 AI 自動化生成注釋,私有代碼可采用人工注釋以得到更好效果;上下文增強是在準備微調數據時,將代碼數據擴充增加相關聯的上下文、依賴、外部對象和方法等信息;數量及多樣性增強用于提升代碼數據覆蓋度減少過擬合,常用方法如 Self-Instruct、Evol-Instruct、OSS-Instruct 和 Self-OSS-Instruct 等。數據檢查數據集的質量決定了大模型的性能,代碼數據集在處理過程中應滿足一定要求
54、。數據集質量方面,應滿足語法正確、編碼規范、無安全漏洞、無缺陷、無敏感信息、無重復代碼、包含注釋等要求;數據場景覆蓋方面,應選擇高質量代碼,只包含代碼文件,無需其他配置文件,同時只包含核心代碼,棄用邊緣代碼等要求。(二)代碼大模型優化能力(二)代碼大模型優化能力對代碼大模型進行優化的目標是維持或增強其推理能力,主要包括模型調優及調優后模型部署,應用于企業使用專有數據集對代碼大模型進行專項調優的過程。模型調優模型調優是在特定任務或領域上進一步訓練或調優模型,以優化其對這一任務或領域的理解和推理能力。代碼大模型調優通常采用有監督微調和強化學習等方法。智能化軟件開發落地實踐指南(2024 年)29圖
55、 11 代碼大模型優化過程示意圖有監督微調亦稱指令微調,是指通過構建指令格式的實例,以有監督方式對大模型進行微調。指令微調可輔助代碼大模型提升推理能力,從而展現出泛化到未見過的任務的卓越能力。指令微調的前提是構建問答對數據集,同時根據實際任務(如代碼生成、代碼解釋等任務)配置數據配比不斷完善數據質量。有監督微調包含全量參數指令微調和高效微調,當算力充足且數據集較多的情況下,通常采用全量參數指令微調的方式,從而達到更好微調效果,但算力不足時,可采用更高效的微調方法,如 LoRa、Adapter、Prefix-tunning 等。強化學習的目標是強化代碼大模型在某些準確率不高的任務下的能力,可通過
56、人類反饋對推理質量進行評估和排序,并依據其反饋結果開展學習優化,從而持續提升推理生成的質量。強化學習通常選擇基于人類反饋的強化學習算法框架,并利用近端策略優化算智能化軟件開發落地實踐指南(2024 年)30法進行優化,或進行直接偏好優化。強化學習需要特殊構建數據集,一方面可以使用大模型生成或人工構建數據對,針對不同開發場景進行增強,從而提升模型的通用研發能力,如針對某類代碼框架或前端開發、后端開發等不同場景構建正負數據對;另一方面則需要結合測試反饋或用戶反饋來針對模型能力較弱的場景進行增強,如在服務運行階段,通過后臺監控白名單用戶行為,如點贊點踩、代碼采納情況等,收集好回答示例和壞回答示例進行
57、數據構造,從而修正模型偏好。模型部署模型部署是指將調優好的模型部署至服務器上供用戶使用的過程。模型部署時普遍考慮三點,一方面開展模型轉換,根據部署資源將模型轉換成所需形態,另一方面通過優化算法提升大模型推理速度和吞吐量,提高計算資源的利用率,最后根據需求、使用場景選用并生成合理的模型調用方式,如接口(API)或插件方式。但在代碼大模型部署時,還應特別考慮前后處理工作,當用戶提交請求時,需對用戶所在項目工程進行軟件分析,并將分析信息和用戶輸入一并輸入給代碼大模型;當代碼大模型推理完成后,需對推理結果進行后處理,如在函數結束位置提前停止、復讀檢測、幻覺檢測等,以增強代碼大模型推理生成的準確性。(三
58、)智能開發能力評估(三)智能開發能力評估為驗證代碼大模型及智能開發工具是否滿足需求,通過構建評估數據集和指標對其開展全面評估,應用于企業在采購、建設及維智能化軟件開發落地實踐指南(2024 年)31護優化智能開發能力的過程。評估對象智能開發能力評估包括代碼大模型能力評估和智能開發工具能力評估。代碼大模型能力評估聚焦于大模型的理解和推理能力,通過采用專業評估數據集對代碼生成的準確性、單元測試的覆蓋度、代碼檢查的錯誤檢出率等指標進行評估。智能開發工具能力評估聚焦于平臺能力、功能豐富度和專項化能力等多個維度,綜合衡量呈現給用戶的工具的性能和工程化能力,其框架如圖 12 所示。圖 12 智能開發能力評
59、估架構圖評估內容代碼大模型評估旨在衡量準確性和可接受度,智能開發工具評估旨在衡量準確性和可接受度,以及工具的功能豐富度、工程化能力以及體驗度。準確性評估是通過預設的關鍵指標對工具在特定場景下的輸出進行客觀分析(如表 1 所示),考察輸出的準確性和邏輯合理性;可接受度評估是通過專家評審等主觀分析,考察輸出是否達到行業標準,主要包括輸出代碼的符合性、可讀性、規范性、完整性、合規性和安全性等;工具專項評估是通過對工具的功能和智能化軟件開發落地實踐指南(2024 年)32性能的評估,考察其應用層面的靈活性、可擴展性、兼容性、安全性、穩定性等,以及功能豐富度和使用過程的體驗度等。表 1 準確性評估場景與
60、指標參考清單評估方法智能化開發能力的評估方法涉及多種方法。一是自動化評估方法,面向準確性評估,通過構建評估框架、指標體系和自動化工具,使用數據集開展相關客觀指標的評估;二是裁判模型評估方法,面向可接受度評估,通過選取具有高精度和相關領域知識的大模型作為“裁判”,設置好詳細的提示詞,對輸出進行評估;三是領域專家評估方法,面向可接受度和工具專項評估,通過行業專家對照預期結果評估工具的實際性能及工程化能力,提供主觀判斷。實際評估過程中,通常采用多種方法可形成互補的評估機制,同時考慮評估效率和準確性,從而為持續提升智能開發能力提供有效方法。(四)智能開發安全能力(四)智能開發安全能力智能開發的安全能力
61、是指從代碼數據、代碼大模型、智能開發工具等層面構建的安全治理體系,目的是減少使用智能開發能力時智能化軟件開發落地實踐指南(2024 年)33帶來的風險,主要包括數據安全、模型安全和應用安全,應用于企業落地智能開發能力的全過程。圖 13 安全能力體系架構圖1.數據安全治理數據安全治理應考慮從數據源頭到應用全過程的安全可控,以保證用于代碼大模型訓練和調優的代碼數據集安全。數據采集階段確保從可信代碼倉庫獲取源數據,防止版權風險;數據處理階段通過清洗與過濾等技術,精準剔除敏感代碼,并對代碼數據進行分類與標注,便于后續的差異化管理和使用;數據安全評估階段作為質量門禁,對擬入庫并共享發布的代碼數據集進行審
62、查;數據管理階段可通過存儲層加密等手段確保代碼數據存儲安全,以版本控制和訪問控制等手段確保代碼數據可追溯,并通過定期安全評估開展數據健康狀況監控,及時處理安全風險。同時,承載數據采集、處理等全過程的工具鏈,需具備任務隔離和嚴格的訪問控制機制,確保其自身的安全,保證代碼數據開發過程的安全可控。圖 14 數據安全治理流程示意圖智能化軟件開發落地實踐指南(2024 年)342.模型安全治理模型安全治理應考慮代碼大模型在開發、管理及運行階段安全可控。開發階段,即代碼大模型調優階段,首先應保證數據和基礎模型的來源可信,同時對模型進行安全標識和分類分級;其次通過相關數據集對代碼大模型開展安全可信評估,確保
63、模型推理結果滿足基礎安全要求。管理階段,應對代碼大模型進行安全性存儲和加密傳輸,并加強模型版本管理實現模型溯源,確保合理的權限約束。同時,對于承載代碼大模型開發全過程的工具鏈,需具備任務隔離和嚴格的訪問控制機制,確保其自身的安全,保證代碼大模型開發過程的安全可控。運行階段,面向代碼大模型推理服務,一是確保推理接口安全,通過通信加密協議、安全訪問機制等方式,防止未授權訪問及 API濫用等情況;二是確保提示詞數據安全(如提示詞不被篡改等)、知識庫數據安全,并對 RAG 檢索的知識附帶來源,降低運行時推理風險;三是對推理資源做合理分配,防止推理資源的過度消耗;四是確保運行環境安全,防止模型泄露或被篡
64、改,通過實施沙箱隔離及強化訪問控制等措施,確保只有經過認證的用戶和應用程序才能訪問代碼大模型。智能化軟件開發落地實踐指南(2024 年)35圖 15 模型安全治理架構圖3.應用安全治理應用安全治理是對基于代碼大模型的智能開發工具的安全保障,一是關注應用安全防護,如部署 DDoS、WAF 等網絡安全防護技術;二是強化敏感信息檢測機制,對用戶輸入及模型輸出內容實施敏感信息檢測和內容安全防控,以防范敏感信息及關鍵資產的泄露,并保障內容合法性和適宜性;三是保證用戶數據隱私安全,用戶數據應嚴格按照授權內容存儲,或者不存儲,確保私有數據安全;四是可考慮模型領域隔離,僅限定于研發領域的應用,不提供其他無關領
65、域的內容生成等功能;五是健全安全審計機制,通過系統請求和操作等審計日志的管理,確保智能開發工具使用安全性。圖 16 應用安全治理框架圖智能化軟件開發落地實踐指南(2024 年)36(五)其他工程化能力(五)其他工程化能力為進一步提升代碼大模型及智能開發工具對問題的理解能力,以及對企業私有化知識的習得能力,提示詞、RAG、Agent 等各工程化能力扮演著重要角色,可在不改變代碼大模型的前提下達到更好推理效果,本節重點圍繞提示工程和 RAG 展開分析。1.提示工程能力提示工程是用戶與代碼大模型交互的主要橋梁,通過設計和使用提示詞可優化代碼大模型能力,對提升模型性能、增強模型可控性、擴展模型能力等方
66、面具有直接作用。面向智能開發領域,提示工程主要被用于兩個階段,一是代碼大模型訓練調優階段,使用提示詞構造訓練樣本,通過預訓練、指令微調、反饋對齊等方式訓練大模型,從而提高其對特定指令的遵從和理解能力,或者賦予模型連續對話、工具調用等能力;二是代碼大模型推理階段,通過提示詞為大模型提供解決問題所需的必要信息,包括但不限于任務背景知識、必要的上下文信息、期望輸出格式等,從而提升大模型正確生成答案的概率。提示工程的典型應用包括可感知上下文的代碼補全、圍繞代碼倉的問答、智能解決問題單等場景,需通過提示詞將待生成代碼中可能用到或可能參考的代碼片段、相關文檔、項目結構、錯誤堆棧等信息告知代碼大模型。(1)
67、提示詞要素提示詞內容通??砂韵略?。系統設定,涵蓋人設/角色、基本原則、安全邊界等重要內容;任務提示,明確指出大模型需要智能化軟件開發落地實踐指南(2024 年)37完成的具體任務或目標、輸入格式、輸出要求等;用戶指令,包括當前要回答的具體問題的背景、描述、詳細要求等;示例樣本,提供若干具體的輸入-輸出示例;上下文輸入,提供當前任務所需要的隱式上下文。除此之外,還可以根據具體場景附加其他元素,如檢索增強內容、可調用工具列表、行動與反思指令等。業內使用的提示詞模版較為典型的包括 BROKE、CRISPE、ICIO、APE 等。(2)提示詞構造方法提示詞構造是一個復雜且多維的過程,不僅涉及設計
68、和編寫提示詞本身,還可借助其他工程化方式動態構造和組裝提示詞。手動編寫提示詞是一種基本且直接的提示詞構造方法,由用戶或代碼大模型服務提供方,根據各自的需求和任務背景直接手動編寫,本方法簡單直接但不夠靈活且效率較低,適用于簡單場景;動態組裝提示詞是指在運行時基于模板生成提示詞的構造方法,可通過軟件分析、自然語言處理、大模型推理等技術進行動態填充,如代碼生成任務中的上下文、代碼重構任務中的項目結構等。(3)提示詞實例參考在代碼補全任務中,提示詞通常如表 2 所示。通過該提示詞,系統將首先設定代碼大模型扮演一個編程專家角色,激發其在編程領域的特定知識;其次通過任務提示告知代碼大模型需根據光標處的上下
69、文進行補全;最后要求代碼大模型根據示例樣本,按照用戶指令進行代碼插入,并不可生成重復代碼。通過該提示詞可提升代碼續寫能力。智能化軟件開發落地實踐指南(2024 年)38表 2 提示詞示例 1在代碼解釋任務中,提示詞通常如表 3 所示。通過該提示詞,系統將首先設定代碼大模型扮演一個編程教練角色,激發其在教學領域的特定知識;其次通過任務提示告知代碼大模型在解釋時所需要使用的語言以及輸出格式;最后根據用戶指令明確需要解釋的代碼片段及其所在文件,并獲取上下文信息進行代碼解釋,通過該提示詞可提升代碼解釋的效果。表 3 提示詞示例 2智能化軟件開發落地實踐指南(2024 年)392.RAG 能力檢索增強生
70、成(RAG)是指通過語義相似性計算從外部知識庫中檢索相關文檔塊,以增強代碼大模型能力,減少幻覺并提高對專業知識的快速習得能力。面對私有代碼庫檢索、研發問答知識追溯、生成的代碼需符合內部開發規范、生成內部開發文檔等情況,RAG可提供較好的解決方案。RAG 落地過程中,通常包括數據索引服務、向量化模型服務、向量數據庫服務和搜索服務四個主要環節(如圖 17 所示)。圖 17 RAG 落地流程示意圖數據索引服務是指將知識進行向量化并存儲于數據庫的過程,其中采用不同索引構建方式處理文本和代碼數據是核心要點,文本的拆分處理可選擇固定字符數分塊、遞歸分塊、語義分塊和特定格式分塊等方式,代碼拆分處理時,對于常
71、規長度的函數體可選擇整體向量化而不做拆分,對于少數超大超長函數體既可采取自動截斷也可按行進行切分;向量化模型服務可選擇 BGE(Bi-Encoder forGeneralEmbeddings)、M3E(MultimodalMultilingualMultitaskEmbeddings)等模型,通過部署容器化并對外暴露端口,提供向量化服務;數據庫服務使用向量數據庫存儲向量化之后的數據,可選擇智能化軟件開發落地實踐指南(2024 年)40開源數據庫如 Milvus,Faiss,Weaviate,Qdrant 等,并通過減少向量大小、縮小搜索范圍等方式提高數據庫檢索效率;搜索服務是向量化模型服務和數
72、據庫服務的橋梁,一方面用于將查詢請求轉換為向量表示,并在向量數據庫中搜索相似項,另一方面對于搜索結果需根據不同使用場景設置不同的相似度閾值,確保將高質量結果反饋給代碼大模型作為輸入的一部分。智能化軟件開發落地實踐指南(2024 年)41五、智能開發落地案例分析五、智能開發落地案例分析各行業積極探索智能開發落地之道,并在部分行業的應用成效顯著。本章將對智能化軟件開發在云服務、軟件服務業、電力、金融及制造等行業的落地案例進行闡述和分析。(一)云服務行業案例(一)云服務行業案例某大型云服務企業云服務研發過程遵循 DevOps 最佳實踐,一方面該企業產品需要基于業界前沿方法和技術不斷提升研發效率和產品
73、發布速度,以響應激烈的市場競爭并保持領先;另一方面作為公司研發工程能力的排頭兵,需要優先驗證和試點業界領先的智能化軟件開發能力,為公司其他產品線更大規模的探索和應用打好前陣。該企業在落地前存在如下問題和需求。1)建立全新的智能化研發工程體系:面向全新的智能化研發范式,在流程、組織、工具等方面需要盡快通過試點探索形成新的工程體系,以牽引云服務研發生產力的持續提升;2)保持研發生產能力先進性:面對激烈市場競爭,如何通過AI 技術升級傳統研發體系,保障軟件研發生產力持續領先;3)軟件研發流程中仍存在高能耗業務場景:問題包括如研發人員難以全盤掌握和快速精準獲取海量知識;單元測試及接口測試腳本人工輸出工
74、作量大,效率低難以匹配業務代碼的增長訴求;對高價值代碼問題檢視率低,質量不可控等。1.解決方案該企業圍繞“設計-開發-測試-協同”四個核心研發階段,基于“高智能化軟件開發落地實踐指南(2024 年)42能耗”活動(如高消耗、高知識門檻)和“AI 適用性”(業務成熟度、數據成熟度、技術成熟度)”兩個方面共 5 個維度,識別出各研發階段中 AI 實踐價值場景。而“開發”場景為價值最高,因此優先落地覆蓋了編碼的“讀-寫-調-測-檢”全流程。圖 18 某云服務企業案例落地方案示意圖2.價值和收益該企業首輪試點后,半年多快速覆蓋用戶 7000+人,日活 1800+,AI 代碼生成 220+萬行,單測生成
75、 300+萬行,研發問答 46+萬次。其中單測全量覆蓋率達到 57%(提升 89%),增量覆蓋率達到 78%(提升 1.3 倍),研發效率得到明顯提升。(二)軟件服務業案例(二)軟件服務業案例某軟件服務企業為國內眾多行業提供軟件研發服務,包括需求設計、開發、測試、運維等,但服務過程中面臨的痛點問題長期存在。1)業務系統溝通效率低:在被服務的企業中,業務需求復雜且多變,但需求人員少而開發人員多,造成溝通瓶頸,使得項目的智能化軟件開發落地實踐指南(2024 年)43整體進度遲緩;2)代碼開發質量待改進:開發過程中缺乏高效的代碼審查機制,導致潛在缺陷和技術債務未能及時被發現和解決,另外自動化測試實現
76、不足,手動測試覆蓋面有限,增加了系統上線風險;3)信創體系帶來的遷移困難:由于歷史原因部分企業存在不少Cobal 等語言的老業務系統,而現在熟悉 Cobal 的業務邏輯和技術人員極少,給系統遷移帶來極大困難。1.解決方案針對上述一系列問題,該企業自研了 AISE 一體化平臺,助力軟件研發過程提質提效。1)通過將項目知識資產(需求文檔、設計文檔、業務需求等)進行處理,利用大模型智能分析問題和歸納總結能力,為每個項目組提供獨立的智能問答助手,節省項目知識溝通成本;2)提供代碼自動生成、自動審查、自動修復、單元測試用例自動生成、代碼翻譯和轉換等功能,并將上述功能完全集成在現有開發環境中,在不改變開發
77、人員習慣的同時提升開發效率和質量;3)引入多級外部知識庫和大模型集成,支持 Github、Gitlab、網站、異構數據源等多種格式知識庫的導入,同時無縫連接企業內部系統,提供效率查詢、單點登錄、業務系統數據聯通等多種接口技術,給業務系統賦予更多智能化能力。智能化軟件開發落地實踐指南(2024 年)44圖 19 某軟件服務企業案例落地方案示意圖2.價值和收益該企業的 AISE 一體化平臺落地后,Cobal 代碼遷移效率提升40%以上,項目溝通時間成本從以往以星期為周期降低為一天以內,開發效率提升 30%左右。(三)電力行業案例(三)電力行業案例某國網數字化建設支撐單位,專注于電力行業多個專業數字
78、化系統的研發與推廣,致力于推動電力行業實現數字化轉型,但在軟件開發過程中,面臨多重挑戰。1)外部資源難以利用:由于研發環境相對封閉,導致無法充分整合和合理利用外部優質資源;2)開發周期長:項目規模龐大,需求繁雜,但開發人員有限,致使開發周期不斷延長,影響項目交付的及時性;3)代碼規范性差、維護困難:缺乏嚴格的代碼審查流程,導致智能化軟件開發落地實踐指南(2024 年)45代碼質量參差不齊,為后續的軟件維護和升級工作帶來了極大的困難,增加維護成本和風險。1.解決方案針對上述問題,該單位基于人工智能大模型技術,研發了智能編碼工具,實現了代碼自動生成、優化、測試、規范性檢查與修復等功能。1)以代碼大
79、模型作為基座模型,運用 LoRa 進行私有代碼的定制化微調,從而更好地服務于電力行業的特定需求,并適應不同部門和項目組的獨特工作流程;2)提供基于 AI 的查詢和問答系統,針對公司公共組件庫和統一數據模型進行檢索,幫助開發者快速定位和理解組件功能,促進代碼復用和標準化,降低維護成本;3)開發自動化檢測和修正工具,可根據公司的代碼規范要求對代碼進行實時掃描,自動識別不規范代碼片段,并提供修正建議或直接進行自動修改,提升了整體代碼質量。圖 20 某電力行業企業案例落地方案示意圖智能化軟件開發落地實踐指南(2024 年)462.價值和收益通過智能編碼工具的使用,代碼生成和優化速度與準確率得到了顯著提
80、升,代碼質量評分提高至 90%以上,開發效率提升超過50%,項目交付時間平均縮短 40%。(四)金融行業案例(四)金融行業案例某國有銀行在企業數字化轉型過程中,面臨軟件應用膨脹、代碼量激增和架構復雜化的挑戰。為抓住金融科技創新機遇,該銀行決定引入大模型技術提升軟件應用的開發效率,保障代碼質量,并控制研發成本。該企業在落地前存在如下問題和需求。1)老舊應用重構及遷移困難:該行有很多海外應用使用了 Flex編程語言進行開發,代碼量大且技術過時,而新人對 Flex 不熟悉,需投入大量精力維護,期望能將其重構成 React 代碼;2)自研框架開發門檻高:行內基于 SpringBoot 的自研框架規范性
81、設計約束多,日常開發過度依賴開發文檔,需降低開發門檻,提升效率;3)代碼質量隱患:由于線上問題時有發生,其影響大、定位難、耗時長,期望從代碼層面保障開發質量,強化單元測試的執行力,原有單測覆蓋率10%。1.解決方案針對企業前期存在的問題,與其他公司聯創實現了智能開發工具的落地。1)代碼翻譯與轉換:針對老舊應用從 Flex 轉到 React 代碼,使智能化軟件開發落地實踐指南(2024 年)47用大模型的代碼翻譯基礎能力,并將行內代碼和轉換規則等加入學習和訓練調優;2)代碼輔助生成、框架知識問答:將行內自研開發框架、歷史代碼和開發文檔等進行加入模型訓練調優,優化對 Jump 等框架的場景處理能力
82、;3)單測用例生成:針對行內單測覆蓋率低等問題,落地智能開發工具的單測生成能力,提升單側覆蓋率。圖 21 某銀行案例落地方案示意圖2.價值和收益該行通過落地智能開發工具,Flex 代碼轉換至 React 代碼的準確率由 20%提升至 40%,代碼生成采納率超 30%,Jump 場景評分從 20 分躍升至 70 分。同時,核心業務場景單元測試覆蓋率兩周內提升 30%以上,部分業務系統覆蓋率提升 50%以上。(五)制造行業案例(五)制造行業案例某大型家電制造合資企業,作為領先的數字化轉型解決方案提智能化軟件開發落地實踐指南(2024 年)48供商,在企業數字化轉型的過程中,面對日漸復雜的業務場景、
83、逐漸龐大的代碼規模和快速的交付節奏,期望通過大模型技術提升代碼開發效率,該企業在落地前存在如下問題和需求。1)代碼閱讀瓶頸:現有源代碼庫中注釋稀缺或不準確,嚴重影響維護性的開發進度;開發人員面對陌生代碼時,常陷入理解困境,尤其是涉及不熟悉的編程語言時,理解成本倍增;2)開發效率亟待提升:企業面對龐大的研發團隊、加速的交付節奏和嚴苛的質量標準,迫切需要提升研發效能、實現降本增效;3)大模型創新探索:作為行業大模型應用的先行者,企業不僅密切關注前沿技術的創新與演進,也渴望深入探索代碼大模型在智能家居行業實際應用場景中的表現,評估其成熟度,并以此推動整個智能制造業的進步。1.解決方案該企業秉持建設“
84、行業第一,世界一流”的目標,整體制定代碼大模型落地方案,在部分研發領域實現小步快跑。1)通過落地代碼大模型,實現代碼生成、代碼解釋、代碼注釋等能力,解決閱讀瓶頸等問題;2)通過集成高可用模型、高性能服務器,并借助 RAG 檢索增強和 SFT 模型調優等技術,持續定制化地訓練和優化代碼大模型在注釋生成和補全、用例生成、安全合規等方面的表現;3)部署智能化可視化看板,實時監測人員覆蓋率、接口調用頻次、問答接受度、單元測試覆蓋率等各項指標,量化大模型對研發智能化軟件開發落地實踐指南(2024 年)49效能的提升。圖 22 某家電制造企業案例落地方案示意圖2.價值和收益該企業落地智能開發工具后,開發人
85、員編碼效率提升 20%30%,企業內部 80%開發人員已使用,月活用戶比例達到 70%,助力企業整體研發效能提升 20%以上。智能化軟件開發落地實踐指南(2024 年)50六、總結與展望六、總結與展望智能化軟件開發作為大模型落地應用最快的場景之一,其智能化水平得到持續提升,落地成效逐漸顯現,落地方案逐漸明晰,為軟件工程變革性發展帶來巨大推動力。軟件工程智能化變革成為必然,智能開發助推價值提升。大模型推動軟件工程 3.0 圍繞著交互性、智能化、自適應和持續優化等特點持續發展,智能化能力為軟件開發環節帶來的價值顯著,包括開發效率、代碼質量和產品迭代創新能力的提升,推動軟件工程高質量發展。智能開發落
86、地策略逐漸明確,三層落地框架成為主流。通過自我診斷、方案設計、部署實施、持續優化四個關鍵落地步驟,圍繞模型層、服務層和應用層三層落地框架,企業落地智能開發能力的路徑更加明晰。核心能力和使能能力建設助力智能開發能力高效落地。一方面通過代碼生成與補全、單測用例生成、代碼轉換與優化、代碼解釋與注釋等核心能力建設,可實現代碼大模型和智能開發工具的基礎落地;另一方面通過數據、模型、評估和安全等多維度的使能能力建設,可實現代碼大模型持續優化迭代,以及應用工具能力的提升。未來,代碼大模型和智能開發工具將從技術、應用和形態等方面持續發展,從而構建和落地更智能、全流程、可解決復雜研發問題的應用工具。技術能力的持
87、續發展將帶來更高準確性和更優性能。一是大模智能化軟件開發落地實踐指南(2024 年)51型自身能力的提升,基礎大模型架構方面將探索更加高效、靈活、可擴展的底層模型架構(如 Mamba、MOE-Mamba 等),代碼大模型方面將從高質量數據集、模型調優量化技術、上下文長度等角度生產更優性能的模型;二是工具工程化能力的提升,提示工程、RAG、AI Agent 等技術的發展將在工具層面為代碼大模型進一步輔助增強,未來還將有更多新興技術的發展和輔助,為智能開發能力落地提供更強勁動力。落地應用的場景將更加豐富、流程更加全面。隨著智能開發能力在前端頁面、數據庫、桌面應用、嵌入式等場景的逐步落地,未來將衍生
88、更多場景,包括工業領域代碼開發等,為賦能新型工業化提供更多路徑。同時在軟件工程全生命周期中的落地將更加全面,圍繞智能開發向需求設計、軟件測試、系統運維、項目管理等環節拓展,通過 AIAgent 等技術打通全流程智能化落地,從而實現“人人都是開發者”的低門檻生態。應用形態將朝著更加智能化的方向持續推進。從當前的輔助開發人員完成任務,到幫助開發人員獨立完成更復雜的研發任務,再到未來替代開發人員真正實現嚴格意義的智能開發,從而推動副駕駛(Copilot)到駕駛員(Pilot)的逐步演進。同時組織結構從團隊作戰將演變為單兵作戰,開發人員將更聚焦于軟件設計及更具有創新價值的工作,軟件研發形態將得到重塑,軟件業將迎來變革。代碼安全和安全代碼相輔相成推動軟件安全可信發展。代碼安全是指通過智能化能力檢查和修復代碼中的安全漏洞,從而提升其智能化軟件開發落地實踐指南(2024 年)52安全性,一是將拓展檢查范圍,不光檢查傳統代碼,還將檢查大模型等 AI 模型的安全漏洞;二是將降低代碼檢查工具誤報率,提升漏洞檢查質量。安全代碼是指通過代碼大模型生成的代碼的安全性,未來將從數據、模型、工具等維度持續降低生成式代碼的風險,使智能開發真正安全,使未來軟件更加安全可信。53