你肯定听过一句话:学计算机要从娃娃抓起。
在过去的很多年,学习编程都曾经是一件时髦的事,但随着生成式 AI 技术的发展,科技圈对此的态度似乎有些转向。
英伟达 CEO 黄仁勋就表示:「未来编程交给 AI 就行了,以后人人都是软件工程师。」不久之后,全球首个 AI 软件工程师 Devin 给开发者们带来了亿点点震撼,真正引发了人们对程序员这个职业未来前景的热议。难不成,码农的饭碗真要被 AI 端走了?其实不然,现在 AI 还只是程序员的工作助手。
实际上,国内有一位 AI 程序员,已经在某互联网大厂上岗一段时间了。
它就是阿里云数万名工程师最近频繁打交道的新同事 ——「通义灵码」,专属工号「AI001」。
通义灵码在正式入职之前,先是在阿里云内部和外部「实习」了几个月。大家的评价都很不错,真实好评率超 80%。
在传统的开发模式下,程序员每天需要耗费大量精力编写重复性代码、调试优化、编写代码注释,大幅挤压了核心业务代码编写的时间。但自从通义灵码入职,它在阿里云内部各个开发环节担任起了「代码助理」角色,包括在写代码、读代码、查 BUG、优化代码的全流程中辅助工程师们。
而且,通义灵码的工作节奏比 996 还要极致:7x24 小时随叫随到……
几个月实习期结束后,通义灵码攒下了不少「工作成果」。以 API 开发测试工作为例,通义灵码可将数分钟甚至十几分钟的人工编写测试耗时缩短到秒级,节省了人类程序员 70% 以上的测试代码工作量。
而阿里云今天也再次宣布,通义灵码在通义千问 APP 上线, 免费向全民开放,所有人可以随时随地在手机上写代码、读代码、学习编程技能。
AI 程序员技能拉满,主打一个全能辅助
如果通义灵码有简历,那一定是满满的闪光点。
先说「背景」,通义灵码由阿里云和通义实验室联合开发,目前下载量超过 200 万,每天都有数百万行代码被人类程序员采纳。
再说「专业」,通义灵码具有扎实的编程基础,深入学习过万亿量级的代码数据,目前能够熟练使用 200 多种编程语言,精通其中 16 种语言,包括 Java、Python、Go、JavaScript、TypeScript、C/C++、C# 等主流语言。
在去年云栖大会初次发布时,通义灵码的很多技能点就让人印象深刻,比如行级 / 函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释等功能。
给它一段项目代码,让它根据上下文续写代码:
连单元测试也可以迅速写出来:
如果你对写代码注释这件事感到疲惫,可以让它代劳:
同时,通义灵码还具备研发智能问答、异常报错排查等能力,减少了原本排查工作的繁杂程度:
此次,正式入职阿里云的通义灵码新增了「代码优化」功能,升级后的问答模型也更加准确,同时增强了跨文件补全、函数补全等能力,说句「脱胎换骨」不为过。
得益于通义灵码的助力,无论是前端、后端还是运维等多个技术岗位的员工的工作效率都大大提升,尤其是在编码单元测试、构建脚本生成和理解、跨语言代码转换等任务上。
通义灵码还有一点优势在于支持企业级代码库专项训练,能够更好理解企业的代码和文档数据,并支持国产化适配。未来,阿里云还将在内部 JetBrains IDEs、Visual Studio Code 等开发工具中全面配置通义灵码插件,供所有员工使用。
Talk is cheap,Show me the code
说了这么多,通义灵码究竟能不能媲美人类程序员?还是要看实战效果。
在开发阶段,先看看新增的「代码优化」能力:
还有行 / 函数代码的实时续写:
在「测试」环节,通义灵码在生成测试框架、测试用例都非常高效,人类程序员需要几分钟甚至十几分钟的工作,对于它而言只是几秒钟的事。
测试框架生成
生成测试用例
此外,通义灵码编写运维脚本的效率也远远高于人类,还可随时协助查找运维问题的解决方案:
过程中,开发者有任何问题都可以提问,比如「我想用数据库来存储照片,怎么做」:
又比如「如何通过 Spring-Boot 编写一个照片上传下载的 Web 程序」:
用一个流行词汇来形容,通义灵码是个「全能型员工」。无论是开发、测试还是运维场景,都能展现出很强的实力。
AI 越来越强,抢走饭碗 or 利好码农?
当然我们也好奇,为什么通义灵码的水平这么高?
阿里云内部的小伙伴给我们透露了几点:本质上,通义灵码能从一个编程助手变成一个全能助理,离不开通义大模型的深厚实力。
首先是「基于上下文感知的自适应生成粒度决策」。通义灵码具备根据语言类型和上下文场景生成正确的代码内容(词级 / 行级 / 块级 / 函数级 / 类级等)的能力,既能为开发者生成长代码、提高编码效率,又能适时生成短代码、减少打扰。
其次是「基于库内跨文件自动感知的代码生成」。为了解决幻觉问题,通义灵码通过先进的端侧实时代码语义分析技术,实时分析当前正在编写的代码,并基于代码语义分析、代码引用链路跟踪、动态语言类型推导、相似代码分析等先进的技术方法获取所需的相关代码引用、相似的代码片段等语义信息,弥补单纯关注当前代码文件所需的不足。
与此同时,通义灵码能够「基于检索增强进行代码生成及问答」。具体来说,它通过检索增强技术实时获取检索引擎中的私域知识,让智能编码助手根据企业知识生成代码或回答问题,企业可以即时更新及生效私域知识,使其始终基于最新的私域知识生成或回答问题。
让我们感慨的是,从微软此前推出的编程助手 Copilot 到 AI 程序员 Devin,AI 给程序员们带来了一波又一波冲击。这种革命性的进展,只花了两年多的时间。
而通义灵码在阿里云正式上岗,标志着编程率先成为大模型技术落地的领域之一。编程语言的边界从此被打破,Java 程序员也能轻松完成 Python、C 等不同编程语言的代码编写。问题是,会不会有更多的程序员被 AI 端走饭碗?
或许不用太悲观:正如汽车的出现让一部分马车夫没有了工作,但却产生了司机这个新的职业。人类程序员和 AI 程序员的关系,应该是相互促进、共同学习。正如软件开发方法学的泰山北斗 Kent Beck 所说,有了 AI 工具未来我们 10% 的技能会被 1000 倍的提升。
就比如接下来,迅速融入团队的通义灵码会承担起更艰巨的任务,对阿里云的工程师来说绝对是好消息:
「公司未来 20% 的代码将由通义灵码编写,但程序员仍然是研发的核心,他们将有更多时间专注于系统设计以及核心业务开发工作。」
对于普通人来说,未来也无需下载专业软件,使用通义千问就能写代码和学代码。针对没有代码基础的学生,通义千问可以提供学习建议,例如它可以从理论和实操层面帮助用户制定一套完整学习 Python 的计划。