32%代碼由AI生成!工行智能研發(fā)輔助系統(tǒng)大揭秘
發(fā)布時(shí)間:2024-09-13 17:12:14來源:
13041198719
隨著人工智能技術(shù)的飛速發(fā)展,大模型已經(jīng)成為推動(dòng)軟件行業(yè)生產(chǎn)力解放、提升研發(fā)質(zhì)效的重要力量。在大模型技術(shù)的加持下,頭部廠商如微軟 GitHub Copilot 等,已在代碼生成、代碼解釋、單元測試生成等方向陸續(xù)涌現(xiàn)出一系列成熟應(yīng)用。中國工商銀行軟件開發(fā)中心(簡稱工行軟開中心)積極擁抱這一變革,致力于建設(shè)以大模型為核心的智能研發(fā)體系,覆蓋軟件研發(fā)全流程,提高研發(fā)質(zhì)效,加快產(chǎn)品迭代。

工行軟開發(fā)中心通過探索性研究的方式構(gòu)建各階段的輔助能力,將大模型應(yīng)用于需求設(shè)計(jì)、代碼編寫、代碼復(fù)核、測試輔助、交付發(fā)布的研發(fā)全流程,智能研發(fā)體系建設(shè)規(guī)劃如下:

圖:工行軟開發(fā)中心智能研發(fā)體系建設(shè)規(guī)劃
1、 需求設(shè)計(jì),應(yīng)用大型語言模型的自然語言理解能力,打造研發(fā)設(shè)計(jì)助手,輔助生成需求用例和程序設(shè)計(jì)文檔。需求編寫階段,基于用例中的業(yè)務(wù)流程業(yè)務(wù)規(guī)則關(guān)鍵詞,通過檢索相似歷史需求,結(jié)合當(dāng)前需求背景,自動(dòng)拼裝提示詞,實(shí)現(xiàn)需求業(yè)務(wù)規(guī)則的續(xù)寫;程序設(shè)計(jì)階段,通過向大模型傳遞需求背景和設(shè)計(jì)模塊示例,聯(lián)動(dòng)檢索相似歷史設(shè)計(jì),自動(dòng)拼裝提示詞,實(shí)現(xiàn)詳細(xì)設(shè)計(jì)內(nèi)容的續(xù)寫功能。
2、代碼補(bǔ)全,基于大型語言模型代碼推理生成能力,打造智能編碼助手,支持包括Java、Python、JavaScript等多種編程語言。該助手能夠深入理解代碼的語義和結(jié)構(gòu),并根據(jù)不同語言和項(xiàng)目需求提供精確的自動(dòng)補(bǔ)全建議。通過IDE插件,智能上下文分析能力能夠根據(jù)當(dāng)前代碼環(huán)境提供更精確的補(bǔ)全選項(xiàng),從而顯著提高編碼效率和準(zhǔn)確性,幫助開發(fā)者減少編碼錯(cuò)誤并提升代碼質(zhì)量。
3、代碼檢查,基于大型語言模型代碼推理能力,打造智能代碼檢查助手。通過大模型和Sonar規(guī)則對代碼進(jìn)行檢查,識(shí)別問題類別和嚴(yán)重程度,并通過大模型針對代碼問題給出代碼修復(fù)方案。編碼階段,利用IDE插件實(shí)現(xiàn)代碼問題檢測、漏洞檢測、安全規(guī)范檢測等能力,并直接給出修復(fù)說明;代碼復(fù)核階段,通過將大模型代碼檢查能力集成到代碼復(fù)核平臺(tái),智能提示代碼問題及對應(yīng)問題修復(fù)方案,幫忙復(fù)核人員發(fā)現(xiàn)難以發(fā)現(xiàn)的代碼問題,提升代碼復(fù)核效率;流水線掃描階段,利用規(guī)則對代碼進(jìn)行全量掃描,再用大模型對結(jié)果進(jìn)行檢查解讀,形成完整的代碼檢查結(jié)果和明確的修復(fù)方式。
4、單測生成,基于大型語言模型的代碼推理生成能力,打造單元測試助手。通過IDE插件獲取目標(biāo)代碼的工程上下文信息,涵蓋如模擬(Mock)框架、被測代碼類所依賴的類。在此基礎(chǔ)上,利用提示詞優(yōu)化大模型交互,發(fā)揮大模型代碼理解能力。在分析被測方法的代碼結(jié)構(gòu)時(shí),涉及代碼邏輯、邊界條件、異常處理等方面,從而生成單元測試用例數(shù)據(jù)。依據(jù)項(xiàng)目工程的框架依賴信息,生成依賴類的模擬行為用例,最終構(gòu)建完整的單元測試方法用例。
5、測試輔助,基于大型語言模型的自然語言理解和代碼生成能力,打造智能測試助手。在測試案例領(lǐng)域,通過向大型語言模型傳遞設(shè)計(jì)文檔中涉及的處理邏輯和技術(shù)要點(diǎn)等信息,結(jié)合歷史測試信息庫中的實(shí)際用例,使得大型語言模型能夠生成測試用例數(shù)據(jù)。此外,依托測試用例數(shù)據(jù)及測試框架,大型語言模型能夠自動(dòng)生成可執(zhí)行的測試腳本。在測試資產(chǎn)管理方面,利用大型語言模型的理解、提煉與優(yōu)化能力,對測試資產(chǎn)內(nèi)容進(jìn)行自動(dòng)評估、治理與優(yōu)化,從而提高整體測試資產(chǎn)的質(zhì)量水平。
6、智能問答,應(yīng)用大模型強(qiáng)大的知識(shí)檢索和整合能力,打造研發(fā)智能問答助手,能夠迅速領(lǐng)會(huì)開發(fā)人員提出的問題,并依據(jù)其豐富的知識(shí)庫和代碼庫,提供問題解答、代碼示例以及最佳實(shí)踐。在私有化知識(shí)的基礎(chǔ)上,例如編碼規(guī)范、技術(shù)部件、技術(shù)文檔等,應(yīng)用RAG技術(shù)與模型微調(diào)訓(xùn)練,更好地適應(yīng)工商銀行軟件開發(fā)中心的研發(fā)場景。方案有效解決了銀行研發(fā)環(huán)境與互聯(lián)網(wǎng)環(huán)境之間的隔閡,使得開發(fā)人員能夠方便地找到標(biāo)準(zhǔn)實(shí)現(xiàn)和問題解決方法,從而大大減少了開發(fā)者的問題搜索時(shí)間,據(jù)統(tǒng)計(jì)單次問題問答可平均為開發(fā)者節(jié)省5分鐘。

