《肖斌-智能研發的點與面:螞蟻代碼大模型落地實踐.pdf》由會員分享,可在線閱讀,更多相關《肖斌-智能研發的點與面:螞蟻代碼大模型落地實踐.pdf(30頁珍藏版)》請在三個皮匠報告上搜索。
1、智能研發的點與面:螞蟻代智能研發的點與面:螞蟻代碼大模型落地實踐碼大模型落地實踐演講人:肖斌目 錄01研發提效探索02智能研發發展路線03關鍵技術與難點04未來方案思考01CodeFuse在螞蟻研發全生命周期提效的探索研發提效探索代碼大模型探索代碼大模型探索0.00%20.00%40.00%60.00%80.00%100.00%編寫代碼理解代碼互聯網搜索調試代碼編寫代碼注釋或編寫測試執行代碼審查重構代碼在代碼庫中搜索了解最近代碼變更編寫提交消息在CLI中執行操作開發者最耗時活動比例各功能使用占比代碼補全代碼問答解釋代碼添加注釋生成測試注:數據來源JetBrains 2023年開發者生態報告螞蟻
2、大模型發展路線螞蟻大模型發展路線20222023 Q42023 Q32023 Q2 2023 Q1 GPT-3 模型落地0.25B模型代碼行補全全螞蟻落地 CodeFuse 立項發布1.3B模型多語言代碼補全發布編程開發助手CodeFuse 1.0發布CodeFuse1.0支持多種模型螞蟻內公測,大客戶使用CodeFuse 2.0發布IDE插件,支持多語言,多IDECodeFuse開源,登頂開源代碼大模型HunabEval榜單(74.4%)CodeFuse 3.0IDE插件對外放量支持螞蟻內部數十種研發下游任務支持螞蟻內部效能平臺CodeFuse 持續升級BigCode第一名倉庫級代碼問答&需
3、求倉庫級代碼補全優化2024大模型的能力演進大模型的能力演進Chat模式Agent模式Sop 多Agent編排集成平臺知識庫或平臺特定數據對模型進行加訓,通過對話方式提供研發平臺知識問答。單純問答形式無法滿足智能化需求,需要結合平臺的能力進行智能化改造,集成研發平臺能力(工具)供AI調度。人類僅需設定目標,提供資源,設置設置流程流程,監督結果。通過SOP方式根據特定流程編排多領域Agent,完成特特定定復雜任務或跨平臺任務。大模型背景下效能平臺產品演進大模型背景下效能平臺產品演進工具化智能化AI Native傳統效能平臺效能平臺+CopilotAI Native效能平臺通過程序,工具等傳統方式
4、滿足用戶各種明確且特定的功能。用戶一般在產品上通過界面和特定操作流程完成任務。工具化平臺通過效能平臺Copilot完成AI能力的使用,用戶一般通過側邊欄進行平臺知識庫問答或直接通過AI調度效能平臺能力。智能化平臺以AI技術為核心,能夠自主進行復雜的任務處理和決策。AI能力嵌入到用戶每個操作中,通常能通過更簡單的操作完成更復雜的事情。AI原生平臺CodeFuseCodeFuse代碼大模型落地現狀代碼大模型落地現狀AI 升級研發鏈路個人生產力釋放、研發環節智能化、人工參與率降低AI Native R&D全新研發范式,AI 原生的研發交付升級演進需求分析編碼自測聯調測試部署發布監控運維CodeFus
5、e AI Assistant Platform數據/模型/部署/推理/評測等螞蟻大模型基礎設施大模型/Agent 建設平臺等CodeFuse CopilotCodeFuse IDECodeFuse VATCodeFuse APIs領域 AgentAnalysis需求 to 系分需求 to 測分需求智能拆解系分 to 研發計劃Run啟動問題自動修復編譯問題自動修復智能 DebugCoding代碼補全添加注釋變更總結代碼優化代碼生成代碼解釋缺陷修復代碼評審CICDCICD config流水線智能執行執行問題定位域排查技術知識問題智能 CLI QualityText to 測試用例單測用例生成測試資
6、產選取接口用例生成測試覆蓋率提升Ops監控時序分析監控日志解讀監控語義搜索智能變更&應急意圖識別超級會話及管理Agent 調度與執行數據體系領域 Agent 開發RAG 其他 評測體系 IDE 能力 核心能力底層依賴部署問題自動修復項目解析與問答倉庫理解與問題產品矩陣研發輔助02螞蟻智能研發發展路線智能研發發展路線Copilot+ChatCopilot+Chat模式模式在現有產品功能上做智能化升級是 AI 應用的重要方式。一些適合的場景:1.生成式,如 自然語言生成用例、根據變更代碼補齊測試用例等;2.總結類,如 對 PR 標題和描述的總結、基于文檔的總結與問答;3.推理類,如 代碼沖突解決、
7、問題的診斷與修復、異常日志分析等;傳統效能平臺提取效能平臺特征加訓語料CodeFuse大模型模型加訓特定效能平臺模型效能Copilot+Chat傳統效能平臺快速集成AI能力Copilot+AgentCopilot+Agent模式模式傳統效能平臺提供知識庫自定義工具(API)CodeFuse大模型RAG檢索工具調用效能Copilot+Agent全量數據單純問答形式無法滿足智能化需求,需要結合平臺的能力進行智能化改造。以領域 Agent 為核心,對效能平臺進行全面升級,增加超級會話及 Agent 調度與執行能力傳統效能平臺工具與AI能力升入結合AIAI NativeNative 模式模式AI原生:
8、用戶無需主動觸發AI功能,任何原有功能都能友好嵌入AI能力至用戶操作中。01 代碼補全智能補全,一鍵采納03 解釋代碼準確解釋代碼,歷史代碼 so easy04 代碼分析智能生成優化、簡化建議,幫助寫出更好的代碼05 生成測試快速生成測試用例,單測/集測一鍵搞定06 智能問答AI 協助解決研發問題,無需離開編碼環境02 生成注釋代碼編輯區域快捷添加注釋03CodeFuse研發助手關鍵技術以及難點突破關鍵技術與難點代碼補全模型算法關鍵技術與難點算法關鍵技術與難點代碼底座大模型 產品落地挑戰1 代碼能力 生成代碼符合預期挑戰2 自回歸訓練從左到右 無法利用上下文挑戰3 常規訓練無代碼語法 無法自動
9、停止挑戰4 單文件感知范圍有限 業務邏輯不準挑戰5 響應速度敏感 代碼補全耗時600ms代碼底座大模型模型填空自適應語法粒度倉庫級感知推理部署預訓練+MFT微調FIM:fill in the middleBlockFim:程序分析RepoFuse倉庫級補全ModelOps加速工程關鍵技術與難點工程關鍵技術與難點算法模型 產品落地觸發時機優化HPF搶占式隊列上下文太少不觸發上下文感知緩存動態delayRAG+程序分析庫內檢索召回個性化業務獨立擴展引用鏈路追蹤代碼解析/壓縮本地存儲/索引本地輕量向量/索引庫嚴格限制資源的低侵入構建20ms以下倉庫檢索PE/前后處理低收益判斷業務語義Prompt增強
10、Few-Shot 學習多種校驗后處理AB平臺多場景多樣化分語言AB實驗挑戰1什么時候觸發(立即 or 等待 or 動態delay)全部觸發 or 部分觸發(隊列機制)要不要觸發:緩存復用觸發時機上下文邊界實時+耗時效果優化多模型/多策略挑戰2上下文邊界導致可用信息少無法利用代碼引用鏈路相關信息無法參考其他相似代碼挑戰3全量代碼計算量大實時代碼難被計算服務端OR本地存儲RAG檢索時間長耗時敏感挑戰4純模型能力存在幻覺問題生成結果括號不匹配模型能力存在某些領域上限挑戰5同時運行多個模型進行效果驗證單個模型同時用多種策略進行效果驗證如何對高頻場景進行觸發時機優化(代碼補全為例)如何對高頻場景進行觸發
11、時機優化(代碼補全為例)絕大部分請求為無效請求,浪費GPU資源提取Prompt邊界判斷緩存HPF搶占式隊列線性模型決策樹模型發起請求觸發事件上下文長短光標位置上下文hashLRU緩存40+用戶特征抽取動態Delay敲擊鍵盤發起請求提取Prompt相對節省80%+GPU資源什么是模型幻覺問題什么是模型幻覺問題生成效果倉庫內其他相關文件內容由于無法感知SortUtils中bubbleSort方法,所以模型根據有限的上下文猜測了可能的insertionSort方法,并生成對應調用代碼,導致生成代碼的編譯錯誤。模型“虛假認知”基于上下文感知學習基于上下文感知學習 (ICL)ICL)能力,解決模型幻覺問
12、題能力,解決模型幻覺問題無上下文當前文件光標前內容當前文件光標前后內容(FIM)所有打開的文件所有的語義相關元素本地倉庫所有相關的元素整個本地倉庫公司所有倉庫其他非代碼信息Context-Aware感知邊界CY23 里程碑文件級感知范圍CY24 里程碑倉庫級感知范圍上下文感知學習上下文感知學習 (ICL)ICL)能力預處理能力預處理 本地索引構建本地索引構建CodeAST分析/代碼切分ChuckFile向量化/Embedding文本索引庫KV索引庫函數過濾/代碼摘要函數基于上下文感知學習基于上下文感知學習 (ICL)ICL)能力,解決模型幻覺問題能力,解決模型幻覺問題結合RAG+程序分析能力強
13、化上下文。感知本地倉庫中預處理構建的文本庫/向量庫做相似度檢索尋找相似代碼相似代碼。通過AST解析,引用鏈路等追蹤手段,找到對應相關代碼相關代碼并壓縮測試集測試集 EMEM:4040.9 9%-5959.7575%相關文章:RepoFuse https:/arxiv.org/abs/2402.14323遠程能力增強遠程能力增強本地核心能力本地核心能力輕量級輕量級K K-V V索引庫索引庫本地文本索引庫本地文本索引庫本地文本檢索引擎本地文本檢索引擎本地向量檢索引擎本地向量檢索引擎跨庫引用鏈路檢索跨庫引用鏈路檢索知識庫檢索能力知識庫檢索能力重要性排序重要性排序EmbeddingEmbedding服
14、務服務文件上下文相似代碼 文本檢索 向量檢索 滑動窗口相關代碼 AST解析 動態類型推導 應用鏈路追蹤 代碼結構分析 二方/三方包重要性排序 相關相似混排 結構壓縮,無效信息去除 token計算/占比分析Prompt構造 多結構構造 AB Test基于上下文感知學習基于上下文感知學習 (ICL)ICL)能力,解決模型幻覺問題能力,解決模型幻覺問題Context-Aware擴展邊界的意義Generate HTMLwith python syntax highlighting for“print(reading docs)”Generatorprint(“reading docs”;)單文件代碼補
15、全單文件代碼補全無法利用倉庫內其他文件信息無法利用倉庫內其他文件信息僅能完成僅能完成30%30%的場景的場景補全不準,出現嚴重的幻覺補全不準,出現嚴重的幻覺倉庫內多文件代碼補全倉庫內多文件代碼補全70%70%的代碼編寫會用到倉庫內其他文件信息的代碼編寫會用到倉庫內其他文件信息更加關注倉庫整體依賴關系更加關注倉庫整體依賴關系更加關注與目標代碼相似的代碼段更加關注與目標代碼相似的代碼段基于上下文感知學習基于上下文感知學習 (ICL)ICL)能力,解決模型幻覺問題能力,解決模型幻覺問題生成效果優化前優化后倉庫內其他相關文件內容基于基于BlockBlock-FIMFIM能力,解決代碼生成不完整問題能力
16、,解決代碼生成不完整問題Motivation大模型自回歸訓練,僅適合Chat任務,不支持代碼補全。代碼補全需要根據代碼的上下文預測代碼缺失部分,此模式無法結合上下文進行完型填空。FIM(Fill in the middle)將訓練的文本序列一部分移動到結尾,自回歸重新排序進行訓練。Character:字符粒度隨機切分樣本,生成結果無法保證語法準確性,工程需要復雜后處理保證預發準確性。Block-FIMBlock:結合程序分析技術構建Block數據,將樣本進行Block粒度切,模型生成完整Block停止。Block-FIM 效果展示04未來軟件研發領域發展方向思考未來方向思考人工智能應用階段人工
17、智能應用階段Intelligence完全無需人類監督,AI完成全部工完成全部工作作,人類只需給出初始目標AgentAI完成絕大部分工作完成絕大部分工作,人類設定目標,提供資源,監督結果Copilot人類與AI協同完成工作,AI一般提提供初稿供初稿Chat Bot人類完成絕大部分工作,AI提供建提供建議或信息議或信息TOOL人類利用工具完成工作,沒有任沒有任何明顯何明顯AIAI輔助輔助AIAI程序員(程序員(MultiMulti-AgentAgent技術路線)技術路線)調度Agent需求拆解Agent系分Agent編碼Agent測試Agent發布Agent用戶需求需求交付運維Agent監控AgentAI程序員更多領域Agent技術普惠技術普惠AIAI讓技術更加人性化:讓技術更加人性化:AIAI不是替代我們研發人員,是讓更多人成為我們不是替代我們研發人員,是讓更多人成為我們THANKS大模型正在重新定義軟件Large Language Model Is Redefining The Software