Skip to content

Web Bench Introduction

luics edited this page May 15, 2025 · 10 revisions

Web-Bench 概要

新基准 Web-Bench 用于评估 LLM 在真实 Web 项目 🌐 上的编程表现,相关成果已发表在 arXivGitHubHuggingFace。也发布了公开的 Leaderboard

  • 结构:50 个独立开发的真实 Web 项目 🌐;这些项目覆盖较常见的业务场景(购物/博客/表格/画板/小游戏/..),包括核心的 Web Standards(DOM/BOM/CSS/SVG/Canvas/EcmaScript/Typescript/..) 和常用的 Frameworks(React/Vue/Redux/Tailwind/Nextjs/Prisma/..)。
  • 评估实验:让各种 LLM 在我们开发的基准 Agent 上跑,并用 Playwright E2E cases 验证结果的正确性。LLM 一次通过率(Pass@1)最高也仅有 25.1%(claude-3-7-sonnet),即 LLM 平均能完成项目的前 5 步(总 20);Pass@2(带着 error context 再运行一次) 最高仅 35.3%。
  • 复杂度:以前端工程视角看,这些项目属于中低复杂度。显然 LLM Coding 在真实项目中还有很大的提升空间 💪🏻,做这件事的初衷也是希望结合前端的工程经验探索一套基准,为 LLM 编程这个细分领域添砖加瓦。

背景

2024 下半年在广泛阅读 LLM 编码基准论文后,发现一些共性问题和机会:

基准要素 现有问题 Web-Bench
人员结构 Top 基准中,大部分研究者是职业研究者或在校硕博,大部分没有深度参与到行业内的项目开发。也可能是这个原因,几乎所有基准都是直接用竞赛题或现成的开源项目(另一个原因:数据是现成的)。 我们是一群前端,有工程经验上的相对优势,能够构造项目级 Bench,尤其熟悉经典的 Browser-Server Web Projects。
基准结构 SWE-Bench 和我们目标较接近,数据来源于 Github 开源项目 PR,数据集是一系列离散的任务集合。 通过人工构造的项目可以让我们更加关注在产品所需要的能力方面。评测的过程中难度逐渐提高,类似游戏的闯关模式;同时尽量覆盖 Web 开发中所用到的协议和框架,能较全面验证 LLM Web Coding 能力。
基准饱和 早期(2022 年前)的代码基准逐渐饱和,对大模型的评价和引导作用在减弱,如 HumanEval Pass@1 已达到 99.4%,MBPP 94.2%。 在我们给定的基准 Agent 上,SOTA(Claude 3.7 Sonnet)Pass@1 仅有 25.1%,显著优于 SWE-Bench 的值 65.4% (Verified) 和 33.8% (Full) ,给未来留出足够的空间;通过有一定复杂度的软件工程任务能较准确区分出模型间的差异。

Web-Bench 论文简介

中文摘要

大语言模型在编程领域的应用在快速迭代:从代码助手、发展到自主编程代理 、再到通过自然语言生成完整项目。早期的大模型代码基准主要关注代码生成的准确性,但这些基准逐渐饱和,对大模型的评价和引导作用在减弱,如 HumanEval Pass@1 已达到 99.4%,MBPP 94.2%。在解决基准饱和问题的各种尝试中,软件工程方向脱颖而出,但现存的软件工程基准的饱和度也在快速上升。为此,本文提出了一种新的基准 Web-Bench,包含 50 个项目,每个项目包含 20 个有时序依赖关系的任务,他们依次实现了项目的各个特性,逼真模拟了人类开发项目的过程。Web-Bench 在设计时考虑了如何覆盖 Web 应用开发所依赖的基础:Web Standards 和 Web Frameworks。由于它们的庞大规模和复杂度,以及设计项目的工程师具备 5-10 年开发经验,最终设计出来的项目对于人类资深工程师而言都具有一定的复杂度(单项目平均 4-8 小时完成)。在我们给定的基准 Agent(Web-Agent)上,SOTA(Claude 3.7 Sonnet)Pass@1 仅有 24.1%,显著优于 SWE-Bench 的值 65.4% (Verified) 和 33.8% (Full) 。最后讨论了在任何开发领域中,Standards 和 Frameworks 分别代表着基础知识和效率工具,LLM 需要面向 Standards 和 Frameworks 做训练数据的优化。

数据集结构

目标:Dataset = 50 Projects * 20 Tasks/Project,Projects 覆盖核心前端标准、主流前端框架

  1. Dataset(数据集):Projects 合集,提供 Full Dataset,未来有需要可提供 Lite Dataset
  2. Project(项目):Dataset 中的一项,是一个 Monorepo Package
  3. Task(任务):含需求描述、E2E 测试用例;20 个有时序递进关系的 Task 组成一个 Project

项目结构

benchmark-construction

校准项目

引入了人工校准过程排除 tests、tasks 中的 bug。经过校准的项目成为“稳定项目”,目前开源了 50 个稳定项目。

以下是部分稳定项目的标准解(人类写的代码)。从这些视频也能看出,这些项目仍然属于人类开发的大型项目中的某个模块,但即使如此对现有 LLM 来说,也足够有挑战。未来随着 LLM 能力的提升,Web-Bench 也应该适时升级。

canvas-3x threejs-3x calculator-3x svg-solar-3x svg-3x react-3x survey-3x chart-builder-3x grid-tailwind-3x table-3x expression-3x bom-3x

评估流程

以计算器项目为例:

初始状态

calculator-init

最终状态

人类写的代码,完成 20 tasks 之后:

calculator-final.mp4

Tasks & Tests

calculator-tasks-tests

评估过程

eval-calculator-3x-720.mp4

评估实验结果

基准 SOTA 对比

如下图,Web-Bench 在我们给定的 Web-Agent 上,Pass@1 SOTA(claude-3-7-sonnet-20250219-thinking)25.1%。 即使对比较新的基准也仍然具备明显的优势,如 SWE-bench Verified SOTA 65.4%,其增速很快一年前 (2024.4) 该值仅为 25.6%。HumanEval 和 MBPP 都进入饱和区。

sotas

LLM 对比

如下二图,“claude-3-7-sonnet-20250219-thinking” 在 Pass@1 和 Pass@2 上均取得了最高成绩(采用 Best-of-5 采样,全文一致)。

  • Pass@1 的分布:Claude 系列模型表现最佳,其次是 GPT、Doubao、DeepSeek、LLAMA、Gemini、Qwen 等。
  • Pass@2 的分布:Claude 系列模型同样表现最佳,其次是 Doubao、DeepSeek、GPT、Gemini、LLAMA、Mistral 等。
pass-1pass-2

各类 LLM 系列的 Pass@2 分布表明,更新的模型或参数规模更大的模型在 Web-Bench 中通常表现更好,这与广泛观察到的 Scaling Law 一致。

pass-2-seriespass-2-series-2

无论是 Pass@1 还是 Pass@2,闭源模型(图中以红色标识)仍然具有一定优势。

open-closed

更多

更进一步的分析,如评估器(Evaluator)和基准 Agent 的工作细节,编码基准的发展方向讨论等可移步 Paper https://arxiv.org/abs/2505.07473

Web-Bench 使用

Web-Bench 贡献

Clone this wiki locally