AI 编程技术与工具发展综述(2024 年 )

未知
2025-03-20 10:26:43
0

2024 年 8 月下旬,一款 AI 代码编辑器 ——Cursor 火爆全球,火到一位 8 岁小女孩拿着它学编程,几十分钟内搭起来一个聊天机器人,其演示吸引来 180 万人在线围观。这导致有人大胆预言,未来编程只需要狂按 Tab 就够了。Cursor 确实好用,包括新推出的 “光标位置预测” 功能。

但是 AI 编程发展没有那么快,在国内生成代码采纳率还比较低,根据《2024 软件研发应用大模型国内现状调研报告》,多数团队在 10-40% 之间,如图 1 所示。

AI 编程技术与工具发展综述(2024 年 )

图 1 大模型(LLM)在编程上的应用及其生成代码的采纳率

在 2024 年,我们还看到了 “AI 程序员” Devin 的诞生,Devin 能够独立完成复杂的编码和调试任务、自主查找和修复代码库中的错误,构建和部署应用程序。在 SWE-bench 编码基准测试中,Devin 能够解决 GitHub 中 13.86% 的真实问题,有了很大提升。

说起 SWE-bench 编码基准测试(https://www.swebench.com/),2024 年进步很快,以 OpenAI 建立的 verified 子集(500 个问题)为例,4 月开始时,成功率只有 2.8%,到现在已提升到 53%,这表明 AI 在编程能力方面取得了显著的进步。这一提升反映了 AI 编程几个关键因素,正好用来总结 2024 年 AI 编程的进展。

模型能力的增强:AI 模型的架构和算法不断优化,如从 Claude 3 Opus、GPT-4o 到 Claude 3.5 Sonnet、Claude 3.5 Haiku,大模型自身的能力不断提升,使得模型能够更好地理解和解决复杂的编程问题。

智能体(AI agent)的引进:智能体可以收集和学习与任务相关的知识,可以直接调用静态代码分析工具、直接调用搜索引擎和 API 为编程任务服务,并通过构建代码仓库知识图来帮助大模型全面理解软件仓库的结构和依赖关系,从而更好地定位问题根源并生成有效的代码补丁。

智能体还可以动态获取代码片段和问题相关的信息,并分析和总结收集到的信息,以便规划出更好的解决方案。例如从 RAG+GPT 4 (1106) 的 2.8% 提升到 SWE-agent+GPT 4 (1106) 的 22.4%、从 RAG+Claude 3 Opus 的 7% 提升到 SWE-agent+Claude 3 Opus 的 18.2%,效果都比较显著。

多模态能力:多模态 LLM 使智能体能够综合利用视觉和文本信息,可以理解软件用户界面、处理的图表、可视化数据、语法高亮和交互映射等内容,更好地理解任务陈述以及获取任务相关的产品信息、开发过程信息,从而更全面地理解和解决问题。目前排在 SWE-bench verified 前 4 位都使用了 Claude-3.5-Sonnet,而它是多模态的、具备处理文本和视觉信息的能力,使其能够理解和修复包含图像或其他视觉元素的 GitHub 问题。

和工具集成的框架:可以支持智能体在处理复杂任务时进行更好的任务管理和执行,并促进不同 AI 模型和工具之间的协作。

例如 Composio SWE-Kit 集成文件操作、代码分析、Shell 命令执行、知识库管理和数据库操作等工具或能力,优势互补,将 SWE-bench verified 大幅度提升到 48.6%。再比如 OpenHands+CodeAct v2.1 将智能体的行为整合到统一代码行动空间的框架,允许 OpenHands 在编程任务中扮演全方位的智能助手角色,目前排在 SWE-bench verified 第一位(53%)。

基于代码大模型的自身进化,以及 RAG 技术、智能体的有力支持,从而 LLM 有更好的上下文感知能力。例如,在代码大模型预训练时,其训练语料中加入抽象语法树(AST)、代码依赖关系等数据,新的代码生成模型则具有更强的上下文感知能力。

在此基础上,基于 AI 的编程工具能够根据给定的上下文(如函数名、注释、部分代码等)检索出最相关的代码片段和文档,能够提供完整的函数或代码块建议。这也使得 LLM 能够参考海量的代码库和技术文档,这不仅能缓解大模型的幻觉问题,显著提升代码生成与理解的准确性,而且能符合上下文的代码,更能满足开发的业务需求。

未来,研发人员和多个智能体、工具协同工作来完成编程工作,如论文 Flows:Building Blocks of Reasoning and Collaborating AI 所描述的(图 2 所示),构成一个复合竞争性编码流程,研发人员更多是提需求,由 LLM 和智能体实现自主编程的过程。

AI 编程技术与工具发展综述(2024 年 )

图 2 由 LLM 和智能体实现自主编程的过程

随着大模型技术的迅速发展,在今年,我们明显能感到,AI 已从单一的辅助工具,逐渐演变为软件开发人员不可或缺的助手或伙伴。

除了前面已介绍的 Cursor、Composio SWE-Kit、OpenHands CodeAct 等工具之外,国内主要使用 chatGPT、GitHub copilot、通义灵码、CodeGeeX、文心快码、蚂蚁 CodeFuse 等编程工具,国外还出现一些受欢迎的、新的编程工具,如 Codeium IDE Cascade、Solver ai、Websim ai 等。

AI 编程技术与工具发展综述(2024 年 )

图 3 国内编程助手使用状况(来源同图 1)

这些工具让我们能感受到 AI 卓越的生成能力和理解能力,帮助我们更高效地完成代码生成、代码评审、代码解释到单测生成、缺陷定位、代码优化等任务。这种进步也体现在今年国内企业一些落地实践中:

  • 在一些大厂,LLM 已经实际应用到代码审查或 CI/CD 流程中(如 pull request),自动识别代码质量问题并提出改进建议。
  • 有些企业结合智能体和相关工具的支持,让基于 LLM 的研发平台生成代码流程图和类图,辅助自然语言解释,使得开发者更直观地理解代码结构和执行流程,增强智能编程的可视性和交互性。
  • 有些开发团队借助智能体和 RAG 技术检索历史上已知的代码缺陷模式和已知问题,从而比较准确地识别潜在的缺陷和安全漏洞,甚至能够分析代码的功能意图,全面提升代码评审的能力。
  • 有些团队,根据 UI 设计图,让 LLM 自动生成相应的前端代码,大大减少了手动编码的时间,加快了从设计到实现的流程。

从应用效果看,前面调研的数据可供参考。在国内 AI 编程开展比较好的大厂,超过 80% 的工程师在使用 AI 编程工具完成日常的编程工作,近 30% 入库的代码由 AI 生成,生成代码平均采纳率超过 40%,有些产品线达到 60%。仅仅在编程这一项工作(虽然只占开发人员 20-30% 的工作量)上,研发效率能提升 20-30%。

AI 编程技术与工具发展综述(2024 年 )

图 4 大模型时代的软件研发正确方式

当然,我们不能局限于这一个编程环境,最好要从需求开始就应用大模型。ATDD(验收测试驱动开发)是大模型时代软件研发的正确打开方式,让大模型帮我们生成需求及其验收标准,业务约束更明确了,上下文更清楚了,在此基础上分别由不同的模型生成产品代码和测试代码,再让它们之间相互验证和博弈(如图 4 所示),最终交付高质量的软件。

未来,随着 AI 技术的不断成熟和创新,AI 编程工具将进一步提升智能化和可解释性,支持更多的编程语言和平台,并通过强化学习实现自适应优化。为了全面发挥 AI 编程技术的潜力,开发团队需要不断学习和适应新技术,优化开发流程,确保 AI 工具的有效应用和高质量输出。

以上就是AI 编程技术与工具发展综述(2024 年 )的详细内容,更多请关注全栈开发网其它相关文章!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 service@p2hp.com 进行投诉反馈,一经查实,立即处理!
-- -- 0

相关内容

4个顶级的搜索引擎API,构建AI应用必备
4个顶级的搜索引擎API,构建AI应用必备
本文介绍四款Web搜索API:博查、微软Bing、GoogleSerpApi和Exa.ai...
2025-03-22 09:58:39
OpenAI 今天又发布了一批新功能,这次是三个音频模型API
OpenAI 今天又发布了一批新功能,这次是三个音频模型AP...
OpenAI 今天又发布了一批新功能,这次是三个音频模型API,个人觉得挺实用。新音频模型...
2025-03-22 09:41:44
AI画图(AI绘画):文生图提示词(prompt)教学
AI画图(AI绘画):文生图提示词(prompt)教学
AI画图(AI绘画):文生图提示词(prompt)教学 提 示 词 (Promp0 是 一...
2025-03-21 09:55:50
世界首个免费无限制 分布式 AI 算力平台
世界首个免费无限制 分布式 AI 算力平台
世界首个免费无限制 分布式 AI 算力平台基于来自全国各地 50 台家用电脑的 3090、...
2025-03-20 10:33:58
9个 JavaScript 单行代码提升你的编程水平
9个 JavaScript 单行代码提升你的编程水平
在不断发展的 Web 开发世界中,效率和优雅至高无上。作为 JavaScript 开发人员...
2025-03-20 10:28:44
软件开发者都必须知道的关于 Unicode 的最基本的知识 没有所谓的纯文本。不知道编码的字符串是没有意义的。你不能像鸵鸟一样再把头埋在沙子里,假装「纯」文本是...
新概念 “防御性编程”:让自己稳拿铁饭碗 为了造福大众,在 Java 编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大师写的代码极其难...
2023 年各编程语言中最流行的许可证 OSI 所属的 Voices of Open Source 发布了一篇 “2023 年每种语言中最流...
我愿意死在强静态类型这座山上 我编写软件已有 20 多年了,随着时间一天天过去,我越来越确信强静态类型不仅是一个好主意,而且几乎总...
Go 与 Rust:导航编程语言景观 在不断发展的编程语言景观中,选择 Go 和 Rust 代表了寻求扩展技能集并应对新挑战的开发者的重要...
日常 AI 辅助编程的模型和工具搭配推荐 最近用 AI 辅助 编程比较多,对于复杂的算法和程序设计我是这么搭配使用的
AI 编程技术与工具发展综述(2024 年 ) 2024 年 8 月下旬,一款 AI 代码编辑器 ——Cursor 火爆全球,火到一位 8 岁小女孩...
2025 年 3 月,给经常编程或者要学编程的同学未来一年的投资建议 2025 年 3 月,给经常编程或者要学编程的同学未来一年的投资建议:无论你编程水平如何,非常菜或者...
编程十年的感悟 无论是编程,还是其他的技能,我感觉都是「马太效应」,你学得越多,你懂得越多,再学新的东西,你就会学得...
吴恩达老师分享的用 AI 辅助编程快速打造软件原型的最佳实践 吴恩达老师分享的用 AI 辅助编程快速打造软件原型的最佳实践。使用 AI 辅助编程来构建软件原型,是...
日常 AI 辅助编程的模型和工具搭配推荐 最近用 AI 辅助 编程比较多,对于复杂的算法和程序设计我是这么搭配使用的

最新文章

AI 编程技术与工具发展综述(2024 年 ) 2024 年 8 月下旬,一款 AI 代码编辑器 ——Cursor 火爆全球,火到一位 8 岁小女孩...
吴恩达老师分享的用 AI 辅助编程快速打造软件原型的最佳实践 吴恩达老师分享的用 AI 辅助编程快速打造软件原型的最佳实践。使用 AI 辅助编程来构建软件原型,是...
编程十年的感悟 无论是编程,还是其他的技能,我感觉都是「马太效应」,你学得越多,你懂得越多,再学新的东西,你就会学得...
2025 年 3 月,给经常编程或者要学编程的同学未来一年的投资建议 2025 年 3 月,给经常编程或者要学编程的同学未来一年的投资建议:无论你编程水平如何,非常菜或者...
日常 AI 辅助编程的模型和工具搭配推荐 最近用 AI 辅助 编程比较多,对于复杂的算法和程序设计我是这么搭配使用的
2023 年各编程语言中最流行的许可证 OSI 所属的 Voices of Open Source 发布了一篇 “2023 年每种语言中最流...
新概念 “防御性编程”:让自己稳拿铁饭碗 为了造福大众,在 Java 编程领域创造就业机会,兄弟我在此传授大师们的秘籍。这些大师写的代码极其难...
软件开发者都必须知道的关于 Unicode 的最基本的知识 没有所谓的纯文本。不知道编码的字符串是没有意义的。你不能像鸵鸟一样再把头埋在沙子里,假装「纯」文本是...
Go 与 Rust:导航编程语言景观 在不断发展的编程语言景观中,选择 Go 和 Rust 代表了寻求扩展技能集并应对新挑战的开发者的重要...
我愿意死在强静态类型这座山上 我编写软件已有 20 多年了,随着时间一天天过去,我越来越确信强静态类型不仅是一个好主意,而且几乎总...