SWE-1: Our First Frontier Models
https://windsurf.com/blog/windsurf-wave-9-swe-1
目次
パート1:SWE-1モデルファミリーの全貌
はじめに:ソフトウェア開発の新たな地平へ
ソフトウェア開発は、単にコードを書くだけの作業ではありません。要件定義、設計、テスト、デバッグ、ドキュメンテーション作成、チームとの連携など、多岐にわたるタスクが複雑に絡み合っています。Windsurfは、このソフトウェアエンジニアリングのプロセス全体を劇的に加速させることを目指し、その第一歩として「SWE-1」モデルファミリーを開発しました。
第1章:SWE-1モデルファミリーのご紹介
SWE-1ファミリーは、現時点で3つの異なるモデルで構成されています。それぞれのモデルが、ソフトウェア開発の特定の側面をサポートするように最適化されています。
セクション1.1:SWE-1とは?
コアメッセージ: Claude 3.5 Sonnetレベルのツール呼び出し推論能力を持ちながら、より低コストで利用可能な主力モデル。
SWE-1は、Windsurfの主力となるモデルです。高度なツール呼び出し(AIが外部のツールやAPIを適切に利用する能力)に関する推論能力を有しており、その性能はAnthropic社のClaude 3.5 Sonnetに匹敵すると考えられています。特筆すべきは、その高性能をより安価に提供できる点です。プロモーション期間中は、全ての有料ユーザーがユーザープロンプトごとに0クレジットで利用可能です。
セクション1.2:SWE-1-lite:より手軽な高品質モデル
コアメッセージ: 従来のCascade Baseモデルを置き換え、より高品質な体験を全ユーザーに提供する軽量モデル。
SWE-1-liteは、SWE-1よりも小型のモデルです。Windsurfの既存モデルであるCascade Baseと比較して、より高い品質を提供します。このモデルは、無料ユーザーを含む全てのユーザーが無制限に利用可能です。日常的なコーディング支援や、より軽快な動作が求められる場面での活躍が期待されます。
セクション1.3:SWE-1-mini:超高速・パッシブ体験を実現
コアメッセージ: Windsurf Tabのバックグラウンドで動作し、ユーザーの作業を邪魔することなく支援を提供する、小型かつ超高速なモデル。
SWE-1-miniは、非常に小型で極めて高速に動作するよう設計されたモデルです。この特性を活かし、Windsurf Tab(エディタ内でリアルタイムに候補などを提示する機能)のパッシブな体験(ユーザーが明示的に指示しなくても、状況を先読みして情報を提供するような体験)を支えます。無料・有料問わず、全てのユーザーがこの恩恵を受けることができます。
第2章:なぜSWE-1を開発したのか?
コアメッセージ: ソフトウェア開発の生産性を99%向上させるという壮大な目標達成のため、単なる「コーディング能力」を超えた「ソフトウェアエンジニアリング能力」を持つモデルが必要だった。
WindsurfがSWE-1ファミリーを開発した背景には、ソフトウェア開発のあり方を根本から変革したいという強い思いがあります。
セクション2.1:既存の「コーディング特化」モデルの限界
コアメッセージ: 近年、コーディング能力を持つAIモデルは目覚ましい進歩を遂げたが、「コードを書く」以外の多様なタスクや長期的な開発プロセスへの対応には限界がある。
ここ数年で、AIによるコード生成能力は飛躍的に向上しました。短いコードの自動補完から、簡単なアプリケーションを一度の指示で構築できるレベルにまで達しています。しかし、実際のソフトウェア開発は、コードを書く時間よりも他の作業に費やす時間の方が多いことも珍しくありません。
既存のモデルが直面するであろう限界点は、主に以下の2つです。
-
タスクの多様性への未対応:
ソフトウェア開発者は、コードを書くだけでなく、ターミナル操作、情報収集(インターネット検索など)、テスト、製品の試用、ユーザーフィードバックの分析など、多岐にわたる作業を行います。これらの作業を包括的に支援できるモデルが求められています。
-
長期的かつ不完全な状態への対応力不足:
ソフトウェア開発は、常に完成された状態ではなく、多くの「未完了」な状態を経ながら長期的に進行します。現在の主要なコーディングモデルは、主に戦術的な作業(最終的なコードがコンパイルできるか、ユニットテストをパスするかなど)に最適化されています。しかし、実際の開発では、今日の要件を満たすだけでなく、将来にわたって拡張可能で保守しやすい「良い」実装方法を見つけることが重要です。このため、ユーザーの積極的なガイダンスがあれば優れた性能を発揮するモデルも、自律的に長期間動作させると性能が低下する傾向が見られます。
前提知識:ユニットテストとは?
ユニットテスト(Unit Test)とは、ソフトウェアを構成する比較的小さな単位(関数やメソッドなど、いわゆる「ユニット」)が、個々に正しく動作するかどうかを検証するテストのことです。バグを早期に発見し、コードの品質を高める上で非常に重要な役割を果たします。
ある時点で、単にコーディング能力を向上させるだけでは、開発者やモデルがソフトウェアエンジニアリング全体でより優れた成果を出すことは難しくなります。Windsurfは、ソフトウェアエンジニアが行う「全て」を加速させることを目指しており、そのためには「ソフトウェアエンジニアリング」モデル、略して「SWEモデル」が必要であると認識していました。
セクション2.2:ソフトウェアエンジニアリングの複雑性への挑戦
コアメッセージ: SWE-1は、不完全な状態や曖昧な結果を含む、ソフトウェアエンジニアリングプロセスの複雑性全体をモデル化することを目指している。
Windsurf Editorの豊富な利用実績から得られた洞察に基づき、Windsurfは全く新しいデータモデル(共有タイムライン)と、未完了の状態、長時間実行タスク、複数の作業領域(エディタ、ターミナル、ブラウザなど)を包含するトレーニング手法を構築しました。
最初の目標は、研究機関に比べて小規模なエンジニアチームと少ない計算資源でも、このアプローチでフロンティアレベル(最先端レベル)の性能を達成できることを証明することでした。SWE-1は、その最初の概念実証(Proof of Concept)と言えます。
パート2:SWE-1の性能と評価
はじめに:SWE-1の実力を測る
SWE-1が実際にどの程度の能力を持っているのかを客観的に示すため、Windsurfはオフライン評価と本番環境での実験という2つのアプローチで性能を測定しました。
第3章:SWE-1のオフライン評価
コアメッセージ: 既存のCascadeセッションの途中からタスクを引き継ぐ能力と、最初からタスクを完遂する能力の両面で、SWE-1はフロンティアモデルに匹敵する性能を示した。
オフライン評価では、SWE-1の性能を、Cascade内で人気の高いAnthropic社のモデルファミリー(例:Claude)や、主要なオープンウェイトのコーディングモデル(Deepseek、Qwenなど)と比較しました。
セクション3.1:Conversational SWE Task Benchmark
コアメッセージ: 進行中のタスクに途中から参加し、ユーザーの次のクエリにどれだけ効果的に対応できるかを評価する。
このベンチマークは、既存のCascadeセッションの途中、つまりタスクが半分終わったような状態から開始し、Cascadeがユーザーの次の問い合わせにどれだけうまく対処できるかを評価します。0から10のスコアは、審査員による有用性、効率性、正しさの評価と、対象ファイルの編集に関する精度指標を総合したものです。
これは、WindsurfがCascadeで開拓した、人間とAIが協調しながらコーディングを進める「ヒューマンインザループ」型の対話的コーディングの特性を捉える上で重要だと考えられています。モデルが完璧でない限り、部分的に完了したタスクに対してユーザーの入力をシームレスに織り交ぜることができる能力は、モデルの有用性を測る上で非常に重要な指標となります。
セクション3.2:End-To-End SWE Task Benchmark
コアメッセージ: 会話の最初から、指定された一連のユニットテストをパスすることで、ユーザーの意図をどれだけ達成できるかを評価する。
このベンチマークは、会話の最初から開始し、Cascadeが特定のユニットテスト群をパスすることによって、入力された意図をどれだけうまく達成できるかを評価します。0から10のスコアは、テストの合格率と審査員の評価を総合したものです。
これは、モデルが人間の介入なしに問題をエンドツーエンドで解決する能力を捉えるためのベンチマークです。全てのモデルがますます人間の介入なしに動作できるようになるにつれて、これはますます重要なユースケースとなっています。
セクション3.3:評価結果の概要
オフライン評価の結果から、SWE-1はこれらのタスクにおいて、基盤モデル研究所のフロンティアモデルの領域内にあり、中規模モデルや主要なオープンウェイトの代替モデルよりも優れていると考えられます。絶対的なフロンティアではありませんが、主要なモデルと競争力を持つ可能性を示しています。
注意:ベンチマークの限界
これらのベンチマークスコアはモデルの特定の側面を評価するものですが、実際の開発現場での有用性を完全に反映するものではありません。多様な状況や個々の開発者のニーズによって、モデルの評価は変わる可能性があります。
第4章:本番環境での実験結果
コアメッセージ: 実際のユーザー利用データに基づいても、SWE-1は特にCascadeとの連携において業界トップクラスの性能を示した。
Windsurfは大規模なユーザーコミュニティを抱えているため、オフライン評価を補完するために本番環境での実験にも依存しています。これらの日次メトリクスを計算するために、一部のユーザーに対して、どのモデルにアクセスしているかを知らされずにブラインド実験を実施しました。モデルはユーザーごとに固定され、時間経過に伴う反復利用を測定できるようにしました。
ベンチマークとしてClaudeモデルを含めているのは、これらが歴史的にも現在もCascadeで最も一般的に使用されているモデルであるためです。
セクション4.1:Daily Lines Contributed per User
コアメッセージ: Cascadeによって書かれ、ユーザーが積極的に受け入れて保持したコード行数の平均。モデルの全体的な有用性を反映する。
これは、一定期間にCascadeが生成し、ユーザーが積極的に受け入れて保持したコードの平均行数です。モデルの貢献が各呼び出しでどれだけ役立つか、そしてユーザーが時間をかけてモデルを繰り返し使用し続ける意欲の両方を反映する、全体的な有用性の尺度です。
これは、積極性と提案の質のバランスだけでなく、出力速度やフィードバックへの応答性も反映する非常に示唆に富む指標であり、ユーザーが「リピート顧客」になることにつながると考えられています。
セクション4.2:Cascade Contribution Rate
コアメッセージ: Cascadeによって少なくとも一度編集されたファイルにおいて、Cascadeによる変更が占める割合。モデルの有用性を正規化した指標。
Cascadeによって少なくとも一度編集されたファイルについて、それらのファイルに加えられた変更のうちCascadeからもたらされたものの割合です。これは、ユーザーがそのモデルをどれだけ頻繁に使用したいか、そしてモデルがどれだけ積極的にコードを提供しようとするかを正規化した有用性の尺度です。モデルが編集するファイルのみを測定するため、使用頻度やモデルの編集傾向を制御しようとします。
セクション4.3:本番環境でのSWE-1の優位性
SWE-1は、ユーザーがCascadeと行うインタラクションの種類に合わせて構築され、過剰適合(特定のデータセットに特化しすぎること)されているため、これらの本番環境での実験で業界トップクラスに近い結果を示したことは、それほど驚くべきことではありません。
上記のグラフやチャートには、SWE-1モデルの中規模版であるSWE-1-liteも含まれており、同じトレーニング方法論で構築されています。これは他の全ての非フロンティア、中規模モデルをリードしており、全てのユーザー向けの無制限オプションとして、既存のCascade Baseモデルを置き換える予定です。
パート3:SWE-1を支える革新的アプローチ:「Flow-Aware System」
はじめに:Windsurf Editorがもたらした洞察
コアメッセージ: Windsurf Editorの活用から得られた「Flow Awareness」という概念が、SWE-1開発の鍵となった。
前のセクションの冒頭で「Windsurf Editorの豊富な利用実績から得られた洞察に基づき」と述べました。Windsurf EditorがSWE-1をどのように可能にしたのか、そしてなぜWindsurfのモデルが最終的に最高のモデルになると確信しているのかを説明する必要があります。それは、Windsurfがどのように段階的に反復できるか、つまり「Flow Awareness(フローアウェアネス)」にかかっています。
第5章:「Flow Awareness」とは何か?
コアメッセージ: ユーザーとAIの行動や状態がシームレスに共有され、互いに認識・活用できる状態。これを「共有タイムライン」という概念で実現する。
セクション5.1:共有タイムラインの概念
Flow Awarenessとは何でしょうか? Windsurfは、ユーザーとAIの包括的な状態がシームレスに絡み合うようにWindsurf Editorを構築しました。AIが行うことは全て人間が観察して行動でき、人間が行うことは全てAIが観察して行動できるべきです。この共有されたタイムラインの認識を「Flow Awareness」と呼び、そのためWindsurfは常に協調的なエージェント体験を「AI Flows」と呼んできました。
セクション5.2:Flow Awarenessがなぜ重要なのか?
コアメッセージ: AIが完璧でない現状において、人間が自然に介入し、AIがそこから学習・継続できる環境を提供することで、モデルの限界を常に把握し、改善に繋げることができる。
Flow AwarenessをサポートするEditorがなぜ重要なのでしょうか?簡単に言えば、どんなSWEモデルも本当に全てを独立して行えるようになるまでには、まだ時間がかかるでしょう。Flow Awarenessは、この中間期間において正しい形のインタラクションを可能にします。つまり、そのようなモデルができることは何でもやらせ、間違いを犯したところでは人間が介入して修正し、モデルは人間が行ったことを基に継続して構築していく、というシームレスで自然な切り替えです。
これは、Windsurfでは常に、この共有タイムライン内でユーザーの介入の有無にかかわらずモデルが完了するステップを見ることで、現在のモデルの能力の真の限界を把握していることを意味します。Windsurfは常に、大規模に、ユーザーが次にモデルで何を改善してほしいかを正確に把握しています。これが、今日のSWE-1のレベルまでモデルを急速に構築できた方法であり、最終的に最高のSWEモデルを構築できると信じている理由です。
第6章:Flow Awarenessの実装例:CascadeとTabの進化
コアメッセージ: CascadeやTabの主要機能は、このFlow Awarenessのビジョンに基づいて開発されており、ユーザーの行動や目標をより深く理解することを目指している。
実際、気づいたかどうかにかかわらず、共有タイムラインの構築は、Cascadeの多くの主要機能の指針となるビジョンでした。
セクション6.1:CascadeにおけるFlow Awareness
- テキストエディタの認識: Cascadeのローンチ時に強調されたことの1つは、テキストエディタでいくつかの編集を行い、Cascadeに「continue」と入力するだけで、Cascadeが自動的に行った編集を取り込むことでした。
- ターミナルの認識: その後すぐに、ターミナルの出力をFlow Awarenessに組み込み、コード実行中に遭遇したエラーをCascadeがシームレスに認識できるようにしました。
- ブラウザの基本的な認識: Wave 4では、Previewsの概念を追加し、Cascadeがユーザーが操作している、または関心を持っているフロントエンドコンポーネントやエラーの種類をある程度理解できるようにしました。
セクション6.2:TabにおけるFlow Awareness
Windsurfの全ては、Cascadeだけでなく、このFlow Awarenessの概念に基づいて構築されています。Tabも同じ共有タイムラインの概念に基づいて構築されています。Cascadeにコンテキストを追加すると、Tabにも追加されます。そしてそれは、固定されたコンテキストウィンドウに無作為に多くの情報を投入してきたわけではありません。ユーザーの行動と目標を最もよく反映する共有タイムラインを非常に慎重に構築してきました。これが、Windsurf版のTabが持つ特徴です。
- ターミナルコマンドの認識 (Wave 5)
- クリップボードにコピーした内容の認識 (Wave 5)
- 現在のCascadeの会話の認識 (Wave 5)
- IDE内のユーザー検索の認識 (Wave 6)
セクション6.3:共有タイムライン構築への継続的取り組み
Windsurfはランダムな機能をリリースしているわけではありません。ソフトウェアエンジニアリング作業の共有タイムラインの最もリッチな表現を構築するために、少しずつ進んできました。既製のモデルを使用している間でも、共有タイムラインに情報が存在するだけで、Windsurfのツールは大幅に改善されました。しかし今、独自のSWEモデルを使用することで、タイムラインを取り込み、タイムラインのますます多くの部分で行動を開始できるモデルを持つという、この好循環を本格的に始動させることができます。
パート4:今後の展望とまとめ
第7章:SWE-1のこれから
コアメッセージ: SWE-1は始まりに過ぎず、Windsurfは製品、インフラ、モデル開発の独自の強みを活かし、ソフトウェアエンジニアリング領域で最高のモデルを目指して投資を強化していく。
セクション7.1:継続的なモデル改善への投資
前述の通り、SWE-1は小規模ながらも非常に集中したチームによって、製品およびインフラ企業としてのWindsurfの強みを活かして達成されました。これは真にフロンティア品質のモデルを構築するための最初の試みを代表するものであり、結果を誇りに思う一方で、これが始まりに過ぎないことも認識しています。
セクション7.2:独自のフライホイール効果
Windsurfは、アプリケーション、システム、モデルという独自の好循環(フライホイール)の力を強調してきました。これは、Windsurfが運営するようなアプリケーションの表面と活動由来の洞察の規模がなければ、基盤モデル研究所自体でさえ持つことができないものです。
今後もSWEモデルファミリーの改善について、引き続き情報を発信していきます。Windsurfは、ユーザーに最高のパフォーマンスを同時に最低コストで提供するために、今後さらにこの戦略に投資し、ユーザーがWindsurfを使用してより大きくより良いものを構築し続けられるようにします。
おわりに:ソフトウェアエンジニアリングの未来を共に
SWE-1モデルファミリーと、それを支える「Flow Awareness」という革新的なアプローチは、ソフトウェア開発のあり方を大きく変える可能性を秘めています。Windsurfは、開発者の皆様がより創造的で生産的な作業に集中できるよう、ツールの進化を続けていきます。今後のWindsurfの進化にご期待ください。