ベンチマーク · agentic
SWE-Lancer
SWE-Lancer は、Upwork の実在するフリーランスのソフトウェアエンジニアリングタスク 1488 件からなるベンチマークで、実際の報酬として合計 100 万米ドル(USD)に相当します。これらを完全に解決することでモデルがそのうちいくら「稼げる」かを測定し、稼いだ USD の総額(および解決したタスクの割合)でスコア付けします。
詳しく見る
- 例
- フリーランス風のバグ修正タスク:実在する(GitHub 風の)issue とアプリの完全な repository が与えられ、モデルは壊れたユーザーフローを再び動くようにする patch を作成しなければなりません(たとえば割り勘や支払いの画面)。これは end-to-end テストで検証されます。第二のトラックは管理タスクで、複数のエンジニアリング提案から最良のものを選びます。
- 採点方法
- 各タスクには、Upwork で実際に支払われた本物の USD 価格が付いています(およそ 50〜32,000 ドル)。モデルがそのタスクの満額を得られるのは解答が合格した場合のみで、タスク内での部分点はありません。中心的な指標は 100 万ドルのプールから稼いだ合計ドル額と、解決したタスクの割合です。2 つのトラック(IC コーディングと管理)も個別に報告されます。
- 検証方法
- コーディング(IC)タスクは、実際のユーザー操作を模擬する end-to-end テスト(Playwright)で採点されます。これらはプロのエンジニアが作成・検証し、隔離された Docker 環境で実行されます。モデルの patch はそのタスクのすべてのテストに合格する必要があり、モデルはテストを見ることも編集することもできません。管理タスクは、モデルが当時の採用マネージャーが実際に選んだのと同じ提案を選んだときに合格となります。
- 重要な理由
- 合成問題や自己採点の問題ではなく、実在する本番コードベース上の、市場価格が付いた経済的に本物の作業とモデルの性能を結びつけます。採点は(孤立した関数単位の修正ではなく)完全な end-to-end のユーザーフローを用い、さらに管理判断のトラックも加わるため、最先端モデルが、人々が実際にフリーランサーに対価を払うような完結した価値ある工学作業をこなせるかを検証します。
解説付きの例
課題
IC SWE タスク(例示、約 250 ドル):金額を入力する前に参加者を削除すると、アプリの「Split Bill」画面が合計を NaN と表示します。完全な repository を含む Docker コンテナで作業し、表示される合計が $0.00 に戻るようバグを修正してください。隠れた end-to-end テストがこのユーザーフローを再現します。
解答
```diff
function getSplitTotal(amounts) {
- return amounts.reduce((sum, a) => sum + a.value, 0);
+ return amounts.reduce((sum, a) => sum + (Number(a?.value) || 0), 0);
}
```
解説
参加者を削除すると value が undefined のエントリが残るため、a.value が累計を NaN にしてしまいます。各値を Number(...) || 0 で変換すると欠けた金額が飛ばされ、合計は $0.00 と表示されます。採点は二値で、patch は実際のユーザーフローに対して実行されるそのタスクのすべての end-to-end テストに合格した場合にのみ、タスクの満額の USD を得られます。
| 日付 | モデル | スコア | ソース |
|---|---|---|---|
| 2025-03-05 | GPT-4.5 | 32.6% | OpenAI、ChatGPT Plus向けに最大規模モデルGPT-4.5をリリース |