−25%

auf Windows bei Jahreszahlung, bis 31.10. Zu den Tarifen

EQVPS
Loslegen

Sandbox für LLM-Evaluierung: 1.000 vom Modell geschriebene Lösungen für etwa einen Cent

Ein Modell bei Programmieraufgaben zu bewerten heißt, tausende Programme auszuführen, die niemand von Hand geschrieben hat. Führen Sie sie in Wegwerf-Sandboxes auf microVMs aus statt auf Ihrem Laptop – sekundengenaue Abrechnung, ehrlich zu Durchsatz und CPU-Grenzen.

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.

LastTarifZeitUngefähre Kosten
1.000 kurze Python-Lösungensmall (0.5 vCPU, 1 GB)~20 Min.$0.011
5.000 Lösungen, numpy erlaubtstandard (1 vCPU, 2 GB)~2 Std.$0.13
Build + Tests pro Lösungplus (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.

Bereit zum Bereitstellen? Zahle in Krypto, ohne KYC — online in etwa einer Minute.

Bereitstellen →

FAQ

Warum braucht eine Evaluierung überhaupt eine Sandbox?

Weil Sie tausende Programme ausführen, die ein Modell geschrieben hat. Die meisten sind harmlos, manche laufen endlos, einige löschen Dateien oder öffnen Netzwerkverbindungen. Auf Ihrer Workstation ist das ein Risiko für Ihre Daten; in einer Sandbox ist es eine gescheiterte Lösung.

Soll ich pro Lösung eine Sandbox anlegen?

Meist nicht. Eine Sandbox anzulegen dauert etwa eine Sekunde und wird mit mindestens 60 Sekunden abgerechnet, eine Sandbox pro Lösung verschwendet also beides. Lassen Sie in einer Sandbox ein Harness laufen, das viele Lösungen mit jeweils eigenem Timeout ausführt, und legen Sie die Sandbox zwischen Modellen neu an oder wenn etwas sie kaputt macht.

Wie schnell kann ich werden?

Ein Konto führt höchstens 2 Befehle gleichzeitig aus, verteilt auf bis zu 20 Sandboxes. Das praktische Muster sind wenige Sandboxes, in denen Ihr Harness jeweils als Hintergrund-Task einen Teil des Datensatzes abarbeitet.

Kann ich einen langen Benchmark stundenlang laufen lassen?

Als Hintergrund-Task ja, bis zum Ende der Sandbox-Lebensdauer (24 Stunden bei einer flüchtigen). Aber eine Sandbox, die länger als 15 Minuten unter voller CPU-Last steht, gilt als Missbrauch. Stoßweise Eval-Läufe sind in Ordnung; stundenlange gleichmäßige Rechenarbeit gehört auf einen VPS.

Kann die Sandbox die API meines Modells aufrufen?

Ausgehendes Internet ist offen, also ja. Übergeben Sie den API-Schlüssel als Umgebungsvariable der Sandbox – er wird verschlüsselt gespeichert und von der API nie zurückgegeben –, statt ihn in generierten Code einzufügen.

Kommentare

Noch keine Kommentare. Sei der Erste.

Kommentar hinterlassen

Kommentare werden vor der Anzeige moderiert.