Coding-Benchmarks haben ein schmutziges Geheimnis: Um ein Modell zu bewerten, müssen Sie ausführen, was es geschrieben hat. Ein pass@k-Lauf über einige hundert Aufgaben mit je zehn Lösungen sind tausende frisch generierte Programme – und Sie würden keins davon von einem Fremden per curl | bash starten.
Die meisten fangen auf dem Laptop mit subprocess.run und einem Timeout an. Das funktioniert, bis eine Lösung eine 40-GB-Datei schreibt, Prozesse forkt, bis die Maschine steht, oder still Ihr Home-Verzeichnis liest. Die Lösung ist kein klügerer Timeout. Sie besteht darin, die Lösungen dort auszuführen, wo es Ihnen egal ist.
Das Setup, das funktioniert
Eine Sandbox ist eine Firecracker-microVM mit Python 3.12, Node.js 22 und bash, die in etwa einer Sekunde startet und gelöscht wird, wenn Sie fertig sind. Ausgehendes Internet geht, eingehendes nicht, und nichts von Ihnen liegt darin.
Die Falle: eine Sandbox wie einen Funktionsaufruf zu behandeln. Jede wird mit mindestens 60 Sekunden abgerechnet und braucht eine Sekunde zum Start, eine Sandbox pro Lösung ist also langsam und verschwenderisch. Legen Sie stattdessen das Harness hinein:
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")
Darin führt harness.py jede Lösung in einem Subprozess mit eigenem kurzem Timeout aus und notiert pass, fail oder timeout. Eine sich danebenbenehmende Lösung beendet ihren eigenen Subprozess, nicht den Lauf. Schafft es eine Lösung, die Sandbox selbst zu zerlegen, verlieren Sie einen Teil, legen die Sandbox neu an und machen weiter.
Dateien gehen bis 5 MB pro Übertragung, teilen Sie große Datensätze also in Stücke – das wollen Sie für die Parallelität ohnehin.
Durchsatz, ehrlich
Ein Konto kann bis zu 20 Sandboxes halten, aber 2 Befehle laufen gleichzeitig. Ein Hintergrund-Task zählt, solange er läuft. Eine schnelle Evaluierung sieht also so aus: zwei Sandboxes, die jeweils im Hintergrund ihren Teil abarbeiten – nicht zwanzig Sandboxes, die sich um zwei Slots streiten.
Für typische Code-Benchmarks reicht das völlig: Die meisten Lösungen sind in unter einer Sekunde fertig, und eine Sandbox schafft tausende pro Stunde. Wenn Sie viele Modelle gleichzeitig gegen eine riesige Suite bewerten müssen, stoßen Sie an die Decke. Dann ist ein VPS mit eigener Isolation das bessere Werkzeug.
Die CPU-Regel, die Sie kennen sollten
Sandboxes sind für stoßweise Arbeit gebaut. Eine Sandbox, die länger als 15 Minuten über 90 % CPU liegt, gilt als Missbrauch – eine flüchtige Sandbox wird gestoppt. Normale Eval-Läufe, die zwischen schnellen Ausführungen und Buchführung wechseln, kommen da nicht in die Nähe. Ein Benchmark, der stundenlang volle CPU verbrennt (ein großes Projekt pro Lösung kompilieren, numerische Stresstests), schon. Dafür nehmen Sie einen VPS pro Monat: Der Tarif AI agent bietet 4 vCPU und 4 GB für $10.
Was ein Lauf kostet
Sie zahlen pro Sekunde für vCPU und RAM des Tarifs, mindestens 60 Sekunden, aus einem Prepaid-Guthaben.
| Last | Tarif | Zeit | Ungefähre Kosten |
|---|---|---|---|
| 1.000 kurze Python-Lösungen | small (0.5 vCPU, 1 GB) | ~20 Min. | $0.011 |
| 5.000 Lösungen, numpy erlaubt | standard (1 vCPU, 2 GB) | ~2 Std. | $0.13 |
| Build + Tests pro Lösung | plus (2 vCPU, 4 GB) | ~3 Std. | $0.40 |
Die Modellaufrufe, die diese Lösungen erzeugen, kosten Sie mehr als die Ausführung – meist eine Größenordnung mehr.
Schlüssel und Reproduzierbarkeit
Wenn das Harness aus der Sandbox heraus eine Modell-API aufruft – etwa für Bewertung im Stil LLM-as-judge –, übergeben Sie den Schlüssel als Umgebungsvariable der Sandbox. Die Werte werden verschlüsselt gespeichert, nie geloggt, und die API gibt nur die Variablennamen zurück.
Für Reproduzierbarkeit pinnen Sie Paketversionen im Harness und notieren den Sandbox-Tarif zu den Ergebnissen. Jede Sandbox startet aus demselben sauberen Image, und das nimmt die Variable „lief auf meinem Laptop“ aus Ihren Zahlen. Ehrlich gesagt lohnt sich der Wechsel schon allein deswegen.
Starten Sie mit der Sandbox-Seite und der Sandbox-Dokumentation. Neue Konten erhalten $1 Sandbox-Zeit – genug für einen ersten Eval-Lauf mit einigen tausend Lösungen im Tarif small. Die SDK-Referenz behandelt Hintergrund-Tasks und Dateiübertragungen, und Sandbox-Limits und Abrechnung enthält die vollständige Kontingenttabelle.
Verwandt: Sandbox für KI-Agenten und die erste Agentenaufgabe in einer Sandbox.
Kommentare
Noch keine Kommentare. Sei der Erste.