前几天,百度创始人李彦宏在采访中声称:“
以后不会存在“程序员”这种职业了,因为只要会说话,人人都会具备程序员的能力
”。
看到这话我的第一反应是“
不可能,绝对不可能,程序员的工作有很大一部分是创造性的,AI 无法取代
”,但转念一想,李彦宏的视野应该比我高,或许有那么一丁点可能这是真的
?
就在人们还在讨论李彦宏的这番话时,一家国外的人工智能公司发声了!
Cognition(一家专注于推理的应用人工智能实验室)在昨天发布了全球首位完全自主的 AI(人工智能)软件工程师 Devin。
他们声称“
Devin 在 SWE-Bench 编码测试中取得优秀的成绩,并且成功通过了知名人工智能公司的实际工程面试,甚至还在 Upwork 上完成了实际工作。
”
看着很厉害的样子,水平究竟如何呢?我们来了解一下。
Devin 是一位不知疲倦、技术娴熟的队友,随时准备与您并肩作战,或独立完成任务供您审查。
有了 Devin,工程师可以专注于更有趣的问题,工程团队可以为更远大的目标而奋斗。
Devin 的能力
凭借
Cognition
在长期推理和规划方面的进步,Devin 可以规划和执行需要数千个决策的复杂工程任务。Devin 可以调用每一步的相关上下文,随着时间的推移不断学习,并修正错误。
Cognition
还为 Devin 配备了常用的开发者工具,包括沙盒计算环境中的 shell、代码编辑器和浏览器
--人类完成工作所需的一切工具。
最后,
Cognition
赋予了 Devin 与用户积极协作的能力。Devin 会实时报告自己的工作进度,接受反馈,并根据需要与你一起完成设计选择。
以下是 Devin 的功能示例:
-
Devin 可以学习如何使用不熟悉的技术
。阅读博文后,Devin 在 Modal 上运行 ControlNet,为 Sara 制作带有隐藏信息的图像
2.
Devin 可以构建和部署端到端的应用程序
。Devin 制作了一个模拟 "生命游戏 "的互动网站!它逐步增加用户要求的功能,然后将应用程序部署到 Netlify。
3.
Devin 可以自主查找和修复代码库中的错误
。Devin 帮助安德鲁维护和调试他的开源竞技编程书籍。
4.
Devin 可以训练和微调自己的人工智能模型
。Devin 仅通过 GitHub 上一个研究资源库的链接,就能对一个大型语言模型进行微调。
5.
Devin 可以处理开源软件源中的错误和功能请求
。只需提供 GitHub 问题的链接,Devin 就能完成所有必要的设置和上下文收集工作。
6.
Devin 可以为成熟的生产软件源做出贡献
。 本例是 SWE-bench 基准的一部分。Devin 解决了 sympy Python 代数系统中对数计算的 bug。Devin 设置了代码环境,重现了错误,并自行编码和测试了修复程序。
7.
Cognition
甚至试着在 Upwork(全球最大的自由职业中心) 上给 Devin 提供真实的工作,它也能胜任!
在这里,Devin 编写并调试代码,以运行计算机视觉模型。Devin 对生成的数据进行采样,并在最后编制一份报告。
Devin 的性能
Cognition
在 SWE-bench 上对 Devin 进行了评估,SWE-bench 是一项具有挑战性的基准测试,要求测试者解决 GitHub 上的实际问题,这些问题出现在 Django 和 scikit-learn 等开源项目中。
Devin 端到端正确解决了 13.86%* 的问题,远远超过了之前最先进的 1.96%。即使给出要编辑的确切文件,以前最好的模型也只能解决 4.80% 的问题。
我的看法
从 Cognition 的官方文档和视频来看,
这位 AI 程序员在收到命令后,可以在自己的编辑器里修改代码、shell 上执行代码、通过浏览器查询资料、根据资料修改代码,接近一个可以自主思考的人类程序员。
这个消息引起国内外很大的讨论,虽然官方的介绍是"AI 程序员可以做为队友解放程序员的双手,让程序员做更有价值的事",但还是有很多人担心被取代,有一个很典型的评论是:“求求你们别研究了,我们还要吃饭”
:
说实话我心里也有这种想法,为什么程序员总要难为程序员,去做点更有价值的不好吗?
然而想归想,
时代的洪流滚滚向前,我们没办法避开就只能选择加入
。
首先要调整思维,把它当作队友而不是对手,学习它、使用它,通过它成为更好的程序设计开
发者,而不是站在它的对立面。
其次居安思危,以 AI 程序员做镜子,调整自己的学习、思考方式。
比如看到这个 AI 程序员后,我头脑里发生变化的点是:
-
学习新技术时需要更多侧重于使用场景和优缺点
-
框架 API 不再追求全面掌握,反正都是可以查到的
-
思考自己日常工作哪些是 AI 可以做到的,我该如何把它们工具化流程化
-
要花更多时间关注这些新工具,使用他们完成以前做不到的事
好了,这篇文章到这里就结束了,主要介绍了最新的 AI 程序员的能力和我的看法。
对于这位 AI 程序员,你是怎么看待的呢?欢迎留言讨论。