aiXcoder代码大模型应用实践_第1页
aiXcoder代码大模型应用实践_第2页
aiXcoder代码大模型应用实践_第3页
aiXcoder代码大模型应用实践_第4页
aiXcoder代码大模型应用实践_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于aiXcoder代码大模型的企业智能化软件开发应用实践李力行北京硅心科技有限公司全球开发者积极拥抱AI开发工具Gartner将AI增强开发列入2024十大战略技术趋势44%的开发者已经在开发过程中使用AI工具26%44%30%AI开发工具使用情况计划尝试使用 正在使用 其他77%23%将AI工具作为开发工作的一部分赞成 其他77%的人赞成使用AI工具作为其开发工作流程的一部分数据来源:StackOverflow

2023年开发者调查报告。AI开发工具在软件工程的应用现状47.40%%1.50%37.427.90%33.7027.40%40%学习速度效率生产力AI开发工具的优势专业开发人员学习编码的开发人员数据来源:StackOverflow

2023年开发者调查报告。数据来源:中国信通院AI4SE工作组数据来源:JetBrains2023开发者生态系统现状关于我们孵化自北京大学软件工程研究所致力于将前沿人工智能技术应用于软件工程聚焦代码大模型在企业的应用落地全球智能化软件研发领域最早的引领者Applicationsin

IndustryTaskOriented

ResearchesTaskIndependent

Researches[arXiv2015]theFirstDLWorkonProgram

Generation.[arXiv2014]theFirstDLWorkonProgram

Representation.[TOSEM,2020]ModularbaseCode

Representation.[ASE2020]theFirstPaperonPre-trainingbasedCodeComletion.[NIPS2019]PopularCitedPaperonCodeGenerationand

Summarization.[EMNLP

2015][KSEM

2015][EMNLP

2015][EMNLP

2015][arXiv

2015][EMNLP

2016][ACL

2016][ACL

2016][AAAI

2016][CIKM

2016][IJCAI

2018][ICPC

2018][KSEM

2017][KSEM

2017][NeurIPS

2019][EMSE,

2019][ICPC

2019][AAAI

2019][ICPC

2019][COMPSAC

2019][NeurIPS

2021][NeurIPS

2021][TOSEM,

2021][TOSEM,

2021][TSE,

2021][JSS,

2021][ASE

2021]......[NeurIPS

2022][ICSE

2022][ICSE

2022][FSE

2022][FSE

2022][EMNLP

2022][CIKM

2022][JSS

2022]...

...2014

2015201620182019[IJCAI2020][ASE

2020][ASE

2020][TOSEM,

2020][ICPC

2020][SANER

2020][AAAI

2020]2020 20212022[IJCAI2018]PopularCitedPaperonProgramSummarization.[ICPC2018]PopularCitedPaperonProgram

Summarization.[AAAI2016]theFirstPaperonASTbasedProgram

Representation.bp[NIPS2021]CodeTransformerRepresentation.[TOSEM,2021]theFirstPaperonDLRo

ustness.[arXiv

2014][arXiv

2014][TOSEM

2023][TOSEM

2023][ASEJ

2023][JSME

2023][JSEP

2023][ASE

2023][ICPC

2023][ACL

2023][ICSE

2023][SANER

2023]...

...2023[ICPC2023]ACMSIGSOFTDistinguishedPaperAward.[NeurIPS2022]BigModelTraining.大模型的代码能力当前公开测评集的局限性:题目类型多为算法题或竞赛题独立函数或方法的生成,不关注上下文容易在训练过程中被污染真实开发场景KechiZhang,JiaLi,GeLi,XianjieShi,ZhiJin,CodeAgent:EnhancingCodeGenerationwithTool-IntegratedAgentSystemsforReal-WorldRepo-levelCodingChallenges,ACL

2024软件开发全流程:

多阶段+团队协同企业开发场景:私有化环境+领域知识代码天然具有私有化属性企业软件开发高强度依赖领域知识软件开发私有化的限制将一直存在,代码的领域化将变得尤为重要代码是企业核心资产知识产权专有技术数据安全商业机密行业知识代码注释API

接口命名习惯需求文档相关文档编码规范设计文档用户手册历史代码特定行业标准的实现标准功能的实现·········企业软件开发需遵循相关要求···aiXcoder产品技术概览企业智能化软件开发提供商军工能源通信金融aiXcoder系列大模型定制化开发私有化部署个性化训练咨询服务智能化软件开发系统智能知识库系统企业开发管理系统智能化软件开发一体机交通科研智能制造科技应用场景企业服务产品核心技术大模型训练及微调软件工程AgentRAG代码大模型的重要性数据来源:On

the

Effectiveness

of

Large

Language

