版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
中國信息通信研究院人工智能研究所華為云計(jì)算技術(shù)有限公司2024年9月版權(quán)聲明本報(bào)告版權(quán)屬于中國信息通信研究院、華為云計(jì)算技術(shù)有限公司,并受法律保護(hù)。轉(zhuǎn)載、摘編或利用其它方式使用本報(bào)告文字或者觀點(diǎn)的,應(yīng)注明“來源:中國信息通信研究院、華為云計(jì)算技術(shù)有限公司”。違反上述聲明者,編者將追究其相關(guān)法律責(zé)任。2024年《政府工作報(bào)告》首次提出“人工智能+”戰(zhàn)略行動(dòng),旨在推動(dòng)人工智能賦能各行各業(yè)。以大模型為代表的新一代人工智能技術(shù)迅猛發(fā)展,已成為軟件工程領(lǐng)域智能化轉(zhuǎn)型的關(guān)鍵驅(qū)動(dòng)力,為軟件開發(fā)、測試等環(huán)節(jié)注入新智力。智能化軟件開發(fā)工具憑借其強(qiáng)大的代碼理解和生成能力,有效降低了開發(fā)人員的技術(shù)門檻,并提然而,在軟件開發(fā)的智能化能力建設(shè)和應(yīng)用過程中,仍面臨諸多挑戰(zhàn),如代碼大模型選擇困難、開發(fā)工具的工程化建設(shè)復(fù)雜、智能化能力建設(shè)無參考、開發(fā)場景選擇和落地難,以及與現(xiàn)有開發(fā)工具或流水線的集成難等問題。為此,本指南旨在為正在進(jìn)行軟件開發(fā)智能化轉(zhuǎn)型的企業(yè)提供一份實(shí)用指南,為企業(yè)制定落地策略、建設(shè)智能開發(fā)能力體系提供有力參考。本指南系統(tǒng)梳理了智能化軟件提出了具體的落地方向、路徑和框架,詳細(xì)闡述了落地所需的核心能力和使能能力,并對多個(gè)行業(yè)的落地案例進(jìn)行了深入剖析,最后由于大模型等人工智能技術(shù)產(chǎn)業(yè)仍處于快速發(fā)展階段,智能開發(fā)相關(guān)的技術(shù)產(chǎn)品、服務(wù)和應(yīng)用也在不斷演變,我們的認(rèn)識將隨著 1(二)智能開發(fā)發(fā)展現(xiàn)狀 5(三)智能開發(fā)價(jià)值顯現(xiàn) 7(四)智能開發(fā)落地挑戰(zhàn) 9 (一)智能開發(fā)落地原則 (二)智能開發(fā)落地步驟 12(三)智能開發(fā)落地框架 15 (一)代碼生成與補(bǔ)全 17(二)單元測試用例生成 19(三)代碼轉(zhuǎn)換與優(yōu)化 21(四)代碼解釋與注釋 22(五)代碼檢查與修復(fù) 23(六)研發(fā)問答 24 (一)代碼數(shù)據(jù)處理能力 26(二)代碼大模型優(yōu)化能力 28(三)智能開發(fā)能力評估 30(四)智能開發(fā)安全能力 32(五)其他工程化能力 36 (一)云服務(wù)行業(yè)案例 41(二)軟件服務(wù)業(yè)案例 42 44(四)金融行業(yè)案例 46(五)制造行業(yè)案例 47 3 23 39 1一、智能開發(fā)發(fā)展概述軟件工程領(lǐng)域正迎來前所未有的變革,軟件開發(fā)的流程和模式正被重新定義,智能化進(jìn)程顯著加速。本章將簡要回顧軟件工程的發(fā)展歷程,重點(diǎn)介紹軟件工程3.0的發(fā)展特點(diǎn),以及智能化軟件開發(fā)(以下簡稱:智能開發(fā))領(lǐng)域發(fā)展現(xiàn)狀,并深入探討智能化能力為軟件開發(fā)帶來的價(jià)值提升,最后梳理落地挑戰(zhàn)。1.軟件工程發(fā)展歷程軟件工程自1968年誕生以來,其發(fā)展歷程括軟件工程1.0、軟件工程2.0和軟件工程軟件工程1.0,即第一代軟件工程,亦稱為“傳統(tǒng)軟件工程”。本階段的發(fā)展起點(diǎn)可追溯至上個(gè)世紀(jì)六十年代,隨著大容量、高速度復(fù)雜程度越來越高,可靠性問題更加突出。為解決該類軟件危機(jī),21968年北大西洋公約組織(NATO)在國際會(huì)議上首次提出“軟件工程”概念,期望將軟件開發(fā)帶出混亂的局面,走向有紀(jì)律、有流程的規(guī)范化之路。軟件工程1.0推崇結(jié)構(gòu)化方法,重視流程和文檔規(guī)范化等工程實(shí)踐,對提升軟件產(chǎn)品交付成功率和質(zhì)量有重大意義。但在軟件工程1.0時(shí)期,由于軟件被當(dāng)作傳統(tǒng)的工業(yè)制造產(chǎn)品進(jìn)行交軟件工程2.0,亦稱“敏捷軟件工程”。本階段的發(fā)展自2001年“敏捷軟件開發(fā)宣言1”發(fā)布起,通過踐行敏捷開發(fā)最佳實(shí)踐,實(shí)現(xiàn)持續(xù)集成(CI)、持續(xù)交付(CD)和快速迭代以更好地滿足日益變化而服務(wù)的性能、效率、可靠性、可持續(xù)性也更加重要,這推動(dòng)人們將軟件開發(fā)和運(yùn)維融合起來,DevOps模式應(yīng)運(yùn)而生,使得軟件交付技術(shù)門檻和研發(fā)成本居高不下,對技術(shù)人員的依賴性非常高,雖然陸續(xù)有自動(dòng)化技術(shù)的出現(xiàn)和落地,對效能提升方面未有顯著成效,“軟件工程沒有銀彈2”這一觀點(diǎn)仍然有效。軟件工程3.0,亦稱“智能化軟件工程”。2022年底以來,隨著ChatGPT等大模型相繼發(fā)布,軟件工程迎來新一輪變革。大模型憑借其強(qiáng)大的理解和生成能力,通過代碼生成、代碼續(xù)寫、測試用例生成、智能問答等能力,為軟件工程帶來了智能化能力升級,為提1https://agilemanifes3升軟件質(zhì)量和效率帶來了新動(dòng)力,全新的軟件開發(fā)范式正在誕生。2.軟件工程3.0發(fā)展特點(diǎn)使用大模型為核心的AI技術(shù)驅(qū)動(dòng)軟件全生命周期能力升級(如圖2所示)。本階段以構(gòu)建支持軟件開發(fā)、測試或運(yùn)維等環(huán)節(jié)的AI模型為基礎(chǔ),將智能化技術(shù)逐步運(yùn)用至軟件工程各階段,促進(jìn)軟件研發(fā)和運(yùn)營效率的提升、質(zhì)量的躍進(jìn)、成本的降低。本階段的發(fā)展特性較為明顯,核心特點(diǎn)包括智能化、數(shù)據(jù)驅(qū)動(dòng)性、交互性、自適應(yīng)和調(diào)取和應(yīng)用,以實(shí)現(xiàn)工具自身能力的提高,為智能化軟件工程打下堅(jiān)實(shí)基礎(chǔ)。例如,將大模型與測試平臺(tái)對接,提供測試用例生成、測試結(jié)果分析等能力,提高測試平臺(tái)效能;將大模型與用戶界面4(UI)測試工具對接,提供界面要素和組件等識別能力,提高UI測數(shù)據(jù)驅(qū)動(dòng)性,高質(zhì)量數(shù)據(jù)是大模型成功的關(guān)鍵,“Ga規(guī)范類文檔數(shù)據(jù)集、測試用例數(shù)據(jù)集、日志數(shù)據(jù)集等,均將應(yīng)用于大模型的訓(xùn)練、調(diào)優(yōu)和推理過程,其質(zhì)量高低直接影響推理結(jié)果,從而影響軟件工程智能化能力帶來的效果。例如,使用了精調(diào)代碼數(shù)據(jù)集訓(xùn)練后的模型,相比基座模型在MultiPL-E上的評測結(jié)果絕對值提升了8.2%,而使用了未精調(diào)的普通的代碼加注釋的數(shù)據(jù)集訓(xùn)交互性,包括兩個(gè)方面,一是大模型與人之間的人機(jī)交互,二是大模型與工具間的交互。人機(jī)交互將不斷相互啟發(fā)、相互促進(jìn),大模型可學(xué)習(xí)特定項(xiàng)目的上下文和研發(fā)人員的偏好,并根據(jù)更優(yōu)的提示詞,激發(fā)出更符合期望的推理結(jié)果,提高協(xié)作效率;大模型與工具間交互,將通過智能體(AIAgent)、編排等方式,實(shí)現(xiàn)大模型對各工具的調(diào)取和執(zhí)行,以解決更加復(fù)雜的工程級問題,推動(dòng)全生命周期智能化能力的提升。例如,2024年3月Cognition公司發(fā)布的全球首個(gè)AI程序員Devin,以及8月Cosine公司發(fā)布的全球最自適應(yīng)性,根據(jù)對工程級代碼的更優(yōu)理解能力,以及檢索增強(qiáng)4Magicoder:EmpoweringCodeGenerationwithOSS-INSTRUCT5生成(RAG)等技術(shù)的輔助能力,大模型的自學(xué)習(xí)能力越發(fā)強(qiáng)大,這使得智能化軟件工程對場景化的業(yè)務(wù)和數(shù)據(jù)具備更好的理解和適應(yīng)能力,從而實(shí)現(xiàn)自主提升其推理性能和準(zhǔn)確性。例如,代碼大模型可在不同角色設(shè)定下展現(xiàn)良好的自適應(yīng)性,MetaGPT為大模型賦HumanEval評測結(jié)果為85.9%,相比未設(shè)定人設(shè)的大模型評測結(jié)果(二)智能開發(fā)發(fā)展現(xiàn)狀開發(fā)是軟件工程全生命周期中的核心環(huán)節(jié),開發(fā)人員大約有三分之二的工作時(shí)間與開發(fā)代碼直接相關(guān)7,應(yīng)用大模型助力軟件開發(fā)具有得天獨(dú)厚的優(yōu)勢。一方面開發(fā)人員對新技術(shù)的接納度較高,能夠更快地適應(yīng)開發(fā)新范式;另一方面各類編程語言對業(yè)務(wù)的依賴度不是非常高,使得代碼生成能力的普適性較強(qiáng)。因此軟件開發(fā)是大5MetaGPT:MetaProgrammingforAMulti-AgentCollabo7https://thenewstack.io/how-much-time-do-developers-spend-actually-writing-code/6智能開發(fā)工具市場迅速發(fā)展,國內(nèi)外百花齊放。國外,截止2024年4月微軟的GitHubCopilot擁有180萬付費(fèi)訂閱用戶,近有率達(dá)到64.5%10。亞馬遜的CodeWhisperer、谷歌的ProjectI產(chǎn)品雖難以并肩,但依靠其強(qiáng)大的用戶規(guī)?;A(chǔ),仍具備較強(qiáng)競爭百度等提供的智能開發(fā)工具產(chǎn)品,其核心功能較為同質(zhì)化,但工具智能開發(fā)工具能力持續(xù)提升,應(yīng)用行業(yè)更加多元化。智能開發(fā)工具重點(diǎn)聚焦于代碼生成、代碼補(bǔ)全、代碼注釋、代碼檢查、智能單測等能力。一方面代碼大模型能力的持續(xù)提升為工具提供了更強(qiáng)的AI底座,根據(jù)智源大模型排行榜顯示,榜首大模型在HumanE81.1%13;另一方面通過RAG、自學(xué)習(xí)、輔助的下一代開發(fā)工具,為工程級代碼提供了更優(yōu)的理解和生成能力。隨著能力的持續(xù)提升,智能開發(fā)工具被越來越多行業(yè)所接受和應(yīng)用,包括如互聯(lián)網(wǎng)等科技行業(yè)的成熟落地,金融、電信、軟件服9/features/copilot11/favorites/ai-programming-tool13/#/leaderboard/nlp-capability?kind=CH7務(wù)等行業(yè)的逐步落地,能源、零售、教育、制造、物流等領(lǐng)域的試點(diǎn)試行,未來智能開發(fā)工具將為各行各業(yè)的軟件研發(fā)提供強(qiáng)有力支應(yīng)用需求快速增長,編碼階段提效顯著。無論個(gè)人還是企業(yè)開發(fā)者,使用智能開發(fā)工具的人數(shù)和頻次越來越多。根據(jù)StackOverflow2024年的全球開發(fā)者調(diào)研顯示,76%的受訪者正在或計(jì)劃使用AI工具進(jìn)行軟件開發(fā),使用AI工具的開發(fā)者數(shù)量占比從去年44%提升至62%14。根據(jù)CSDN2024年的調(diào)查顯示,48.6%開發(fā)天使用智能開發(fā)工具15。根據(jù)Deloitte報(bào)告指出,超過60%的金融機(jī)構(gòu)正在探索或已經(jīng)實(shí)施了智能開發(fā)工具以加速創(chuàng)新。智能開發(fā)工具的使用助力開發(fā)人員編碼效率提升明顯。根據(jù)GitHub報(bào)告顯示,使用GitHubCopilot的開發(fā)者編碼速度提升55%,編寫代碼量增加46%16。根據(jù)中國信通院2024年初調(diào)研問卷數(shù)據(jù)顯示,受訪者在開(三)智能開發(fā)價(jià)值顯現(xiàn)在大模型應(yīng)用浪潮中,軟件開發(fā)的智能化轉(zhuǎn)型正成為企業(yè)提升軟件產(chǎn)品競爭力的關(guān)鍵因素,通過智能化能力的注入,為軟件開發(fā)提升開發(fā)效率,降低項(xiàng)目風(fēng)險(xiǎn)。通過代碼生成、代碼補(bǔ)全和問答等能力,開發(fā)人員能夠更迅速地編寫高質(zhì)量代碼,顯著減少手動(dòng)16TheeconomicimpactoftheAI-powereddeveloperlifecycleandles8調(diào)試和錯(cuò)誤修復(fù)時(shí)間。同時(shí)可降低項(xiàng)目對開發(fā)人員的依賴,通過智能開發(fā)工具的學(xué)習(xí)和記憶能力,一方面可輔助新的開發(fā)人員快速開發(fā)出符合項(xiàng)目需求和規(guī)范的代碼,另一方面可幫助開發(fā)人員快速學(xué)習(xí)新的編程語言,從而減少人員流動(dòng)帶來的項(xiàng)目風(fēng)險(xiǎn)。根據(jù)BIS年度經(jīng)濟(jì)報(bào)告顯示,智能開發(fā)工具對程序員的生產(chǎn)力提升超過50%,且其中僅有小部分來自于代碼的直接生成,而更多是通過與機(jī)器交改善代碼質(zhì)量,提高產(chǎn)品穩(wěn)定性。通過代碼質(zhì)量檢查和智能單測等能力,開發(fā)人員能夠快速進(jìn)行代碼驗(yàn)證和測試,及時(shí)發(fā)現(xiàn)并修復(fù)潛在的問題和漏洞,如代碼缺陷、代碼異常、代碼風(fēng)險(xiǎn)等,從而幫助開發(fā)人員編寫出更高質(zhì)量的代碼,降低軟件發(fā)布后的故障率,提升軟件的穩(wěn)定性和性能。例如,GitHubCopilot可幫助開發(fā)人員在加速產(chǎn)品創(chuàng)新迭代,增強(qiáng)企業(yè)競爭力。通過提升開發(fā)效率和改善產(chǎn)品質(zhì)量,企業(yè)能夠更快地推出創(chuàng)新產(chǎn)品,搶占市場先機(jī),從而在激烈的市場競爭中脫穎而出。一方面,智能化的軟件開發(fā)流程使開發(fā)周期縮短,企業(yè)能夠更靈活地適應(yīng)市場變化,加快產(chǎn)品迭代速率;另一方面,智能開發(fā)工具的輔助使得開發(fā)人員能夠從重復(fù)性的繁瑣的低端編碼工作中釋放出來,從而擁有更多時(shí)間投入創(chuàng)新相關(guān)工作,提升企業(yè)創(chuàng)新能力。例如,2023年5月GitHub首席執(zhí)行官18/software-integrity/resources/analyst-reports/open-sourcanalysis.html#UXexecuti9在全球網(wǎng)絡(luò)峰會(huì)(WebSummit)上,演示GitHubCopilotX實(shí)現(xiàn)簡單的貪吃蛇小游戲用時(shí)為18分鐘,而2024年8月通過真實(shí)操作,(四)智能開發(fā)落地挑戰(zhàn)隨著智能化技術(shù)在軟件開發(fā)領(lǐng)域的廣泛應(yīng)用,其帶來的質(zhì)效提升日益顯著。然而,企業(yè)在推進(jìn)軟件開發(fā)的智能化能力建設(shè)和落地時(shí),仍面臨諸多挑戰(zhàn),涵蓋組織、技術(shù)、應(yīng)用落地及安全等多個(gè)層組織變革和轉(zhuǎn)型的挑戰(zhàn)。軟件開發(fā)的智能化轉(zhuǎn)型首先帶來的是組織變革,一是組織文化的重塑,其落地要求組織具備開放合作、持續(xù)學(xué)習(xí)和創(chuàng)新的文化氛圍,促進(jìn)跨部門溝通與協(xié)作,打破信息孤島;二是全員認(rèn)知水平的提升,自頂向下每位員工都應(yīng)深刻理解智能化的潛力與挑戰(zhàn),客觀且正確地了解大模型等人工智能技術(shù)及其作用;三是人才結(jié)構(gòu)的調(diào)整與補(bǔ)充,由于數(shù)據(jù)治理及模型訓(xùn)練調(diào)優(yōu)模型技術(shù)迭代及與工具融合的挑戰(zhàn)。當(dāng)前智能開發(fā)能力建設(shè)的核心技術(shù)是大模型,因此圍繞大模型面臨著技術(shù)迭代的挑戰(zhàn)。一是大模型的技術(shù)能力仍以較快速度迭代更新,企業(yè)需配備良好的維護(hù)如何與現(xiàn)有軟件研發(fā)工具集有效融合或改造,從而提升軟件工程全產(chǎn)品選型與應(yīng)用場景落地的挑戰(zhàn)。企業(yè)需根據(jù)自身行業(yè)特點(diǎn)、和方案。然而,一方面現(xiàn)有代碼大模型和智能開發(fā)工具數(shù)量繁多,如何建設(shè)或選擇出一款合適的模型或工具,如何評價(jià)模型或工具的能力,均是落地時(shí)考慮的重點(diǎn);另一方面不同業(yè)務(wù)場景的編程語言可能不盡相同,或代碼數(shù)據(jù)集或規(guī)范不一致,如何選擇最優(yōu)場景試代碼數(shù)據(jù)、模型和工具的安全性挑戰(zhàn)。生成式代碼可能會(huì)帶來更多不可控的風(fēng)險(xiǎn),因此企業(yè)應(yīng)從數(shù)據(jù)、模型和工具多維度構(gòu)筑風(fēng)險(xiǎn)防線,以應(yīng)對安全挑戰(zhàn)。第一道數(shù)據(jù)防線,面向模型訓(xùn)練和調(diào)優(yōu)階段所需的代碼數(shù)據(jù)集,可能面臨敏感代碼數(shù)據(jù)的泄露、未經(jīng)許可代碼的訓(xùn)練、非法代碼的推理等問題;第二道模型防線,面向代碼大模型在推理和管理階段,可能面臨暴力攻擊、非法套取、非法提問、敏感內(nèi)容推理、被惡意使用生成惡意軟件代碼或攻擊腳本等問并關(guān)注關(guān)聯(lián)代碼庫、第三方軟件開發(fā)工具的數(shù)據(jù)傳輸和集成安全,二、智能開發(fā)落地策略隨著代碼大模型和智能開發(fā)工具如雨后春筍般出現(xiàn),各行業(yè)陸續(xù)規(guī)劃和試點(diǎn)將智能化能力有效地落地應(yīng)用于開發(fā)環(huán)節(jié)。本章將首先總結(jié)智能開發(fā)落地遵守的主要原則,其次就落地關(guān)鍵步驟進(jìn)行深(一)智能開發(fā)落地原則智能化軟件開發(fā)落地是指應(yīng)用方企業(yè)通過采購或自研等方式,構(gòu)建智能化能力,包括代碼大模型能力和智能開發(fā)工具能力,并將其應(yīng)用落地于軟件開發(fā)過程。作為大模型應(yīng)用的重要場景,根據(jù)中國信息通信研究院對金融、軟件、電信等行業(yè)關(guān)于智能開發(fā)落地實(shí)目標(biāo)導(dǎo)向原則,以企業(yè)戰(zhàn)略定位為首要目標(biāo),落地策略和方案因地制宜原則,從企業(yè)實(shí)際情況出發(fā),清晰了解已有AI基礎(chǔ)及成本預(yù)算,從而制定合適的策略。如企業(yè)自身的科技實(shí)力、人才儲(chǔ)應(yīng)用優(yōu)先原則,從業(yè)務(wù)實(shí)際需求出發(fā),明確亟需解決的問題,標(biāo)準(zhǔn)化原則,參考行業(yè)標(biāo)準(zhǔn)開展能力構(gòu)建,以保證數(shù)據(jù)質(zhì)量、模型性能及工具可塑性。如代碼數(shù)據(jù)如何處理如何配比,模型如何調(diào)優(yōu),工程化能力如何建設(shè),推理準(zhǔn)確性應(yīng)達(dá)到何等水平,均可以安全性原則,圍繞能力建設(shè)全過程構(gòu)建安全保障機(jī)制,降低新工具引入的風(fēng)險(xiǎn),提升安全治理能力。如代碼大模型推理安全、數(shù)持續(xù)改進(jìn)原則,構(gòu)建持續(xù)反饋機(jī)制和數(shù)據(jù)驅(qū)動(dòng)流程,通過效能指標(biāo)數(shù)據(jù)推動(dòng)工具和流程的持續(xù)改進(jìn)。如面臨模型退化、新項(xiàng)目新代碼數(shù)據(jù)等情況,應(yīng)通過持續(xù)改進(jìn)從而保證代碼大模型的能力穩(wěn)定(二)智能開發(fā)落地步驟落地智能化能力是一個(gè)全面且系統(tǒng)化的過程,尤其面向已成體系的軟件開發(fā)過程,構(gòu)建清晰明確的落地步驟,將為有效落地提供良好指引。智能開發(fā)落地過程可劃分為自我診斷、方案設(shè)計(jì)、部署開展多維度自我診斷,科學(xué)客觀定位自身能力。診斷維度上,通過應(yīng)用場景診斷,明確智能開發(fā)能力在企業(yè)內(nèi)部的落地場景,幫助梳理當(dāng)前需求和未來規(guī)劃的需求;通過技術(shù)能力診斷,明晰企業(yè)在人工智能領(lǐng)域的優(yōu)勢和不足,明確是否具備足夠技術(shù)儲(chǔ)備開發(fā)或維護(hù)代碼大模型或智能開發(fā)工具的能力;通過基礎(chǔ)設(shè)施診斷,深入了解企業(yè)現(xiàn)有算力資源、存儲(chǔ)資源、數(shù)據(jù)資源等,幫助企業(yè)做好基礎(chǔ)性準(zhǔn)備;通過安全可信診斷,明確企業(yè)自身對安全可信的要求,從而便于制定安全保障機(jī)制。能力定位上,企業(yè)根據(jù)戰(zhàn)略規(guī)劃、基礎(chǔ)設(shè)施、數(shù)據(jù)資產(chǎn)、人才儲(chǔ)備、經(jīng)費(fèi)預(yù)算等方面的能力現(xiàn)狀,并結(jié)合安全可信要求,綜合研判自身已有智能化能力等級,可劃分五個(gè)根據(jù)自我診斷及能力定位結(jié)果,選擇合適的實(shí)施方案。L1企業(yè)L2企業(yè)可采購軟硬件集成的智能開發(fā)工具(如智能編碼一體機(jī)),以實(shí)現(xiàn)智能開發(fā)能力的本地化部署,形成一體化解決方案;L3企業(yè)可采購包含代碼大模型的智能開發(fā)工具進(jìn)行私有化部署,保障企業(yè)級代碼資產(chǎn)的安全,并通過采購模型調(diào)優(yōu)和升級等服務(wù),保證大模型能力的穩(wěn)定;L4企業(yè)可采購解耦的代碼大模型和智能開發(fā)工具,或者選用高性能大模型訓(xùn)練微調(diào)成自有代碼大模型,構(gòu)建定制化的智能開發(fā)能力;L5企業(yè)依托豐富的算力、數(shù)據(jù)、人才等基礎(chǔ),可考慮自主研發(fā)代碼大模型,并依此構(gòu)建軟件工程領(lǐng)域的工程化能力,根據(jù)實(shí)施方案按計(jì)劃部署和實(shí)施。一是明確資源配置、任務(wù)分工等,并制定風(fēng)險(xiǎn)管理計(jì)劃開展必要的軟硬件采購與資源配置,確保相關(guān)落地要求;三是開展代碼大模型和智能開發(fā)工行培訓(xùn)并提供技術(shù)支持,選定試點(diǎn)項(xiàng)目或團(tuán)隊(duì)根據(jù)實(shí)施效果持續(xù)優(yōu)化和改進(jìn)。建立有效的指標(biāo)體系和監(jiān)控機(jī)制,一方面持續(xù)地自動(dòng)化監(jiān)測大模型推理效果和應(yīng)用成效,如推理準(zhǔn)確率、代碼采納率、代碼修復(fù)率、代碼生成占比等指標(biāo);另一方面定期收集用戶反饋,根據(jù)數(shù)據(jù)分析結(jié)果明確問題和優(yōu)化方向。構(gòu)建大模型維護(hù)更新機(jī)制,通過獲取和生成高質(zhì)量代碼數(shù)據(jù)集,開展(三)智能開發(fā)落地框架本層建設(shè)目標(biāo)是在基座大模型的基礎(chǔ)上訓(xùn)練調(diào)優(yōu)生發(fā)問答大模型。代碼補(bǔ)全大模型的任務(wù)是代碼生成與是應(yīng)對更為復(fù)雜的代碼解釋、代碼檢查和研發(fā)問答等服務(wù)層依托AI底座能力,運(yùn)用更多技術(shù)手段增強(qiáng)或調(diào)度大模型能力。通過模型調(diào)度,針對工具層不同的操作精確匹配調(diào)度相應(yīng)模型,確保模型資源的合理分配與高效利用;通過提示詞封裝,對用戶常用功能設(shè)計(jì)提示詞模板,豐富用戶問題的表述,使模型能夠更全面、準(zhǔn)確地理解用戶意圖,提供更精確的推理結(jié)果;通過RAG將通過AIAgent輔助,以感知和記憶能力將復(fù)雜研發(fā)問題進(jìn)行拆解,應(yīng)用層以用戶為核心提供各類智能開發(fā)功能,主要包括智能編碼和開發(fā)者輔助兩大類功能,并將其集成于IDE(集成開發(fā)環(huán)境)等工具中為用戶提供直接服務(wù)。應(yīng)用層能力一方面基于服務(wù)層對大模型能力進(jìn)行了加強(qiáng),如對工程級別的代碼理解和生成能力更強(qiáng),能夠智能識別IDE當(dāng)前打開的多文件內(nèi)容,并將其作為大模型輸入的上下文,提升跨文件感知能力;另一方面應(yīng)用層為工具打造了更優(yōu)異的用戶體驗(yàn),如兼容適配主流IDE、操作系統(tǒng)以及常見自然語言等,建設(shè)自定義配置相關(guān)功能,優(yōu)化輸入輸出性能,建立用戶反三、智能開發(fā)核心能力建設(shè)在軟件開發(fā)過程中,無論是企業(yè)開發(fā)者還是個(gè)人開發(fā)者,都面從而導(dǎo)致編碼效率低下或存在質(zhì)量隱患。因此,在智能開發(fā)能力建設(shè)過程中,可優(yōu)先構(gòu)建核心能力,如代碼生成與補(bǔ)全、單元測試用例生成、代碼轉(zhuǎn)換與優(yōu)化等能力可提升編碼效率,代碼解釋與注釋生成等能力可增強(qiáng)代碼可讀性,代碼檢查與修復(fù)等能力可提高代碼代碼生成與補(bǔ)全是指根據(jù)自然語言描述或代碼上下文,自動(dòng)生成或補(bǔ)全代碼的能力。通過代碼生成與補(bǔ)全,可幫助開發(fā)人員提高1.關(guān)鍵能力l代碼生成能力:基于自然語言描述,生成有效的片段級或文l代碼補(bǔ)全能力:根據(jù)代碼上下文,補(bǔ)全有效的引用、類/方法/l多維兼容能力:支持多種主流(或所需)編程語言和開發(fā)框l代碼質(zhì)量能力:生成和補(bǔ)全的代碼滿足基本的質(zhì)量規(guī)范要求2.擴(kuò)充能力l根據(jù)多模態(tài)輸入生成代碼能力;l知識庫接入能力,可提供更符合企業(yè)內(nèi)部業(yè)務(wù)邏輯或規(guī)范的l第三方工具對接能力,如與版本管理工具的對接,支持代碼3.重點(diǎn)和難點(diǎn)l推理效率提升:代碼生成與補(bǔ)全是使用頻率較高的功能,且流式生成對推理速度有較高要求,因此優(yōu)化模型推理效率是本能力l高質(zhì)量數(shù)據(jù)集構(gòu)建:在代碼大模型訓(xùn)練或調(diào)優(yōu)過程中,高質(zhì)l提示詞工程優(yōu)化:基于意圖識別對提示詞模板進(jìn)行調(diào)優(yōu),輔l上下文理解能力:準(zhǔn)確理解代碼上下文,如變量的作用域、函數(shù)的調(diào)用關(guān)系、跨文件間代碼邏輯等,對提升推理準(zhǔn)確度有明顯l模型持續(xù)改進(jìn):通過代碼采納與拒絕等歷史數(shù)據(jù)構(gòu)建數(shù)據(jù)飛采用三“碼”合一方案(將訓(xùn)練態(tài)SFT代碼語料、檢索態(tài)RAG代碼語料、推理態(tài)補(bǔ)充代碼語料組裝)優(yōu)化Prompt模板,形成統(tǒng)一的Prompt模板,構(gòu)建成一個(gè)一致的訓(xùn)練和推理邏輯,通過將訓(xùn)練階段與推理階段的格式保持一致,可明顯提升代碼模型在垂直領(lǐng)域上的適應(yīng)性和魯棒性,使其在不同場景下保持較(二)單元測試用例生成單元測試用例生成是指根據(jù)輸入的代碼,自動(dòng)生成用于測試該代碼的單元測試用例。通過單元測試用例生成,可幫助開發(fā)人員減少編寫單元測試用例的時(shí)間,并提高單元測試覆蓋率,提升代碼質(zhì)1.關(guān)鍵能力l用例生成能力:根據(jù)函數(shù)級或文件級代碼,生成單元測試用l用例質(zhì)量能力:生成的用例滿足基本的質(zhì)量規(guī)范要求,且具l多維兼容能力:支持多種主流(或所需)單元測試框架。2.擴(kuò)充能力l生成的單元測試用例可自動(dòng)對部分外部依賴進(jìn)行打樁,且打3.重點(diǎn)和難點(diǎn)l結(jié)合傳統(tǒng)代碼分析技術(shù):加強(qiáng)大模型對代碼結(jié)構(gòu)和邏輯的理解,如對函數(shù)、類和模塊級的接口,以及各類控制流和數(shù)據(jù)流進(jìn)行l(wèi)結(jié)合多樣性測試技術(shù):支持隨機(jī)測試、符號執(zhí)行、模糊測試l單元測試用例生成能力的評估:通過編譯正確性、覆蓋充分性、錯(cuò)誤檢出率等指標(biāo)對推理結(jié)果進(jìn)行綜合評價(jià),是本能力建設(shè)難采用大模型與傳統(tǒng)軟件分析等技術(shù)相組合的方式提升單元測試用例生成效果,傳統(tǒng)分析工具通過整體分析被測工程,獲取被測函數(shù)的依賴、測試場景等,生成用例初始化部分,而大模型生成用例的函數(shù)部分可結(jié)合軟件分析的后處理算法,大幅度提高生成用例的編譯(三)代碼轉(zhuǎn)換與優(yōu)化代碼轉(zhuǎn)換與優(yōu)化是指在保持代碼邏輯和功能不變的基礎(chǔ)上,對輸入的代碼進(jìn)行不同語言或不同框架之間的轉(zhuǎn)換,或特定方向的優(yōu)化。通過代碼轉(zhuǎn)換可幫助快速理解代碼,通過代碼優(yōu)化可幫助解決1.關(guān)鍵能力l代碼轉(zhuǎn)換能力:根據(jù)給定的代碼,轉(zhuǎn)換成不同編程語言、不l代碼優(yōu)化能力:根據(jù)給定的代碼,提供規(guī)范性、性能和復(fù)雜l轉(zhuǎn)換和優(yōu)化質(zhì)量能力:轉(zhuǎn)換和優(yōu)化后的代碼滿足基本的質(zhì)量2.擴(kuò)充能力l知識庫的接入能力:使轉(zhuǎn)換和優(yōu)化后的代碼更符合企業(yè)內(nèi)部l對多文件的工程級代碼進(jìn)行轉(zhuǎn)換和優(yōu)化。3.重點(diǎn)和難點(diǎn)l集成優(yōu)化算法:集成各種優(yōu)化算法,如循環(huán)優(yōu)化、內(nèi)存訪問(四)代碼解釋與注釋代碼解釋與注釋是指對輸入的代碼進(jìn)行解釋或注釋的生成。通過代碼解釋,可幫助開發(fā)人員快速理解大量代碼或不熟悉的代碼,通過代碼注釋,可提高代碼的可讀性和可維護(hù)性,幫助開發(fā)人員生1.關(guān)鍵能力l注釋質(zhì)量能力:代碼的注釋內(nèi)容滿足基本的注釋規(guī)范要求。2.擴(kuò)充能力l知識庫的接入能力:使代碼的解釋和注釋內(nèi)容更符合企業(yè)內(nèi)l對變更的代碼進(jìn)行解釋。3.重點(diǎn)和難點(diǎn)l語義理解及關(guān)鍵詞識別:準(zhǔn)確理解代碼語法、語義,并識別領(lǐng)域知識(如設(shè)計(jì)文檔、開發(fā)規(guī)范等)、工程上下文調(diào)用信息等,并根據(jù)開發(fā)者實(shí)時(shí)行為,精確檢索上下文,提高代碼解釋與注釋的(五)代碼檢查與修復(fù)代碼檢查與修復(fù)是指對代碼進(jìn)行相關(guān)問題的檢查,并根據(jù)檢查出的問題進(jìn)行自動(dòng)修復(fù)。通過代碼檢查,可幫助開發(fā)人員發(fā)現(xiàn)代碼1.關(guān)鍵能力l代碼檢查能力:根據(jù)給定的代碼,進(jìn)行代碼規(guī)范性問題、代碼異味、代碼語法錯(cuò)誤、代碼邏輯錯(cuò)誤、代碼安全漏洞等問題的檢l代碼修復(fù)能力:根據(jù)檢查出的問題,提供代碼修復(fù)建議及修l檢查和修復(fù)的質(zhì)量能力:代碼檢查的錯(cuò)誤檢出率和誤報(bào)率達(dá)到要求,修復(fù)后的代碼需滿足基本的質(zhì)量規(guī)范要求,且保留了原代2.擴(kuò)充能力l對多文件的工程級代碼進(jìn)行問題檢查和修復(fù);l代碼檢查規(guī)則的自定義能力;l對污點(diǎn)類問題進(jìn)行檢查,可跟蹤和分析污點(diǎn)數(shù)據(jù)(或輸入)3.重點(diǎn)和難點(diǎn)l提示詞優(yōu)化:制定代碼檢查與修復(fù)提示詞模板,支持檢查風(fēng)格類問題、質(zhì)量類問題、安全漏洞、性能缺陷、邏輯缺陷、行業(yè)規(guī)l降低誤報(bào)率:傳統(tǒng)漏洞掃描工具誤報(bào)率較高,基于大模型的(六)研發(fā)問答研發(fā)問答是指利用自然語言處理、信息檢索等技術(shù)進(jìn)行研發(fā)相關(guān)問題的解答,幫助開發(fā)人員提供問答輔助能力,提高研發(fā)和創(chuàng)新1.關(guān)鍵能力l代碼搜索能力:根據(jù)關(guān)鍵詞分析或語義理解等,快速、準(zhǔn)確l多輪對話能力:可通過多輪對話,不斷優(yōu)化答案以更加準(zhǔn)確2.擴(kuò)充能力l可追溯能力:可明確推理答案的參考來源;l對工程級代碼庫的理解和分析能力,并基于其進(jìn)行問答。3.重點(diǎn)和難點(diǎn)l多輪對話感知:理解和保存用戶多輪問答交互結(jié)果,作為下l交互式反饋機(jī)制:提供答案反饋機(jī)制,以便不斷優(yōu)化答案的四、智能開發(fā)使能能力建設(shè)構(gòu)建代碼數(shù)據(jù)集、調(diào)優(yōu)代碼大模型、評估代具等使能能力同樣重要。本章將圍繞數(shù)據(jù)、(一)代碼數(shù)據(jù)處理能力代碼大模型所需的代碼數(shù)據(jù)集包括純代碼數(shù)據(jù),以及代碼和文本的混合數(shù)據(jù)。通過有效地管理和處理代碼數(shù)據(jù)集,將其處理成可直接被用于模型訓(xùn)練調(diào)優(yōu)的高質(zhì)量代碼數(shù)據(jù)集,為代碼大模型提供數(shù)據(jù)清洗數(shù)據(jù)清洗用于過濾低質(zhì)代碼數(shù)據(jù),提升數(shù)據(jù)質(zhì)量。代碼數(shù)據(jù)清洗主要包括數(shù)據(jù)過濾、數(shù)據(jù)去重、敏感數(shù)據(jù)處理、許可協(xié)議(License)過濾等環(huán)節(jié)。不同數(shù)據(jù)可采用不同處理方式,開源代碼數(shù)據(jù)可進(jìn)行所有方式的清洗,私有代碼數(shù)據(jù)可進(jìn)行數(shù)據(jù)過濾、數(shù)據(jù)數(shù)據(jù)過濾是篩選、排除或提取數(shù)據(jù)集中特定部分,過濾方法主要包含三種?;谝?guī)則過濾是采用基于正則表達(dá)式、專家規(guī)則、點(diǎn)贊數(shù)量等規(guī)則的過濾器,識別并刪除空白文件、自動(dòng)生成的代碼數(shù)據(jù)、有效信息過少的數(shù)據(jù)等;基于程序分析過濾是采用語法解析器和抽象語法樹過濾存在語法錯(cuò)誤的代碼數(shù)據(jù),采用規(guī)范檢查規(guī)則或工具過濾掉不符合規(guī)范和不安全的代碼數(shù)據(jù);基于模型過濾是采用標(biāo)注的高質(zhì)量和低質(zhì)量數(shù)據(jù),訓(xùn)練質(zhì)量模型分類器,對代碼數(shù)據(jù)質(zhì)數(shù)據(jù)去重是從數(shù)據(jù)集中消除冗余的重復(fù)記錄,僅保留具有唯一性的數(shù)據(jù)條目,提升數(shù)據(jù)質(zhì)量和存儲(chǔ)效率。去重方式包含精確去重和近似去重,去重策略包含代碼的文件級去重和倉庫級去重,有效敏感信息處理是指識別并移除或替換數(shù)據(jù)中的敏感信息,包含可采用正則表達(dá)式、深度學(xué)習(xí)與機(jī)器學(xué)習(xí)、人工審查等技術(shù)實(shí)現(xiàn)敏License過濾是檢驗(yàn)并去除開源代碼中不允許使用的數(shù)據(jù)。開源代碼License包含允許使用、不允許使用和無規(guī)定,為保證開源數(shù)據(jù)使用的合規(guī)性,可使用ScanCode-Toolkit等許可檢測工具,過濾掉非法數(shù)據(jù),將允許使用和無規(guī)定的開源數(shù)據(jù)數(shù)據(jù)增強(qiáng)數(shù)據(jù)增強(qiáng)是通過對現(xiàn)有代碼數(shù)據(jù)執(zhí)行有意義的變換和擴(kuò)充,生成新代碼樣本,增加數(shù)據(jù)集的多樣性和豐富度,提高模型泛化能力和魯棒性。注釋增強(qiáng)是通過人工或自動(dòng)化方式在代碼的方法定義、循環(huán)、條件語句等位置新增注釋,增強(qiáng)代碼可讀性,例如開源代碼果;上下文增強(qiáng)是在準(zhǔn)備微調(diào)數(shù)據(jù)時(shí),將代碼數(shù)據(jù)擴(kuò)充增加相關(guān)聯(lián)的上下文、依賴、外部對象和方法等信息;數(shù)量及多樣性增強(qiáng)用于提升代碼數(shù)據(jù)覆蓋度減少過擬合,常用方法如Self-Instruct、Evol-數(shù)據(jù)檢查數(shù)據(jù)集的質(zhì)量決定了大模型的性能,代碼數(shù)據(jù)集在處理過程中應(yīng)滿足一定要求。數(shù)據(jù)集質(zhì)量方面,應(yīng)滿足語法正確、編碼規(guī)范、數(shù)據(jù)場景覆蓋方面,應(yīng)選擇高質(zhì)量代碼,只包含代碼文件,無需其他配置文件,同時(shí)只包含核心代碼,棄用邊(二)代碼大模型優(yōu)化能力對代碼大模型進(jìn)行優(yōu)化的目標(biāo)是維持或增強(qiáng)其推理能力,主要包括模型調(diào)優(yōu)及調(diào)優(yōu)后模型部署,應(yīng)用于企業(yè)使用專有數(shù)據(jù)集對代模型調(diào)優(yōu)模型調(diào)優(yōu)是在特定任務(wù)或領(lǐng)域上進(jìn)一步訓(xùn)練或調(diào)優(yōu)模型,以優(yōu)化其對這一任務(wù)或領(lǐng)域的理解和推理能力。代碼大模型調(diào)優(yōu)通常采有監(jiān)督微調(diào)亦稱指令微調(diào),是指通過構(gòu)建指令格式的實(shí)例,以有監(jiān)督方式對大模型進(jìn)行微調(diào)。指令微調(diào)可輔助代碼大模型提升推理能力,從而展現(xiàn)出泛化到未見過的任務(wù)的卓越能力。指令微調(diào)的前提是構(gòu)建問答對數(shù)據(jù)集,同時(shí)根據(jù)實(shí)際任務(wù)(如代碼生成、代碼解釋等任務(wù))配置數(shù)據(jù)配比不斷完善數(shù)據(jù)質(zhì)量。有監(jiān)督微調(diào)包含全量參數(shù)指令微調(diào)和高效微調(diào),當(dāng)算力充足且數(shù)據(jù)集較多的情況下,通常采用全量參數(shù)指令微調(diào)的方式,從而達(dá)到更好微調(diào)效果,但算力不足時(shí),可采用更高效的微調(diào)方法,如LoRa、Adapter、Prefix-強(qiáng)化學(xué)習(xí)的目標(biāo)是強(qiáng)化代碼大模型在某些準(zhǔn)確率不高的任務(wù)下的能力,可通過人類反饋對推理質(zhì)量進(jìn)行評估和排序,并依據(jù)其反饋結(jié)果開展學(xué)習(xí)優(yōu)化,從而持續(xù)提升推理生成的質(zhì)量。強(qiáng)化學(xué)習(xí)通常選擇基于人類反饋的強(qiáng)化學(xué)習(xí)算法框架,并利用近端策略優(yōu)化算一方面可以使用大模型生成或人工構(gòu)建數(shù)據(jù)對,針對不同開發(fā)場景進(jìn)行增強(qiáng),從而提升模型的通用研發(fā)能力,如針對某類代碼框架或前端開發(fā)、后端開發(fā)等不同場景構(gòu)建正負(fù)數(shù)據(jù)對;另一方面則需要結(jié)合測試反饋或用戶反饋來針對模型能力較弱的場景進(jìn)行增強(qiáng),如在服務(wù)運(yùn)行階段,通過后臺(tái)監(jiān)控白名單用戶行為,如點(diǎn)贊點(diǎn)踩、代碼采納情況等,收集好回答示例和壞回答示例進(jìn)行數(shù)據(jù)構(gòu)造,從而模型部署模型部署是指將調(diào)優(yōu)好的模型部署至服務(wù)器上供用戶使用的過程。模型部署時(shí)普遍考慮三點(diǎn),一方面開展模型轉(zhuǎn)換,根據(jù)部署資源將模型轉(zhuǎn)換成所需形態(tài),另一方面通過優(yōu)化算法提升大模型推理速度和吞吐量,提高計(jì)算資源的利用率,最后根據(jù)需求、使用場景但在代碼大模型部署時(shí),還應(yīng)特別考慮前后處理工作,當(dāng)用戶提交請求時(shí),需對用戶所在項(xiàng)目工程進(jìn)行軟件分析,并將分析信息和用戶輸入一并輸入給代碼大模型;當(dāng)代碼大模型推理完成后,需對推理結(jié)果進(jìn)行后處理,如在函數(shù)結(jié)束位置提前停止、復(fù)讀檢測、(三)智能開發(fā)能力評估為驗(yàn)證代碼大模型及智能開發(fā)工具是否滿足需求,通過構(gòu)建評估數(shù)據(jù)集和指標(biāo)對其開展全面評估,應(yīng)用于企業(yè)在采購、建設(shè)及維評估對象智能開發(fā)能力評估包括代碼大模型能力評估和智能開發(fā)工具能力評估。代碼大模型能力評估聚焦于大模型的理解和推理能力,通過采用專業(yè)評估數(shù)據(jù)集對代碼生成的準(zhǔn)確性、單元測試的覆蓋度、代碼檢查的錯(cuò)誤檢出率等指標(biāo)進(jìn)行評估。智能開發(fā)工具能力評估聚焦于平臺(tái)能力、功能豐富度和專項(xiàng)化能力等多個(gè)維度,綜合衡量呈評估內(nèi)容代碼大模型評估旨在衡量準(zhǔn)確性和可接受度,智能開發(fā)工具評估旨在衡量準(zhǔn)確性和可接受度,以及工具的功能豐富度、工程化能力以及體驗(yàn)度。準(zhǔn)確性評估是通過預(yù)設(shè)的關(guān)鍵指標(biāo)對工具在特定場景下的輸出進(jìn)行客觀分析(如表1所示),考察輸出的準(zhǔn)確性和邏輯合理性;可接受度評估是通過專家評審等主觀分析,考察輸出是否達(dá)到行業(yè)標(biāo)準(zhǔn),主要包括輸出代碼的符合性、可讀性、規(guī)范性、完整性、合規(guī)性和安全性等;工具專項(xiàng)評估是通過對工具的功能和性能的評估,考察其應(yīng)用層面的靈活性、可擴(kuò)展性、兼容性、安全評估方法智能化開發(fā)能力的評估方法涉及多種方法。一是自動(dòng)化評估方使用數(shù)據(jù)集開展相關(guān)客觀指標(biāo)的評估;二是裁判模型評估方法,面向可接受度評估,通過選取具有高精度和相關(guān)領(lǐng)域知識的大模型作為“裁判”,設(shè)置好詳細(xì)的提示詞,對輸出進(jìn)行評估;三是領(lǐng)域?qū)<以u估方法,面向可接受度和工具專項(xiàng)評估,通過行業(yè)專家對照預(yù)期實(shí)際評估過程中,通常采用多種方法可形成互補(bǔ)的評估機(jī)制,同時(shí)考慮評估效率和準(zhǔn)確性,從而為持續(xù)提升智能開發(fā)能力提供有(四)智能開發(fā)安全能力1.數(shù)據(jù)安全治理保證用于代碼大模型訓(xùn)練和調(diào)優(yōu)的代碼數(shù)據(jù)確保從可信代碼倉庫獲取源數(shù)據(jù),防止版權(quán)風(fēng)險(xiǎn);過清洗與過濾等技術(shù),精準(zhǔn)剔除敏感代碼,并對代與標(biāo)注,便于后續(xù)的差異化管理和使用;數(shù)量門禁,對擬入庫并共享發(fā)布的代碼數(shù)據(jù)集進(jìn)行審段可通過存儲(chǔ)層加密等手段確保代碼數(shù)據(jù)存儲(chǔ)安全訪問控制等手段確保代碼數(shù)據(jù)可追溯,并通過定期據(jù)健康狀況監(jiān)控,及時(shí)處理安全風(fēng)險(xiǎn)。同時(shí),承載等全過程的工具鏈,需具備任務(wù)隔離和嚴(yán)格的訪問2.模型安全治理模型安全治理應(yīng)考慮代碼大模型在開發(fā)、管理及運(yùn)行階段安全可控。開發(fā)階段,即代碼大模型調(diào)優(yōu)階段,首先應(yīng)保證數(shù)據(jù)和基礎(chǔ)模型的來源可信,同時(shí)對模型進(jìn)行安全標(biāo)識和分類分級;其次通過相關(guān)數(shù)據(jù)集對代碼大模型開展安全可信評估,確保模型推理結(jié)果滿管理階段,應(yīng)對代碼大模型進(jìn)行安全性存儲(chǔ)和加密傳輸,并加強(qiáng)模型版本管理實(shí)現(xiàn)模型溯源,確保合理的權(quán)限約束。同時(shí),對于承載代碼大模型開發(fā)全過程的工具鏈,需具備任務(wù)隔離和嚴(yán)格的訪問控制機(jī)制,確保其自身的安全,保證代碼大模型開發(fā)過程的安全通過通信加密協(xié)議、安全訪問機(jī)制等方式,防止未授權(quán)訪問及API濫用等情況;二是確保提示詞數(shù)據(jù)安全(如提示詞不被篡改等)、知識庫數(shù)據(jù)安全,并對RAG檢索的知識附帶來源,降低運(yùn)行時(shí)推理風(fēng)險(xiǎn);三是對推理資源做合理分配,防止推理資源的過度消耗;四是確保運(yùn)行環(huán)境安全,防止模型泄露或被篡改,通過實(shí)施沙箱隔離及強(qiáng)化訪問控制等措施,確保只有經(jīng)過認(rèn)證的用戶和應(yīng)用程序才能3.應(yīng)用安全治理二是強(qiáng)化敏感信息檢測機(jī)制,對用戶輸入及模型輸出內(nèi)容實(shí)施敏感信息檢測和內(nèi)容安全防控,以防范敏感信息及關(guān)鍵資產(chǎn)的泄露,并保障內(nèi)容合法性和適宜性;三是保證用戶數(shù)據(jù)隱私安全,用戶數(shù)據(jù)應(yīng)嚴(yán)格按照授權(quán)內(nèi)容存儲(chǔ),或者不存儲(chǔ),確保私有數(shù)據(jù)安全;四是可考慮模型領(lǐng)域隔離,僅限定于研發(fā)領(lǐng)域的應(yīng)用,不提供其他無關(guān)領(lǐng)域的內(nèi)容生成等功能;五是健全安全審計(jì)機(jī)制,通過系統(tǒng)請求和操作等審計(jì)日志的管理,確保智能開發(fā)工具使用(五)其他工程化能力為進(jìn)一步提升代碼大模型及智能開發(fā)工具對問題的理解能力,以及對企業(yè)私有化知識的習(xí)得能力,提示詞、RAG、Agent等各工程化能力扮演著重要角色,可在不改變代碼大模型的前提下達(dá)到更1.提示工程能力提示工程是用戶與代碼大模型交互的主要橋梁,通過設(shè)計(jì)和使用提示詞可優(yōu)化代碼大模型能力,對提升模型性能、增強(qiáng)模型可控性、擴(kuò)展模型能力等方面具有直接作用。面向智能開發(fā)領(lǐng)域,提示工程主要被用于兩個(gè)階段,一是代碼大模型訓(xùn)練調(diào)優(yōu)階段,使用提示詞構(gòu)造訓(xùn)練樣本,通過預(yù)訓(xùn)練、指令微調(diào)、反饋對齊等方式訓(xùn)練大模型,從而提高其對特定指令的遵從和理解能力,或者賦予模型連續(xù)對話、工具調(diào)用等能力;二是代碼大模型推理階段,通過提示詞為大模型提供解決問題所需的必要信息,包括但不限于任務(wù)背景知識、必要的上下文信息、期望輸出格式等,從而提升大模型正確生成答案的概率。提示工程的典型應(yīng)用包括可感知上下文的代碼補(bǔ)全、圍繞代碼倉的問答、智能解決問題單等場景,需通過提示詞將待生成代碼中可能用到或可能參考的代碼片段、相關(guān)文檔、項(xiàng)目結(jié)提示詞內(nèi)容通??砂韵略?。系統(tǒng)設(shè)定,涵蓋人設(shè)/角色、基本原則、安全邊界等重要內(nèi)容;任務(wù)提示,明確指出大模型需要完成的具體任務(wù)或目標(biāo)、輸入格式、輸出要求等;用戶指令,包括當(dāng)前要回答的具體問題的背景、描述、詳細(xì)要求等;示例樣本,提供若干具體的輸入-輸出示例;上下文輸入,提供當(dāng)前任務(wù)所需要的隱式上下文。除此之外,還可以根據(jù)具體場景附加其他元素,如檢索增強(qiáng)內(nèi)容、可調(diào)用工具列表、行動(dòng)與反思指令等。業(yè)內(nèi)使用的提(2)提示詞構(gòu)造方法提示詞構(gòu)造是一個(gè)復(fù)雜且多維的過程,不僅涉及設(shè)計(jì)和編寫提示詞本身,還可借助其他工程化方式動(dòng)態(tài)構(gòu)造和組裝提示詞。手動(dòng)編寫提示詞是一種基本且直接的提示詞構(gòu)造方法,由用戶或代碼大模型服務(wù)提供方,根據(jù)各自的需求和任務(wù)背景直接手動(dòng)編寫,本方法簡單直接但不夠靈活且效率較低,適用于簡單場景;動(dòng)態(tài)組裝提示詞是指在運(yùn)行時(shí)基于模板生成提示詞的構(gòu)造方法,可通過軟件分析、自然語言處理、大模型推理等技術(shù)進(jìn)行動(dòng)態(tài)填充,如代碼生成(3)提示詞實(shí)例參考在代碼補(bǔ)全任務(wù)中,提示詞通常如表2所示。通過該提示詞,系統(tǒng)將首先設(shè)定代碼大模型扮演一個(gè)編程專家角色,激發(fā)其在編程領(lǐng)域的特定知識;其次通過任務(wù)提示告知代碼大模型需根據(jù)光標(biāo)處的上下文進(jìn)行補(bǔ)全;最后要求代碼大模型根據(jù)示例樣本,按照用戶指令進(jìn)行代碼插入,并不可生成重復(fù)代碼。通過該提示詞可提升代在代碼解釋任務(wù)中,提示詞通常如表3所示。通過該提示詞,系統(tǒng)將首先設(shè)定代碼大模型扮演一個(gè)編程教練角色,激發(fā)其在教學(xué)領(lǐng)域的特定知識;其次通過任務(wù)提示告知代碼大模型在解釋時(shí)所需要使用的語言以及輸出格式;最后根據(jù)用戶指令明確需要解釋的代碼片段及其所在文件,并獲取上下文信息進(jìn)行代碼解釋,通過該提2.RAG能力檢索增強(qiáng)生成(RAG)是指通過語義相似性計(jì)算從外部知識庫中檢索相關(guān)文檔塊,以增強(qiáng)代碼大模型能力,減少幻覺并提高對專生成的代碼需符合內(nèi)部開發(fā)規(guī)范、生成內(nèi)部開發(fā)文檔等情況,RAGRAG落地過程中,通常包括數(shù)據(jù)索引服務(wù)、向量化模型服務(wù)、數(shù)據(jù)索引服務(wù)是指將知識進(jìn)行向量化并存儲(chǔ)于數(shù)據(jù)庫的過程,其中采用不同索引構(gòu)建方式處理文本和代碼數(shù)據(jù)是核心要點(diǎn),文本的拆分處理可選擇固定字符數(shù)分塊、遞歸分塊、語義分塊和特定格式分塊等方式,代碼拆分處理時(shí),對于常規(guī)長度的函數(shù)體可選擇整體向量化而不做拆分,對于少數(shù)超大超長函數(shù)體既可采取自動(dòng)截?cái)嘁部砂葱羞M(jìn)行切分;向量化模型服務(wù)可選擇BGE(Bi-EncoderforEmbeddings)等模型,通過部署容器化并對外暴露端口,提供向量化服務(wù);數(shù)據(jù)庫服務(wù)使用向量數(shù)據(jù)庫存儲(chǔ)向量化之后的數(shù)據(jù),可選擇開源數(shù)據(jù)庫如Milvus,F(xiàn)aiss,Weaviate,Qd量大小、縮小搜索范圍等方式提高數(shù)據(jù)庫檢索效率;搜索服務(wù)是向量化模型服務(wù)和數(shù)據(jù)庫服務(wù)的橋梁,一方面用于將查詢請求轉(zhuǎn)換為向量表示,并在向量數(shù)據(jù)庫中搜索相似項(xiàng),另一方面對于搜索結(jié)果需根據(jù)不同使用場景設(shè)置不同的相似度閾值,確保將高質(zhì)量結(jié)果反五、智能開發(fā)落地案例分析各行業(yè)積極探索智能開發(fā)落地之道,并在部分行業(yè)的應(yīng)用成效顯著。本章將對智能化軟件開發(fā)在云服務(wù)、軟件服務(wù)業(yè)、電力、金某大型云服務(wù)企業(yè)云服務(wù)研發(fā)過程遵循DevOps最佳實(shí)踐,一方面該企業(yè)產(chǎn)品需要基于業(yè)界前沿方法和技術(shù)不斷提升研發(fā)效率和產(chǎn)品發(fā)布速度,以響應(yīng)激烈的市場競爭并保持領(lǐng)先;另一方面作為公司研發(fā)工程能力的排頭兵,需要優(yōu)先驗(yàn)證和試點(diǎn)業(yè)界領(lǐng)先的智能化軟件開發(fā)能力,為公司其他產(chǎn)品線更大規(guī)模的探索和應(yīng)用打好前式,在流程、組織、工具等方面需要盡快通過試點(diǎn)探索形成新的工2)保持研發(fā)生產(chǎn)能力先進(jìn)性:面對激烈市場競爭,如何通過AI技術(shù)升級傳統(tǒng)研發(fā)體系,保障軟件研發(fā)生產(chǎn)力持員難以全盤掌握和快速精準(zhǔn)獲取海量知識;單元測試及接口測試腳本人工輸出工作量大,效率低難以匹配業(yè)務(wù)代碼的增長訴求;對高1.解決方案該企業(yè)圍繞“設(shè)計(jì)-開發(fā)-測試-協(xié)同”四個(gè)核心研發(fā)階段,基于“高數(shù)據(jù)成熟度、技術(shù)成熟度)”兩個(gè)方面共5個(gè)維度,識別出各研發(fā)階段中AI實(shí)踐價(jià)值場景。而“開發(fā)”場景為價(jià)值最高,因此優(yōu)先落地覆2.價(jià)值和收益AI代碼生成220+萬行,單測生成300+萬行,研發(fā)問答46+萬次。其中單測全量覆蓋率達(dá)到57%(提升89%),增量覆蓋率達(dá)到78%),(二)軟件服務(wù)業(yè)案例某軟件服務(wù)企業(yè)為國內(nèi)眾多行業(yè)提供軟件研發(fā)服務(wù),包括需求設(shè)計(jì)、開發(fā)、測試、運(yùn)維等,但服務(wù)過程中面臨的痛點(diǎn)問題長期存1)業(yè)務(wù)系統(tǒng)溝通效率低:在被服務(wù)的企業(yè)中,業(yè)務(wù)需求復(fù)雜且多變,但需求人員少而開發(fā)人員多,造成溝通瓶頸,使得項(xiàng)目的2)代碼開發(fā)質(zhì)量待改進(jìn):開發(fā)過程中缺乏高效的代碼審查機(jī)制,導(dǎo)致潛在缺陷和技術(shù)債務(wù)未能及時(shí)被發(fā)現(xiàn)和解決,另外自動(dòng)化1.解決方案針對上述一系列問題,該企業(yè)自研了AISE一體化平臺(tái),助力進(jìn)行處理,利用大模型智能分析問題和歸納總結(jié)能力,為每個(gè)項(xiàng)目2)提供代碼自動(dòng)生成、自動(dòng)審查、自動(dòng)修復(fù)、單元測試用例自動(dòng)生成、代碼翻譯和轉(zhuǎn)換等功能,并將上述功能完全集成在現(xiàn)有開3)引入多級外部知識庫和大模型集成,支持Github、Gitlab、網(wǎng)站、異構(gòu)數(shù)據(jù)源等多種格式知識庫的導(dǎo)入,同時(shí)無縫連接企業(yè)內(nèi)部系統(tǒng),提供效率查詢、單點(diǎn)登錄、業(yè)務(wù)系統(tǒng)數(shù)據(jù)聯(lián)通等多種接口2.價(jià)值和收益該企業(yè)的AISE一體化平臺(tái)落地后,Cobal代碼遷移效率提升(三)電力行業(yè)案例某國網(wǎng)數(shù)字化建設(shè)支撐單位,專注于電力行業(yè)多個(gè)專業(yè)數(shù)字化系統(tǒng)的研發(fā)與推廣,致力于推動(dòng)電力行業(yè)實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型,但在軟3)代碼規(guī)范性差、維護(hù)困難:缺乏嚴(yán)格的代碼審查流程,導(dǎo)致代碼質(zhì)量參差不齊,為后續(xù)的軟件維護(hù)和升級工作帶來了極大的困1.解決方案針對上述問題,該單位基于人工智能大模型技術(shù),研發(fā)了智能編碼工具,實(shí)現(xiàn)了代碼自動(dòng)生成、優(yōu)化、測試、規(guī)范性檢查與修復(fù)1)以代碼大模型作為基座模型,運(yùn)用LoRa進(jìn)行私有代碼的定制化微調(diào),從而更好地服務(wù)于電力行業(yè)的特定需求,并適應(yīng)不同部2)提供基于AI的查詢和問答系統(tǒng),針對公司公共組件庫和統(tǒng)一數(shù)據(jù)模型進(jìn)行檢索,幫助開發(fā)者快速定位和理解組件功能,促進(jìn)3)開發(fā)自動(dòng)化檢測和修正工具,可根據(jù)公司的代碼規(guī)范要求對代碼進(jìn)行實(shí)時(shí)掃描,自動(dòng)識別不規(guī)范代碼片段,并提供修正建議或2.價(jià)值和收益通過智能編碼工具的使用,代碼生成和優(yōu)化速度與準(zhǔn)確率得到了顯著提升,代碼質(zhì)量評分提高至90%以上,開發(fā)效率提升超過(四)金融行業(yè)案例某國有銀行在企業(yè)數(shù)字化轉(zhuǎn)型過程中,面臨軟件應(yīng)用膨脹、代碼量激增和架構(gòu)復(fù)雜化的挑戰(zhàn)。為抓住金融科技創(chuàng)新機(jī)遇,該銀行決定引入大模型技術(shù)提升軟件應(yīng)用的開發(fā)效率,保障代碼質(zhì)量,并編程語言進(jìn)行開發(fā),代碼量大且技術(shù)過時(shí),而新人對Flex不熟悉,性設(shè)計(jì)約束多,日常開發(fā)過度依賴開發(fā)文檔,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京航空航天大學(xué)《材料力學(xué)》2022-2023學(xué)年第一學(xué)期期末試卷
- 【初中化學(xué)】物質(zhì)構(gòu)成的奧秘單元復(fù)習(xí)題 2024-2025學(xué)年九年級化學(xué)人教版(2024)上冊
- 反思性說課稿模板
- 西安橋梁施工組織設(shè)計(jì)方案
- 南京工業(yè)大學(xué)浦江學(xué)院《客戶服務(wù)管理》2022-2023學(xué)年第一學(xué)期期末試卷
- 《學(xué)會(huì)溝通交流》說課稿
- 《桃花源記》說課稿7
- 卡通動(dòng)物課件教學(xué)課件
- 南京工業(yè)大學(xué)《陶藝設(shè)計(jì)》2022-2023學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)《橋梁工程施工》2022-2023學(xué)年第一學(xué)期期末試卷
- 北師大版六年級數(shù)學(xué)上冊-第一單元《圓》復(fù)習(xí)課件
- 盛世華誕慶祝祖國成立75周年共筑中國夢同慶國慶節(jié)課件
- 2024年廣州市少年宮公開招聘工作人員歷年高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 全過程工程咨詢管理服務(wù)方案投標(biāo)方案(技術(shù)方案)
- 景觀水處理技術(shù)介紹
- 6.2反比例函數(shù)的圖象與性質(zhì)(第一課時(shí))教學(xué)設(shè)計(jì)2024-2025學(xué)年北師大版數(shù)學(xué)九年級上冊
- 了解紅旗渠學(xué)習(xí)紅旗渠精神
- 集團(tuán)母子公司協(xié)議書
- 檢察院預(yù)防職務(wù)犯罪講座
- 2024年二級建造師繼續(xù)教育題庫及答案(500題)
- 大數(shù)據(jù)在文學(xué)作品影響力分析中的應(yīng)用
評論
0/150
提交評論