本地推理性能只能实测,Compute:Arena几分钟跑出结果
本地推理性能是一个四维问题。同一个模型,取决于你选择的量化方式、运行所在的芯片以及执行它的运行时,表现会截然不同。通过 llama.cpp 在 M4 Pro 上运行的 Q4_K_M 版 Llama、同一芯片上以 MLX 4-bit 格式运行的相同权重、以及在 GB10 上用 CUDA 运行的同一个 GGUF 文件——这三者是完全不同的测量结果,而且没有一个能仅凭规格表预测出来。内存带宽、量化和运行时调度相互影响,所以唯一的方法就是实际测量。
Compute:Arena(https://computearena.ai/)是一个公开排行榜和 CLI,专门用于这类测量。每一条基准记录都记录了该空间中的一个点:一个特定的模型文件(由 SHA-256 标识)、一种特定的量化方式(按格式命名空间区分,因此 BaseRT Q4 和 GGUF Q4_K_M 是同一模型类的不同变体)、一颗特定的芯片(名称已规范化,同时保留运行时提供的原始值)、以及一个特定的运行时可执行文件(同样经过哈希)。测量的内容是前缀填充(prefill)吞吐量从 128 扫描到 16384 token,以及 128 token 上的解码(decode)吞吐量,包含预热和三次记录的重复。每个提交都运行相同的扫描流程,所以排行榜上的任意两条记录在任意工作负载规模下都是可比的。
它最初是我们内部用来追踪芯片和模型性能随时间的工具。我们将其开源,这样测量可以来自更多我们无法拥有的机器。
工作原理
curl -LsSf https://computearena.ai/install.sh | sh
computearena
通过一个统一的适配器接口支持两种运行时:用于 .base 包的 BaseRT 和用于 .gguf 文件的 stock llama.cpp llama-bench。llama.cpp 的选取器会直接搜索 Hugging Face。基准测试在离线状态下运行和验证,直到你登录、看到即将公开的精确 JSON、并提交之前,不会上传任何内容。
报告内容
每次运行都会生成一份签名的本地报告:每次重复的原始 token 计数和计时、模型和可执行文件的哈希值(在运行前和运行后各取一次,因此如果文件在中途被替换,签名将中止)、解析出的芯片身份及其检测来源,以及自动遥测数据。温度传感器、电源状态、内存压力、交换分区和 GPU 快照都会包含在报告中,这样热状态是被披露出来的,而不是被平均消除掉。模型下载会固定到不可变的 Hugging Face revision,并对照已发布的 LFS 哈希进行校验。
限制条件也有文档说明。Ed25519 签名证明了报告在签名后未被更改,但并不能证明机器说了真话。此外,我们也不声称跨运行时完全等价:llama-bench 和 BaseRT 测试框架在工作负载顺序和预热行为上存在差异,这些差异会被记录在签名数据中,而不会被隐藏在归一化背后。
试一试
如果你想知道一个模型在特定硬件上运行得如何,答案可能已经在排行榜上了。如果没有,运行一次只需要几分钟,并且会为你增加一个数据点。
CLI 在 GitHub 上以 Apache-2.0 协议开源。欢迎提交结果、Issue 和 PR :)