提升代碼生成質量:代碼大模型實踐經驗_第1頁
提升代碼生成質量:代碼大模型實踐經驗_第2頁
提升代碼生成質量:代碼大模型實踐經驗_第3頁
提升代碼生成質量:代碼大模型實踐經驗_第4頁
提升代碼生成質量:代碼大模型實踐經驗_第5頁
已閱讀5頁,還剩53頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

全球機器學習技術大會主辦方合作伙伴異步社區wwwwnuhitwww.epuDl.Co清華大學出版社TSINGHUAUNIVERSITYPRESS清華大學出版社TSINGHUAUNIVERSITYPRESSCHINAMACHINEPRESS2025技術會議一技術人的思想盛宴2025技術會議一技術人的思想盛宴全球機器學習04月18-19日上海10月17-18日北京全球產品經理大會6月6-7日北京Summit全球軟件研發8月15-16日上海全球全球C++及系統軟件技術大會12月12-13日北京SoftwareSummitAIGC怏空2024長沙中國12024長沙中國1I111!!!2020-2024產品評測客戶案例活動整理專題權威出版大模型驅動軟件開發智能化的四大誤區《新程序員》聚集全球技術大師、行業技術先鋒,從前沿技術到《中國開發者調查報告》中國樣本豐富的開發者調查報告,目前已成為完整準確了解中國開發者市場的重要參考資料。CSDNCSDN掃碼購買最新版程序員雜志Al掃碼購買最新版程序員雜志MLML-Summit2024全球機器學習技術大會蔣思源aiXcoder代碼大模型算法專家負責aiXcoder大模型開發的全流程,包括數據采集與清洗、大模型構建與訓練、模型推理優化及服務、模型評估等。關注如何通過大規模分布式訓練獲得更符合軟件工程實際開發場景的基礎代碼大模型;關注構建能符合軟件開發流程、工具、行為的人類對齊訓練方法;關注如何在私有代碼上做領域化增量訓練,并盡可能降低災難遺忘等問題。問題。演講主題:提升代碼生成質量:代碼大模型實踐經驗全球機器學習技術大會全球機器學習技術大會提升代碼生成質量:代碼大模型實踐經驗全球機器學習技術大會領域化訓練全球機器學習技術大會生成代碼質量評測評測指標監控生成質量多智能體協同增強代碼質量工程化提升推理質量軟件工程工具增強代碼質量偏好對齊增強代碼質量基礎模型質量保證強化預訓練數據處理全球機器學習技術大會預訓練數據處理 ·語法分析: ·靜態分析:·可維護性:·判斷語句嵌套過深·可靠性: ·類型錯誤 原始代碼數據挑選原始代碼數據挑選項目級綜合過濾敏感信息去除語法分析全球機器學習技術大會數據預處理流預訓練數據處理-語法分析MLML-Summit2024全球機器學習技術大會mhahmidenhamidenhamaC12345789{inti-0,I<6-j;i++){if(list[i]>list[i+1]){}}cout<<list;}a口世iderlife白iderlifen白OidafibaidanfifbaidenfieidafibaidanfifbaOD預訓練數據處理-語法分析全球機器學習技術大會45789//1.不完整的代碼塊voidincomplete_fu//函數未正確結束,缺少花括號}//2.非法字符intresult=X+@y;//'@'是非法字符}//3.關鍵詞誤用vintswitch(intvalue){//'switch'是一個關鍵詞}//4.缺少必要的語法元素intmissing_elements(intx,inty)//5.無效的語法結構//5.無效的語法結構t2}MLML-Summit2024全球機器學習技術大會巾預訓練數據處理-靜態分析全球機器學習技術大會Z=X+y;yX=1;a.bar();c.bar();A.foo();a.bar();c.bar();A.foo();}}}A{A{void}a82632 Cusa69536_ Cusa69536_-CALLS-CALLs—→a64884a65494[a76973_NTAINSNTAINSCoNTANEceverooCoNTANEa65066a69708CDNTAINS(amerooCDNTAINSodialert.kTANS-CONTAINSa69630dialert.kTANS-CONTAINSa69630(a65286wsCONTAINSa60660a62379__-CONTAINS-言言)_(mpoue)dacern入crekso)CONTAa69865a65206 CONTAINSCONTAINS-CONTAa69865a65206 CONTAINSCONTAINS-a699685-CONTA/NSa71017CONTAINS-cayNScScO[a_72635-CONTAINSCALLSa72985ceadtes)a72495巾巾預訓練數據處理-靜態分析MLML-Summit2024全球機器學習技術大會123456781234456123456789x=np.nan#alwaysFalsepass可維護性::#Comparingfloatvaluesfor#equalitydirectlyisnotreliabdefis_equal(a:float,b:float):#arelativetolerancemax_diff=rel_tol*max(abs(a),abs(b))對比不安全}釋放后使用2vintreturnChunkSize(void*){34√/*ifchunkinfoisvalid,returnthesizeofusablememory,575buf=(char*)malloc(sizeof(char)*BUFSIZE);全球機器學習技術大會偏好對齊提升代碼質量MLML-Summit2024全球機器學習技術大會tf_idfSVM,tf_idfNB,target)OSS-INSTRUCTfromsklearn.feature_extraction.textimportTfidfVectorizer...train_model(tf_idfSVM,tf_idfNB,re②Generatedproblem(detailsomitted)YourprogramshouldbeabletopreprocessnewmoviePleasegaininspirationfromtheMagicoderMagicoder:EmpoweringCodeGenerationwithOSS-INSTRUCT巾巾全球全球機器學習技術大會一/CreateaPythonfunction'reverse_line_by_word`toreversethewordsinalinewithoutreversingtheentirecode`,theoutputshouldbe'sihTsianohtyPedoc`.ExtractedcodeNN偏好對齊-基于規則的數據過濾全球機器學習技術大會SpecificationPROBLEMDESCRIPTION:GivethreenumbersA,BandC,determinewhether(A,B,C)isapermutationof(5,7,5).INPUTCONSTRAINTS:1≤A,B,C≤10ExistingTestSuiteINPUTOUTPUT577557Yes567755YesDefect-identifyingOUTPUT548,5—→PASS→PASS→PASS●給定功能描述與代碼,生成測試用例●給定功能描述生成測試用例輸入的生成代碼●通過運行時生成一組測試用例的輸入●如果被測函數生成結果不一致,投票排除錯誤結果INPUTCONSTRAINTS:1≤A,B,C≤10Specification51≤A,B,C≤18print('YES'ifL.sum()==17else'NO')ProgramUnderTestProgramVariantsprogramgenerationGeneration'L=list(map(int,input().split()))lprint('YES'ifL.sort()==[5,5,7]else'No')a,b,c=randint(1,10),randint(1,10),randint(1,10)file.write(f'{a}{b}{c}')③generatinginputgeneratorInputGeneratorFxsstingtegeneratorProgramUnderTest-'print('YES'ifL.sort()==[5,5,7]else'NO')(filtered)自自自→'YES'→'YES'/print('YES'ifL.sum()-=17else'NO')ProgramUnderTest'YES'TestOracleprint('YES'ifL.sum()-=16else'No')L-list(map(int,input().split'YES'TestOracle\\L-list(map(int,Test\print('YES'ifL.sum()==15else'NOTestL-list(map(int,input().split()Specification全球機器學習技術大會工程處理提升代碼質量巾巾工程工具-全球機器學習技術大會抽取安全漏洞知識庫缺陷背景知識的缺陷與漏洞ExtractionFunctionalSemanticsExtractionDetectionSemanticsDetectionVulVul-RAG:EnhancingLLM-basedVulnerabilityDetectionviaKnowledge-levelRAG全球機器學習技術大會Agent增強代碼質量●在代碼場景中,讓模型自己對任務做拆解能有效提升效果●簡單任務可以借助CoT直接拆分為PlanningToT多層拆分為ToT多層拆Self-planningcodegeneSelf-planningcodegene全球機器學習技術大會OutputIntentLLM3.CheckifeachnumberintheFibonaccisequenceisLLM3.CheckifeachnumberintheFibonaccisequenceisdecrementthecounter.prime,andit'salsoprime.4.If4.Ifthecounteris0,returntheFibonaccinumber.Outputis_primeis_primereturnsTrueifnisprime,Falseotherwise.prime_fibreturnsn-thnumberthatisaFibonaccinumber1.Createafunctiontocheckifanumberisprime.2.GenerateaFibonaccisequence.returnTruecounter=nwhilecounter>0:3.CenunreturnTruecounter=nwhilecounter>0:4.Ifthecounteris0,returntheFibonaccinumber.fib_seq.append(fib_seq[-1]+fib_seq[-2])Stepsmatchfib_seq.append(fib_seq[-1]+fib_seq[-2])ifis_prime(fibifis_prime(fib_seq[-1]):counter-=1StagesStages。MOCodingTaskTeamTestingInstantiatingMLML-Summit2024全球機器學習技術大會Algorithm1Pseudocodeofself-collaborationframework.Require:Requirementx,TaskT,andLLMM.1:InitialStages{Si}=1accordingtotaskT.#CollaborationPart3:InitialblackboardBandindext.4:repeat6:SamplestviaEq.(1).8:ComputeytviaEq.(2).9:Updateyandt.10:untilEndconditionissatisfiargargmaxPsls(<,Rms),x),yt=f(St,y<t),MLML-Summit2024全球機器學習全球機器學習技術大會CODEAGENT:EnhancingCodeGenerationwithCODEAGENT:EnhancingCodeGenerationwithDocumentationCodeDependencyRuntimeEnvironmentinteractToolsWebsiteSearchCodeNavigationCodeInterpreterinteractNewRequirementNewCodeDocumentationLLMsToolDomainToolNameFormatWebsiteSearchWebSearch(input_query)DocumentationReadingDocSearch(inputname)CodeTestingFormatCheckerFormatCheck()PythonREPL(inputcode)項目經理測試工程師產品經理開發工程師角色架構師領域知識項目經理測試工程師產品經理開發工程師角色架構師測試生成任務拆分項目分析需求分析代碼生成測試生成任務拆分項目分析需求分析代碼審查支持代碼審查測試審查系統設計工作分配需求拆解代碼項目測試審查系統設計工作分配需求拆解代碼運行代碼調試任務審查設計審查需求審查測試運行代碼總結任務審查設計審查需求審查測試運行生成反饋歷史執行記錄生成反饋任務拆分文檔BUG描述文檔代碼任務拆分文檔BUG描述文檔代碼產品需求文檔代碼變更記錄入庫向量數據庫全球機器學習技術大會"Reason":“當前的規劃步驟已經正確地收集了項目的基本信息,包括項目結構、關鍵代碼文件的內容以及類圖。然而,規劃中提到的topPsampler.py文件在項目中并未找到,這表明規劃中的步驟5需要修改,以確保能夠正確地定位topp采樣邏輯的實現位置。","step1:查看項目根目錄下的文件結構,以了解項目整體布局。","step2:定位與模型推理相關的代碼文件,如main.py,modelloader.py,inferenceengine.py,api.py。","step3:瀏覽這些文件的內容,以理解現有代碼的邏輯和結構。","step4:針對需要修改的代碼文件生成ClassDiagram,以了解類之間的關系。","step-5:重新評估項目中topp采樣邏輯的實現位置,可能需要在inferenceengine.py中查找相關代碼,因為topPsampler.py文件未在項目中找到。","step6:信息采集結束,發出exit命令"5.Yes,所有必要的預依賴項已導入。numpy、'tensorflowi、word2zvec_model、data_loader^和`visualization模塊均已被正確導入。6.Yes,來自其他文件的方法被正確地重用。Dataloader的load的`plot_loss'和`plot_accuracy`方法均被正確調用。#Actions測試Visualization類的plotloss和plotaccuracy方法。全球機器學習技術大會領域化訓練提升代碼質量巾領域化-增量訓練巾領域化-增量訓練個性化訓練的價值更好理解企業特有業務邏輯和技術細節遵循企業編碼規范,風格統一的代碼幫助新員工快速掌握技術規范…ML-ML-Summit2024全球機器學習技術大會全球機器學習技術大會代碼代碼企業領域知識代碼大模型技術方案研發全流程研發文檔代碼生成/補全能力提升代碼Review企業領域知識代碼大模型技術方案研發全流程研發文檔代碼生成/補全能力提升代碼Review個性化訓練方案個性化訓練方案生成和補全代碼:個AdapterNDecoder全球機器學習技術大會WupAdapterNDecoder全球機器學習技術大會WupWdownV個個個Combine小領域化-增量訓練微調類型具體方法優點缺點(高效參數微調)節省計算力:①7B參數量以下可以不實現各種并行訓練策略②數十億參數量模型可以在消費級顯卡上訓練收斂速度可能不如Adapters訓練效果有保證計算資源需求大訓練可能不穩定可能出現過擬合個個全球機器學習技術大會生成代碼質量評測巾巾"""Givenanon-emptylissolution([5,8,7,1])=→12solution([3,3,3,3,3])=>9solution([30,13,24,321])=0fromaliyunsdkcore.requestimportRpcRequestclassGetSummaryInfoRequest(RpcRequest):definit(self):RpcRequest._init_(self,'OutboundBot','2019-12-26','GetSummaryInfo','outboundbot')self.set_method('POST')ifhasattr(self,"endpoint_map"):setattr(self,"endpoint_map",endpoint_data.getEndpointMap())ifhasattr(self,"endpoint_regional"):setattr(self,"endpoint_regional",endpoint_data.getEndpointRegionalO)defgetInstanceIdLists(self):returnself.get_query_params().get('InstanceIdList')ifInstanceIdLists[depth1]isnotNone:self.addself.addqueryparam(InstanceIdList.'+str(depth1+1),InstanceIdLists[depth1])Filetobecompleted#maigret/test_utils.pyommaigret.utilsimportCaseConvertertest_caseconvert_camel_to_snake():b=caseconverter.[CURSOR_POSITION]within-filecontextCode-LMwithin-filecontextctasscaseconverter:defsnake_to_title(snakecased_string:str)->str:scroSS-filecontextdrtchnsaboudthonormhistogram-basedversionof..sklearngradient_boosting.pyhelper.py■utilsTestsjoin_struct_coldstack_struct_colNL(自然語言需求+獨立的代碼生成函數簽名+輸入輸出對)基于上下文的代碼補全in-file(當前文件內上下文)下文)cross_file+descript項目級開發ion(跨文件上下文+需求描述)OUTPUT數/方法)function/method/single-line(完整函數/完整方法/單行代碼)single-line(單行代碼)method(完整方法)-基于多文件交互用多種工具全球機器學習技術大會Human-Eval容易MultiPL-EDS-1000SantaCoder-FIMaiXcoder_FIM_4kaiXcoder_FIM_8kCrossCodeEvalRepoBenchSWE-Bench困難巾巾全球機器學習技術大會 ·我們開源的aiXcoder-7B-Base在代碼補全與生成上擁有等量級下SOTA效果340/159353/159217/159CodeBLEULength(Pred/Ref)486/161583/161330/161BLEU-4CodeBLEULength(Pred/Ref)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論