《基于CodeFuse的下一代研发探索-姜伟.pdf》由会员分享,可在线阅读,更多相关《基于CodeFuse的下一代研发探索-姜伟.pdf(35页珍藏版)》请在三个皮匠报告上搜索。
1、基于CodeFuse的下一代研发探索蚂蚁集团高级算法专家/姜伟基于CodeFuse的下一代研发探索蚂蚁CodeFuse代码大模型蚂蚁LLM应用于研发的现状未来展望蚂蚁CodeFuse代码大模型大模型适合研发型智力活动吗?我们曾经曾经以为:创作型工作不容易被AI取代:绘画,编曲,写作,编码莫拉维克悖论莫拉维克悖论 告诉我们:理论上:大模型可以帮我们写代码,大模型可以助力研发大模型适合研发型智力活动吗?OpenAI的 Copilot研究:Research:quantifying GitHub Copilots impact on developer productivity and happine
2、ss超过2000开发者调研,结果如下:图片来源:https:/github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/实践上:大模型可以帮我们写代码,大模型可以助力研发大模型适合研发型智力活动吗?研发提效的路径选择?-“提升个人”VS“提升大模型”信息技术发展需要人才与软硬件人才与软硬件设备的同时进步。随着摩尔定律发展,硬件设备取得了巨大进步,而软件开发是一种智力劳动密集型智力劳动密集型的群体协同活动,关键在于优秀程序员优秀程序员。传统的
3、研发程实践依赖于人的能力和意愿,提升个人能力是一个漫长的过程且难以标准化漫长的过程且难以标准化。大模型能力提升遵循AIAI摩尔定律摩尔定律:每年LLM大小增长增长1010X X。人工智能运算量每隔18个月翻一番翻一番(Sam Altman)。AI 摩尔定律观察:gpt1 2018年gpt2 2019年gpt3 2020年copilot 2021年chatgpt 2022年GPT4 2023年https:/huggingface.co/blog/large-language-models研发模式的奇点正在发生 基础模型与人工智能生成工具正在重塑技术人员的工作方式 (2023.5 Qcon全球软件
4、大会)AI 将改变软件研发的工具,诞生“Dev Tools 2.0”,将软件从 Software 1.0 带向未来Software 2.0(弯道超车的巨大机会?)图片来源:https:/ 与BizDevOps 研讨会CodeFuse代码大模型发展历程20222023 Q12023 Q22023 Q32023 Q4GPT模型 0.25B模型 代码行补全 全蚂蚁落地CodeFuse立项 发布1.3B-2K模型 多语言代码补全 发布编程开发助手CodeFuse1.0 发布CodeFuse1.0 支持7B-4K和13B-4K模型 蚂蚁内公测、大客户试用CodeFuse 2.0 发布代码补全IDE插件,
5、支持多语言、多IDE CodeFuse开源,登顶开源代码大模型HumanEval榜单(74.4%)CodeFuse 3.0 IDE插件对外开放 支持数十种研发下游任务 支持Code Interpreter和工具调用CodeFuse开源CodeFuseCodeFuse开源地址开源地址ModelscopeModelscope:https:/ GitHub ModelScopte Huggingface Gitee极客公园2023中国+大模型先锋案例 TOP10开源中国2023年度优秀开源技术团队CodeFuse模型架构CodeFuse前处理输入文本Prompt构造BPE TokenizerMHA+
6、FFN并行架构RoPE位置编码MFT指令微调Text2CodeCode2TextText2SQL下游任务测试用例生成Bug定位修复其它.Attention安全保障安全保障 蚂蚁沉淀的安全服务平台 代码意图识别服务 多管齐下的去毒能力GPT3GPT3多项优化多项优化 RoPE位置编码 4K/16K/32K长上下文支持 MQA/GQA高效Attention创新的指令微调创新的指令微调 创新的多任务微调MFT 低资源PEFT微调技术 测试反馈强化学习RLTF代码领域专业定制代码领域专业定制 代码领域特色词表 覆盖代码领域主流下游任务 蚂蚁沉淀的代码数据与能力CodeFuse训练数据各语言分布不均匀代
7、码未格式化含有缺陷或逻辑错误大量自动生成的代码文本代码混杂的语料未使用 Markdown 格式大量重复的代码2TB高质量代码数据40+主流编程语言CodeFuse预训练&微调BPETokenizerData Pack多机多卡训练加速Tensor并行数据并行Pipeline并行Flash AttentionZeROSequence并行Pretrain:Next Token PredictCodeFuseWritendefdef_Output LossSFT:Masked Loss数据结构 BPE Tokenizer:避免OOV Data Pack:提升训练效率 MMap:数据预索引,全局shuf
8、fle,高效读取SFT Masked Loss 只计算输出部分的Loss 保持训练和预测的一致性 支持多轮对话微调 支持多任务微调Pretrain Next Token Predict 序列长度:4K,可扩展到32K 词表大小:100K 训练总Token:1500BCodeFuse-13B:A Pretrained Multi-lingual Code Large Language Model.Arixv 2023012N-1defquickn+NnCodeFuse推理部署推理技术架构量化方案损失补偿GPTQ激活感知AWQ混合精度SpQRTensorRT-LLMFasterTransforme
9、rVLLM量化技术加速引擎推理速度指标Tokens/SGPU型号单卡单卡A10(24G)模型版本CodeFuse-7BCodeFuse-34B量化精度输入/输出长度int4int8fp16int4int8fp16batch_size=116/890633921OOMOOM64/3295613821OOMOOM256/OOMOOM1024/51283563619OOMOOMINT4/INT8量化代码大模型发展历程A Survey on Language Models for Code.Arixv 2023算法算法算力算力数据数据AI 核心三要素蚂蚁LLM应用于研发的现状AI
10、研发利器:代码大模型开源代码、业务代码、技术书籍与网站IDEIDE插件插件+AI+AI NativeNative IDEIDE自动补全代码、生成注释等自然语言、多模态基础大模型代领域专业定制代领域专业定制代码领域特色词表覆盖代码领域主流下游任务蚂蚁沉淀的代码数据与程序分析安全可靠去毒安全可靠去毒:隐私、合规、安全快速推理部署快速推理部署:轻量化、蒸馏高效训练优化:高效训练优化:PEFT、分布式训练CodeFuseCodeFuse快速响应、多语言兼容的代码基座开发助手开发助手人机交互开发:解决研发中各种问题数据分析器数据分析器人机交互数据分析:执行代码、分析数据CodeFuse应用:IDE插件多
11、种IDE 多种编程任务 辅助编码解释代码VSCodeIntelliJ IDEAPyCharmWebStormGoLandCloudIDE更多IDE多种编程语言 PythonJavaJavaScriptTypeScriptGoC+更多语言代码补全生成单测场景会话解释代码添加注释Bug修复更多功能添加注释生成单测CodeFuse应用:IDE插件CodeFuse应用:AI Native IDE关键行为现在的 IDE AI 原生云研发载体关键点将来的模式编码编辑器个人编码为主或复制粘贴他人代码AI 承担更多的编码任务,用户起到主导或判断作用。Git 操作图形界面或者 terminal熟悉 Git 命令
12、和 图形界面内容用户描述意图,AI 理解并执行更改设置如个人偏好GUI 图形界面理解图形界面里的内容并正确操作用户描述意图,AI 理解并执行排查问题terminal 及问题面板看得懂报错,熟悉排查思路和命令捕获错误后,AI 理解并给出解决方案搜索知识外跳其他多个平台知道去哪里找,以及如何能高效搜索用户描述意图,AI 理解并搜索或生产相关内容其他研发活动如CICD各类插件知道安装哪个插件并学习使用插件用户描述意图,AI 调用插件执行下游任务1.以“用户诉求(或者是场景)用户诉求(或者是场景)”为中心,整合场景下相关的任务。2.用户行为模式行为模式的转变:使用命令行或者图形界面命令行或者图形界面来
13、下发命令,转变成描述意图描述意图;3.3.产品产品交互方式交互方式的变化:chat、prompt 调优、有效训练将是主要方式;4.服务范围更广泛:不局限在编码范围,可以在 codespaces 完成项目初始化到上线的全链路;5.极低的学习成本:更便捷、高效的知识获取、更简洁的交互、人与人协同-人与 AI 协同行为模式简洁行为模式简洁学习成本低学习成本低认知成本低认知成本低以场景为中心以场景为中心全面全面 AIAI 服务服务特性:CodeFuse应用:AI Native IDECodeFuse应用:开发助手帮助蚂蚁的每个业务快速构建懂自己业务的助手研发效能-Dima研发效能-Antcode质量技
14、术-资产平台质量技术-智能测试研发效能-LinkE研发效能-Agent业务场景CodeFuse模型+ACI微调训练CodeFuse模型+prompt提示词+知识库解决某个领域问题的智能助理独立网站网页侧边栏业务系统可调用的open API快速定制多端消费CodeFuse应用:数据分析器CodeFuse应用:数据分析器上传文件分析处理生成结果未来展望Gartner 2024 重要战略技术趋势 Stackoverflow:开发者常用的AI开发工具https:/survey.stackoverflow.co/2023/#section-sentiment-and-usage-ai-tools-in-
15、the-development-processGenerative AI 走向 Context-Aware Generative AIFSE 2023 Tabnine分享代码大模型落地趋势仓库级代码补全单文件代码补全无法利用仓库内其他文件信息仅能完成30%的场景补全不准,出现严重的幻觉Docprompting:Generating code by retrieving the docs.ICLR 2023Repocoder:Repository-level code completion through iterative retrieval and generation.Arxiv 2023
16、仓库内多文件代码补全70%的代码编写会用到仓库内其他文件信息更加关注仓库整体依赖关系更加关注与目标代码相似的代码片段Generate HTML with python syntax highlighting for“print(reading docs)”Generatorprint(“reading docs”;)仓库级代码问答&需求https:/ Workspace:提出问题-获取当前行为-给出解决问题的新行为-制定执行计划-编写代码-执行。基于自然语言的端到端软件开发https:/ CopilotCopilot需求文档生成设计稿生成信息搜索总结API 生成CodeCode Copilot
17、Copilot(IDEIDE插件)插件)TestTest CopilotCopilot测试场景分析测试代码生成测试资产选取OpsOps CopilotCopilotDataData CopilotCopilot产品需求生成应用从需求分析到自动化生成应用AI native developmentAI 驱动的研发、交付及运维,释放生产力,提供协同效率CodeFuse Web提供多个场景开发助手IDE插件AI Native IDEOpen API场景Copilot代码生成添加注释PR总结代码优化代码补全代码解释代码翻译代码评审测知识问答监控日志解读监控时序分析监控语义搜索智能变更&应急数据指标生成S
18、QL语句生成数据报表生成异动分析生成AI全生命周期研发平台 给机器下达指令不再是程序员的专利给机器下达指令不再是程序员的专利 编写软件的门槛急剧降低编写软件的门槛急剧降低 软件开发不再是软件开发不再是“脑力脑力”劳动密集型行业劳动密集型行业 编写软件效率急剧提升编写软件效率急剧提升 LLM as Copilot LLM as Copilot LLM as Co-Integrator LLM as Co-Integrator LLM as Co-Facilitator LLM as Co-Facilitator 人主导写软件到人主导写软件到 LLM LLM 写软件写软件LLM as Copilo
19、tLLM as Copilot:不改变软件工程的专业分工,但增强每个专业技术,基于 AI 的研发工具平台辅助人完成任务,极大提升个体工作效率。解决“我懒得做”及“我不擅长做”的事。如服务于一线研发人员的内容生成工具(文档、编码、测试、发布、运维),提升生产力。AI 是对专业工作的增强。对人的要求是需要更广的知识面,提升意图表达的能力。LLM as Co-IntegratorLLM as Co-Integrator:跨研发职责及角色的协同增效,基于 AI 的研发工具平台解决不同的角色之间辅助沟通。解决信息沟通对齐的问题,提升角色间互动效率。如服务于一线管理人员的协作辅助工具,提升协同效率,如需求
20、选择、排期、协同发布等。AI 需要提供跨领域(职能)的知识管理。对于人而言,需要为 AI 提供上下文,完成知识对齐。LLM as Co-FacilitatorLLM as Co-Facilitator:影响软件研发流程的角色分工,基于 AI 的研发工具平台辅助决策。辅助计划、预测发现和协调的工作。解决信息整合分析、决策依据,提升组织决策效率。如服务于管理层提供更多的知识洞见,辅助管理决策。AI 提供跨学科“会诊”的能力。对于人才的培养,需要越来越复合型人才。未来展望参考:关于探索 AIGC 下的软件工程新范式产业和学术研讨会成果的联合声明CodeFuse 申请试用官网地址官网地址 https:/ https:/