你敢想,AI 已经不满足只做程序员了,如今又向架构师这一进阶职业发起挑战。
随着 AI 在研发领域的不断进化,能提供给工程师的助力越来越多,从原先单纯的编码加速器不断延展到架构理解、质量分析、安全扫描、测试生成等更多领域。同时结合 RAG 技术的不断落地应用,对私域知识、本地场景的深刻理解,AI 代码助手的能力边界正在不断被打破。
年初,英伟达创始人、CEO 黄仁勋的一番话引发了计算机行业内外的热议。他表示:「生成式 AI 的持续发展大大降低了学习编程的意义,未来人人都可以成为程序员。」无独有偶,百度创始人、CEO 李彦宏也在一次访谈中指出,「这波人工智能的改变可能更加彻底和深刻,基本上以后不会再存在程序员这种职业了。只要会说话,人人都会具备程序员的能力。」
两位科技大佬的观点倒不是说未来程序员都会失业,而是在 AI 的帮助下,更多研发行业中非程序员的角色也可以具备基本的开发程序的能力,而具备专业技能的软件工程师们在 AI 助力下将发挥更大的价值。
同时,两位科技大佬的观点一定程度上揭示了一个重要趋势:随着大模型赋能的 AI 代码助手在企业业务场景的应用落地,AI 辅助所占的比重越来越高。Stack Overflow 2024 开发者调查报告显示,76% 的受访者正在或计划在开发过程中使用 AI 工具,有好感或非常有好感的比例达到了 72%。
国内外大厂都在 AI 代码助手这一赛道重兵投入,而率先入局者已经在自身业务中初见成效,比如百度内部已经有 30%的代码由其智能代码助手「文心快码 Baidu Comate」生成。
说到文心快码(Baidu Comate),它还是在 6 月底百度 WAVE SUMMIT 深度学习开发者大会上拥有了自己的中文名,并升级到了 2.5 版本。算起来,自 2023 年 4 月推出以来,文心快码已经是一位「练习时长快一年半」的 AI 程序员了。
在岗这么长时间,文心快码现已支持了 C/C++、Java 等 100 多种编程语言和 VS Code、Jetbrains 系列等 19 款主流 IDE 平台,能够续写已有代码、利用自然语言指令生成代码、根据注释写代码并在代码基础上生成注释。我们观察到,百度内部已经有 80%的工程师在深度使用文心快码。
而随着基础模型能力的持续提升以及 AI 代码助手在工作中越来越驾轻就熟,其自身能力也在不断进化。这不,百度文心快码不满足只干程序员的活了,它表现出来的一些能力正在告诉人们:自己甚至可以胜任架构师的角色了!
不过,在揭秘文心快码的「进阶能力」之前,我们有必要先来了解一下程序员与架构师的区别。
AI 程序员的职业晋升
做专才更要通才
如果说程序员是某一技术领域的专才(如前端、后端、移动应用开发),架构师则可以称得上多个技术领域的通才了,他们要在软件开发、系统架构、网络通信、数据库设计等方面都玩得转。
从职能上看,程序员侧重于在实现层面执行编写代码、调试与测试、维护等具体任务,而架构师主要负责整体系统的设计和规划,包括系统架构、模块划分、技术选型等,还要做出技术决策并指导团队。
因此,程序员晋升为架构师需要全方位的提升。同样地,AI 代码助手要想成功地将自身角色从程序员跨越到架构师,必然要在承担的职责、具备的技能方面更上一个台阶。
文心快码既然宣称升级成为了「互联网首位 AI 架构师」,想必已经掌握了承担相应角色与任务的必备技能。
自落地百度内部以来,文心快码在完成常见编程任务方面自不必多说,代码采纳率也达到了 46%。随着向架构师角色的转变,如今的文心快码更懂业务架构、更懂测试、更懂领域知识、更能解决代码编程中的疑难问题。
首要一点便是能更高效地解决编程中的架构问题,它们往往涉及到系统的层次结构、模块划分、控制流和数据流等方面。人类架构师统筹起来尚且不容易,而文心快码在拥有了架构师的能力后,可以通过代码解释,快速了解函数在「真实业务背景下的含义」。
不仅如此,为了更清楚地洞见编程逻辑框架、项目管理全流程,文心快码还能通过流程图的方式,直观地展示完整的调用逻辑。
其次代码质量也是架构师关注的关键领域,而单元测试(UT)则是保障代码质量的关键举措,以确保系统稳定性和可靠性。文心快码在单元测试生成方面迎来全面强化,不仅 UT 生成效果大幅提升,生成的 UT 用例更是达到了 100% 有效。
做到这些要归功于文心快码自动识别工程所使用的测试框架版本,它能够自动识别被测方法跨文件依赖,并自动参考已有单元测试书写风格,因而可以生成更贴近真实场景、效果更优、可用性更强的单元测试代码。
同时得益于文心快码四层架构的 AI 优化,UT 生成速度同样大幅提升。即使面对复杂的函数,平均 6 秒就能自动生成可用单元测试,缩短了等待加载时间。
00:46
在 UT 生成效果和速度得到加强之外,文心快码还支持批量生成 UT,实现了质、速和量的三合一提升。
面对纷繁复杂的变更函数以及堆积成山的历史代码,文心快码可以针对目录、多文件、单文件等多类型一键发起生成,并做到生成、验证和修复同步进行,确保 UT 用例的有效可靠。
此外,对于找到并修复程序中的错误或缺陷,文心快码做到了更好、更快。只需要选中报错的日志,然后交给文心快码进行对比分析和修复,它会自动给出错误原因和错误修复方式,一目了然。同时也可以进行多轮 Debug,只要一句话,便能解决研发过程中遇到的各种疑难问题。
如果以百度自身对架构师的定义来评判文心快码如今的表现,可以说它从业务理解、代码能力、文档编写和技术视野四个维度得到了全方面加强,并提供了一系列相应的自动化服务。
当文心快码这样的 AI 代码助手开始从架构师的角度来思考并解决问题时,势必会对包括提出需求、编写代码、测试与发布、检测潜在 bug 与安全漏洞在内的整个开发流程带来更大增益,进一步提升业务迭代速度。
当然,工欲善其事必先利其器。文心快码进化到拥有架构师的能力并不是一蹴而就,而是各方面因素综合作用的结果。
我们知道,文心快码背后是文心大模型提供动力,前不久刚刚升级到 4.0 Turbo 版本。通过更大训练数据体量、更优数据分布与质量、更强训练算法,文心大模型在理解、逻辑推理层面再次跃升。
可以说,更强大文心大模型为文心快码的又一次「变身」提供了理论上的可能和坚实基础。
在此之外,文心快码在高质量训练数据集、专家参与的知识体系、私域知识增强以及精调和优化方面形成了独有优势。
首先是在数据层面「做深文章」。数据作为 AI 三大要素之一,对模型训练效果的作用举足轻重。文心快码拥有充足且高质量的训练数据集,涵盖了百度内部严格筛选的优秀代码数据集以及 GitHub、GitLab 等外部主流开源代码库资源,最大程度实现预训练数据的多样性和丰富性。
因此,有了更多、更全、更优质的数据支撑,文心快码才能更加深入理解和学习不同的编程语言、框架及真实业务场景下的编码规律。
其次在构建知识体系的过程中做到了双管齐下。不断吸收并学习知识是提升 AI 理解、推理和决策能力,并在实际应用中更加精准和高效的关键因素。
一方面,通过由语言、框架、知识集等多个维度的专家团队的共同努力,整理并构建了由上万个知识集组成的专家知识体系,在覆盖基础语法、数据结构等通用知识之外,还深入到了特定框架、库及业务场景的高级应用,实现通用与专用知识的结合。
另一方面是增强了私域知识。在关注外部客户业务需求的基础上,文心快码为他们提供了基于 RAG 技术的数据检索增强功能,提升在具体业务场景中的生成能力和准确性。同时完善评估与持续优化机制,在上线后也能根据客户反馈及时处理和调整,适应他们可能变化的业务状况和需求,形成数据、效果、产品功能和应用实践一整个链条的快速反馈迭代。
最后是注重精调与优化。这一点在百度内部尤为明显,有了对上万工程师研发实践以及内部用户使用习惯和需求的充分了解,利用类似 DPO(数据驱动优化)的技术手段对内部代码数据进行深入分析,构建了反映用户真实需求的专用数据集。同时在不断迭代和优化过程中形成数据飞轮效应,持续指导模型精调。
至此,在底层模型的加持之外,文心快码进阶到 AI 架构师完成了数据、知识、精调与优化多层面的技术和实践准备。
目前,文心快码已经收获了多领域大量客户的认可,并已在喜马拉雅、数蓬科技、南威软件、华农保险等企业的应用中提升了研发效率,为其业务发展和技术创新注入了新的强大动力。
写在最后
从微软推出 Copilot 编程助手到雨后春笋般涌现的代码大模型及智能代码助手、再到今年首位 AI 软件工程师 Devin 的诞生,AI 进化的速度实在令人惊叹。
这一方面要看到 AI 代码助手的应用潜力。根据《Gartner 2024 年十大战略技术趋势》预测,到 2028 年,75% 的企业软件工程师将使用 AI 编码助手,这一比例在 2023 年初还不足 10%。因此,在需求趋势驱动下,AI 代码助手持续「修炼内功」是必然的。
此次百度文心快码在职能上向架构师的延伸,正是这一趋势的体现,也意味着对编程领域的影响越来越深入,逐渐地从单一的编程任务渗透到整个研发全生命周期并有可能重构研发范式。
可以预见,在未来相当长的一段时间里,AI 代码助手会强势存在并不断进化。对于编程甚至更高层次的架构设计工作而言,助力将会越来越大。到时候,工程师们将不会被繁琐的工作所牵绊,效率加倍,留出更多的时间去享受生活。
这两天冲上热搜的太原理工 2024 软件工程专业招生近 2000 人,也从侧面说明软件工程师这一职业仍有巨大前景。而且我们了解到,该专业所属的软件学院还是首批使用文心快码的机构之一,可见新技术已经与未来的软件研发生力军在建立了联系。
因此,关键在于如何在理念和实践中利用好 AI。正如斯坦福著名学者 Erik Brynjolfsson 所言,企业应该将 AI 视为员工的合作伙伴,而非竞争对手。程序员要让 AI 处理它们擅长的重复、繁琐和机械的事情,自身则专注于那些能够发挥核心价值的创造性工作。
以百度为例,它在开发文心快码的过程中汇集了数万工程师的实践经验,形成三大「人机协同价值观」,包括 AI 不会取代你但会 AI 的人将在职业市场上更具有竞争力,人机协同的关系中人始终处于 Control 的地位和人机协同、共同进化,可以为人机和谐相处提供一定借鉴。
未来,随着 AI 代码助手扮演的角色越来越强大,胜任的任务越来越多,其与人的共存将会是一个长期命题,需要包括百度在内的各方汇聚智慧来正确对待和解决。
文章来自于微信公众号机器之心 作者杜伟
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI