Compute:Arena:实测本地大模型推理性能的开源基准平台

0 阅读

本地推理性能为什么不能只看参数?

当你在自己的电脑上跑一个大语言模型,比如 Llama 3.1 8B,你会发现一件事:同样的模型文件,在不同环境下跑出来的速度可能差好几倍。这不光是因为你的 CPU 或 GPU 型号不同,还跟几个关键因素有关:你用的是哪种量化格式(比如 GGUF 的 Q4_K_M 还是 BaseRT 的 4-bit)、用哪个运行时(llama.cpp 还是 BaseRT)、甚至系统当时的温度和内存压力。

这些变量互相交织。举个例子,M4 Pro 芯片上用 llama.cpp 加载 Q4_K_M 量化的 GGUF 文件,和用 MLX 跑同样权重但转成 MLX 4-bit 格式,性能表现可能完全不同。再换一块 NVIDIA GB10 显卡,用 CUDA 跑同一个 GGUF 文件,结果又不一样。这些差异没法从芯片的理论算力或内存带宽推测出来——唯一的办法就是实测。

Compute:Arena 是什么?

Compute:Arena(https://computearena.ai/)就是为解决这个问题而生的。它是一个公开的基准测试平台,同时提供命令行工具(CLI),专门用来测量本地大模型推理的真实性能。它的核心理念很简单:固定四个维度——模型文件、量化方式、芯片型号、运行时环境——然后跑一套标准化的测试,记录结果。

每个测试点都对应这四个坐标的交叉。比如:

  • 模型文件:通过 SHA-256 哈希唯一标识,确保你测的就是那个 exact 文件;
  • 量化方式:区分格式命名空间,GGUF 的 Q4_K_M 和 BaseRT 的 Q4 被视为不同变体;
  • 芯片:使用标准化名称(如 Apple M4 Pro),同时保留运行时原始识别信息;
  • 运行时:可执行文件本身也做哈希校验,防止版本混淆。

测试内容包括两部分:一是预填充(prefill)吞吐,token 数从 128 到 16384 逐步增加;二是解码(decode)吞吐,固定 128 token。每次测试前有预热,整个过程重复三次,取原始数据而非平均值。

因为所有提交都遵循完全相同的测试流程,所以排行榜上的任意两个条目在相同 workload 下都是可比的。你不用再猜“是不是他用了不同的 prompt 长度”或者“有没有开 warmup”。

它怎么工作?

安装和使用非常直接。官方提供了一键安装脚本:

curl -LsSf https://computearena.ai/install.sh | sh
computearena

目前支持两种运行时,通过统一的适配器接口接入:

  • BaseRT:用于 .base 捆绑包;
  • llama.cpp:调用其自带的 llama-bench 工具,直接从 Hugging Face 搜索 GGUF 文件。

整个测试过程离线完成。模型下载会锁定到 Hugging Face 的不可变修订版本,并校验 LFS 哈希,确保文件没被篡改。测试期间不会上传任何数据。只有当你登录账户、确认要公开的 JSON 内容后,才会提交结果。

这种设计保护了用户隐私,也避免了“偷偷传数据”的担忧。你可以先在本地跑完,看看报告长什么样,再决定是否分享。

一份报告里有什么?

每次运行都会生成一份带数字签名的本地报告。这份报告不只是吞吐数字,还包括大量上下文信息,让结果更有参考价值:

  • 原始计时数据:三次重复中每次的 token 数和耗时;
  • 文件完整性校验:模型和运行时可执行文件在测试前后都做哈希,如果中途被替换,签名会失败;
  • 芯片识别详情:不仅有标准化名称,还记录是通过哪个检测源(比如 sysctl、CUDA API)识别的;
  • 系统状态快照:包括 CPU/GPU 温度、电源状态、内存压力、swap 使用情况等。

这些 telemetry 数据很重要。比如某次测试慢,可能不是模型问题,而是当时 CPU 因高温降频了。传统基准往往把这些“噪音”平均掉,但 Compute:Arena 选择披露出来,让用户自己判断。

报告还明确说明了局限性。比如,Ed25519 签名只能证明报告内容自签名后未被修改,但不能保证机器上报的数据真实(理论上仍可伪造)。另外,平台不声称不同运行时之间完全等价——llama-bench 和 BaseRT 在 workload 顺序、预热策略上确实有差异,这些差异会被记录在签名数据中,而不是强行“归一化”掩盖。

为什么需要这样的平台?

过去,社区讨论本地模型性能时,常常陷入“我觉得”“我这边跑得快”的模糊争论。有人用 512 token 测,有人用 2048;有人开了 warmup,有人没开;还有人用的是魔改版 llama.cpp。结果根本没法横向比较。

Compute:Arena 把这些变量全部固定下来,提供一个公平的竞技场。开发者可以据此选择最适合目标硬件的量化格式;芯片厂商能验证自家硬件在真实负载下的表现;普通用户也能查一查“我的 M2 Air 跑 Phi-3-mini Q5_K_M 到底能到多少 token/s”。

更重要的是,它鼓励实测文化。与其相信营销材料里的“高达 XX TOPS”,不如亲手跑一次看真实吞吐。毕竟,对终端用户来说,最终体验取决于 token/s,而不是理论峰值。

如何参与?

如果你手头有闲置的机器,不妨试试。先去官网看看有没有你关心的组合。如果没有,花几分钟跑一次测试,就能为社区贡献一个真实数据点。

命令行工具已在 GitHub 上以 Apache-2.0 协议开源,欢迎提交 issue、PR,或者直接分享你的测试结果。毕竟,一个可靠的基准平台,靠的不是一家公司,而是整个社区的参与和验证。

在这个大模型本地化越来越普及的时代,我们需要更多像 Compute:Arena 这样透明、可复现、注重细节的工具。它不讲宏大叙事,只专注回答一个朴素的问题:这个模型,在这台机器上,到底跑多快?