Codebenchmarks hebben een vies geheim: om een model te beoordelen moet u uitvoeren wat het schreef. Een pass@k-run over een paar honderd opgaven met elk tien oplossingen is duizenden vers gegenereerde programma's — en u zou er niet één van een onbekende met curl | bash starten.
De meeste mensen beginnen op hun laptop met een subprocess.run en een time-out. Dat werkt tot een oplossing een bestand van 40 GB schrijft, processen forkt tot de machine vastloopt of stilletjes uw thuismap leest. De oplossing is geen slimmere time-out. Het is de oplossingen draaien op een plek waar het u niet uitmaakt.
De opzet die werkt
Een sandbox is een Firecracker-microVM met Python 3.12, Node.js 22 en bash, gestart in ongeveer een seconde en verwijderd wanneer u klaar bent. Uitgaand internet werkt, inkomend niet, en er staat niets van u in.
De valkuil is een sandbox behandelen als een functieaanroep. Elke sandbox wordt minimaal 60 seconden gefactureerd en heeft een seconde nodig om te starten, dus één sandbox per oplossing is traag en verspillend. Zet het harness er in plaats daarvan in:
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")
Binnenin voert harness.py elke oplossing uit in een subproces met een eigen korte time-out en noteert pass, fail of timeout. Eén ontsporende oplossing beëindigt haar eigen subproces, niet de run. Weet een oplossing de sandbox zelf te slopen, dan verliest u één deel, maakt u de sandbox opnieuw aan en gaat u verder.
Bestanden gaan tot 5 MB per overdracht, dus splits grote datasets in delen — dat wilt u voor parallellisme toch al.
Doorvoer, eerlijk
Een account kan tot 20 sandboxes hebben, maar 2 opdrachten worden tegelijk uitgevoerd. Een achtergrondtaak telt zolang hij draait. Een snelle evaluatie ziet er dus uit als twee sandboxes die elk op de achtergrond hun deel wegwerken, niet als twintig sandboxes die vechten om twee plekken.
Voor gangbare codebenchmarks is dat ruim voldoende: de meeste oplossingen zijn binnen een seconde klaar, en één sandbox verwerkt er duizenden per uur. Moet u veel modellen tegelijk tegen een enorme suite evalueren, dan raakt u het plafond. Op dat punt is een VPS met uw eigen isolatie het betere gereedschap.
De CPU-regel die u moet kennen
Sandboxes zijn gebouwd voor werk met pieken. Een sandbox die langer dan 15 minuten boven 90% CPU staat, geldt als misbruik — een kortstondige sandbox wordt gestopt. Normale evaluaties, die snelle uitvoeringen afwisselen met administratie van resultaten, komen daar niet in de buurt. Een benchmark die urenlang volle CPU verbrandt (een groot project per oplossing compileren, numerieke stresstests), wel. Neem daarvoor een VPS per maand: het tarief AI agent biedt 4 vCPU en 4 GB voor $10.
Wat een run kost
U betaalt per seconde voor de vCPU en het RAM van het tarief, minimaal 60 seconden, vanuit een prepaid tegoed.
| Werklast | Tarief | Tijd | Geschatte kosten |
|---|---|---|---|
| 1.000 korte Python-oplossingen | small (0.5 vCPU, 1 GB) | ~20 min | $0.011 |
| 5.000 oplossingen, numpy toegestaan | standard (1 vCPU, 2 GB) | ~2 u | $0.13 |
| Builds + tests per oplossing | plus (2 vCPU, 4 GB) | ~3 u | $0.40 |
De modelaanroepen die deze oplossingen genereren, kosten u meer dan de uitvoering — meestal een orde van grootte meer.
Sleutels en reproduceerbaarheid
Roept het harness vanuit de sandbox een model-API aan — bijvoorbeeld voor beoordeling in LLM-as-judge-stijl —, geef de sleutel dan mee als omgevingsvariabele van de sandbox. Waarden worden versleuteld opgeslagen, nooit gelogd, en de API geeft alleen de namen van variabelen terug.
Voor reproduceerbaarheid pint u pakketversies vast in uw harness en legt u het sandboxtarief vast bij de resultaten. Elke sandbox start vanaf hetzelfde schone image, wat de variabele „werkte op mijn laptop” uit uw cijfers haalt. Eerlijk gezegd is alleen dat de overstap al waard.
Begin bij de sandboxpagina en de sandboxdocumentatie. Nieuwe accounts krijgen $1 aan sandboxtijd — genoeg voor een eerste evaluatie van een paar duizend oplossingen op het tarief small. De SDK-referentie behandelt achtergrondtaken en bestandsoverdracht, en limieten en facturering van sandboxes bevat de volledige tabel met quota.
Gerelateerd: sandbox voor AI-agents en uw eerste agenttaak in een sandbox.
Reacties
Nog geen reacties. Wees de eerste.