正文
为什么要打造 SWE-1?Windsurf 的解释是,想要将软件开发速度提升 99%。毕竟编写代码在软件工程中只占很小一部分,“能够编码”的模型并不能满足所有需求。
过去几年,能够编写代码的模型已经取得了长足进步。开发者对模型的期待已经从提供简短的自动补全建议,提升到了要能一次性、更加可靠地构建简单应用程序等。然而,Windsurf 认为,这些模型在其他一些层面似乎停滞不前:
首先,相信各位软件开发者都有共识,开发中有相当一部分时间并不是花在编写代码上。执行的任务类型越来越多、涉及的层面也更多,因此需要对模型抱有更高的期望。这些模型不仅要能够读写代码,还要能够在终端中工作,访问其他知识和互联网资源、测试并使用软件产品,乃至理解用户反馈。总之,软件开发者在代码编写之外需要完成的工作,大模型也应当尽量接管。
其次,每位软件开发者都很清楚,上述各个层面的工作推进起来极其耗时,而且整个过程就是由一个个未完成的状态构成的。如今,最强大的基座编码模型仍然以战术目标为切入点进行训练,即最终代码能否编译并通过单元测试。但对实际开发者而言,单元测试只是整体工程问题中的组成部分。当下,实现某项特定功能的方法有很多,但能保证一项功能可在未来多年内稳定使用的好办法却少之又少。正因为如此,Cascade 模型在用户主动指导下表现优异,但独立运行时间越长则其性能越差。要实现更多工作流程的自动化,就必须打破这一限制。这要求对工程流程的完整复杂性进行建模:包括对未完成状态进行推理,并且可能会得出模棱两可的结果。
“在某种程度上,单纯提高编码水平并不足以让开发者或者模型在软件工程方面更上一层楼。我们的终极目标在于帮助软件工程师加速处理所有工作,换句话说,我们很早就意识到需要打造“软件工程”模型——即 SWE 模型家族。”Windsurf 表示。
基于对 Windsurf 编辑器使用方式的观察,Windsurf 着手打造出一套全新的数据模型(共享时间线,the shared timeline)和一套包含未完成状态、长时间运行任务及多个接口的训练方案。
“我们的初始目标是希望证明,即使对于规模较小、计算资源远低于研究实验室的工程师团队,同样可以通过这种方式获得前沿水平模型的性能。而 SWE-1 就是我们的初步概念验证。”Windsurf 表示。
对于 SWE-1 的表现,Windsurf 的评价是“接近所有前沿基础模型。更重要的是,它的表现优于所有非前沿模型以及开放权重类模型。”
为了摸清实际性能表现,Windsurf 在基准测试中进行了离线评估与生产实验盲测。
Windsurf 将 SWE-1 的性能与 Anthropic 模型家庭(Cascade 中广泛使用的模型之一)以及 DeepSeek 与 Qwen 中领先的开放权重编码模型进行了比较。
对话式 SWE 任务基准测试:以现有 Cascade 会话的中间为起点,使用完成一半的任务,Cascade 对下一用户查询的处理效果如何?根据有用性、效率、正确性以及目标文件的编辑准确率等指标的混合平均值打出的得分(10 分制),即代表可比较的性能结果。
Windsurf 认为,这项基准测试抓住了其率先在 Cascade 中提出的“人机交互”代理式编码的独特本质。毕竟模型本身还不完美,Windsurf 认为能否在已经完成了一部分的任务中与用户输入实现无缝对接,应当成为衡量模型实用性的重要指标。