−25%

Windows 按年付费,截至 10 月 31 日。 查看套餐

EQVPS
开始使用

LLM 评测沙箱:运行 1,000 个模型生成的解答,只需约一美分

在编程任务上给模型打分,意味着要执行成千上万个没人手写过的程序。别在笔记本上跑,把它们放进基于 microVM 的一次性沙箱——按秒计费,并如实说明吞吐量和 CPU 限制。

编程基准测试有个不太光彩的秘密:要给模型打分,就得运行它写的东西。在几百道题上做 pass@k,每题十个解答,就是几千个刚生成的程序——而如果它们来自陌生人,你连一个都不会去 curl | bash。

大多数人一开始在笔记本上用 subprocess.run 加一个超时。这能用,直到某个解答写出 40 GB 的文件、不断 fork 直到机器卡死,或悄悄读取你的主目录。解决办法不是更聪明的超时,而是在一个你不在乎的地方运行这些解答。

行之有效的配置

沙箱是一台 Firecracker microVM,内置 Python 3.12、Node.js 22 和 bash,大约一秒启动,用完即删。出站网络可用,入站不可用,里面也没有任何属于你的东西。

陷阱在于把沙箱当成函数调用。每个沙箱至少按 60 秒计费,启动要一秒,所以每个解答一个沙箱又慢又浪费。正确做法是把评测框架放进沙箱:

from eqvps import Sandbox

with Sandbox.create(tariff="standard", ttl=4 * 3600) as sb:
    sb.upload("/root/harness.py", open("harness.py").read())
    sb.upload("/root/samples.jsonl", open("slice_03.jsonl").read())
    task = sb.exec("python3 /root/harness.py /root/samples.jsonl > /root/results.jsonl",
                   background=True)
    task.wait(poll_interval=10)
    results = sb.download_text("/root/results.jsonl")

在沙箱内,harness.py 在子进程中运行每个解答,各自带有较短的超时,并记录 pass、fail 或 timeout。出问题的解答只会杀死自己的子进程,而不是整个运行。如果某个解答把沙箱本身弄坏了,你只损失一个分片,重建沙箱后继续即可。

每次传输的文件最大 5 MB,所以要把大数据集切成分片——为了并行,你本来也需要这样做。

吞吐量,实话实说

一个账户最多可持有 20 个沙箱,但同时只执行 2 条命令。后台任务在运行期间计入其中。所以快速评测的样子是两个沙箱各自在后台处理自己的分片,而不是二十个沙箱争抢两个槽位。

对于常见的编程基准,这绰绰有余:大多数解答在一秒内完成,一个沙箱每小时能处理几千个。如果你要同时在一个庞大的测试集上评测许多模型,就会碰到上限。这时,运行你自己隔离方案的 VPS 是更好的工具。

你应该知道的 CPU 规则

沙箱是为突发式负载设计的。CPU 超过 90% 持续 15 分钟以上的沙箱会被视为滥用——临时沙箱会被停止。正常的评测在快速执行和结果记录之间交替,根本接近不了这个阈值。但一个连续数小时满载 CPU 的基准测试(每个解答都编译一个大项目、数值压力测试)会。这种情况请按月租用 VPS:AI agent 套餐以 $10 提供 4 vCPU 和 4 GB。

一次运行的费用

你按秒为套餐的 vCPU 和内存付费,最少 60 秒,从预付余额扣除。

负载套餐时间大致费用
1,000 个简短的 Python 解答small(0.5 vCPU,1 GB)约 20 分钟$0.011
5,000 个解答,允许 numpystandard(1 vCPU,2 GB)约 2 小时$0.13
每个解答构建 + 测试plus(2 vCPU,4 GB)约 3 小时$0.40

生成这些解答的模型调用会比执行本身更贵——通常贵一个数量级。

密钥与可复现性

如果评测框架要在沙箱内调用模型 API——比如做 LLM-as-judge 式的评分——请把密钥作为沙箱的环境变量传入。这些值加密存储,从不写入日志,API 只返回变量名。

为了可复现,请在评测框架中固定软件包版本,并把沙箱套餐和结果一起记录下来。每个沙箱都从同一个干净的镜像启动,从你的数据中去掉了“在我笔记本上能跑”这个变量。说实话,光这一点就值得切换。

从沙箱页面和沙箱文档开始。新账户可获得 $1 的沙箱时长——足够在 small 套餐上完成第一次几千个解答的评测。SDK 参考介绍了后台任务和文件传输,完整的配额表见沙箱限制与计费。

相关阅读:AI 智能体沙箱和在沙箱中完成第一个智能体任务。

准备好部署了?加密货币付款、无需KYC——约一分钟上线。

立即部署 →

常见问题

评测为什么需要沙箱?

因为你要执行成千上万个由模型编写的程序。大多数无害,有些会无限循环,少数会删除文件或打开网络连接。在你的工作站上,这是对数据的威胁;在沙箱里,这只是一个失败的解答。

应该每个解答创建一个沙箱吗?

通常不需要。创建沙箱大约需要一秒,且至少按 60 秒计费,所以每个解答一个沙箱既慢又浪费。在一个沙箱内运行评测框架,由它执行大量解答,每个解答有独立的超时;在切换模型或沙箱被搞坏时再重新创建。

能跑多快?

一个账户在最多 20 个沙箱中同时最多执行 2 条命令。实用的做法是使用几个沙箱,每个沙箱以后台任务运行你的评测框架,各自处理数据集的一部分。

能连续几个小时跑长基准测试吗?

以后台任务运行可以,直到沙箱生命周期结束(临时沙箱为 24 小时)。但 CPU 满载超过 15 分钟的沙箱会被视为滥用。突发式的评测没问题;持续数小时的稳定计算应该放在 VPS 上。

沙箱能调用我的模型 API 吗?

出站网络是开放的,所以可以。请把 API 密钥作为沙箱的环境变量传入——它加密存储,API 永远不会返回它——而不是粘贴到生成的代码里。

评论

暂无评论。来做第一个吧。

发表评论

评论在显示前会经过审核。