一、风头无两的AI编程


VC巨额投资涌入


刚过去的几个月见证了VC对AI编程赛道的狂热,其中最具代表性的就是拿到了巨额融资的两家:


  • 3月12日,AI编程领域初创企业Cognition宣布获得A轮融资,投后估值3.5亿美元,并发布了其“首位AI工程师”Devin。仅1个月之后,公司又获得Founders Fund领投的新一轮融资,据悉公司在两轮融资中共筹集资金1.96亿美元,最新投后估值20亿美元,而此时距离公司成立仅仅6个月。


  • 4月24日,AI编程助手开发商Augment宣布完成2.27亿美元的B轮融资,投后估值9.77亿美元,由谷歌前CEO埃里克·施密特(Eric Schmidt)以及Index Ventures等多家知名风险投资机构参投,而此时距离其完成A轮融资也仅仅过去了3个月。


为何AI编程如此受到关注?


资本的大量涌入意味着巨大的市场潜力和对赛道的看好。据不完全统计,过去一年AI编程领域拿到投资的初创企业多达数十家,而头部玩家如微软、亚马逊、谷歌也都推出了自己的AI编程助手。在AI能够结合并改造的所有“细分品类”中,AI编程无疑是资本和巨头倾注资源最多的那一个。为什么这个赛道如此受到关注?


在我们看来,如果AI能够自主编程,比其他工作的“自动化”可能有着更重要的意义——因为程序员是数字世界的主要构建者,一旦AI能够完全自主胜任编程工作,意味着数字化世界一个根本性的颠覆——这对于各行各业都是有巨大影响的。


关于这一点,微软CEO纳德拉有一段非常精彩的表述:“当你向一个组织引进Github Copilot,工作流程将发生改变。当销售人员开始写代码,这个组织就变了,它会以代码的速度前进。Copilot和代码速度将从根本上改变数字经济。包括汽车、金融、制药...未来,每家公司都是数字公司,也是软件公司。”


对于AI将要自动化的所有领域而言,编程是颇为特殊的一个。但目前这些AI编程工具,包括火遍全网的Devin,真的会让程序员失业吗?它们宣称要做的事情和实际上能实现的功能,真的一样吗?


下面这篇文章译自Google机器学习工程师Logan Thorneloe的博客,对这些问题给出了精彩的回答。


二、Logan Thorneloe: Devin揭示了软件工程的一个重大问题


Cognition Labs 最近发布了第一位AI软件工程师,让开发人员担心他们的工作安全。我甚至在推特上看到过关于高中生因为Devin而改换大学专业的帖子。我理解这种担忧,它基于对AI夺走工作岗位的普遍恐惧,加上几周前英伟达CEO黄仁勋声称人们不应该只学编程。实际上这些说法都是炒作而已。作为一个从事机器学习和软件工程的人,我可以告诉你,软件工程师的工作在短期内还是安全的。


Devin是继Copilot之后,AI在编程辅助方面合乎逻辑的下一步。开发者们对Devin将取代他们的工作如此担忧,真让人感到惊讶,尤其是当大家都非常喜欢Copilot做同样的事情时。难道我们不应该期望Copilot和类似的工具变得更好吗?


号称最懂技术的社会群体,现在却成了对AI进步最感恐惧的群体。有些任务AI很擅长,它会首先替代工作中的这些任务。但这不仅限于软件工程。所有职业的某些部分都很快会被自动化,而许多其他方面则需要更长的时间让AI来完成。到软件工程师被完全替代的时候,许多其他工作早已被取代。我不理解为什么软件工程师是最担心被AI夺走工作的群体。


Devin的发布揭示了大多数软件工程师两个非常有趣的方面,比自动化工程师更吸引我:


  • 大多数工程师根本不知道他们的工作实际包含什么,以及他们为何获得高薪。


  • 大多数工程师对机器学习的理解严重不足。


我将在下面更详细地探讨这两点。


Devin已被证明可以在没有干预的情况下端到端地完成约14%的问题,远远高于同类编程工具。


Devin能做什么?


Cognition Labs针对编程任务对Devin进行了微调,并允许其访问常用的开发者工具来完成这些任务。Devin列出的功能包括:


  • 阅读博客并从中学习。LLM已经表明,它能理解提供给它的文本和图片。这和使用开发者工具进行同样的操作是一回事。这里的创新之处在于与开发者工具的集成。


  • 端到端构建和部署应用程序。我很好奇这在实践中意味着什么,但鉴于上述情况,这不应让人感到惊讶。如果Devin能够阅读指令并实施它们,只要有了相应的指令,Devin就能构建一个应用。


  • 自主找到并修复错误。Copilot已经证明了LLM能在代码库中发现错误并提出可能的修复方案。这里的创新之处在于实际上实施修复。这真的很酷,但我很好奇这在现实中如何发挥作用,以及它的局限性在哪里。


  • 训练和微调自己的AI模型。再次,网上有很多关于如何做到这一点的指导。我很怀疑Devin是否在做数据预处理和其他创建高质量AI模型的困难决策。如果真是这样,这会是它们真正的赚钱点。


  • Devin可以处理GitHub仓库中的问题。这也不应该令人感到惊讶,因为Devin可以自主地找到并修复错误。在这种情况下,Devin只需阅读仓库中报告的问题,并据此确定行动方向。


  • Devin可以为成熟的生产仓库做出贡献。这是上述所有内容的延伸。就像Copilot一样,Devin将能够理解代码并提出修复和改进的建议。不同之处在于它可以访问开发者工具并使用它们。


  • Devin可以在Upwork上找工作。关于这一点,我需要再深入了解一下,但我猜对Devin来说,完成更复杂的Upwork任务会比较困难。


