大模型驱动的智能软件开发 黄非阿里巴巴 1.大模型应用范式2.AI驱动的全流程软件开发3.代码助手的技术挑战和解决方案4.从代码助手到软件开发智能体5.总结与展望 目 录CONTENTS 演讲嘉宾 黄非 阿里巴巴通义实验室 自然语言智能负责人 他带领自然语言处理团队研发通义自然语言大模型体系,在机器阅读理解(MRC),图文问答(VQA)和中文理解(CLUE)等任务上实现首次超越人类结果;建设阿里巴巴NLP平台和产品在集团内支持数百个场景日均数万亿级调用,对外以智能技术赋能软件开发,智能客服,协同办公,司法,电商等行业合作伙伴,是AI开源魔搭社区NLP模型的主要贡献者。他在人工智能顶级会议和期刊发表文章200+篇,中美专利数十项,曾担任ACL,TACL等学术期刊,会议领域主席/编辑等。 大模型应用范式PART 01 范式1:领域增强 范式2:检索增强(RAG) Agentic RAG:实时性知识,事实性知识,本地知识库搜索, 减少大模型幻觉 范式3:多模态 范式4:个性化 表达情感和偏好 表现情绪 有人设/个性 你最喜欢吃什么?Q 是不是你偷了我的东西?Q 我太生气了,我们分手吧!Q 不是的,我没有偷东西,我是一个计算机程序,我没有能力做出偷窃行为。 哎呀,怎么啦亲爱的?怎么突然生气啦?不要生气啦,来抱抱~ 我没有感官,所以我没有任何喜好或偏好。吃什么对我来说都一样,我不会有任何感受。 亲爱的,我最喜欢吃巧克力了,你呢? 这……我可不是这样的人。 范式5:大小模型协同 大模型与业务系统的有机结合 基础大模型 范式6:智能体 PART 02 AI驱动的全流程软件开发 编程成为最高频的 AI 应用场景 其中编程以29%占比高居榜首。 程序员的时间分配情况 程序员花费三分之一的时间编写新代码或改进现有代码(32%)。花费35%的时间来管理代码,包括代码维护(19%)、测试(12%)和响应安全问题(4%)。另外23%的时间花在会议以及管理和运营任务上 大模型对软件领域的深远影响 编程事务性工作的替代 知识传递模式的改变 研发人员重复性工作,简单工作,沟通的工作特别多,浪费时间。 研发管理流程化,缺乏灵活性,组织容易产生效率竖井,响应能力弱。 大模型驱动的软件开发流程 代码大模型产品演进的三阶段 Copilot 阶段通义灵码的核心功能架构 PART 03 代码助手的技术挑战和解决方案 代码助手核心需要攻克的技术难点 生成准确度:过硬的基础模型能力 补全准确度 跨文件上下文感知,插件与模型联合优化 库内跨文件感知评测集中,准确率从22%提高到66.9% 基于上下文感知的自适应生成粒度决策 生成单行代码:无法构建完整的函数或模块 代码块的不同位置提供不同生成规则:准确度低 知我所想 通义灵码基于代码的语义信息,充分让模型理解不同场景下所需的生成粒度,从而让模型能够根据当前正在编写的代码位置,模型自适应决策应该生成的代码粒度。 触手可及 生成粒度决策准确率,Java 语言从47%提升到56%,Python 语言从26%提升到44%,其他语言均有较大提升 推理性能 分级缓存、丰富的模型组合,实现速度与准确兼顾 研发⾃由问答 Qwen-Max 模型 数据个性化 企业级代码补全、研发问答检索增强 企业数据的个性化特点 •编码需要符合企业制定规范•需要引用企业内的二方包•需要调用企业内的API接口•代码的业务逻辑较复杂,存在较少的通用代码•适配企业内已有的数据库表结构,并学习SQL相关逻辑•企业内通常使用自研开发框架,如前端框架、组件库等 •需要符合企业内指定的测试规范•所在行业的业务逻辑较复杂•企业内通常使用自研的测试框架 •所在行业存在较多专有词汇•对需求/任务/缺陷的内容及格式有固定的规范/要求•需要学习已有的项目管理策略/经验 唯我专属 代码安全 通义灵码不断提升能力,显著提升开发者工作效率 PART 04 从代码助手到软件开发智能体 代码智能体:从简单代码任务走向复杂代码生成 GitHub Copilot发布Workspace Cognition AI发布Devin 从单一 Agent,走向多 Agent 架构 具备自主测试能力的Agent,可以理解任务需求,阅读代码,生成测试代码,并完成运行。 具备一定自主任务规划能力,以及使用工具能力,可自主完成单库范围内的编码任务。 多Agents基于AI调度共同完成任务。实现从需求->代码->测试的全流程自主化。 基于单库RAG技术,以及固定步骤实现对单库范围内的简单编码任务。 Agent 阶段通义灵码工程级别的智能问答 工程级别代码生成与问答 本地库内检索增强服务 通过感知本地工作空间中源文件进行预处理,建立在用户本地的向量化索引,基于本地工作流编排引擎,完成多阶段任务。 利用检索增强技术结合大模型,实现例如代码查找,业务逻辑生成,SQL生成,整库功能解读等复杂问答能力。 SWE-bench 评估AI解决真实世界编程问题的能力 SWE-bench测试集 How to Understand Whole Software Repository 提出了蒙特卡洛项目感知优化方法,在蒙特卡洛构建的过程中,利用大模型判断最后可能的chunk与issue间的关联程度,并通过从属关系、引用关系进行扩散,逐步定位缺陷点; 1.Repo图构建:利用从属关系、依赖关系构建Repo图,并利用BM25等简单的方法为Repo每个chunk打分;2.Repo探索:基于初始打分逐步探索Repo,并利用大模型对chunk进行打分修正,修正的分数沿着chunk的从属关系和依赖关系进行传播增强;3.关键路径总结:经过探索后,总结出多个关键chunk和路径,大模型为每个chunk进行总结; 基于蒙特卡洛项目感知优化方法,大幅提升了缺陷定位准确性(错误率降低17%),我们在SWE-benchlite21.3%(ACR16%,SWE-Agent18%) 灵码Agent获得 SWE-bench-Lite SOTA 落地难点 Multi-Agent 阶段 AI 程序员概念架构 结构化任务管理 多智能体的工作模式反映了人类团队如何分解大型任务,提供一种分配任务和管理智能体的直接方法 简化工作流程 将复杂的任务分解为更小的子任务使整个项目更易于管理,提高灵活性和适应性,符合企业特点和需要 高效执行任务 让某个具体的智能体专注于特定任务。每个智能体能够专注地分析并执行任务,提高系统工作效率 人工智能和软件工程的融合发展 未来智能软件研发工具链形态 从团队协同(依赖人)到 人机协同(依赖算力,数据) 人工智能(AI) 和 软件工程(SE) 的融合发展 •面向软件工程的机器学习•Code Generation, Summarization, Search •Program Repair•UI Designs with Multimodal Learning•LLM for Fuzzing Test•Automated Bug Replay•测试与分析 AI for SE • Malware Detectors • Vulnerability Detection• Fault Localization• Log-Based Anomaly Detection• Automatic Logging with LLM and ICL• Pre-trained Language Model for Log Understanding•进化 SE for AI • Multi-Intent Comment Generation with ICL• Automated Code Refinement • CoderEval, EvoCodeBench, CrossCodeEval 人工智能(AI) 和 软件工程(SE) 的融合发展 •代码⼤模型• Execution-aware Pre-training for Source Code • DeepSeek Coder:Let the Code Write Itself• GraphCodeBERT: Pre-training with Data Flow• StarCoder 2 and The Stack v2: The Next Generation AI for SE •⾯向AI的软件开发测试• Crafting Unusual Programs for Fuzzing Deep Learning Libraries• Prompt Injection attack against LLM-integrated Applications• Pandora: Jailbreak GPTs by Retrieval Augmented GenerationPoisoning SE for AI •代码助⼿可⽤性分析•Survey on the Usability of AI Programming Assistants •How to Support ML End-User Programmers through aConversational Agent 更广阔的代码智能(Code Intelligence) 谢谢观看