我认为任何初创公司都必须不断证明自己的价值。我们所有的洞见都在贬值。看看英伟达这样的公司,如果英伟达在未来两年没有创新,AMD就会紧追不舍。这就是为什么我很乐意接受我们很多洞见是错误的。如果我们没有持续执行的洞见,我们就会慢慢走向死亡。仅仅是开发人员的概念可能会扩展到所谓的构建者。我认为每个人都将成为构建者。我认为软件将成为一件非常非常民主化的事情。
欢迎回到《光锥》的另一集。今天,我们有幸邀请到Windsurf的联合创始人兼首席执行官。
他实际上是将氛围编码带入现实的人之一。Varun,感谢你加入我们。感谢你们邀请我。Windsurf现在怎么样了?我们直觉上都知道,我的意思是,我们用它,但是,你知道,它现在有多大?它在哪里?是的,该产品已经有超过一百万的开发人员使用过它作为
现在每天有数十万活跃用户。它被用于各种用途,从修改大型代码库到极其快速地构建应用程序,从零到一。我们非常期待看到这项技术的未来。——让我们谈谈实际情况。你是如何开始的?——公司实际上是四年前成立的。
我们一开始并不是Windsurf。我们最初是一家名为Exafunction的公司。当时我们是一家GPU虚拟化公司。在此之前,我和我的联合创始人曾在自动驾驶汽车和AR、VR领域工作,我们相信深度学习将改变从金融服务到国防再到医疗保健的许多行业。你是对的。是的,是的。
但我们的时机可能不对。最终,我们构建了一个系统,使运行这些深度学习工作负载更容易。类似于VMware对计算机和CPU所做的工作,我们对GPU也做了同样的事情。然而,到了2022年中期,
当时发生的事情是,我们正在为少数几家公司管理超过10000个GPU,并且我们的收入已经达到数百万美元。但是,Transformer模型变得非常流行,例如OpenAI的DaVinci模型。我们觉得这将从根本上扰乱
我们当时拥有的业务,或者说我们当时拥有的那家小公司,因为我们觉得每个人都会运行这些Transformer类型的模型。在一个每个人都将运行一种模型架构——Transformer的世界里,我们认为如果我们是一家GPU基础设施提供商,我们将被商品化,对吧?如果每个人都做同样的事情,我们的优势在哪里?所以当时我们基本上说:“嘿,我们能否利用我们的技术,将公司整体转向做其他事情?”就是这样——这很可怕。是的。这是一个孤注一掷的时刻。我们在一个周末内完成了这一切。
所以,你知道,我和我的联合创始人周末进行了一次谈话,内容大致是:我认为这行不通。我们认为我们不知道如何扩展这家公司。当时,我们是GitHub Copilot的早期采用者。我们在周一告诉了公司其他员工,每个人都开始在接下来的周一立即开始从事Codium的工作,Codium是扩展产品。我只是很好奇想深入了解这个转型故事,因为它实际上非常罕见。
听到转型细节,尤其是后期转型细节。当你们决定转向Codium时,公司发展到什么程度了?有多少人?关于公司的一件事是,我想,我们试图在这里采用许多YC的类比,例如,拉面盈利能力,所有这些其他关键见解。当时我们只有8个人,尽管我们的收入有几百万美元。所以我们有点像自由现金流为正。当时是零利率的顶峰时期。所以公司成立了一年半。
我们当时不知何故神奇地筹集了2800万美元的现金。我认为我们心中的一大重点是,如果我们不知道如何扩展它,那么我们现在做得再好也没关系,
我们需要非常快速地改变一些事情。我想,值得注意的是,当你创办公司时,你有一个假设,你押注许多公司将构建他们自己的定制深度学习管道来训练鸟类,对吧?那是奏效的事情。
但在2022年,你看到了曲棍球棒式转变。突然之间,将出现一个模型来统治所有模型。所以你预示了很多未来。其中很多都来自于这种信念。所以我很想知道,那些迹象是什么?因为你也必须深深地融入其中。我们已经赚了七位数。你可以进行A轮融资。你就像,我们要把这一切都扔掉。
全部扔掉并烧掉。是的,实际上,即使令人难以置信的是,我们当时已经进行了A轮融资。好的,你进行了融资。但是我们是否应该能够进行融资是另一个问题。不,我认为你是完全正确的。我认为
当时发生的一件事是,我们主要与这些自动驾驶汽车公司合作,因为他们当时拥有最大的深度学习工作负载。我们开始看到,嘿,这个工作负载正在增长,而且很大。但我们从根本上押注其他工作负载,即这些其他自然语言工作负载,例如金融服务、医疗保健等行业的这些工作负载将会兴起。
但我认为,一旦我们看到这些模型,这些生成模型处理了如此多的用例后,对吧?也许一个例子是,过去,你会训练一个BERT模型来实际进行情感分类。但是很快,当我们尝试甚至是一个糟糕版本的GPT-3时,就像非常旧的版本,我们想,这将扼杀情感。
发送情感分类。没有理由任何人会再为这项任务训练一个非常定制的模型。我认为我们看到了预兆,我们的假设是错误的。这就是其中一件事。你带着对空间走向的某些假设进入,但如果你的假设是错误的,并且地面的信息发生了变化,你必须快速改变。那么你决定做什么?所以就像你决定,好吧,我们要转型。
当我们与创始人合作时,这有点像第一阶段。所以你不是半只脚进,半只脚出。你有了这种信念。我们需要尝试一些东西。你如何弄清楚下一步是什么?我认为我们需要选择一些公司每个人都会感到兴奋的事情。我认为,如果我们选择了一些我们认为可能有价值但人们并不兴奋的事情,最终我们会失败。
我们会立即失败。我们采取了一种有主见的立场,我们是名为GitHub Copilot的产品的早期采用者。我们认为这是这项技术发展方向的冰山一角。显然,公司里的每个人都是开发人员。开发工具公司通常做得不太好。过去他们没有做到。但是,嘿,当你没有其他选择时,这是一个非常简单的决定,对吧?就像你将成为一个零……
无论如何,可能性很高,你最好选择一些你认为可能有价值并且每个人都会有动力去做的事情。MARK MANDEL:现在每个人都忘记了这一点,感觉像是,因为GitHub Copilot在后台。但在那一刻,感觉Copilot势在必得,对吧?它拥有一切,例如GitHub连接、Microsoft分销。
Open AI。Open AI,是的。似乎没有人能够竞争。那么你如何有勇气说,哦,是的,我们完全可以击败Copilot?是的,这就是非理性乐观主义的部分。我之前对公司说过这一点,但我认为初创公司需要两种截然不同的信念,而且它们实际上……
有点像相互矛盾。你需要这种非理性乐观主义,因为如果你没有乐观主义,你就什么也不会做。你只是一个悲观主义者和怀疑论者。这些人实际上在生活中什么也完成不了。你需要不妥协的现实主义,那就是当事实改变时,你实际上会改变你的想法,对吧?而这两种都很难做到。因为让你通过非理性乐观主义取得成功的因素,就像,你知道,与让你成为一家非常现实的公司所需要的因素恰恰相反。
所以非理性乐观主义。我们基本上说,嘿,我们知道如何自己运行和训练模型。我们实际上自己训练了第一个自动完成模型,并在我们的产品上运行它,免费提供它。我认为我们没有关于这将走向何方的确切路线图,但我们只是觉得这里还有很多事情要做。如果我们做不到,那么我想我们会死。但我们不妨赌一把,我们可以做到。
你们早期的版本当时比Copilot,GitHub Copilot好吗?我们发布的早期版本实际上比GitHub Copilot差得多。唯一的区别是它是免费的。我们在转型后构建了一个VS Code扩展,我认为两个月后我们已经发布了该产品,并将其发布到Hacker News上,发布了一些内容到Hacker News上。嗯,我们,我们构建了它。它缺少许多关键功能。例如,我们正在运行的模型是一个开源模型。这远不如GitHub Copilot正在运行的模型好。嗯,
很快我们的训练基础设施得到了改进。所以我们实际上根据任务自己训练了模型。然后它突然获得了即使GitHub Copa在两个月内也没有获得的功能,基本功能。现在我们会发现这很有趣,它甚至是最先进的,但我们的模型实际上可以填写代码的中间部分。因此,当你编写代码时,你不仅只是在光标末尾添加代码,而且还在两行代码之间填充它,对吧?而且
这段代码非常不完整,看起来与这些原始模型的训练数据完全不同。因此,我们训练了我们的模型,使其能够胜任这项任务。这实际上使我们能够在质量、延迟方面领先。我们能够在几个月内控制很多细节。所以到了2023年初,我认为自动完成功能比Copilot好得多。
对你们来说,这是一个全新的功能吗?因为我们一直在构建GPU基础设施。听起来你基本上是通过将现成的开源模型放入VS Code扩展程序中,并将两者连接起来进行通信来拼凑出第一个版本的。但就在那之后,你必须从头开始训练你自己的编码模型。
你们一直在关注Transformer方面的内容,但你们并没有构建它。为了做到这一点,我似乎必须下载所有GitHub并从头开始训练整个模型。你们是如何在短短两个月内就弄清楚如何做到这一点的?是的,这是一个很好的问题。首先,当我们自己运行模型时,我们能够运行它并免费提供它的原因是,我们当时实际上拥有我们自己的推理运行时。
这显然来自于我们最初是一家GPU虚拟化公司的事实。因此,这使我们能够非常快速地使用开源产品发布vZero。在那之后,你是完全正确的。我们过去从未训练过这样的模型,但我认为我们聘请了聪明、有能力且渴望获胜的人。所以我们需要弄清楚。没有其他选择,对吧?否则你会死。
这使得决策变得非常非常简单。所以是的,我们必须弄清楚如何获取大量数据?如何大规模地做到这一点?如何清理这些数据?如何使其能够处理代码非常不完整的情况?在那之后,我们非常快速地发布了一个模型。哇。你们在两个月内用大约8个人完成了所有这些工作。是的,就是这样。然后就在那之后,因为你们正在运行自己的模型,
你开始获得有趣的客户,对吧?是的。基本上发生的事情是,该产品当时是免费的。因此,我们最终让许多开发人员在所有IDE中使用该产品。例如VS Code、JetBrains、Eclipse、Vim。公司开始联系我们,因为他们不仅想要以安全的方式运行该产品,还希望将其个性化到公司内部的所有私有数据。因此,很快之后,在接下来的几个月里,戴尔、摩根大通等公司开始成为我们的客户。
我们的产品。现在这些公司内部有数万名开发人员使用该产品,但我们开始真正关注公司,确保该产品适用于这些非常大型的代码库。其中一些公司的代码库超过一亿行代码。确保建议快速是一回事,但确保它实际上适合他们的代码库和环境几乎是一个要求。你进行了转型,你构建了它,
两个月,然后发布它,在几个月内你获得了这些大客户。是的。我的意思是,显然这些公司需要一些时间来完成交易,但试点项目在几个月或一个季度后就开始了。显然,我们公司没有销售人员,因此创始团队只是试图尽可能多地运行试点项目,以查看最终会有什么效果。你什么时候开始超越VS Code扩展,开始支持所有这些其他IDE?那实际上是在之后不久。你是如何考虑这个问题的?
你可以提出一个论点,那就是有很多VS Code开发人员。你们团队很小。你可以争辩说,我只是专注于为VS Code构建出色的体验。你只捕获了所有可能的VS Code开发人员市场的一小部分。但你并没有这样做。你非常快速地横向扩展,并为所有这些IDE构建了扩展。为什么?我认为根本原因是
我们认为至关重要的是,如果我们要与公司合作,公司拥有使用多种语言进行编程的开发人员。例如,像摩根大通这样的公司可能有一半以上的开发人员使用Java进行编程。对于这些开发人员来说,他们将使用JetBrains和IntelliJ。
IntelliJ目前是世界上所有Java开发人员的70%到80%。因此,我们将不得不拒绝许多公司。许多公司将无法将我们作为事实上的解决方案。我们将成为公司内部众多解决方案之一。因此,由于这个原因,我们做出了这个决定。但幸运的是,因为我们足够早地做出了这个决定,它改变了我们构建产品的方式,也就是说,我们并不是为每个IDE构建单独的版本。
我们有很多共享的基础设施,实际上是基于每个编辑器存在的。因此,实际上只需要编写非常少量的代码,以确保我们能够支持尽可能多的ID。所以这是我们做出的早期决定之一,最终使这种转变变得容易得多。Codium到Windsor的转变如何?当时,我们现在可能要到2023年中期了。我们开始与一些非常大的企业合作。在接下来的一年里,仅这些企业使用该产品,业务收入就超过了八位数。
我们还有免费的个人产品。但我认为我们都知道,这个行业的一个特点是,这个领域发展得非常非常快。我们基本上总是在对一些行不通的事情下注,对吧?实际上,我们公司做出的许多赌注都没有成功。当我说我很高兴的时候,我很高兴当我们,当我们,比如说我们正在做的只有50%的事情实际上奏效时。因为我认为当,如果我们正在做的100%的事情都奏效时,这对于我们来说是一个非常糟糕的迹象,因为它可能是一下三种情况之一。第一件事是,嘿,我们努力不够,对吧?这可能是它的意思。第二件事是我们不知何故非常自负,对吧?而自负就像,我们相信我们所做的一切都是正确的,即使是那些……
那些正在发生的事情。然后是这里面的第三个关键部分,我们实际上并没有以一种能够告诉我们未来走向的方式来检验我们的假设。我们实际上并不处于技术能力的最终前沿。因此,我们实际上在去年的年初就相信代理将非常巨大。我们在去年的年初就有了这方面的原型,但它们根本不起作用。
但是我们正在构建不同的部分,我们认为这些部分对于使代理发挥作用非常重要,即理解大型代码库、理解开发人员的意图、非常非常快速地在代码库上进行编辑。我们拥有所有这些部分。我们所没有的是一个能够足够高效地调用这些工具的模型。
然后显然在去年的年中,随着Sonnet 3.5的出现,这一切都发生了变化,对吧?有了它,我们基本上说,好吧,我们现在有了这些代理功能,但是我们可以在VS Code上向开发人员展示的内容的上限是有限的。
我们无法提供足够好的体验。我们认为将会发生的事情是,开发人员将花费更多的时间不是编写软件,而是审查AI将要发布的软件。我认为,我们从本质上来说是一家技术公司。我认为我们是一家产品公司。但我认为产品服务于技术,也就是说,我们希望使产品尽可能好,以便人们能够体验这项技术。
我们觉得在VS Code中我们无法做到这一点。所以去年年中,我们决定,嘿,我们需要实际走出去,实际……
拥有我们自己的ID。这就是触发创建Windsurf的原因。你们做到这一点的方式是分叉VS Code。我们分叉了VS Code。这是你们必须学习的一套全新的能力吗?就像基本上如何在这个VS Code代码库上进行开发一样,我敢肯定它非常复杂?是的,我们需要弄清楚这一点。这又一次,是另一个我们最终在项目启动不到三个月内就发布Windsurf的情况。
这就是我们在所有操作系统上发布它的时间。哇。发生了什么?它立即流行起来还是很久都没有人注意到?我认为它很快就流行起来了。我认为它在早期采用者中的流行速度非常快。显然有一些非常粗糙的边缘。这是其中一件事,由于这些粗糙的边缘,显然人们开始相当快地进出该平台。但我们看到的是,随着我们改进代理的功能,随着我们改进被动体验的功能,即使是被动选项卡体验在过去几个月也取得了巨大的飞跃。我们开始意识到,人们不仅越来越多地谈论该产品,而且人们在该产品上的停留时间也越来越长,停留率也越来越高。有多少人参与了Windsurf的发布?并且是在
在一个或两个月的时间内完成的?几个月。是的,不到三个月。这是另一个……我不会说这是一个孤注一掷的时刻,因为它与从GPU虚拟化产品转向AI代码产品相比,它并不是一个根本不同的范例。但是是的,任何能够参与其中的人都需要放弃他们过去的工作,并立即开始工作。当时,你们有多大规模?工程团队可能……
仍然不到25人。哇。这太疯狂了。有趣的是,我们公司实际上,从员工的角度来看,实际上并没有那么少的人。我们实际上有一个相当庞大的市场营销团队,因为在AI领域,与大多数其他公司相比,我们公司有点奇怪的一点是,我们有一个相当庞大的市场营销团队。我们正在将我们的产品销售给最大的财富500强公司,并且
仅仅让他们刷信用卡是很困难的。你需要很多支持。你需要确保这项技术得到正确的采用,这与仅仅向人们提供产品并观察其有效增长非常不同。因此,从工程的角度来看,我们一直运行得相当精简。
但由于市场需求,我们一直有很多市场营销人员。谁是进入该职能的理想人选?是那些想要前沿部署的优秀工程师吗?是的。我们有两个组成部分。我们有客户主管。所以这些人……
总的来说,我们试图找到对这些能力感到非常好奇和兴奋的人。事实上,那些会在业余时间使用Windsurf的人,因为他们正在向也热爱软件和技术的领导者提供产品,对吧?因此,如果他们完全不了解这项技术,他们将不会有帮助。然后我们还有这些部署工程师之类的角色,就像你所说的那样,他们……
亲自动手操作这项技术,并确保我们的客户从这项技术中获得最大的价值。我的意思是,奇怪的是,因为每个人都使用Windsurf,听起来你甚至让这些非技术人员的客户主管成为氛围编码的冠军。是的。我们公司使用Windsurf最多的用户之一是非技术人员,他负责公司的合作伙伴关系。他实际上被……
购买公司内部的一堆销售工具,而这是其中一件事,我认为Windsurf正在将权力交还给领域专家,过去在组织中会发生什么,他需要与产品经理交谈,产品经理会与工程师交谈,而工程师会有大量的积压工作,因为这显然不会立即使产品更好,对吧,所以这必须是较低的优先级,但现在他实际上有点……
有权去构建这些应用程序,你根本没有任何编程背景吗?没有,这很有趣,因为这绝对是目前Twitter上的一场争议,就像氛围编码一样,除非你已经了解一定程度的编码,否则你实际上能否进行氛围编码?是的,我们确实有一件事,如果我们需要部署这些应用程序中的一个,我们有一个专门负责确保这些应用程序安全可靠地部署的人,但他所拥有的影响力是惊人的,而不是让他去构建所有这些应用程序……
v0实际上可以由公司内部的领域专家而非技术人员构建。随着Codium的发布,你们正面迎战微软和GitHub以及这些大型的现有公司。随着IDE的发布,你们正面迎战Cursor。我认为它是目前最热门的初创公司。
无论如何,你们是如何在内部考虑这个问题的?这可能是我们公司的一个奇怪之处,但我们公司根本没有——士气并没有受到其他公司行为的影响。如果……我们公司经历了很多基本上非常动荡的时期。我们需要在10名员工的情况下进行转型,并完全放弃我们的想法,这对公司来说是一件正常的事情。
然后其次,就像我们领域中相关的公司一样,它始终是一组不断变化的公司。例如,我非常尊重我们领域中的所有公司,但是是的,Copilot,如果你要回到2023年初,每个人都会认为GitHub Copilot是每个人都会使用的产品
会使用,而且没有必要构建。在中间,Devin出现了,每个人都像,嘿,Devin将解决一切。对。我相信他们现在做得很好。但是,在那之后,显然,Cursor做得非常好。所以我认为对我们来说真正重要的是,我们是否真的有良好的长期战略?我们是否正在以一种朝着长期战略前进的方式执行,同时灵活处理细节?对。只要我们这样做,
我认为我们有机会获胜,对吧?这就是我们一直以来的运作方式。你是否会学习竞争对手的产品?是的。是的。我认为我们不想把头埋在沙子里,告诉自己我们的产品很棒。而且,因为这样做很容易,尤其是在我们从事Windsurf之前,公司从收入的角度来看也发展得非常非常快。你对完整的IDE平台有什么样的看法?或者你对什么样的看法感兴趣?
这可能与 Cursor 不同。我实际上只是想问的是,Cursor 是一款非常受欢迎的产品,显然如此。所以在产品层面,我们为什么说,哦,是的,我们实际上想这样构建它?是的。不,我认为这是一个很好的问题。所以也许第一点是,在我们开始开发 Windsurf 时,所有的产品基本上都是聊天和这种自动完成功能。我认为这基本上就是 GitHub Copilot,当时 Cursor 也是如此。我认为我们采取了一种非常武断的立场,我们认为代理……
是技术实际发展的方向。我们是第一个出现的代理编辑器。而且……
我认为最大的收获是我们不相信这种范式,即每个人都会提及所有内容。对。这几乎让我们想起了 Google 和搜索引擎在 Google 大幅改进其产品之前的反模式,这有点像那些包含您可以搜索的每种不同类型内容的登录页面。但 Google 推出了一个非常简洁的搜索框。即使是当时的 Google,如果你写了,你也会得到更好的答案
或类似 SiteLink。现在它已经好多了,对吧?我想我们相信软件会变得越来越容易构建,对吧?我们将以此为起点进行构建。当我们看到该领域的其他参与者以我们认为现在对技术来说对用户来说很好,但在未来会变得不必要的方式使他们的产品如此可配置时。因此,我们投资了诸如如何深入了解代码库以
了解开发人员的意图。你如何真正地快速地对代码库进行更改?因此,我们采取的方法是,嘿,与其拥有这个只读系统来标记所有内容,不如考虑一下如果您可以非常快速地进行更改会发生什么?这就是为什么当时我们是第一个这样做的人。现在,如果你要问,现在这是一个非常明显的决定吗?我认为现在很明显了。看起来很明显。这就是我认为任何初创公司都必须不断证明自己的事情之一。
对。就像我们拥有的每一个见解都是一个贬值的见解,是一个非常非常贬值的见解。就像技术一样。公司在任何特定时间获胜的原因不是因为他们拥有技术。他们有技术洞察力。
比如一年前,对吧?实际上,如果一家公司获胜,除了他们拥有垄断地位之外,实际上就像一种不断累积的技术优势,一次又一次地存在。我认为我最兴奋的例子是,你看看像英伟达这样的公司。如果英伟达在未来两年没有创新,AMD 将会
紧追不舍,对吧?到那时,英伟达将无法获得 60%、70% 的毛利率,对吧?即使它现在是世界上最大的公司之一。通过从一开始就拥有良好的见解,您可以从市场中学习,并随着时间的推移将这种优势复合。而这才是唯一可能持续存在的东西。
听起来护城河是,你知道的,我们把它看作名词,但它实际上是一个动词。是的,随着时间的推移可能会发生变化的东西,对吧?我也认为对我们来说,我告诉公司这一点,如果我们不继续拥有见解,这就是为什么我完全可以接受我们的许多见解是错误的。如果我们没有不断地执行我们正在执行的见解,我们只是在慢慢地死去。这就是正在发生的事情。我认为有趣的是
现在回顾并连接你旅程中的点点滴滴更容易了,你所做的许多技术赌注最终确实加剧了 Windsurf 最终成为的样子,对吧?就像你非常擅长 GPU 部署、VMware 优化最终成为擅长闪电般快速的自动完成的原因一样,因为它比其他产品更快,对吧?所以那种复合在那里。
你为企业构建所有这些插件,并且非常擅长阅读大型代码库。你做了一些与众不同的事情。当我们与 OIC 公司合作时,有很多产品……
CodeGen 工具使用向量数据库,因为我们与许多公司合作,这是许多人构建的方式的标准方法。但是你们做了非常不同的事情,对吧?是的。因此,我认为真正流行起来的一件事是这个术语 RAG 变得非常流行。是的,你听说过反 RAG。是的,我不知道我们是不是反 RAG。RAG 显然是有道理的。你确实想检索一些东西,并根据检索生成一些东西。所以我想这个想法是正确的。
一切都是检索增强生成。但我认为人们可能对 RAG 的实现方式过于武断。它必须是一个你出去搜索的向量数据库。我认为向量数据库是工具包中的一个工具。如果你要考虑用户最终想要什么,他们想要伟大的答案。
他们想要伟大的代理。这就是他们真正想要的。你如何最终做到这一点?你需要确保上下文中的内容尽可能相关。因此,我们最终所做的是拥有一系列系统,使我们能够使用最相关的代码片段来打包上下文。我们最终做到这一点的方式是,它结合了关键字搜索、RAG、抽象语法自由解析。然后在此基础上,使用您提到的所有 GPU 基础设施来获取代码库的大块内容,并实时重新排序,对吧?当查询进来时。
我们发现这是我们为用户找到最佳上下文的最佳方法。这样做的动机是因为人们的问题很奇怪。他们可能对大型代码库有一个问题,即升级此 API 的所有版本到此 API。如果嵌入式搜索只找到其中的五个,而不是十个,那不是一个非常有用的问题。
在那时,这是一个非常有用的功能。因此,我们需要确保精度召回率尽可能高,这意味着我们使用了一系列技术来获得最佳解决方案。许多人工智能初创公司正在兴起,对有效解决问题领域空间的问题采取了过多的智力捷径,这有点问题。但你从第一性原理出发,对吧?所以你构建了一个更
复杂的系统,它使用了 AST、Parsons、SyncStats3 等所有这些东西,这很酷。是的,我认为可能值得讨论的一件事是,我们一开始,许多公司都开始从事自动驾驶汽车的工作。之所以如此重要,是因为这些系统不能仅仅是 YOLO 系统,也就是说,你构建软件,然后让它运行。你需要非常好的评估。
我认为在公司里,我们并不追求复杂性。我们追求有效的方法。然后问题是,为什么系统现在变得如此复杂?这是因为我们构建了非常好的评估系统。MARK MANDEL:哦,很有趣。评估是如何工作的?MARK BLYTH:是的,代码的评估实际上非常酷。基本上,这个想法是代码——你可以利用代码的一个属性,它可以运行。
我们不仅拥有实时用户数据,我们现在可以将其放在一边,但我们可以获取许多开源项目并找到这些开源项目中带有测试的提交。所以你可以想象我们可以根据此做很多很酷的事情。你可以采取提交的意图
删除所有不是单元测试的代码,对吧?然后你可以看到,嘿,你能够检索需要进行更改的部分吗?你是否有良好的高级意图来进行这些更改?然后在进行更改后,测试是否通过?你可以完成这项任务。你可以掩盖这项任务。通过掩盖任务,它更像是 Google 任务。我的意思是 Google 任务试图预测你的意图,也就是说,假设你只输入了三分之一的更改。
但你没有得到意图。然后你能填写其余部分以使测试通过吗?所以有很多方法可以切分它,并且每一个都可以将其分解成非常细致的粒度。你可以说,我的检索精度是多少?我的意图准确性是多少?我的通过率是多少?我的测试通过准确性是多少?你可以做到这一点。然后你有一个需要攀登的山丘。我认为在你为这些 AI 应用程序添加大量复杂性之前,这实际上很重要。我认为你需要建立一个你可以真正攀登的严格的山丘。
对吧?否则你就是在黑暗中射击,对吧?如果不需要,我们为什么要添加 ASG 解析?实际上,如果不需要,那就太棒了,对吧?我不想在我们的代码中添加很多复杂的东西。事实上,我希望最终产生最大影响的代码越简单越好。因此,评估对于我们在公司进行许多这些投资实际上非常非常关键。你所做的开发有多少是
基本上是由提高评估分数驱动的,而不是基于氛围的。就像你们自己都在使用 Windsurf 一样。你一直在从用户那里获得反馈。然后你有一种感觉,这东西会变得更好。然后评估只是某种检查,你没有搞砸其他东西。两者都有点,但显然对于某些类型的系统,我认为评估比氛围更重要。
但比氛围更容易,仅仅是因为对于基本上获取代码的大块内容、将其分割并将其并行传递给数百个 GPU 的系统,在一秒钟内给你一个结果。很难直觉地判断,这是否更好?因为这是一个非常复杂的检索问题。但另一方面,从氛围的角度来看,有很多更容易的事情是有价值的。如果我们查看代码库中的打开文件怎么办?这实际上是一个更难评估的事情。
因为当你进行评估时,你不知道用户正在实时做什么。在这种情况下,拥有市场上的产品对我们有很大帮助。我们能够获取大量关于人们如何使用产品来积极改进产品的使用数据。所以这可能始于氛围,然后之后你可以构建评估。
所以基本上两者都有点。PRIYANKA VERGADIA:我认为互联网上有很多关于 VybE 代码仅适用于玩具应用程序的讨论。Windsurf 实际上被用于真实的生产大型代码库。你能告诉我们高级用户如何使用它来进行更多
更硬核的工程。这是一件很有趣的事情,我们公司很多人,我不是说这是常见的,并没有像世界上其他很多人那样从 ChatGPT 中获得巨大的价值。这并不是因为 ChatGPT 不是一个有用的产品。我认为 ChatGPT 是一款非常有用的产品。
实际上是因为他们当时已经使用了 Stack Overflow 之类的东西。对于你想要的那种问题,Stack Overflow 比 ChatGPT 更糟糕。但这只是他们已经知道如何使用的东西,对吧?因此,他们能够避免使用或依赖聊天。但基本上发生的事情是最近使用代理……
代理正在随着时间的推移进行越来越大规模的更改。我认为我们公司现在开发人员所做的是,他们感受到了这个产品的起伏,也就是说,如果你没有提供足够的意图,它实际上会比你实际需要的更改更多的代码。对。这现在是该工具的一个真正的问题。但他们了解起伏。现在他们第一次有任务时,他们会将其放入 Windsurf。他们不是
他们的第一件事不是实际地在编辑器中输入。而是实际输入意图并实际进行这些更改。他们现在正在做一些非常有趣的事情,例如将我们的软件部署到我们的服务器现在已经完全在 Windsurf 内部构建的工作流程中完成。因此,许多样板和重复性任务已完全从我们公司中消除。但之所以可能
是因为我们能够非常有效地在拥有数百万行代码的代码库上运行。如果你要给观众一些提示,用户应该如何正确使用 WinServe 来提供这种意图,以便更改更精确?因为你所说的
代理创建所有这些广泛的更改。我见过这种情况发生。但是你如何获得这些精确的更改?你做什么?你如何喂养系统?你如何成为……用大写字母大喊它,对吧?是的。不,我认为这是那些我认为……
你需要对系统有一点信心,让它有点乱,这有点可怕。因为我认为大多数人,大多数情况下,他们会很快放弃这些工具。显然,我们公司没有人会放弃这个工具,因为他们自己正在构建这些工具。我认为人们的期望很高。也许这就是我想给出的主要反馈,那就是,你知道,我们的产品实际上对于这些越来越大的变化,它可能会正确地进行 90% 的更改。但如果 10% 是错误的,人们就会……
放弃整个工具。我认为在那时,实际上正确的事情是撤消更改,我们有能力撤消更改,或者继续进行并查看它最终会走向何方。也许最重要的方面是
尽可能频繁地提交你的代码。我认为这也许是最大的提示,那就是,你知道,你不想陷入你已经进行了 20 次更改,并且在此基础上自己进行了一些更改,你无法撤消它的境地。然后你最终会非常沮丧。我想到的一件事是,我们是否需要改变 Git 与这种 AI 编码方法的工作方式。
你是否想过,一直进行 Git 提交是否是正确的做法,或者是否需要进行更深层次的基础设施更改?是的,我认为我们已经考虑过了。我们总是想到的一件事是,将来,你将拥有许多代理在你的代码库上并行运行。这有一些权衡,对吧?如果你有两个代理同时修改同一部分代码,很难知道发生了什么。另一件事是很难同时检出多个分支。是的。
不同的代理独立地处理它们。没错。哦,合并冲突。哦,上帝。有很多这样的情况。但是嘿,这就是真实的软件开发的工作方式。当许多工程师在一个代码库上工作时,他们都在同时处理代码库。所以这不是一件非常独特的事情。我认为 Git 是一款很棒的工具。我认为也许是一个问题,如何调整 Git 以使其适合此产品界面?一个例子是 Git 有这些叫做工作树的东西。
就像你可以拥有同一个目录中的许多工作树和存储库版本一样。也许你可以让许多代理在不同的工作树上工作。或者,与其向你公开分支概念,不如你自己维护一个分支,你可以反复将其应用于用户的多分支。我们公司考虑的一件事,关于我们为什么认为我们的代理非常好,是我们试图对发生的一切拥有统一的时间线。
统一的时间线不仅仅是开发人员做了什么,而是开发人员所做的事情以及代理所做的事情。实际上,我们的产品,如果你最终在编辑器中做事情,如果你最终在终端中做事情,所有这些事情都会被捕获。意图实际上是以这样一种方式跟踪的,即当你使用 AI 时,AI 在那种情况下知道。所以在某种程度上,我们希望这样一件事情,即代理不是在完全不同的时间线上运行,而是以相当高的频率合并的东西。
我认为这是一个开放性问题。我不认为我们对此有完全正确的答案。你设想未来 Hrf 会发生哪些其他变化?它将如何发展?可能很多人认为氛围编码是一种,一种时尚,但我认为随着时间的推移,它会变得越来越强大。我认为,每当我听到有人说,嘿,这对这个复杂的用例不起作用时,它就像,
这感觉像是一个卢德分子在说些什么。就像,如果你看看这些,这些,呃,这些 AI 如何逐年变得更好,这实际上,这令人震惊。我给你举一个我非常珍惜的例子,那就是,你知道,有一个叫做 Amy 的数学奥林匹克竞赛。我过去在高中时做过,呃,做过。嗯,我对我的表现感到非常兴奋。我,
我的最高分接近 14 分。这是一个非常高的分数。但令人疯狂的是,这是我认为,哇,像 AI 系统一样,他们不会变得那么好。去年年初,可能远低于 5 分。现在 OpenAI 发布的平均分是 14.5 到 15 分,对吧,对于 04 mini。所以这几乎就像你必须继续——
预测这一点,对吧?它会变得疯狂。基本上,软件开发生命周期的每个部分,无论是编写代码、审查代码、测试代码、调试代码、设计代码,人工智能都将很快增加 10 倍的杠杆作用。
它发生的速度将比人们想象的要快得多。回到你目前的工程团队,我只是很好奇,如果他们从不必处理版本升级和无聊的样板工作中解放出来,他们会把额外的时间花在哪里?关于我们公司以及在这个领域构建的每个初创公司的一件事是,技术可以达到的上限非常高。
非常高。所以实际上,你知道,如果开发人员可以花更少的时间做样板工作,他们可以花更多的时间测试他们不确定是否有效的假设,对吧?在某种程度上,工程变得更像是一种研究文化,对吧?你可以在那里非常快速地测试假设。这有一些很高的周期时间与之相关,对吧?你需要出去实施事情。你需要构建评估。你需要与我们的用户一起测试它。但这就是使产品变得更好的事情。
这意味着你将来会招聘不同类型的工程师吗?你在寻找不同的东西吗?是的,我认为对于我们招聘的工程师,我们希望寻找具有真正高自主权、愿意犯错和大胆的人。但奇怪的是,我不知道这是否对初创公司有所改变。
初创公司永远不应该招聘那些加入公司的原因是为了非常快速地编写样板代码的人。因为在某种意义上,这不是目标,但即使初创公司拥有极其丑陋的代码,他们也可能成功。
MARK MANDEL:对。这通常不是初创公司失败的原因。MARK BLYTH:听起来像我的初创公司。MARK MANDEL:是的,是的,没错。这通常不是初创公司失败的原因。初创公司失败的原因是他们没有为用户构建一个差异化良好的产品。这就是他们最终失败的原因。MARK BLYTH:这是真的,但实际上,你总是需要一些主力来完成某些事情。我觉得在过去,这就像构建 Android 应用程序一样。就像你会雇佣某人来做这件事,因为很少有人愿意这样做。MARK BLYTH:是的。MARK BLYTH:也许在你的设想中,
对于工程来说,你不需要这些人。这实际上不再是组织中一项有用的技能,因为人工智能就像你无限的主力一样。公平吗?是的。也许软件中真正利基的方面,对于很多人来说是不受欢迎的,除了少数人之外,这些东西变得更加民主化,除非它具有很多深度,至少目前是这样。是的。如果有什么事情是,嘿,你
你知道,我们需要更改系统以使用新版本。并且总有人深入研究版本更改。我认为你公司内部没有只专注于此的人。你如何面试人们?是的,我认为我们有一个相当严格和高技术门槛。这结合了我们进行的面试,实际上允许人们使用 AI 来解决问题。
因为我们想验证人们是否讨厌这些工具。仍然有一些开发人员这样做。显然,如果你这样做,我们可能不是你应该工作的公司。但与此同时,我们确实进行了一些面对面的面试,在那里我们不给他们 AI,我们想看看他们的想法,对吧?如果最终当某人需要编写嵌套 for 循环时,他们需要去使用 chat GPT,那将是一件坏事,对吧?我并不是说这是根本原因,因为它只是
感觉这对于解决问题的能力来说是一个很好的替代。我认为解决问题的能力在高层次上仍然应该受到重视。这是人类拥有的宝贵技能。
是的,我们与许多公司谈论过的一个挑战,我们自己也遇到过,那就是 Windsurf 已经变得如此出色,以至于如果你给人们 Windsurf,很难提出一个 Windsurf 不能一次性解决的面试问题。任何人都可以做到,因为你只需将问题复制粘贴到 Windsurf 中并按 Enter 键即可。所以你实际上并没有评估任何东西。是的。我实际上认为这是真的。你是完全正确的。有
现在很少有像 04 Mini 这样的东西无法解决的问题了。对。我的意思是,如果你看看竞技编程,它在这个时候已经独树一帜了。令人疯狂的是,面试的本质将是某种孤立的问题。
对吧,因为如果问题实际上需要如此多的理解才能做到,你就无法解释这个问题,所以这非常适合 lms,你给他们一个孤立的问题,在那里你可以非常快速地测试和运行代码,所以是的,你是完全正确的,就像我认为如果你告诉如果你的面试只有算法问题,并且你让人们使用 ai
我不知道。你实际上并没有测试任何东西。这意味着你已经不再只是算法问题,而是提出不同的、更难的问题,这些问题实际上非常适合使用 AI?是的,我们显然有一些问题是系统设计加上算法相关的,但这些问题是相当开放式的,对吧?可能没有正确的答案。你可以最终做出权衡。我认为我们想做的是看看人们的想法
对。鉴于不同的权衡和不同的约束。对。而且我们试图验证智力好奇心。对。如果有人最终说,我不知道为什么,为什么,为什么,这完全没问题。只要他们已经达到了我们认为能够显示兴趣、兴趣和良好的解决问题能力的深度,如果这说得通的话。你可以看出某人是否好奇。对。并且想要学习东西。
这非常明显。接下来的想法,这可能与直觉相反,你处于构建所有这些 AI 编码工具的最前沿。它根本没有影响你的招聘计划。相反,你实际上需要更多工程师来执行。告诉我们更多关于这方面的信息。所以我认为这归结为,我认为这个问题的上限非常高,对吧?我们还有很多事情想做。公司的使命是将构建技术和应用程序所需的时间减少 99%。
要做到这一点需要付出很多努力。现在,当然,我们公司中的每个人都比一年前更有生产力。但为了实现这一目标,我认为这是一项艰巨的任务。我们需要开始瞄准更多开发体验,对吧?现在,我们已经帮助解决了代码编写过程中的很多问题
也许还有代码流程的导航。但我们并没有过多涉及设计流程和部署流程。调试过程现在相当粗糙。如果我要仔细观察,还有很多不同的部分。比如,你知道的,如果你说你有100个单位的时间,我们有一把斧头。我们在那个时间里可能砍掉了40或50个。但现在还有很多片段我们需要基本上砍掉。当我使用Windsurf时,我的感觉是……
通常,不同技术组件之间的桥梁极其缓慢,在不同的程序之间来回复制粘贴数据……这可能仍然占据了你大量的时间。所有组件都变得如此之快,现在就像它们之间的粘合剂。但我就是粘合剂,但我速度慢得多。是的。
我可以偏离主题问一个奇怪的问题吗?尽管问吧。好的,其中一件事情是,我的意思是,我认为我们团队的Pete,他刚刚发表了一篇关于提示的文章,你应该让用户访问系统提示。他提出的另一个我们一直在YC内部使用的想法是一个新的代理基础设施,它可以直接访问我们的记录系统,我们的Postgres数据库。
在这个过程中,我们开始意识到,如果CodeGen变得更好,根据这次谈话,我认为我们可以指望它从这里开始变得好10倍,100倍。如果不用构建打包软件,而是代理根据你的需要即时构建软件,会怎么样?这是否会改变……
以及SaaS的性质,以及Windsurf中我们所有人的命运?我不知道。我认为开发人员的概念可能会扩展到所谓的构建者。我认为每个人都将成为构建者,他们可以决定要深入到什么程度来构建事物。也许我们目前的开发人员可以足够深入地构建更复杂的事物,对吧?短期内。但是的,我认为软件将成为一件非常非常民主化的事情,对吧?我设想一个未来,在这个未来中,
当你询问AI助手时,实际上会发生什么,“嘿,帮我构建一些可以追踪我卡路里摄入量的东西”。你为什么要有一个非常定制的应用程序来做到这一点?这可能需要来自你的AR眼镜的所有输入等等,并生成一个定制的软件,就像一个应用程序在那里。它有任务会告诉你,呃,你知道的,你是否按照你正在消费的卡路里来进行。嗯,
我认为这是一个非常非常定制的软件,你可以为自己保留并不断调整。我可以想象这样的未来,实际上每个人都在构建,但人们不知道他们在构建什么软件。他们只是,他们只是在为自己构建能力和技术。有多少人使用Windsurf完全不会编写代码?是的。
实际上,我们的大量用户都是这样。是的,很有趣。他们是如何开始使用Windsurf的呢?比如,他们在某个公司工作,一些程序员向他们展示了如何使用它吗?比如,我倾向于认为Windsurf的目标是更像专业开发人员市场。这就像使用它作为一种新的超级能力,而不是像Gary所说的那样,非技术用户市场。我们对此也很震惊,因为我们想,嘿,我们的产品是一个ID,但实际上有一部分非微不足道的开发人员从未打开过
编辑器,他们只是,你知道的,我们的代理叫做Cascade,对吧?只需在Cascade中使用,我们就有浏览器预览。因此,他们只需打开浏览器预览。他们可以点击事物并进行更改。好处是,因为我们了解代码,当他们回到存储库并且代码实际上变得相当复杂时,我们实际上能够从开发人员或构建者离开的地方继续进行。我会说我们还没有针对这种情况进行大量的优化,
但实际上发生的事情令人难以置信。你认为从长远来看,这最终会成为一个针对这两个受众的产品吗?或者你认为实际上针对不同的受众有不同的产品?有一个Windsurf,专注于想要查看代码并深入细节的资深开发人员。然后可能还有其他产品面向完全是非技术人员,甚至不想查看代码的人。我不知道长期会是什么样子。有什么东西告诉我它会变得更加统一。但我只想说的一件事是,作为一家初创公司,即使我们确实有很多员工,我们内部所能关注的事情也是有限的。
因此,对我们来说,我们不会专注于如何为开发人员构建最佳体验,以及为非开发人员构建拥有如此多功能的体验。但我必须想象,随着你越来越擅长理解代码,构建技术的这个想法将能够为非开发人员提供良好的体验。
同样,但我不知道路径依赖是什么。我认为该领域的许多公司将从非开发人员转向支持编辑代码的能力,对吧?我认为我们已经开始看到这一点,你知道的,界限现在变得模糊了。你可能至少会在你的评估中关心它。
是的。不,你需要。你需要在你的评估中关心它。也许这对我来说很难想象纯粹的非开发人员产品。如果你不理解代码,你正在攀登什么高峰?你怎么知道你的产品越来越好?这是一个悬而未决的问题。你是否完全依赖于基础模型的改进,这很好,但你应该想象你的产品是在基础模型之上的一层极其轻薄的层,这是一个令人害怕的地方,对吧?这意味着你将在
所有不同的轴线上受到竞争。MARK BLYTH:你通常是如何考虑这个问题的?我们在本播客中讨论了很多,我觉得GBT包装的梗已经完全消失了。尽管来自实验室的每一个重大发布都会让它稍微回归一点,每个人都有一点害怕OpenAI会吞噬一切。你对此是如何考虑的?
我认为我考虑这个问题的方式是,是的,正如我之前提到的,公司是一个不断变化的目标,也就是说,今天,如果我们生成大约80%、90%的所有已提交软件,我认为当新的模型出现时,我们将需要提升我们的水平。我们不能停留在同一阶段。也许我们需要生成95%的所有已提交代码。我认为我们的机会在于基础模型与100%之间的差距,对吧?
只要我们能够继续提供一种体验,在这种体验中,两者之间存在差距,我认为存在差距,只要体验中存在任何人工参与,就会存在差距。我们将能够继续构建事物。但这对我们来说是一个不断变化的目标,对吧?所以你可以想象,当一个新的模型出现时,也许基础模型本身提供的基线已经翻倍了。我们在基础模型之上提供的alpha也需要翻倍。对我来说,这之所以不是最令人担忧的原因是
假设你采用基础模型,它提供了90%。它将所需时间减少了90%。这实际上意味着,如果我们能够再提供1%或2%的百分点,那就是在……
新的基线之上获得了20%的收益,对吧?我想如果90%变成92%或93%,这在那个时候仍然非常非常有价值,因为实际上90%对每个人来说都变成了一个新的基线。所以我认为我们运作方式的基本原理是,我们如何才能提供尽可能多的额外价值?只要我们关注这一点,我认为我们会做得很好。你对在我们这样的AI编码领域的初创公司有什么建议?我们有很多这样的公司。你认为哪些机会对新的初创公司来说是开放的?是的。
我看到很多我认为可能特别有趣的事情。我认为我们还没有真正采用这些技术中的任何一种,但是人们构建软件的方式有很多不同的部分。我不会说利基市场,但是有很多不同类型的负载。我还没有真正看到该领域有很多初创公司,它们只是说,我们做得非常好。我给你举个例子。我们做得很好,比如Java迁移。令人难以置信的是,如果你看看这个类别,人们在这方面花费的金额是
可能是数十亿美元,如果不是数百亿美元的话,每年都在进行这些迁移。这是一个巨大的类别。这是一个例子。从什么迁移到什么?例如,这实际上有点疯狂。JVM 7到8之类的东西。是的,JVM 7。Rails版本。实际上比这更多。很多公司编写COBOL,拥有COBOL。令人难以置信的是,大多数IRS软件都是用COBOL编写的。显然,在21世纪初,他们试图从COBOL迁移到Java。我认为这是一个,
一个超过50亿美元的项目。不出所料,它没有成功。你认为他们现在可以一次性完成吗?我不知道他们是否可以一次性完成。我只是在开玩笑。但是想象一下,如果你能够很好地完成这些任务。这是一项在经济上非常有价值的任务。我认为我们显然没有能力在公司内部关注这些事情。如果你能够在那里做得很好,这是一个非常令人兴奋的领域。第二个关键点是,开发人员做了很多事情,这些事情也没有让产品变得更好,但很重要,比如自动重新利用
解决软件中的警报和错误。这也是一个巨大的、巨大的支出。我很想知道,该类别中最好的产品实际上是什么样的。我确信,如果有人真正深入研究这个问题,他们可以构建一个很棒的产品。但我认为我还没有听说过一个真正流行的产品。我认为这些实际上都是非常好的见解。我喜欢它们的一点是,这不仅仅是……
两个初创公司的一个机会。每一个都是一个可以容纳100家大型公司的桶。我们实际上有一家来自S21的公司叫做Bloop,它使用代理进行COBOL到Java的迁移。太棒了。是的,这是一个棘手的问题。这是一个非常棘手的问题,但如果你与任何存在超过30年的公司交谈,这可能每年都会花费他们数亿美元。
因此,回顾这段旅程,我的意思是,我们都非常感谢你创建了Windsurf。它现在正在增强整个社会的能力。你会对五年前在你开始这一切之前的那个人说什么?我会说的最重要的事情是,比你认为合理的要快得多地改变你的想法,对吧?很容易一遍又一遍地爱上你的想法。你确实需要这样做,否则你什么也做不成。但是
但是尽快转向,并将转向视为荣誉的象征。大多数人没有勇气改变对事物的看法,他们宁愿做他们告诉每个人他们正在做的事情而失败,也不愿改变主意,采取大胆的步骤并取得成功。Varun,非常感谢你今天加入我们。我们下次再见。