《百度大模型驅動下的智能代碼助手提效實踐-李楊.pdf》由會員分享,可在線閱讀,更多相關《百度大模型驅動下的智能代碼助手提效實踐-李楊.pdf(20頁珍藏版)》請在三個皮匠報告上搜索。
1、大模型驅動下的智能代碼助手提效實踐百度 工程效能部 李楊 百度資深研發工程師百度資深研發工程師,云端開發平臺云端開發平臺(iCoding)的技術負責人的技術負責人,AI編程助手編程助手(Baidu Comate)商業化負責人商業化負責人 百度一級專利發明人,名下國內外發明專利百度一級專利發明人,名下國內外發明專利1010余個,已獲授權余個,已獲授權 國家重點研發計劃國家重點研發計劃基于人機結對編程與協同進化的智能敏捷開發云基于人機結對編程與協同進化的智能敏捷開發云平臺平臺技術骨干技術骨干自我介紹自我介紹李楊李楊目錄1.背景與趨勢背景與趨勢1.軟件研發領域新機遇軟件研發領域新機遇2.AI原生應用
2、帶來軟件工程形態演進原生應用帶來軟件工程形態演進3.A原生研發過程原生研發過程4.AI研發工具研發工具2.百度代碼助手百度代碼助手 Comate 的技術介紹的技術介紹1.模型預訓練模型預訓練2.多場景精調多場景精調3.工程能力優化工程能力優化,發掘模型潛力發掘模型潛力3.百度內應用案例及效果介紹百度內應用案例及效果介紹1.場景落地場景落地2.效果介紹效果介紹4.未來展望未來展望軟件研發領域新機遇軟件研發領域新機遇AI 原生應用帶來的軟件形態LLM 能力帶來的生產力變化AI 原生的產品思維AI 原生的應用架構 AI 原生的研發過程重構研發過程AI 原生研發工具鏈AI原生應用帶來軟件工程形態演進原
3、生應用帶來軟件工程形態演進未來軟件工程未來軟件工程(AI原生軟件工程原生軟件工程)3.0N/A第一代軟件工程第一代軟件工程采用工程化的方法是從事軟件系統的采用工程化的方法是從事軟件系統的研發和維護的非常必要的研發和維護的非常必要的?,F代軟件工程現代軟件工程別名別名代系代系1.02.0誕生背景誕生背景主要特征主要特征標志事件標志事件2001年年,敏捷宣言敏捷宣言發布發布,在這之后在這之后逐步形成了敏捷逐步形成了敏捷/DevOps開發模式開發模式、精益軟件開發模式等形態精益軟件開發模式等形態。建立在建立在SaaS(軟件即服務軟件即服務)、)、Cloud 之上的軟件工程之上的軟件工程。受互聯網受互聯
4、網、開源軟件運動開源軟件運動、敏捷敏捷/DevOps 開發模式影響開發模式影響。各種研發工具理解研發人員交待的任務各種研發工具理解研發人員交待的任務,可自主完成軟件開發中各階段工作可自主完成軟件開發中各階段工作。依賴全新的自然語言方式依賴全新的自然語言方式,廣大研發人員會廣大研發人員會 通過提示詞通過提示詞(Prompt)與工具與工具、系統交互系統交互。在軟件工程在軟件工程 3.0基礎下的軟件研發典型特征基礎下的軟件研發典型特征:基于人機交互基于人機交互,不斷引導大模型不斷引導大模型、及時糾錯及時糾錯、優化開發過程優化開發過程;研發人員致力于兩頭研發人員致力于兩頭(定義問題定義問題、驗收結果驗
5、收結果),),大模型負責完成中間開發任務大模型負責完成中間開發任務。1968年年NATO的計算機科學家在聯邦的計算機科學家在聯邦德國召開國際會議德國召開國際會議,討論軟件危機問討論軟件危機問題題,正式提出了正式提出了“軟件工程軟件工程”(Software Engineering)這一術這一術語語。隨著計算能力的提高和大數據的興起隨著計算能力的提高和大數據的興起,逐漸形成了逐漸形成了“現代軟件工程現代軟件工程”。受建筑受建筑、水利工程等影響的傳統軟件工水利工程等影響的傳統軟件工程程,上個世紀五上個世紀五、六十年代出現的軟件危六十年代出現的軟件危機迫使人們去尋找產生危機的內在原因機迫使人們去尋找產
6、生危機的內在原因,進而找出消除危機的解決方案進而找出消除危機的解決方案。隨著人工智能和大模型技術的推動隨著人工智能和大模型技術的推動,與軟件研發生命周期的深度融合與軟件研發生命周期的深度融合,重重新定義了軟件研發人員構建新定義了軟件研發人員構建、維護和維護和改進軟件應用的范式改進軟件應用的范式?,F有的研發過程有以下關鍵特點現有的研發過程有以下關鍵特點:過程起點固以產品需求調研與需求設計為過程起點;以代碼交付為核心;基于規則和自動化;各角色間協同邊界較為固定。AI原生研發過程有以下關鍵特點原生研發過程有以下關鍵特點:需求工程是價值交付活動的起點和終點,會逐步成為研發中最關鍵的部分;所有的產品研發
7、都將在原先的以代碼為核心的交付基礎上,形成兩級價值交付的驅動方式:Idea驅動和數據驅動;各角色間協同邊界不再固定;大模型(LLM)、數據集(DataSet)、提示詞(Prompt)等會與代碼一樣,成為大部分研發日常面對的一等公民。需求調研需求設計MVP開發代碼開發代碼評審測試/效果評估發布/上線運維Prompt開發Prompt評審數據工程模型微調在線監控/反饋價值回顧AI原生研發過程原生研發過程大模型平臺產品全景圖大模型平臺產品全景圖:定義定義AI應用新范式應用新范式百度文心大模型ERNIE Bot第三方大模型ChatGLMRWKVMPT Llama 2Stable DiffusionDol
8、lyBLOOMZFalcon大模型數據管理數據清洗數據生成數據標注模型訓練Post-pretrainingSFTRLHF評估&優化大模型倉庫大模型評估大模型壓縮預測服務部署服務部署及托管Profile記憶在線測試器Prompt 工程Prompt模板Prompt推薦自動優化插件應用插件庫插件編排數據回流訓練可視化增量訓練大模型安全多模型調度大模型工具鏈大模型訓練加速端到端并行訓練優化大模型場景建模大模型生產線大模型應用集成全流程 LMOps SDK自動化推理服務監控大模型預置場景訓推加速穩定性保障多芯混部安全可信ERNIE-ViLG大語言模型多模態模型研發新流程與大模型驅動工具演進研發新流程與大
9、模型驅動工具演進需求調研需求設計Prompt開發Prompt評審MVP開發數據工程調研&設計需求澄清任務分解代碼解釋編寫代碼實時續寫注釋生成代碼描述生成代碼調試代碼缺陷自動修復生成測試用例代碼優化技術問答生成注釋生成單元測試智能評審安全檢查與修復API網關LLMCacheAPIGatewaySCS for Redis編排調試低俗涉政安全服務非代碼內容規范價值觀通用代碼能力工具調用向量檢索預訓練數據SQLPlugins客戶業務APICFCVectorDBBESEmbedding文檔切分數據處理 Pipeline領域文檔BOSERNIEEasyDAPToken/耗時統計Log/TraceQianf
10、anSDKCPromBLSERNIE Code2.0意圖拆解靜態編排(Chain)動態編排(Agent)Prompt工程ERNIE Code2.0私域知識增強PALORDS防中間劫持Baidu Comate架構圖架構圖模型預訓練模型預訓練Github私域代碼原始數據Star數活躍度數據源清洗片段長度復雜度內容清洗語言分布知識覆蓋分布平衡FIM結構轉換多場景精調多場景精調數據分析語法解析函數調用關系分析文件依賴關系分析獨立函數提取數據生產測試函數與被測函數代碼片段與注釋代碼片段與代碼解釋代碼問答對數據清洗高復雜度函數過濾無效注釋過濾測試框架過濾與分類(單測)代碼格式化什么時候生成單行 VS 多行
11、規則 VS AI環境匹配度用什么生成上文代碼下文代碼相關文件怎么生成Prompt調優專項SFT生成后咋用質量檢測可信度后文合并不滿意怎么辦多條推薦更大規模模型介入工程優化工程優化,發掘模型潛力發掘模型潛力反饋驅動創新反饋驅動創新安裝推薦采納留存反饋驅動創新加入訓練LLMBaidu Comate 效果展示效果展示Baidu Comate 后端案例后端案例Baidu Comate 前端案例前端案例AI結對結對,效率加倍效率加倍百度內部使用效果百度內部使用效果合作企業使用效果合作企業使用效果80%+80%+工程師使用1515萬萬日生成代碼采納行42%42%采納率20%20%體感研發效率提升40%+40%+企業采納率40%40%公有云采納率注:15萬行代碼相當于1875名工程師的一天的代碼產出全面AlAgent加持+原有規則引擎能力通用知識+面向研發團隊的私域知識增強LLM推理與計劃能力+靈活的調用工具能力更進一步更進一步,邁向全面自動化的人機協同邁向全面自動化的人機協同機遇與未來展望機遇與未來展望