在开始之前,如果你想跟着操作——虽然这是一个实践工作坊,我看到有很多笔记本(notebooks)放出来了,很好。如果你想完全按照我的步骤来操作,你需要有一个 W&B(Weights & Biases)账号。如果你还没有,可以注册一个免费的。我们还提供推理积分(inference credits),这样你就可以通过这种方式进行评估,并且沙盒访问权限也包含在内。
如果你想要使用其他工具,比如 OpenRouter,也可以这样做。或者任何你喜欢的提供商都可以。我在工作坊中只会以这个为例进行演示。如果你有 AI 智能体,你可以直接告诉它修改某些内容并使其适应我的设置。那么,让我们开始吧。简单介绍一下我自己:我是 Wolfram Reimann(注:原文误读为 Ravenwolf,实际姓名为 Reimann)。
我的座右铭是:“早餐评估模型,夜晚构建智能体,整天宣扬 AI。” 我是 Corvus 和 W&B(Weights & Biases)的 AI 布道师,同时也担任周四 AI 播客的主持人。Alex 也在这里,他是主要技术人员。如果在工作坊期间遇到技术问题,你可以联系他,他会帮助你解决,这样我们就不会被打断。他是你的得力助手。谢谢 Alex 的帮助。
你可以通过 X(原 Twitter)或 LinkedIn 关注我,WolfBench 的网站是 wolfbench.ai。很容易记住。不过这个工作坊不仅仅是关于 WolfBench,还包括我为什么以及如何构建它的内容,这样你就可以从零开始建立自己的模型和智能体评估体系。基本上我的背景故事是:我从小就是个孩子,从一开始就热爱 AI。
当 ChatGPT 出现时,我决定将我的职业生涯专注于此。如果你了解本地 Llama(LLaMA)那些美好的旧时光,当时人们正在对模型进行量化处理,我当时就在测试这些模型,或者说是从那个阶段开始的。经常被问到关于帮助推理等方面的问题,所以我成为了一名顾问。去年我全身心投入了一家德国 AI 初创公司,今年加入了 Qorvo(注:原文误读为 Corvus/Qorvo 语境混合,此处依发音修正或保留原意)。
我已经在播客上待了很久了,对吧 Alex?但这关于你。所以这个工作坊是关于你是谁以及你为什么在这里。我认为有不同类型的人,我感兴趣的是你认为自己属于哪一类。例如,“智能体构建者”。这里有人正在构建想要评估其智能体的智能体吗?这里有一个人,那里有一个人,几个。
还有“评估新手”。那些想要进行有意义的评估但还不知道自己在做什么并想学习的人?好的,这类人更多。还有“模型评估者”。谁对哪个模型和智能体值得信任感兴趣?也就是你想使用哪一个?有人对此特别感兴趣吗?在那边,还有那边。很好。“平台与评估负责人”。那些想要进行可比且可重复的评估的人。这里有一个人,几个在这里。很好。
还有“追踪调试者”。那些查看实际轨迹并试图找出哪里出错以及如何改进的人。在那边。很好。“怀疑论者”。谁不信任排行榜?我的意思是,每个人都应该举手对吧?>> [笑声] >> 但为什么会这样以及我们如何改变它呢?这正是我们要讨论的内容的一部分,以及如何建立你自己的体系。
首先,我的指导原则是:心态大于技能集,技能集大于工具集。因此,工具集是我们使用的东西,它在 AI 中几乎每周、每月都在变化。新事物不断涌现,它一直在改变。所以技能集是我们如何使用我们拥有的工具。这适用于不同的工具。因此,如果你拥有出色的技能,你知道如何使用这些工具,你可以切换到其他工具。
但是心态是最重要的,因为这是最难改变或改进的。具体到评估方面,这就是我们要进行基准测试的原因以及需要注意的事项。技能集只是如何使用工具。而工具集,我会展示几个工具集,你可以像我用 WolfBench 那样构建自己的。基本前提是:一个分数是不够的,因为性能是一个分布,而不是一个点。
我不喜欢排行榜以及我所看到的许多评估的地方在于:你看到一些漂亮的条形图和数字,这是一个平均值、聚合值,它并没有真正告诉你很多信息。这就是为什么人们总是说或者说经常说:“我不信任这个,我有不同的体验。” 在数字背后有一些隐藏的东西我们可以发现并查看。
因为这是一个真正好的模型吗?它是运气好吗?有哪些隐藏的权衡取舍呢?诸如此类的事情。这就是我构建 WolfBench 的原因,因为我想知道哪些模型可以与哪些智能体一起使用。智能体会随时间变化。在一月时,它是 Open Claw(注:可能指 OpenClaw 或其他特定智能体名称);在二月时,它是 Hermes Agent。
我现在使用大量的 Codex(注:可能指特定代码智能体)。之前是 Cloud Code。我仍然想知道哪些模型在什么设置下工作得最好。就像我之前说的,大多数评估结果都归结为一个分数。而且大多数排行榜对模型进行排名。你甚至看不到背后的智能体系统。或者不同的版本、设置,即使你能看到他们为此使用的设置(注:原文此处有重复和口误)。
而且它们差异很大,所以你看到一些分数,而其他人报告相同的基准测试,但他们使用了不同的设置。那么你还能真正比较它们吗?有没有办法检查那些人所获得的(注:原文为 "those people got",意为结果)结果呢?所以 WolfBench 是一个框架。它有图表、仪表板、排行榜。顺便说一下,它是开源的,还有方法论部分,这也是我最想谈论的内容。
你可以用你自己的工具使用这种方法论。对于 WolfBench 来说,适用于所有基准测试的一点是:你必须决定哪些指标是你感兴趣的。你想看平均值吗?你想看最差和最好的分数吗?你想看它能解决多少百分比的基准测试任务呢?以及它的表现是否一致,还有成本。这也是很多人没有考虑到的因素。
它消耗了多少 token?花了多少钱?有可能更便宜、更快的模型比大型模型花费更多时间并产生更高成本,因为它使用了太多的 token。同样重要的是统一的条件(uniform conditions)。所以你每次都有相同的设置,因为如果你只改变其中一个变量——我们稍后会看很多这样的变量——一旦你改变了它,这基本上就是一个新的基准测试了。
还有多智能体(multi-agent),如果你想进行不同的智能体评估,你看哪些呢?并且始终进行多次运行。单次运行是基准测试彩票(benchmark lottery)。它是一个随机结果,只是一个粗略的数字。所以你必须进行多次运行。我在 WolfBench 中做五次,但如果你有资源可以做更多。
当然,资金始终是一个权衡因素。透明度对我来说也超级重要,因为我公开所有结果,人们可以查看这些内容。因此,我不只是展示一个分数并说这就是为什么这是我的第一名模型或第二名模型的理由。我上传所有内容,你可以检查它、查看它,让你的代理也去检查它,这与我们收集的所有数据非常契合。基本上,要把思维逻辑理顺,然后工具就变得可以互换了。
我认为人们需要意识到的最重要的一点是:你并不是在对模型进行排名。如果你是在基准测试一个模型,这确实是指该模型本身,但你实际上是在对特定的配置进行基准测试。因此,你使用一个数据集,如果你更改了数据集,那就是一个新的基准。你有模型,而在模型背后还有推理引擎以及端点上发生的各种情况,这些往往是你无法控制的。
但如果他们更新了推理软件,结果可能会再次发生变化,而你根本无法察觉这一点,除非是你自己在自己的系统上进行推理。还有代理本身的问题,如果我测试 Blood Code 或代码 X,下周我进行测试时如果进行了更新,那就是不同的版本。所以这一点也必须牢记在心。
同样的情况也适用于沙箱环境。即使你使用的是沙箱提供商,如果他们在后端更改了某些内容,你可能甚至不会注意到,但这可能会产生影响。你自己选择的所有设置也是如此。因此,更改任何部分都会导致不同的实验结果。你必须时刻牢记这一点。
接下来是一个术语表。你会收到演示文稿,所以我不会逐一讲解这些内容。大多数人对此都非常熟悉,我会在需要的时候解释相关内容。我们关注的是特定的工具集,因为这是一个实践工作坊,这只是构建它的一种方式,而非唯一方式。我们将展示不同的方法,你可以选择自己的内容。
为了跟上进度,你应该准备笔记本电脑和终端,建议安装 Python、UV 和 Git。我们有文件可供下载,所以如果你不跟随操作,也可以下载报告并导入它们,然后使用这套工具集。因此你不必完全跟随每一步,但如果你想这样做,也可以用自己的结果来操作。
是的,你需要有 Wi-Fi 连接,API 密钥是可选的。我在开始时展示过这一点,稍后我会再次演示如何获取它。所以你可以获得这个资源。这里再截个图,扫描二维码。通过这个链接可以进入一个表单页面,你可以在其中获得 AI 工程师会议期间的免费推理额度。为此你需要一个免费的 One B 账户,如果你还没有的话可以在那里注册。
谁已经有账户了?这里有人使用 One B 吗?看来有不少人,太好了。另外关于沙箱部分,我使用的是 Core Weave 提供的无服务器沙箱服务,它为每个任务提供一个隔离的环境。这超级重要,因为否则你每次评估运行都会改变自己的系统环境,那样结果会更加随机。
我们要看六个可互换的层级,我们会逐一选择每一个,你也可以这样做。这展示了技能集、操作方式以及背后的思维模式,现在我们要为正在构建的工具包选择不同的工具。因此我们需要一个基准测试(即数据集),需要一个评估框架来运行数据集和进行评估,还需要编排所有这些内容并在沙箱中运行它,以免在你的系统上直接运行。
此外我们还需要一个代理框架(即我们要使用哪个代理)以及模型和服务部分。这当然是人们最感兴趣的部分,这个模型表现如何?关键在于你不仅仅是在使用一个模型,你始终在使用一个端点。它总是由某个提供商托管的,如果是 Open Router,他们会将请求路由到其他提供商那里;如果是 OpenAI、Google 或 XAI 等,它们都有各自的设置。
从某种意义上说,你也在评估这些提供商的基础设施以及你可以选择的所有设置。那么第一步就是:我们要使用哪个基准测试?你可以从基准测试开始入手,我之所以这样做是因为我想用不同的框架来测试代理式使用场景。所以我决定选择一个能够实现这一点的基准测试,于是我查看了前沿实验室使用的各种基准测试。
我发现 Terminal Bench 几乎被所有人使用过。它是一个代理式基准测试,而不仅仅是编码基准测试或单纯的代码任务。这是一个代理式基准测试,其中包含诸如修复 Git 仓库、破解密码、修复数据库等任务。这些是你作为代理在正常使用中会被要求执行的任务示例,这就是我选择 Terminal Bench 的原因。
但如果你对多语言内容感兴趣,MMLU 是一个不错的选择;如果你关注多模态内容,MMU Pro 则适合你。如果你对 GUI(图形用户界面)代理使用感兴趣,那么你会选择另一个不同的基准测试。如果你关注数学、编码或其他领域,都有相应的基准测试存在。关键是找到那个对你来说最有趣且具有可比性的基准测试。
当然,你也可以自己创建数据集。关于 Terminal Bench,它是一个代理式(agentic)基准测试,这就是我选择它来评估代理的原因。目前有 2.0 和 2.1 版本,3.0 正在开发中。我选择的是 2.0 版,因为在我开始时 2.1 版本尚未发布。如果你现在才开始,请选择最新版本 2.1,但我使用的是 2.0 版,因为选择新版本意味着这是一个新的基准测试。
我将无法再比较分数了。实际上 2.1 版只修复了 89 项测试中的 28 项,但对于所有模型来说这都构成了不同的基准。我将不得不重新测试我已完成的所有内容。我已经做了大量的工作,而且永远觉得不够充分,但我确实投入了很多精力,所以我不想现在制作 Wolf Bench 的新版本。
我会在稍后某个时间点这样做,也许是与 3.0 版一起发布时,或者如果能力出现巨大的新飞跃且我们需要不同的基准测试时。接下来是评估框架(Evaluation Harness)。这是在你选择了想要使用的基准测试和数据集之后,你需要一些东西来实际运行评估。Harbor 是 Terminal Bench 的默认框架。还有其他选择,例如英国 AI 安全研究所开发的 Inspector,这是一个很棒的框架,拥有许多不同的基准测试可供使用,也非常受欢迎。
LM Evaluation Harness 我多年前就在使用了,所以它存在已久。OpenAI 也有自己的评估工具。你可以构建自己的运行器或选择其他框架,由你决定喜好。有些人也可以先挑选他们的运行器(Runner),然后选择一个它支持的基准测试,这也是一种有效的方法。现在关于代理框架……
第一步是安装 Harbor。我使用的是当前版本,昨天它是最新的,现在不确定是否仍是最新。它变化很快,但我会锁定特定版本。我强烈建议人们坚持使用一个固定版本,因为每次更改变量(如果影响评估结果的话)都会改变比较的基础。即使有 bug,至少所有模型都在相同的 bug 环境下进行测试。当然这是一种视觉化的思考方式,因为有时如果评估框架的新版本支持不同的代理或提供商,你可能被迫更新。
对于真正严肃对待此事的人,我建议 fork 该仓库并维护自己的分支,按需向后移植功能。安装时请使用 uv tool install harbor 命令,即在 UV 环境中安装,这样不会影响你的系统,且可以干净地卸载。接下来你需要一个沙箱环境。如果只在本地运行,第二个代理运行时可能会发现系统已被更改并产生干扰,因此不建议这样做。
你可以使用 Docker,这很常见但并行化很难,取决于系统资源需求很大。因此有云提供商支持,我要特别感谢 Daytona,在 Qualif 有自己的沙箱之前他们大力支持了我。现在我正在使用我们自己的服务(dogfooding),因此推荐两个选项:Qualif 沙箱适用于 Kubernetes 用户,而另一个是 Qualif Serverless 沙箱。
只需你的 WolfBench 账户即可。关于 PDF,如果任何人想立即获取,请前往 Alex 处,这大概是目前最简单的方法。安装 Harbor 后,我们需要作为其一部分的沙箱客户端。这里有一个演示的二维码。uv tool install harbor[qualif] 将安装提供商以使用沙箱,无需额外操作。
安装后只需配置 API Key,并在 YAML 文件中设置。这里有一个链接和简单的 URL,你可以直接输入完整配置(在几页幻灯片之后)。如果你正在跟随操作,只需键入安装 WolfBench 提供商的命令。下一步是选择代理。这是最有趣的部分,因为有很多代理可供选择,我想测试不同模型的表现。
WolfBench 框架支持许多代理,包括 Cursor、Claude、Klein、Codex、Open Claude Hermes Agent 等。Terminus 2 是 Terminal Bench 和 WolfBench 框架的默认代理,它并非真正的编码代理,而是模拟 CLI 环境向模型发送击键指令。如果你看到某些终端基准测试分数但未指明代理,通常指的就是这个默认代理。
接下来选择要测试的模型和提供商。如果你使用 GPT-5.5,则通过 OpenAI;如果使用 Claude 或 Llama(假设你使用的话),则通过 Anthropic。Google 也提供部分 Anthropic 模型,OpenRouter 几乎提供所有模型且支持 DDR(不向供应商发送数据)。我们还拥有自己的推理核心,提供开源模型选择。
本次演示我选择了 GLM-5.2,这是最新且最好的开放权重模型。设置中上下文窗口大小非常重要。不同提供商出于性能原因可能提供较小的窗口,例如我们的推理服务仅提供 GLM-5.2 的 256K 而非完整的百万级,以加快服务速度并避免质量下降。
我认为在性能、价格和速度之间取得最佳平衡的是 256K,这也是我推荐给推理团队的原因。思考与推理力度是一个大因素,不同思维模式对模型影响巨大且有时出乎意料(提高思考力可能导致表现下降)。系统提示词也很关键,你是否能更改或检查它会影响结果。
例如 Open Claude Hermes Agent 有特定的指令集。如果在基准测试中给予“有帮助的助手”指令,与赋予“自主代理执行任务”的指令结果截然不同。我曾见过模型因试图询问用户(但无用户存在)而表现不佳,若更改系统提示告知其不能提问,行为会不同且得分更高。这完全改变了评估的本质。
测试中存在许多变量,包括工具配置。如果你给智能体提供网页访问权限,我见过模型直接去搜索基准测试的解决方案,因为终端基准(Terminal Bench)是一个公开的基准。你必须查看运行轨迹才能知道发生了什么。这并不一定是坏事,如果你想要一个智能体,它应该是聪明的;如果问题已有现成的解决方案,为什么还要让它去苦思冥想呢?这取决于你真正想要衡量的是什么,以及是否给予它访问权限。并非所有情况都会这样操作,或者不是每次都是如此。
沙箱资源也是关键因素。如果分配的 CPU 或内存较少,智能体可能会耗尽资源、运行变慢甚至崩溃,从而导致糟糕的结果。这并不是模型的错,而是沙箱配置的问题。任务超时方面,每个任务都有默认的时间限制,从 5 分钟到超过 3 小时不等。这意味着你必须决定愿意投入多少时间。起初使用 Wolf Bench 时,我给每个任务固定了 2 小时,因为我不想让开源权重模型处于劣势。
这些开源模型通常运行在比大型前沿实验室模型的推理端点上性能较低的设备上。例如,在本机系统上运行 DeepSeek 通常不如在 OpenAI 系统上使用 GPT 快。如果不给予无限时间,分数就会被扭曲。但我发现,如果模型无法完成任务,它有时会陷入死循环,反复尝试并失败。这非常昂贵且耗时,因为如果有 89 个任务并行处理,时间会拉得很长。
我注意到 1 小时是一个较好的界限。如果沿用终端基准的默认测试时长,时间会显著增加。这就是并发性的意义所在:你不想等待 89 小时甚至更久,而是希望同时进行多次试验。但你必须决定并发度能设多高?如果设为 89,你可以一次性运行所有任务。但如果推理端点不够快导致被限流,最终得分可能会很差甚至为零。
沙箱资源同理。如果使用 8GB 内存的沙箱,并发数高时资源消耗会迅速累积并超出限额。重试策略也很重要:如果因沙箱崩溃导致任务失败而不进行重试,模型的得分就会变差,但这并非模型之过。因此需要区分哪些错误可以重试(如基础设施故障),哪些不应重试(如因模型愚蠢操作导致的崩溃,这属于需要衡量的失败)。
温度设置是基准测试中的难点。不同模型提供商对推荐温度的建议不一,有些智能体有默认值或根据模型动态决定。你需要决定是否要为每个模型查找推荐设置,或者在没有建议时使用哪个值?如何确保其他人使用相同的基准时采用你选择的相同设置?这非常困难。Top P 值也是如此,是用 0.95、1 还是其他任意值?
最大新令牌数(max new tokens)决定了模型允许生成的长度。你必须根据提供商的建议和宿主方的限制做出选择并配置它。如果可以,还可以设置随机种子以减少不确定性。起初我使用温度为零以降低随机性,但即使看似确定性的环境也会因浮点数舍入误差或性能优化而产生差异。
如今,当模型推荐温度为 1 时,你不应强制设为零,否则违背了建议。在这种情况下可以设置种子(如常用的 42),但不同模型对同一种子的“运气”可能不同。关于推理选择,左侧是常规推理核心配合无服务器推理。如果你想使用 Open Router 而不想自己获取密钥,也可以使用它。只需在配置文件中放入变量和密钥即可供智能体使用。
如果使用 Open Router,必须设置特殊参数以指定 One API 提供商。这一点在使用 Open Router 进行基准测试时至关重要,因为默认情况下它会在多个提供商间自动分配任务。如果你运行 89 个任务的单次基准测试,可能会一半由提供商 A 处理,另一半由提供商 B 处理。因此你必须明确指定使用哪一个提供商。
经过上述所有选择,我们为之前讨论的六个层级中的每一层都做出了决定:评估框架选择了 Terminal Bench;容器平台选择了 Harbor 及其特定版本;沙箱环境已选定;智能体选用了 Terminus 2(基于 GLM-5.2)并配有特定设置。无论使用何种框架或模型,进行评估时都必须做出选择,并且要非常清楚自己使用了什么。
在发布结果时这一点尤为重要,以便他人知晓你实际使用和衡量的内容。这里有一个二维码,提供了完整的配置信息,这样你就不必从幻灯片上复制那些格式可能混乱的内容了。
下载这个配置文件,我将在下一张幻灯片展示如何运行它,实际获取结果大约需要 5 分钟。我也会做同样的操作。所以,如果你想下载配置,这是二维码。我要进入下一页了。让我不要只是展示它,而是实际运行一下。看看这个。我们正在做的是源文件
以获取 API 密钥,我们在两张幻灯片前找到了它,然后我们使用 uv run harbor run config 命令运行它,并传入你下载或创建的配置文件,然后我们实际上就能得到结果。我现在就在 Shell 中执行此操作。首先,安装 Harbor 框架。正在执行命令。我会稍微放大一点。
如果我的 Wi-Fi 按预期工作,那就太好了。好的,我们让它运行。我稍后会回到演示文稿。所以,继续演示。我们正在运行这个程序,它只会执行一个测试。我不想使用 89 个测试,否则我们会超时一个小时以上。而且这只是我给每个测试的时间,之后验证器必须运行并检查是否正确
这需要一些时间,所以甚至需要更长的时间。但是,Harbor 拉取任务、Terminal Bench 2.0 数据集,它使用配置中的那个。所以,这是配置中包含 Terminal Bench 版本 2.0 的部分。然后,它使用我们使用的提供商启动沙箱。所以,它为每个任务创建一个沙箱,取决于并发数以及使用了多少个。然后
它运行代理。实际上进入沙箱,安装代理并执行任务。给它一个系统用户提示符,基本上是说“这就是你要做的”。代理完成它。之后,它在沙箱被销毁之前收集结果。并获取轨迹,实际上就是代理在做什么?你以这种方式获得大量信息。而
这个小任务是最小的之一,它只是一个 Git 仓库,其中丢失了一些东西,应该在 Git 树中找到并恢复它。这大约需要 3 到 5 分钟。让我们看看我们进展到哪里了。现在已安装。然后,我们要安装我们的 One B 客户端。下一步,在这种情况下,我只是从 One Password
获取我的 API 密钥。然后我在这里编写配置。这是你可以下载的那个文件。我只是将其 cat 到一个文件中。并加载 endfile。现在,API 密钥在我的环境变量中,我将只是……这是运行命令。运行评估。所以现在它开始启动,启动沙箱,安装代理并运行它。这一切都发生在这里。而当它在这样做时,我会
回到演示文稿的下一部分。作为证据运行,而不仅仅是一个分数。这里的格式完全乱了。我会修复演示文稿并上传它。这只是评估文件夹中内容的目录。一旦完成,我们可以现场创建这个文件。当然,如果它花费时间的话,大约需要 5 分钟。现在,它正在启动环境,也就是创建
沙箱。所以只是让它运行。哦。这太早了。当我们有了那个之后,我们得到一个任务并对其进行评分。它要么得分为 1,要么为 0。是成功了还是失败了?如果你对这 89 个任务都这样做,你就会得到它完成的 tasks 数量,然后你对此进行五次运行(例如),然后你就得到一个百分比,你知道模型在 Terminal Bench 中
获得了多少百分比。而这通常是实验室报告的分数。大多数人只是报告五次运行的平均值。这是 Wolf Bench 工具包的安装。我们之前所做的一切,都是 Harbor 框架和 Terminal Bench,这是我编程、我创建的内容。Wolf Bench 工具包是一种处理这些数据的方法,因为否则你现在有几个
文件和一些分数,但你如何分析它呢?所以,这是 Wolf Bench 所做的收集器功能,如果我打开程序展示会更好。让我回到这里。当这一切发生时,我只会在一个新的 Shell 中启动它。我们只是克隆它并进入那里。所以它是开源的,Apache 2 许可证。你可以将其用于你自己的项目。当然,如果你使用
不同于 Terminal Bench 的东西,你必须对其进行适应,但现在很容易适应。只需告诉你的代理。快速提问。谁在使用代理来做这样的事情?不是所有人吗?哦,我很惊讶。顺便说一句,我仍然看到很多笔记本。因为现在有些人只是掏出手机拍张截图说:“好的代理,去吧。”“做他在舞台上展示的任何事情。明年
好吧,所以它正在下载,我也在下载我到目前为止所有运行所做的所有结果。快速剧透一下,我现在做了 430 次运行,对吧?嗯……在哪里呢?呃,是 430 次运行。但无论如何,这是我到目前为止测试的代理:Cloud Code、Hermes agent、open clock cursor、Codex,Klein 尚未发布。那在我的清单上还有一些其他代理。如果你在制作一个代理
联系我,如果你想也出现的话。以及一些我测试过的模型,许多是在 W&B 上进行的,那是我们自己的推理。所以最终成本不幸的是不像显示的那样高,这里接近 40K。所以这是其中一些是在我们自己的推理上进行的,但我只是使用了已公布的价格。让我们看看我们现在进展到哪里了。它下载完成了。所以这 13 MB,这些是结果
如果你想查看所有轨迹,它们已上传到 weave,你可以直接检查它们。你呃嗯不必下载千兆字节的数据。现在,如果你想使用 Wolf Bench,你可以设置一些变量,所以它也是一个上传器,但我会展示一下如果我直接启动它会怎样。这使用 Remeo notebook 来提供一个仪表板,一种轻松处理所有评估数据的方法
所以随时可能完成。好了。这是一个仪表板。你可以输入你想上传轨迹的信息,如果你有 We stuff 的话。然后你可以发现 VMs,如果你使用 XE dev 或 Hetzner,它会找到那里所有的 VM,你可以过滤哪些 VM 名称是评估 VM。因为我通常不在我自己的笔记本电脑上运行 Harbor Framework。我在一个虚拟机中运行它,这样我可以关闭
我的笔记本电脑或 Wi-Fi 不会断开连接到沙箱的连接失败,因为这也可能影响某些东西。嗯在这种情况下,一旦我下载了我所做的内容,一切都在本地进行。所以我可以扫描我的本地目录并找到我已经做过的所有运行数据。所以这里有 443 个独特的运行记录。它在这里显示一个过滤器,所以我每个有分数的运行
必须包含所有测试项,如果某些测试未运行,则结果无效,那只是试运行。错误和超时不应过多。我会获取所有这些数据列表,并选择想要生成图表的模型。在此情况下,我将使用全部模型。接着可以更改模型名称,有时还需调整“思考”参数设置,因为代理可能会改变传入的参数。例如,若使用极高或最大模式的“思考”功能,而您的代理不支持该名称时,可能需要更改为其他叫法。务必确保设置真实反映实际使用情况。
完成上述步骤后,即可创建结果文件。若拥有密钥可上传至 We View(目前未设置密钥所以无此按钮)。我保存为一个包含所有结果的 JSON 文件,可分享给他人。最后生成一个图表作为产物。基于之前的结果生成了新图表,这一步也有上传功能。图表生成后,我将其上传至 wolfbenchmark.ai 以更新数据。若启用替换 index.html 选项,页面将立即在线生效。
回到当前状态,检查一下基准测试的进度。哦,已经完成了。试验一次,平均分 1.0。这意味着它完成了一个任务并解决了该问题,运行成功且修复了 Git 仓库。虽然此任务在我的目录中并可导入,但因非完整运行流程,默认不显示。完成上传后,我们可以查看 Wolf Benchmark 提供的功能。这再次体现了心态问题:我们关注什么?刚才展示了仪表盘,现在需查看排行榜及其含义。
排行榜本身生成的不仅仅是答案,它有助于发现更好的问题:你在关注什么?是模型的能力还是可靠性?我将通过访问 wolfbenchmark.ai 来展示具体含义。页面内容从左到右排序,包含所有信息。大多数基准测试仅显示终端分数和平均值,而这是一个交互页面,不仅用于展示结果,还可创建图表供复制粘贴使用。
界面有截图符号,方便在 X 等平台展示内容。若想显示某模型的表现,可标记它、移除或重排条形图,具有高度交互性。因此可以这样制作报告。URL 中也包含了当前视图状态,分享链接他人可见相同内容。切换视角时信息量较大,同一条形图上叠加了多种数据。
如前所述,可筛选简化视图,但我喜欢保留详细信息:底部深色部分表示在五次运行中模型解决整个基准测试的百分比,即一致性。若该分数很高,说明模型非常可靠;黄色部分为通常报告的平均分;上下箭头分别代表五次运行中的最高和最低分。
若高低分数接近,则方差小,表现稳定;若差距大(如从 79% 到 60%),则方差高,表明存在大量随机性,难以信赖其执行任务的能力。最高标记为星号(天花板),表示至少一次解决基准测试的百分比,理想情况下代表完美表现。
我们希望拥有高天花板、稳定的平均分和坚实的底部基础。若模型分数相近,仍可看出底部基础的差异,此时应选择底部更高的选项(如 73% 对比 74%,虽平均分几乎相同,但存在 6 个百分点的显著差距)。可见“极高思考”优于“中等思考”,符合预期。
接下来展示演示文稿中的内容,涉及模型的不同想象方式及风险与成本容忍度。在我的评估中表现第二好的是 Gemini 3.5 Flash,这款轻量级模型几乎与 GPT-5.5 相当。若仅看终端分数,两者差异不大,甚至可以直接对比这两个模型。
但需考察其实现方式。通过 3D 视图可查看达成该分数所消耗的 Token 数量:Gemini 3.5 Flash 消耗了数十亿 Token,而 GPT-5.5 使用量极少。具体而言,GPT-5.5 消耗了 1.36 亿 Token,而 Gemini 3.5 Flash 高达 16.5 亿。
进一步观察另一个 3D 视图的成本数据,两者可同时展示:成本以阴影形式呈现。由于 Gemini 消耗大量 Token,其成本重叠且更高。尽管性能接近 GPT-5.5(注:原文口误为 GBD 5.5,实指同一模型),但因 Token 用量巨大导致成本更高。具体费用为 Gemini 3.5 Flash 约 620 美元,而 GPT-5.5 为 497 美元。
是的,你必须考虑到这一点:你是想使用快速且便宜的模型吗?但你必须比较它是否真的更快、更便宜,因为所有的 token 消耗也需要时间。这是一方面。回到演示部分,这是一个决策表面(decision surface),不仅仅是一张图表。你可以加载你的快照并添加自己的内容(如果你做了的话);执行代码后,你就会看到它们。然后你可以像我展示的那样过滤不同的指标和模型,重新排列条形图并导出你自己的结果。接着你可以展示这些内容并发布社交媒体帖子或撰写文章,无论你想做什么,这都是可以做到的。
在这种情况下,我正在查看哪个模型在该基准测试中表现最好。目前我的第一名是 GBD 5.5 with Codex,它甚至比 Fable 更好。如果你问起 Fable 怎么了,这也很值得研究一下。如果我把 Fable 放进来,它有 13 次拒绝(refusals)。也就是说它拒绝了执行。再看看成本,那高得离谱,它是我最昂贵的基准测试案例。别告诉任何人,因为仅测试 Fable 就花费了 1.1 万美元,而且它失败了,因为它拒绝了太多的测试。哎呀!这当然也是你需要决定的事情之一。
当人们说“我不信任这个基准测试”时,就是这个原因:模型排在第一位,但看看这里发生了什么。基准测试必须是透明的,这样你才能查看追踪记录(traces)并了解到底发生了什么事,这样一来事情就说得通了。好的,回到刚才说的,正如我所说的,最好的模型是 GPT 5.5 with Codex。但如你所见,它相当昂贵。让我们放大看看:它花费了近一千美元,而 Cursor 使用相同的模型仅花费了 282 美元。所以相比之下它非常便宜,并且在这里使用的 token 也略少一些。
是的,你可以说这是最好的组合,但从价格和性能的角度来看,另一个可能更好。Terminus 也有最高的上限(ceiling),但如果分数彼此非常接近,那可能是随机的。你必须进行 10 次甚至更多次的运行才能非常有把握,但你必须在某个时候做出选择并选定一个。这也是我之前展示过的:Gemini 3.5 Flash 与 GPT 5.5 相比,分数更低但账单更高。在这种情况下,使用另一个模型更有意义。
这也很令人感兴趣并让我大吃一惊:当时我测试 Opus 4.6,我将思考(thinking)级别调到最高时,分数反而下降了。情况真的变糟了。我对 Claude Code 也做了同样的测试(因为我也使用了 Titanus),在那里我看到了相同的效果。当我对 GPT 做这件事时,如果我将思考从关闭调到极高,或从中调至极高;如果我提高思考级别,模型就会变得如预期般聪明。那么为什么 Opus 会变差呢?这令我感到惊讶,差异在于:如果你查看追踪记录,你会发现模型想得太多了。
那就是过度思考(overthinking)。这意味着我给了它一个小时的时间。如果模型只花一两分钟就决定“我想执行这个命令”,而这个命令在机器上还不存在,那么它又会再花两三分钟思考:“我该如何安装这个?”而一个甚至不思考的代理,它只是在做事情。所以它的第一个冲动是:运行这个命令,得到错误消息;再运行一次,还是错误消息;然后安装它,又得到错误消息并修复。这样它的回合数就增加了,所以它能做更多事情。这就是花一小时思考却什么都不做与不断尝试、试错之间的区别。
有趣的是,GPT 模型默认情况下似乎不如 Opus 聪明。Opus 开箱即用就非常有能力。即使思考功能关闭,它也已经取得了很好的分数。如果你在这里比较一下,它在“关闭”状态下的表现就已经比 GPT 5.5 的“中等”状态更好了。而且其基础分数也更高,意味着它在每次运行中完成了更多的任务。是的,这些是你必须查看的内容。如果结果令人惊讶,请查看追踪记录以找出这里发生了什么:模型过度思考了。
顺便说一句,我也在 Fable 中看到了同样的情况,那里的模型非常聪明,似乎它知道自己很聪明。所以它的做法是决定朝这个方向走。即使基准测试说应该那样做,它却说:“不,我知道得更好,我要按我的方式来做。”然后在最后验证器运行时进行测试并失败了。所以在某些情况下,模型太聪明了反而成了负担(too smart for its own good)。这也是我必须向你展示的一个重要功能:条形图是声明,追踪记录是证据。
我总是在谈论追踪记录(traces)。所以我们有条形图,也就是我们在 WolfBench 上看到的内容。你有那些漂亮的条形图。关键是你可以点击任何条形图,随便点一个就行。你会被带到我们的 One 页面(One page),那里有 Weave,它允许你检查所有的追踪记录。在这种情况下,我只是点击了一个条形图,我看到了构成该分数的五次运行结果。我现在可以选择其中任何一次运行进入这里……嗯这个我应该移除,我稍后会展示这个。好了,我们这里有 89 个节点(chords)。
这些是我执行的 89 项任务,你可以在这里看到所有的追踪记录。内容很多,所以加载有点慢。然后你可以进入其中任何一个,你会看到任务名称、奖励(即是否成功),以及所有的步骤。你会看到初始请求和用户消息,上面写着:“你是一个助手。你的任务是与这个……”然后你看到的是 LLM 作为第一个命令做了什么、它做了什么样的分析以及它想做什么,接着是它发送的命令等等。
你可以真正检查这里发生的所有事情并查看它们。或者使用你的代理,让它自动完成这些工作。我们有一个新功能,这也是平台内置的一个代理。所以你在 Weave 内部拥有一个代理,你可以直接告诉它去做这件事。我的同事 Tim Sweeney 将在 7 月 1 日就此发表演讲,届时你可以去查看。我大量使用代理,因为阅读所有的追踪记录需要很长时间。如果代理给你一个指向 Weave 的链接,并且你看到它所说的确实是事实,那也是非常好的。
总而言之,基准测试涉及许多相关的变量。你有基准版本(OneBench 2.0、2.1)、代理版本、模型服务和路由,甚至推理端点的更新都会改变结果和设置。沙盒资源:正如我所说的,如果代理耗尽资源而失败,那么模型就会得到低分,尽管这并不是模型的错。采样、温度(temperature),所有我们讨论过的因素。思考默认值:比如如果模型想得太久,最大值可能不如更小、反应更快的代理效果好。超时策略、重试……
策略方面,如果不重试且遇到基础设施错误,你会得到糟糕的分数。因此,每次运行后,我都会检查所有错误和失误,确认是否存在推理问题。如果发现重复字符或提示模板中的 token 泄露到实际回复中,那就说明存在分词器问题或推理服务器问题。
尤其是对于新模型来说,这是一个大问题。如果你随着模型的发布进行基准测试,由于它们太新了,推理引擎可能还没有提供最佳支持。我曾做过评估,当时表现不佳的新模型,一周后我做了同样的测试,一切条件相同,但结果更好了,因为推理引擎得到了改进。这也是其中的一部分原因。
因此,使用消息机制,“自带一切”组件。你拥有构建模块,请查看演示文稿,思考你想做什么、使用哪种评估方法、选择哪个代理以及测试哪款模型。你现在拥有了知道该注意什么的思维模式,并将其应用于制作比单纯运行程序并发布分数更可靠的排行榜、图表和评估。
所以,请运行你自己的可复现基准配置并分享结果。如果你想使用 Wolf Bench 进行工作,请联系我;如果你想要运行一些模型测试,那将非常棒。我们可以合作并发布结果,这样我就不必亲自运行所有内容了。
如果你想另辟蹊径(off-spin),那也很好。使用其他框架,无论你想用什么都可以。如果你正在构建模型或代理,请随时联系我以便我对其进行基准测试。我已经与一些代理创作者合作,并将很快发布结果。
好吧,这基本上就是演示文稿的结尾了。我希望你能从中有所收获。如果你有问题,现在是提问的时间。否则,你可以在展位上找到我。另外,非常感谢 Alex 提供的帮助。周四播客节目每周四早上播出(根据我的时区),太平洋时间上午 8:30。
之所以每周坚持这样做,是因为跟踪发生的事情太难了,对我们来说也是如此,所以我们被迫这么做,以便向你汇报。好的,谢谢。