Models

in

Domain-Specific

Code

Generation通用大模型在专有领域的生成效果大幅下降从通用领域到专有领域,测评结果约有70%以上的下降aiXcoder代码大模型的持续演化aiXcoder-7B:专为企业私有部署结合代码结构特性,构建高质量数据集爬取与过滤:去除copyleft

licenses

项目项目筛选:根据

Git

的各种信息删除低质量项目文件筛选:近似去重算法筛选文件数据收集敏感信息去除删除无效代码自动生成代码去除代码级筛选语法解析:删除语法不正确的代码静态分析:删除常见缺陷的代码依赖分析:重排代码文件的顺序高质量训练数据1.5TUnique

Token高质量代码数据集

根据代码结构及特性结合软件工程能力处理结合代码结构化特征的模型构造方法结构化span支持基于项目上下文环境的代码生成当前文档上下文当前项目相关文档大模型代码能力的测评LEVELINPUTOUTPUTDATASET独立的代码生成NL(自然语言需求+函数签名+输入输出对)function/method(完整的函数/方法)Human-EvalMultiPL-EMBPPDS-1000基于上下文的代码补全in-file(当前文件内上下文)single-line(单行代码)SantaCoder-FIMfunction/method/single-line(完整函数/完整方法/单行代码)aiXcoder_FIM_4kaiXcoder_FIM_8kcross-file(跨文件上下文)single-line(单行代码)CrossCodeEvalsingle-line(单行代码)RepoBenchmethod(完整方法)EvoCodeBench项目级开发cross_file+description(跨文件上下文+需求描述)method(完整方法)-基于多文件交互SWE-Benchmethod(完整方法)-基于调用多种工具CodeAgent-Bench容易困难aiXcoder-7B:代码生成能力优异aiXcoder-7B在各大百亿级参数规模代码大模型上表现最佳甚至超过参数规模是其5倍的CodeLlama。HumanEval

是由OpenAI在2021年推出代码生成模型效果评估测评集,包含164个Python编程问题。MBPP

是由谷歌在2021年推出的代码生成模型效果评估测评集,包含974个Python编程问题。MultiPL-E

是由HuggingFace推出的多语言代码生成效果评估测试集,包含18种编程语言。测评结果

-

上下文单行代码补全测评集:Santacoder(Ben

Allal

et

al.,

2023)代码补全:aiXcoder

benchmark更大、更多样性的测评集、更长的上下文信息测评结果:多行代码补全跨文件代码补全测评产品功能:支持多语言、多IDE支持100+主流编程语言/框架支持多种主流IDE功能:代码生成与补全复杂算法题的解法生成前端Web页面的生成代码补全:长上下文与多文件长上下文代码补全跨文件代码生成用户体验优化预测出发时机预测长度动态调整功能:单元测试自动生成单元测试用例自动生成在开发者编写代码后,通过“单元测试代码自动生成”功能自动生成对应的单元测试,保障代码质量针对任意方法、函数自动生成单元测试用例及对应解释。功能:代码缺陷检测与修复代码缺陷检测与修复自动识别并修复代码中的错误,通过分析被测代码,识别代码中的潜在错误,并自动给出修复后的代码。这个功能在提高代码稳定性和可靠性方面有很大的价值,同时也可以减少手动调试和修复Bug的时间功能:代码解释代码解释自动解析代码的功能和结构,从而生成对应的文本解释。该功能可以有效减轻开发者编写功能文档的负担,同时帮助开发者快速理解代码逻辑和功能设计。功能:代码问答报错信息解释结合报错信息对原始代码做修复non-agenticvs

agenticNon-agenticworkflow

(zero-shot)Please

type

out

an

essay

on

topic

X

fromstart

to

finish

in

one

go,

without

usingbackspace.StartThinking/researchReviseFinishAgentic

workflowWrite

an

essay

outline

on

topic

XDoyouneedanyweb

research?Writeafirst

draft.Consider

what

parts

need

revision

or

more

research.Reviseyour

draft.智能化软件开发agent时代环境反馈外挂知识库角色扮演开发流程(多轮)工具调用Agent设计模式Reflection审视和修正自己生成的输出Tool

use搜索、调用

API

等进行实际操作Planning分解复杂任务并按计划执行Multi-agent多个

Agent

扮演不同角色合作完成任务AndrewNg:What'snextforAIagentic

workflowsSelf-planning

code

generation

with

large

language

model,

Xue

Jiang,

Yihong

Dong,

Lecheng

Wang,

Zheng

Fang,

Qiwei

Shang,

Ge

Li,

Zhi

Jin,

Wenpin

Jiao,

arXiv

preprintarXiv:2303.06689,

