《馬宇馳-程序員正在面臨前所未有的機會10X開發者的探尋與實踐.pdf》由會員分享,可在線閱讀,更多相關《馬宇馳-程序員正在面臨前所未有的機會10X開發者的探尋與實踐.pdf(25頁珍藏版)》請在三個皮匠報告上搜索。
1、程序員正在面臨前所未有的機會:10X開發者的探尋與實踐馬宇馳 華為云演講嘉賓馬宇馳AI算法科學家/代碼大模型高級技術專家 博士,華為云PaaS技術創新Lab-DevAI Lab 負責人、CodeArts Snap智能編程助手 負責人、智能化研發技術專家、代碼大模型高級技術專家 應屆加入華為,歷任AI算法科學家、智能化測試技術專家、研發智能博士軍團Leader 等崗位17年加入華為工作至今,帶領團隊先后圍繞智能化測試、智能化運維、智能路由與調度、智能化代碼生成等方向成功孵化多項智能研發服務,完成規?;涞夭⑼庖缒?錄CONTENTS1.AIGC for SE的業界洞察2.AI邂逅一站式軟件開發3
2、.研發大模型的關鍵問題與技術挑戰4.10X開發者展望AIGC for SE的業界洞察PART 01軟件工程3.0:智能化軟件工具生產線趨勢軟件危機:進度風險、質量問題大型工程實踐CMM:過程管控,過程決定結果項目化管理:角色分工、職責明確敏捷:強調結果、個體、擁抱變化CICD:持續價值交付DevOps:團隊協作軟件爆炸:無法適應快速變化AIGC:驗收標準、測試用例、UI、代碼、測試腳本等人機交互智能:軟件研發過程就是人與計算機的交互過程數字化:軟件研發平臺開始理解需求、設計、代碼等以模型和數據為本:研發人員服務于大模型和大數據平臺AILLM的演進2021年9月:Sam Altman,the C
3、EO of OpenAI,said that GPT-4 would focus more on coding代碼給了大模型推理(思維鏈)的能力?2023年:GPT4元年,AI Agent全面爆發,GPT4 Turbo出世大模型記憶Prompt向量數據庫規劃工具后處理COTTOT篩選軟分通訊編譯代碼檢查沙盒運行自學習數據庫目標分解AI邂逅一站式軟件開發PART 02華為研發大模型全景華為研發大模型定位:輔助研發效率提升知識獲取(時間占比:14%)需求管理系統設計編碼(時間占比:17%)構建測試(時間占比:19%)發布研發知識推薦代碼自動生成測試用例自動生成軟件研發工具(CodeArts)華為研
4、發大模型2)研發作業數據清洗與評價,提升大模型能力1)大模型提升工具智能化,助力研發能力提升需求管理代碼開發代碼托管代碼檢查編譯構建測試部署與運維發布流水線華為研發大模型的構建基礎模型華為研發大模型(華為內部業務)華為內部的研發數據(X萬個代碼倉,X億行 代碼,X萬篇技術博客)通用研發大模型(內外部通用)百億華為內部數據萬億級高質量海量數據千億級精品數據軟件算法軟件算法代碼檢查代碼檢查編譯構建編譯構建測試測試需求管理需求管理智能化特性智能化特性代碼檢查代碼檢查代碼倉維度文件維度函數級維度代碼代碼倉倉代碼開發工具代碼開發工具準入門禁準入門禁數十項數十項 原生分析能力原生分析能力華為可信質量評級華
5、為可信質量評級華為華為Clean Code標準標準數十項數十項 原原生后處理能力生后處理能力代碼代碼開發開發工具工具外部開放的研發數據(8600萬個代碼倉,1500億行 代碼,1300萬篇技術博客)利用軟件研發工具對數據數據進行加工/合成/篩選/清洗def search(lst):給你一個非空的正整數列表。返回大于零的最大整數,其頻率大于或等于整數值本身。整數出現的頻率是它在列表中出現的次數。如果不存在這樣值,返回-1。示例:search(4,1,2,2,3,1)=2 search(1,2,2,3,3,3,4,4,4)=3 search(5,5,4,4,4)=-1 if not lst:ret
6、urn-1 max_num=max(lst)if max_num=max_num:return max_num else:return-1構建高質量的訓練數據,讓模型“天生”就有高質量“臟代碼”訓模型,模型出“臟代碼”“Clean Code”進模型,模型出“Clean Code”def search(lst):給你一個非空的正整數列表。返回大于零的最大整數,其頻率大于或等于整數值本身。整數出現的頻率是它在列表中出現的次數。如果不存在這樣值,返回-1。示例:search(4,1,2,2,3,1)=2 search(1,2,2,3,3,3,4,4,4)=3 search(5,5,4,4,4)=-1
7、#創建一個字典存儲每個整數的頻率 freq_dict=for num in lst:if num in freq_dict:freq_dictnum+=1 else:freq_dictnum=1#按key倒序將字典進行排序 sorted_dict=dict(sorted(freq_dict.items(),key=lambda item:item0,reverse=True)#遍歷排序后的字典 for num,freq in sorted_dict.items():#如果數字頻率大于或等于本身值則返回 if freq=num:return num#如果不存在這樣的整數,返回-1 return-
8、1邏輯不清,代碼難懂初級程序員的水平步驟清晰,帶有注釋,代碼易讀高級程序員的水平代碼生成測評數據集(Java):業界通用的HumanEval數據集(HE)在所對比的百億級模型中,SNAP在代碼生成上準確率最佳,一次生成通過測試的概率在業界通用的HE數據集上達到同等規模參數模型業界Top1。開發者需要手動編寫每一行代碼,這需要投入大量的時間和精力;對于復雜的算法和數據結構,尤其痛苦和耗時通過理解自然語言和關聯上下文自動生成代碼,大大減少了開發者的工作量,提高了開發效率過去現在跨文件關聯“utils.tools”上下文的代碼生成示例典型場景1:代碼自動生成BenchmarkSNAP(華為)Wiza
9、rdCoderCode LlamaHumanEval(Python)82.3%68.29%48.17%HumanEval(Java)67.1%56.71%41.46%HumanEval(C/C+)58.5%49.39%44.51%典型場景2:單元測試用例生成單元測試用例生成測評數據集:無業界公認的單元測試用例評測集,人工構建了一個包含10個Java類,14個Java方法的評測集。測評方法:采用業界通用的,通過對模型推理的代碼進行修改,對完整的函數測試行覆蓋率。手動編寫每個單元測試用例的詳細步驟和預期結果,在有限的開發時間保證代碼測試覆蓋率困難自動創建單元測試用例,提高測試覆蓋率,確保每個功能和
10、場景都被測試到過去現在String類型含兩個if-else的單元測試用例生成數據集組成基礎類型控制流面向對象微服務Java類3232Java方法7232指標SNAP(華為)開源 SOTA平均測試代碼行數52156平均修改代碼行數1031平均行覆蓋率77%70%SNAP生成的代碼相對于開源 SOTA生成的代碼,代碼更簡潔,需要人工修改的代碼行數更少,行覆蓋率更高。典型場景3:代碼調試代碼調試測評數據集:參考了公開數據集,構建了常見異常的Java代碼和運行時報錯評測數據集。測評功能:代碼糾錯:采用錯誤代碼作為prompt,模型糾正代碼錯誤。代碼Debug:采用錯誤代碼+報錯信息作為prompt,模
11、型糾正代碼錯誤。SNAP不僅具備代碼糾錯能力,也提供了代碼Debug能力。在輸入代碼+報錯信息和只輸入代碼的兩種代碼調試場景下,華為SNAP準確率更高。且在只輸入代碼進行糾錯的場景下,誤報率更低。測評方法:將模型推理的代碼,直接在測試環境中進行單元測試,采用Pass3通過率作為評價指標。查找代碼中的錯誤需要大量的時間和耐心,尤其是對于復雜的代碼和大型項目來說,定位問題可能會非常困難快速定位問題,并提供錯誤發生的詳細信息和修復建議,大大縮短了定位錯誤的時間過去現在檢出“除數為0”和“類型錯誤”并給出修復代碼示例調試細分功能輸入內容SNAP(華為)開源SOTAPass3Pass3代碼糾錯僅代碼65
12、%55%代碼Debug代碼+報錯信息65%60%典型場景3:代碼調試代碼調試測評數據集:參考了公開數據集,構建了常見異常的Java代碼和運行時報錯評測數據集。測評功能:代碼糾錯:采用錯誤代碼作為prompt,模型糾正代碼錯誤。代碼Debug:采用錯誤代碼+報錯信息作為prompt,模型糾正代碼錯誤。SNAP不僅具備代碼糾錯能力,也提供了代碼Debug能力。在輸入代碼+報錯信息和只輸入代碼的兩種代碼調試場景下,華為SNAP準確率更高。且在只輸入代碼進行糾錯的場景下,誤報率更低。測評方法:將模型推理的代碼,直接在測試環境中進行單元測試,采用Pass3通過率作為評價指標。查找代碼中的錯誤需要大量的時
13、間和耐心,尤其是對于復雜的代碼和大型項目來說,定位問題可能會非常困難快速定位問題,并提供錯誤發生的詳細信息和修復建議,大大縮短了定位錯誤的時間過去現在檢出“除數為0”和“類型錯誤”并給出修復代碼示例調試細分功能輸入內容SNAP(華為)開源SOTAPass3Pass3代碼糾錯僅代碼65%55%代碼Debug代碼+報錯信息65%60%研發大模型的關鍵問題與技術挑戰PART 03關鍵問題與技術挑戰模型優化工程優化關鍵技術1:中文友好的代碼生成 在保障模型性能的條件下,增強中文語義的理解能力 利用大模型能力持續補齊數據上中文社區短板關鍵技術4:體驗評估與優化對于越來越多的下游任務構建成體系的評測方法論
14、構建客觀且貼近真實工程的Benchmark關鍵技術5:模型在線學習 基于用戶的顯式和隱式反饋對在線的大模型進行微調,實現在線模型實時更新關鍵技術6:低成本SFT 如何實現各種研發場景的訓練/驗證數據集快速低成本建設,以及模型的訓練以及自動驗證部署 模型參數外掛等技術,實現低成本訓練與數據隔離關鍵技術2:Prompt組裝 判斷用戶輸入的任務描述完整性和合理性,并通過交互明確意圖,提高代碼生成準確率 Prompt結合精準上下文,擴大模型生成感知野,關鍵技術8:模型量化在保證精度不過多下降的前提下,量化模型,支撐端測算力實現模型推斷關鍵技術3:AI Agent探索 結合預訓練模型,在Agent邏輯下
15、,完成復雜任務的精準生成與推理 結合記憶模塊,進行搜索增強,減少模型幻覺,提升回答準確率關鍵技術7:后處理 根據項目上下文檢查和修復所生成代碼的編譯運行錯誤 利用沙盤,通過編譯與運行直接反饋并迭代完成修改 結合單元測試,修復生成程序中的邏輯性錯誤關鍵問題與技術挑戰10X開發者展望PART 04編程的終結,言之過早AI輔助能有效提升研發人員的單兵作戰能力軟件工程1.0(質量)瀑布模型一場大賽,研發智能化已悄然到來:上屆冠亞軍選手沒有使用大模型,在今年大賽中,冠軍排在170名,亞軍排在450名。今年8位滿分選手全都使用大模型。軟件工程2.0(效率)敏捷、精益軟件工程3.0(智能)人機協同AI輔助研
16、發支撐研發人員從 普通士兵 到 特種兵的升級新時代軟件研發Scaling Law的終結與模型的自我進化擴展法則 Scaling Law的關鍵變量:計算量、數據集和參數量計算量數據集參數量AI算力的新摩爾定律,引導一線大廠開始算力軍備競賽24年國內將以萬片為單位計算集群,意味著萬億級模型的算力底座已初步具備23年開源模型年初與年尾參數規模對比,整體可用版本的規模大了約2050倍(約X B XXX B)24年預計開源模型也會有同等規模的提升24年閉源模型將加快追趕GPT的腳步全球高質量數據集是有限的,目前統計有XX T Token基于當前版本GPT4的標注數據,在部分領域已超越人的標注數據隨著國內主流廠商專業用戶量的提升,也會帶來更為精準的數據反饋THANKS