您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[甲子光年]:2024年AI代码平台及产品发展简报 - 发现报告

2024年AI代码平台及产品发展简报

信息技术2024-10-23甲子光年机构上传
AI智能总结
查看更多
2024年AI代码平台及产品发展简报

出品机构:甲子光年智库智库院长:宋涛撰写人:刘瑶王艺霖李哩莉时间版本:2024.10 前言:生成式AI爆发后迎来商业加速,代码领域迎来创新及变革契机 随着人工智能技术的飞速发展,大模型(包括开源模型及闭源模型)的数量和能力都在显著增长,为生成式AI应用的爆发提供了坚实的技术基础。代码及开发领域具备广泛的高质量数据、丰富的应用场景及多样的用户人群,因此生成式AI为代表的技术提供了生产力的创新空间和发展潜力。 Part01机遇:AIGC引发的数字生产变化 目录 Part02价值:重新构建代码开发的应用范式 Part03落地:智能时代AI+代码的先行者 Part04展望:人工智能普惠时代的期待 需求破局:“AI+”的工作方式成为首选,释放代码工程的生产力 编写代码,理解代码及互联网搜索、调试、写注释、写测试等工作是开发者的高频工作需求,因此解决围绕代码解决问题实际上解决开发者最高频刚需问题,随着生成式AI技术能力提升,更多的开发者都在尝试使用AI解决问题。 代码及开发工作不仅仅是“脑力活”,也是“体力活” 开发者会选择尝试AI编码提升自身的效率及技能水平 技术升级:大模型赋予了“AI+代码”更多的创新空间 AI生成代码的应用思路可以追溯到AI技术应用初期,但往往受限于当时的AI技术所体现的智能化水平。 大型语言模型(LLMs)的出现为深度学习带来了新的范式,尤其是针对语言类型的数字内容生成能力提升,因此也为“AI+代码”进一步发展带来了更多创新空间。 大模型为代码生成带来了“质”的改变 LLMs给“AI+代码”提供了一个突破性技术方案:LLM带来了深度学习新范式,思维链和强大的自然语言理解能力,从而理解程序员的需求和意图,自动生成符合规范或者采纳率更高的代码片段或完整功能模块,从而让创建广泛应用且实用的AI代码平台成为可能。 并且推动了开发者的编程习惯和开发方式发生转变,虽然工作重心依然在代码编写上,但与AI的互动逐渐增多,编程习惯和开发方式开始发生转变。未来,开发者可能开始从代码的具体实现转向更高层次的任务管理和决策。 过往的工作主要集中在代码生成及搜索的特定能力,更加注重算法设计和训练策略。事实证明,增强模型固有能力是推动智能代理进一步发展的关键因素。因此大模型对于泛语言形式的数字内容智能化水平的提升,成为推动AI辅助代码生成的关键。 Agent模式逐步被采纳,与Copilot模式/IDE插件共同组成丰富的产品功能:AI不仅仅是代码生成的助手,还能够自主 Copilot模式/IDE插件作为主导: AI通过自动补全代码、生成代码片段等方式帮助开发者完成繁琐的编程任务。开发者依然在整个开发流程中起主导作用,AI的角色主要是提高编程效率和降低重复劳动。 产品形态的改变 处理一些开发任务。AI在这一阶段表现出更高的自主性,可以减少人工干预。开发者的角色从编写代码逐步向监督和管理AI输出转变。AI的作用从简单的助手扩展到可以独立完成特定任务的合作者。 产品红利:围绕开发项目的全环节和需求进行展开 AI代码平台的功能围绕具体的开发环节及场景展开,AI技术是代码平台的能力,当具体的产品功能服务依然围绕项目提质增效展开。 广义的AI代码平除了核心的产品功能外包括企业级开发能力(和个人开发能力做对应,强调其系统性的开发能力),另外包括用户体验的设计,服务生态的建设,另外包括与算力、数据存储、环境部署的适配。 狭义的AI代码平台往往指代的是核心产品的功能,也会被称为AI编程助手,主要指在代码开发过程中辅助编写代码的功能。 产品功能类型主要类型可以概括如下: 生成与搜索修改与重构注释与解释审查与测试 功能简析:技术能力和交互模式的融合升级 产品功能简析-解决贯穿开发环节的典型问题(1/3) 功能简析:技术能力和交互模式的融合升级 产品功能简析-解决贯穿开发环节的典型问题(2/3) 未使用AI代码可能面对的问题 AI代码开发平台常见产品功能特点 ✓代码补全:在用户输入按键后自动提供后续代码的建议。用户可以将其当作参考,也可以采纳其为正式代码。✓智能搜索: ⅹ手动记忆:程序员需要记住大量的函数、方法和库的名称及其参数,这在面对庞大的代码库或复杂的编程语言时尤为困难。ⅹ信息过载:在没有智能搜索的情况下,程序员可能需要在大量的文档、论坛和代码库中手动搜索解决方案,这既耗时又容易出错。 可将对话问答功能与IDE进行了集成打通,其中的聊天互动界面可以让开发者通过自然语言来做提示词,探索和生成大段新代码,甚至是整个程序。并支持一键插入到编辑器中。 ✓代码修复:针对编码过程中出现的代码问题,可以一键给出修复建议,助力开发者快速解决代码问题。✓代码重构: 在不改变软件功能的前提下,主动提出建议给出选择,对代码进行结构上的调整。 ⅹ识别重构机会:确定哪些部分的代码需要重构,以及如何重构,通常需要深厚的经验和对代码结构的深入理解。 ⅹ时间消耗:编写清晰的注释需要额外的时间,程序员可能因为项目进度压力而忽视这一步骤。ⅹ理解差异:不同程序员对同一代码的理解可能存在差异,这可能导致沟通上的障碍。ⅹ语义保留:代码翻译不仅仅是文字的转换,更重要的是保留代码的语义和逻辑,这在自动翻译中很难实现。 ✓添加注释:支持多种编程语言生成注释,只要选中代码段落,用按键选择生成注释,AI编程助手就能一键生成方法注释及行内注释。✓代码解释: ⅹ主观性:代码审查很大程度上依赖于审查者的个人经验和偏好,这可能导致不一致的审查标准和结果。ⅹ难以预测:在没有工具辅助的情况下,预测代码的性能表现可能非常困难,尤其是在复杂的系统或多线程环境中。ⅹ测试成本:编写单元测试需要额外的时间和努力,随着代码的更新和迭代,维护相应的单元测试也变得复杂和耗时。 ✓代码审查:自动审查用户代码,支持对代码进行函数级检查功能,审查代码的可读性、可维护性、一致性以及是否遵循编码规范。✓性能检查:支持对代码进行函数级检查功能,可以对大篇幅代码做检测,检测代码性能,评估代码在运行时的性能,如处理速度、内存使用等。✓单元测试:根据自然语言提示或按键选择,为指定范围内的代码自动生成单元测试。 功能简析:技术能力和交互模式的融合升级 产品功能简析-解决贯穿开发环节的典型问题(3/3) 生成式AI技术的出现,除了可以极大地支撑代码生成、重构、补全等非常典型的开发工作。此外于完整的AI技术开发平台及产品也应该提供相应的审查及测试类产品技术支持,以保证软件开发全链路功能的覆盖。 功能简析:技术能力和交互模式的融合升级 交互模式的创新-基于问答与上下文补全的需求 问答式交互(也可理解为问答式的交付):AI代码生成通过整合代码交互模型与聊天界面,实现了用户与AI模型间的自然语言交流,用户能提出跟进问题,模型则基于先前对话及代码上下文提供相关回应,确保交互的连贯性。同样,生成式AI的技术为该项功能提供了更好的完成度。 Part01机遇:AIGC引发的数字生产变化 目录 Part02价值:重新构建代码开发的应用范式 Part03落地:智能时代AI+代码的先行者 Part04展望:人工智能普惠时代的期待 大模型带来的核心突破是生成代码的质量,提升了其有效性(生成和效果的提升),其次是带来了更准确的代码理解、重构、智能搜索等一系列功能实质效果的提升,因此模型的效果非常值得关注,在实际工作中,其代码的采纳率既是明确的体验感受,可以作为通用型的评价标准。 AI代码开发平台直接向用户提供的仍然是产品形态,因此产品的UI设计、用户交互方式,甚至是与他软件的兼容性,都会直接影响用户的“爽”感,也是在日益激烈的产品竞争中值得关注的维度。 代码的编写是整个软件开发过程中的一部分,软件开发则是系统化、复杂性的工程,产品的效果仍然要与整个工程效能有关。环境部署方式、数据处理效率,通信延时等具体产品设计细节最终都会影响实际效果。 隐形价值:重构智能时代的开发模式 从需求协作到软件发布,完成整个体系的智能化升级,赋能软件开发全生命周期 AI代码平台及产品提供的功能可以在需求阶段、编码阶段、集成测试阶段、发布部署阶段、咨询学习阶段、效能管理阶段等各个阶段实现智能化升级,意味着AI代码平台能力不仅仅局限在某一点,而是逐步的向横向扩展,会贯穿到DevOps的整个链路,为整个软件工程开发提供新的范式思路。 隐形价值:重构智能时代的开发模式 提升“工程效能”,快速响应需求并持续提升交付速度 生成式AI的大模型技术提升了代码生成的效率、质量,从而让团队更关注创新,并且降低了更多业务人员的参与开发的难度,从而提升整体工程效能。表:工程效能的指标拆解 隐形价值:重构智能时代的开发模式 研发知识传递形态的改变,个人/企业软件开发工作知识资产的建立 随着企业研发工作开展,内部有很多优质的代码、框架、规范需要逐步积累,但往往这些数据的价值却很难得到释放,对于开发者而言的使用成本很高。 大模型时代的AI代码开发平台则可以借助大模型不断完善积累企业的代码数字资产,形成正向循环。 隐形价值:重构智能时代的开发模式 提高整体研发效率,降低开发工程的复杂度,赋予更多企业智能化的机会 软件本质的复杂性是现在软件系统中无法规避的内在特性,比如复杂度、一致性、可变性和不可见性——《人月神话》的作者。可以看出软件工程是大规模的集体智力的协作活动,本身具有极强的复杂性。 在大模型时代,当AI逐步地去替代事务性工作,并且形成了AI为主、人为辅的编程模式的时候,个体和写作中的效率竖井就可以逐步打破。提升整体的协同研发效果及效率。 技术支撑:基于项目开发“Know-How”的“AI+”技术 RAG:致力于解决生成式AI“幻觉”,高效提升代码准确性 RAG技术不断涌现,推动了模型性能的边界不断扩展。这些技术进步不仅限于提升检索效率和生成文本的流畅度,更涵盖了对上下文理解的深度增强、对复杂查询的精细处理能力,以及对多样化数据源的高效集成。 部分AI技术生成代码痛点 实施RAG技术的AI代码平台 通常依赖于自身的参数和训练数据来生成文本。幻觉问题效率低缺乏上下文生成的代码不准确、通用过时、虚假,不符合预期需求或含有错误。生成代码速度慢,影响开发进度。从非权威来源创建响应,无法理解特定项目业务的背景信息,导致生成结果不相关或不完善。 技术支撑:基于项目开发“Know-How”的“AI+”技术 数据管理与智能查询相结合,以提高AI代码生成响应精度,提升企业级个性化开发能力 RAG对大型语言模型(LLM)输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。 RAG通过将用户数据整合进LLM已有的数据中来解决用户提问。是目前生成式AI应用中一种高效的改进思路,保证其输出结果在各种情境下都能尽可能体现其相关性、准确性和实用性——在AI代码生成的技术中,保证最大程度提升代码生成的质量。 技术支撑:基于项目开发“Know-How”的“AI+”技术 RAG依赖于高质量的知识资产管理及数据处理能力,企业代码库的数据质量需关注 针对生成效果评估方法的全流程优化知识库处于流程循环首尾的衔接,其质量控制是优化策略核心 1.数据处理与知识库优化✓知识库:优化知识库的结构和内容,以提高检索效率和质量。 ✓数据:需要重新考虑数据的收集、清洗和标注,以适应新的模型或策略。✓数据切片:将大块数据分割成更小,更合理的部分,以便更好地进行处理和分析,有助于提高检索和生成的准确性。✓数据库打标准确性:确保数据库中的信息准确无误、通过标准化过程提高数据的一致性和可靠性。 2.模型选择与优化✓选择更大的模型:现有模型的生成效果不理想,可以使用更大的预训练模型,带 来更好的生成质量和上下文理解能力。✓使用不同的embedding模型:根据实际应用场景和数据特点,使用不同的embedding模型,以找到最适合的模型来提高检索精度。✓调