明确一点:我对Devin感到非常兴奋。我认为它减少了软件工程师经常面临的单调乏味的工作。Copilot和类似的工具已经做得很好了,而Devin做得更好。我并不想让上面的功能列表显得过于负面,但这些几乎都是我们已经知道的LLM的能力,只是把它们很好地应用在一个对我们有益的用例中。对软件工程社区而言,这是一个绝对正面的影响。我更关心的是Devin揭示了软件工程社区的什么问题。在我看来,Devin的发布所引起的许多恐惧来自对软件工程师的工作职责缺乏基本理解


软件工程师在做什么?


我认为这种误解来源于人们认为软件工程师因编程而获得高薪。事实并非这样,我们之所以获得高薪,是因为我们解决了难题。这就是为什么我们称自己为工程师——工程师利用手头的工具解决问题。


在一个主要是数字化的世界中,这个工具通常是代码,这也是软件工程师存在的原因,我们使用代码来解决问题。我们之所以获得高薪,是因为这种技能需求旺盛且对许多公司极具价值。公司需要能够识别如何满足用户需求并设计系统来实现这一切的人。当考虑到与其他系统的整合、可扩展性、可靠性、本地法律和规章等因素时,这成为一个日益难以解决的问题。软件工程中有价值的技能是解决问题——而不是编写代码。


这也是为什么我很少给想学习编程的人推荐任何由Twitter KOL销售的编程训练营或课程。太多的训练营和课程专注于“学习这门需求旺盛的语言”或者“学习如何编程”。虽然这些对成为软件工程师是必要的,但它们并不是核心的、有价值的技能。真正有价值的技能是知道如何拆解和解决问题。


这是为什么我推荐任何想进入软件工程领域的人去一个好的学院获取学位。一个合适的计算机科学课程将教你如何使用代码作为工具来解决问题。这些课程需要四年时间并且需要花费金钱,因为快速学习计算机科学职业所需的概念是困难的。花时间正确地学习事物更有益,很少有东西比计算机科学正规学位的投资回报更高。


你也可以通过自学或训练营课程学习成为一名软件工程师,但真正能做到的人很少。大多数自学编程的人,甚至不知道编程技能与软件工程师的技能集之间的区别。这种误解正是Devin所揭示的。我担心有许多软件工程师甚至根本不了解他们工作的价值。


顺便一提,我认为这也是为什么有如此多人不喜欢做软件工程师的原因之一。如果你学习编码快速而简单,你不会意识到软件可能不适合你。但如果你读一个计算机科学的学位,你很快就会意识到它是否适合你。


不充分的教育工具也导致了软件工程人才的差异。我曾与许多优秀的开发者及许多一般的开发者合作。要区分两者并不难——这两组人的能力存在很大差距。如果一些开发者花了几年时间致力于理解如何用软件解决问题,而其他人只花了几周时间学习 JavaScript,这样的结果是显而易见的。


这里的关键是:Devin向软件开发社区展示了我们需要更好的资源来学习软件开发并理解工作的价值。这是一项艰巨的任务,因为如果你甚至不知道你不知道的话,你不可能学到东西。


软件工程师应该了解机器学习


Devin还揭露了大多数软件工程师对机器学习的了解是多么的少。使用机器学习解决问题是所有软件工程师未来都需要具备的技能。如果你确实担心AI会抢走你作为软件工程师的工作,请深入研究AI的工作原理并更好地理解它。每个了解机器学习的软件工程师都不会担心Devin,反之亦然。



如前文所述,软件工程师的工作是创建使用代码解决问题的系统。目前,我们通过提供我们编码的系统规则和数据作为输入来做到这一点,它会给我们答案作为输出。


机器学习将从根本上改变这一情况。它将成为解决复杂问题的默认方式。在机器学习中,我们给系统提供数据和答案,它自己找出规则。然后我们使用这些规则为其他输入生成答案。作为软件工程师,这是我们需要理解的一个系统,因为它很快就会成为我们工作的基础。


这是AI将给软件工程领域带来的改变之一。虽然大多数人担心Devin会完全取代软件工程师,但了解机器学习的人知道,AI在取代之前会改变人类在工作中所扮演的角色。软件工程师将花更少的时间在单调的任务上,更多时间去解决问题。其中许多问题将通过机器学习解决。


软件工程师不仅需要了解如何使用AI工具来解决问题,还需要了解机器学习的基础知识,以构建能够解决问题的AI工具。这将成为软件工程师的工作内容。


如果你想更好地了解机器学习,我整理了一份路线图,引导你了解机器学习社区中提供的高质量免费学习资源。


最后一件事:关于 Jensen Huang 的评论,他说软件不值得学习,因为无论如何AI都会接管,只需记住,Nvidia的商业叙事与这一声明高度一致。每当有这样的声明发出时,要想明白它的出处。


本文来自微信公众号:Atom Capital(ID:gh_97f8db07217b),作者:Atom Capital