智能研發(fā)體系實(shí)踐經(jīng)驗(yàn)
業(yè)界基座大模型大多基于Github、GitLab等平臺(tái)的開源項(xiàng)目代碼進(jìn)行微調(diào)訓(xùn)練,在通用編碼領(lǐng)域能夠取得較好的效果,但是面向私有化研發(fā)場景特別是面向金融行業(yè)的編碼場景并不能很好地適配,在計(jì)算金額場景未能有效處理精度,在面向業(yè)務(wù)邏輯編碼場景未能理解業(yè)務(wù)知識(shí)上下文,比如生成單元測試行覆蓋率不足。為支撐智能研發(fā)體系在工行軟件開發(fā)中心落地運(yùn)營,增強(qiáng)大模型在私有場景下的適配能力,分別組建了智能研發(fā)運(yùn)營團(tuán)隊(duì)負(fù)責(zé)運(yùn)營數(shù)據(jù)分析及模型測評,高級(jí)研發(fā)專家團(tuán)隊(duì)負(fù)責(zé)模型微調(diào)訓(xùn)練語料標(biāo)注,大模型微調(diào)訓(xùn)練團(tuán)隊(duì)負(fù)責(zé)模型微調(diào)訓(xùn)練,圍繞標(biāo)注、微調(diào)、測評的這個(gè)模型迭代機(jī)制,三個(gè)團(tuán)隊(duì)協(xié)作不斷推進(jìn)模型優(yōu)化增強(qiáng)。
1、積累私有化研發(fā)數(shù)字資產(chǎn)
積累私有化研發(fā)數(shù)字資產(chǎn)用于模型微調(diào)訓(xùn)練和RAG知識(shí)庫增強(qiáng),包括業(yè)務(wù)領(lǐng)域優(yōu)質(zhì)代碼、技術(shù)領(lǐng)域代碼、單元測試代碼、編碼規(guī)范、技術(shù)文檔等。數(shù)字資產(chǎn)由高級(jí)研發(fā)專家嚴(yán)格審查把關(guān),保證模型語料質(zhì)量,保障模型微調(diào)訓(xùn)練質(zhì)量。以大模型代碼補(bǔ)全能力為例,面向各研發(fā)部門收集優(yōu)質(zhì)業(yè)務(wù)領(lǐng)域代碼、技術(shù)構(gòu)件示例代碼,由高級(jí)研發(fā)專家進(jìn)行嚴(yán)格的人工審核標(biāo)注,包括剔除或者改寫低質(zhì)量及錯(cuò)誤的代碼,保留代碼中的有用注釋,并剔除無關(guān)或噪音注釋。為了解決人工標(biāo)注工作量大、耗時(shí)長的痛點(diǎn),打造基于語法樹的靜態(tài)分析和專用大模型,針對代碼語料進(jìn)行打分標(biāo)注,自動(dòng)提取代碼片段的上下文信息,包括前后文、函數(shù)調(diào)用關(guān)系,降低人工標(biāo)注工作量。
2、建立大模型微調(diào)訓(xùn)練機(jī)制
對標(biāo)代碼編寫、代碼檢查、單側(cè)生成等智能研發(fā)能力,利用高質(zhì)量私有化研發(fā)數(shù)字資產(chǎn),提升編碼輔助能力。組建大模型微調(diào)訓(xùn)練團(tuán)隊(duì),基于大模型運(yùn)行效果、開發(fā)一線反饋的問題需求,結(jié)合研發(fā)數(shù)字資產(chǎn)迭代情況,制定大模型微調(diào)訓(xùn)練目標(biāo)和訓(xùn)練計(jì)劃。根據(jù)具體模型優(yōu)化能力選擇合適的微調(diào)策略和微調(diào)算法,設(shè)定合適的微調(diào)參數(shù),選擇合適的訓(xùn)練語料,并定義具體的評估指標(biāo)。模型微調(diào)訓(xùn)練后,大模型微調(diào)訓(xùn)練工程師評估驗(yàn)證模型性能,并進(jìn)一步優(yōu)化模型,通過模型蒸餾,保持模型性能的同時(shí)具有更低的計(jì)算復(fù)雜度和存儲(chǔ)空間需求,通過模型剪枝,有效地減少模型的大小和計(jì)算復(fù)雜度,從而提高模型推理速度。
為保障研發(fā)模型微調(diào)訓(xùn)練效果,建設(shè)大模型基礎(chǔ)能力測評、研發(fā)能力測評、用戶效果測評三層測評體系,實(shí)現(xiàn)逐級(jí)測評準(zhǔn)入。
-
基礎(chǔ)能力測評針對智能研發(fā)場景,聚焦代碼編寫、語義理解、數(shù)學(xué)運(yùn)算、邏輯思維四大基礎(chǔ)能力,以業(yè)界標(biāo)準(zhǔn)測評集及框架實(shí)現(xiàn)測評,比對基座模型及業(yè)界模型指標(biāo)。
-
研發(fā)力能測評針對工行軟開發(fā)中心研發(fā)場景,聚焦智能研發(fā)能力,建立私有化測評集,覆蓋業(yè)務(wù)及技術(shù)領(lǐng)域案例,通過自動(dòng)+人工的方式完成測評量化評估。
-
用戶試點(diǎn)測評針對真實(shí)研發(fā)場景,灰度發(fā)布模型版本進(jìn)行用戶試點(diǎn)評估,通過埋點(diǎn)數(shù)據(jù)形成試點(diǎn)運(yùn)營指標(biāo),通過用戶試點(diǎn)測評后正式進(jìn)行模型版本發(fā)布。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為“大連人人網(wǎng)用戶上傳并發(fā)布",本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。