1、江波字节跳动豆包MarsCode团队算法专家硕士毕业于中国科学院计算技术研究所,研究领域包括大规模分布式训练、代码领域模型等。作为豆包MarsCode代码补全、代码补全Pro、代码问答等AI功能算法负责人,负责代码领域模型调优、推理加速以及更多开发者AI功能孵化。长期致力于软工任务与大模型的结合与实用化落地,在代码补全、代码生成以及代码理解等AI能力产品化有丰富的实践经验。演讲主题:豆包MarsCode,智能编程的探索实践豆包MarsCode-智能编程探索实践江波 字节跳动算法专家江波 字节跳动豆包MarsCode 算法专家,毕业于中国科学院计算技术研究所,目前主要负责MarsCode产品代码
2、生成、代码理解、Agent等AI算法研发以及产品化落地。AI辅助编程的发展历程早早期期使使用用规规则则深深度度学学习习时时期期机机器器学学习习时时期期预预训训练练模模型型基于静态分析和规则,通过分析代码的语法和结构来进行预测使用深度学习模型进行预测,eg LSTM 和 Seq2Seq使用机器学习提取特征进行缺陷分析,预测潜在问题使用预训练大模型进行预测,诞生了Github Copilot,2022 年火爆全球已已经经接接近近 2 20 0 年年的的历历史史代代码码大大语语言言模模型型兴兴起起基于 LLM 方案的优势:劣势:泛化能力强,易于扩展新的规则/语言/框架不受编译和索引性能的影响支持函数
3、甚至文件级别的代码生成存在幻觉,准确性无法100%保证模型的训练和定制对数据的依赖高GitHub Copilot的成功团队模型产品形态交互低延迟提示工程2020 年 6 月 GPT-3 发布,GPT-3 在性能上的突行进展让 GitHubNext 决定基于它构建一款代码智能产品,得益于微软于 OpenAI 的合作关系,GitHub 和 OpenAI 开始合作训练基于 GPT-3 的代码大语言模型 Codex,并持续迭代其私有模型,提升代码补全场景下的性能2022 年初开始探索 LLM 驱动的代码补全产品基于开源 LLM 模型构建 MVP组建算法、工程和产品一体的智能编程助手团队构建代码 LLM
4、 评测集和自动评测系统构建数据链路和线上 A/B 测试体系补全模型切换到豆包大模型引入基于Chat的Copilot引入代码补全Pro功能豆包MarsCode产品历程豆包MarsCode与豆包大模型豆包大模型升级支撑应用革新豆包MarsCodeCopilot/Native IDE智能体补全模型Embedding/RerankerDoubao-proOther开发者对AI编程的需求代码生成通过自然语言来生成需要的代码形态:Side Chat/Inline Chat交互方式仍在持续摸索迭代中。代码补全-预测下一个字符交互形态先行者:GitHub Copilot下拉列表选择 Ghost Text 展示
5、优势发挥模型在多行补全上的优势符合直觉的,不改变用户习惯,与代码融为一体爽快的 Tab、Tab、Tab 即可采纳,正反馈强烈关键点高性能低延迟的模型Context-aware代码补全-原理 仓库级上下文采集引擎 自研代码补全模型以及针对特定语言、框架的精调 语法感知的前后处理策略代码补全-核心三要素 自自研研代代码码补补全全模模型型完完全全自自主主自自研研,包包括括预预训训练练数数据据爬爬取取、清清洗洗以以及及F Fi il ll l-I In n-t th he e-MMi id dd dl le e增增强强训训练练、R Re ep po o-L Le ev ve el l拼拼接接等等,针针
6、对对特特定定语语言言、特特定定框框架架精精调调,实实现现极极低低的的推推理理时时延延。前前后后处处理理策策略略基基于于静静态态分分析析工工具具对对补补全全代代码码进进行行语语法法正正确确性性校校验验,提提供供必必要要的的后后处处理理,确确保保内内容容的的连连贯贯以以及及语语法法完完整整性性。代码补全-自研模型 数据清洗 规则清洗 LLM Filter 样本拼接 随机文件拼接 Repo-level文件拼接 Fill-In-the-Middle 随机FIM AST-FIM 模型结构及训练策略 Dense vs Mixture of Expert Pretrain/CT/SFTCPO vs 采纳率真