2023.DecomposecomplexproblemsandschedulethesolutionstepspriortoimplementationImprovesPass@1byupto25.4%overDirectgenerationand11.9%overChain-of-Thought“The

artofprogrammingistheartoforganizingcomplexity.”-Edsger

W.DijkstraIntroduceplanningintocodegenerationtohelptheLLMunderstandcomplexintentandreducethedifficultyofproblem-solvingSelf-planningCodeAgent:面向项目级代码生成agent基于agent方法的项目级代码生成最早工作基本思想:LLM+工具调用解决复杂的代码生成问题方法:工具设计网络搜索工具文档查询工具代码定位工具代码格式化工具代码执行工具多种Agent策略ReActOpenAIFuncTool-PlanningRule-basedTool

UsageKechiZhang,JiaLi,GeLi,XianjieShi,ZhiJin,CodeAgent:EnhancingCodeGenerationwithTool-IntegratedAgentSystemsforReal-WorldRepo-levelCodingChallenges,ACL

2024提出自合作代码生成框架,允许LLM

agent通过角色指令扮演不同的角色,形成虚拟团队,合作解决代码生成任务。首次引入软件开发方法中的瀑布模型来组织和管理LLM

agent在虚拟软件开发团队中的合作。[TOSEM,2024]YihongDong,XueJiang,ZhiJin,GeLi,Self-collaborationCodeGenerationviaChatGPT,ACMTransactionsonSoftwareEngineeringandMethodology(TOSEM),2024.

(Accepted).Self-collaborationFrameworkCodingTestingTeamInstantiatingRole

InstructionsAnalyst

Coder TesterAnalysis......Division

of

Labor

TaskStagesLLMRole

InstructionsLLM...LLM...LLM

RolesLLMLLMLLMBlackboardRequirementsCodesCollaboration...InitializedPassed!Task*Wesample4HumanEvaltaskstoconstructexamplesforfew-shotprompting,whichareexcludedinevaluationsof`TheRoleof

Role-playing'Self-collaborationCode

Generation功能示例:项目知识问答功能示例:issue自动处理企业研发智能化转型的需求及挑战编码效率 代码质量 存量代码优化 研发模式转型 企业降本增效企业代码数据和代码安全企业领域知识计算资源有限研发效能度量需求挑战私有化部署GPU多样性适配企业个性化训练企业管理平台解决方案aiXcoder智能化软件研发一体机支持英伟达A800(2/4/8卡)、V100(4/8卡)、华为昇腾910B(8卡)、天数智芯天垓150(4卡)等多种

GPU

配置软硬件一体符合最佳性能支持信创安全解决方案企业私有化部署开箱即用一体化安全防护方案流程图实施SOP:标准化流程+自动化工具=高人效团队需求梳理模型选型私有化部署个性化训练模型上线推广试用持续反馈和优化模型监测持续优化计算资源参数规模模型性能企业评测集构建RAG知识库构建模型个性化训练模型自动化评测开发语言使用人数应用场景安全扫描服务部署联调测试产品培训推广应用约一周约两周企业私有化部署企业专属测评集

-

构建方法基于企业真实代码构建采用挖空方式构建:被挖的代码就是正确答案,模型根据上下文预测这部分内容不同挖空方法:尽可能覆盖用户的多样性使用场景企业领域知识与个性化训练企业领域知识行业业务术语与流程规范行业技术标准与规范企业产品和服务详细信息企业技术栈编程框架...

...个性化训练的价值更准确的代码生成更好理解企业特有业务逻辑和技术细节遵循企业编码规范,风格统一的代码帮助新员工快速掌握技术规范...

...个性化训练企业软件开发数据企业代码设计文档等企业文档信息企业代码<-->设计文档企业代码大模型PEFTSFTRLHFDPORAG企业领域知识代码补全代码补全代码补全代码生成代码补全代码生成单元测试生成代码ReviewaiXcoder代码大模型代码大模型需求文档设计文档技术方案个性化训练方案研发全流程能力提升代码生成/补全能力提升测试用例生成能力提升代码检视能力提升更高质量的代码生成生成和补全代码:更符合企业业务逻辑更符合企业编码规范更高的可用率研发全流程对领域知识的理解能力逐级增强研发文档测试文档............个性化训练+RAG

效果示例个性化训练前个性化训练后实际使用效果指标核心关注采纳率=

(采纳次数

/

结果展示次数)*

100%代码生成占比=

(aiXcoder生成字符数

/

编码字符数)

*

100%活跃用户数=

一定周期内有过插件使用记录的用户数量效能提升编码提效率=

(aiXcoder

节省编码时长

/

理论手动编码时长)*100%代码生成全链路CPO(CharacterperOpportunity)=

尝试率

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论