−25%

στα Windows με ετήσια χρέωση, έως 31/10. Δείτε τα πακέτα

EQVPS
Ξεκινήστε

Sandbox για αξιολόγηση LLM: 1.000 λύσεις γραμμένες από μοντέλο για περίπου ένα σεντ

Η βαθμολόγηση ενός μοντέλου σε προγραμματιστικές εργασίες σημαίνει εκτέλεση χιλιάδων προγραμμάτων που κανείς δεν έγραψε με το χέρι. Τρέξτε τα σε sandboxes μίας χρήσης πάνω σε microVM αντί για το laptop σας — χρέωση ανά δευτερόλεπτο, με μια ειλικρινή σημείωση για τη διεκπεραιωτική ικανότητα και τα όρια CPU.

Τα benchmarks κώδικα κρύβουν ένα βρόμικο μυστικό: για να βαθμολογήσετε ένα μοντέλο πρέπει να εκτελέσετε ό,τι έγραψε. Μια εκτέλεση pass@k σε μερικές εκατοντάδες προβλήματα με δέκα λύσεις το καθένα σημαίνει χιλιάδες φρεσκοπαραγόμενα προγράμματα — και δεν θα κάνατε ποτέ curl | bash ούτε ένα από αυτά αν ερχόταν από άγνωστο.

Οι περισσότεροι ξεκινούν στο laptop τους με ένα subprocess.run και ένα χρονικό όριο. Δουλεύει μέχρι μια λύση να γράψει αρχείο 40 GB, να κάνει fork μέχρι να κολλήσει η μηχανή ή να διαβάσει σιωπηλά τον αρχικό σας κατάλογο. Η λύση δεν είναι ένα εξυπνότερο χρονικό όριο. Είναι να τρέχετε τις λύσεις κάπου που δεν σας νοιάζει.

Η ρύθμιση που δουλεύει

Ένα sandbox είναι ένα microVM Firecracker με Python 3.12, Node.js 22 και bash, που ξεκινά σε περίπου ένα δευτερόλεπτο και διαγράφεται όταν τελειώσετε. Η εξερχόμενη σύνδεση λειτουργεί, η εισερχόμενη όχι, και τίποτα δικό σας δεν βρίσκεται μέσα.

Η παγίδα είναι να αντιμετωπίζετε ένα sandbox σαν κλήση συνάρτησης. Το καθένα χρεώνεται τουλάχιστον 60 δευτερόλεπτα και χρειάζεται ένα δευτερόλεπτο για να ξεκινήσει, οπότε ένα sandbox ανά λύση είναι αργό και σπάταλο. Αντί γι' αυτό, βάλτε το harness μέσα:

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. Μια λύση που ξεφεύγει σκοτώνει τη δική της υποδιεργασία, όχι την εκτέλεση. Αν μια λύση καταφέρει να χαλάσει το ίδιο το sandbox, χάνετε ένα κομμάτι, αναδημιουργείτε το sandbox και συνεχίζετε.

Τα αρχεία φτάνουν έως 5 MB ανά μεταφορά, οπότε χωρίστε τα μεγάλα σύνολα δεδομένων σε κομμάτια — κάτι που θέλετε έτσι κι αλλιώς για παραλληλισμό.

Διεκπεραιωτική ικανότητα, ειλικρινά

Ένας λογαριασμός μπορεί να έχει έως 20 sandboxes, αλλά 2 εντολές εκτελούνται ταυτόχρονα. Μια εργασία παρασκηνίου μετράει όσο τρέχει. Άρα μια γρήγορη αξιολόγηση μοιάζει με δύο sandboxes που αλέθουν το καθένα το κομμάτι του στο παρασκήνιο, όχι με είκοσι sandboxes που τσακώνονται για δύο θέσεις.

Για τυπικά benchmarks κώδικα αυτό αρκεί και περισσεύει: οι περισσότερες λύσεις τελειώνουν σε λιγότερο από ένα δευτερόλεπτο, και ένα sandbox περνά χιλιάδες την ώρα. Αν πρέπει να αξιολογήσετε πολλά μοντέλα ταυτόχρονα σε τεράστια σουίτα, θα χτυπήσετε ταβάνι. Τότε ένα VPS με τη δική σας απομόνωση είναι το καλύτερο εργαλείο.

Ο κανόνας CPU που πρέπει να ξέρετε

Τα sandboxes είναι φτιαγμένα για εργασία σε εκρήξεις. Ένα sandbox που μένει πάνω από 90% CPU για περισσότερα από 15 λεπτά θεωρείται κατάχρηση — ένα προσωρινό sandbox σταματά. Οι κανονικές αξιολογήσεις, που εναλλάσσουν γρήγορες εκτελέσεις με καταγραφή αποτελεσμάτων, δεν πλησιάζουν καν. Ένα benchmark που καίει πλήρη CPU για ώρες (μεταγλώττιση μεγάλου έργου ανά λύση, αριθμητικές δοκιμές αντοχής) θα πλησιάσει. Γι' αυτό πάρτε VPS με τον μήνα: το τιμολόγιο AI agent δίνει 4 vCPU και 4 GB για $10.

Πόσο κοστίζει μια εκτέλεση

Πληρώνετε ανά δευτερόλεπτο τα vCPU και τη RAM του τιμολογίου, ελάχιστο 60 δευτερόλεπτα, από προπληρωμένο υπόλοιπο.

ΦόρτοςΤιμολόγιοΧρόνοςΚατά προσέγγιση κόστος
1.000 σύντομες λύσεις Pythonsmall (0.5 vCPU, 1 GB)~20 λεπτά$0.011
5.000 λύσεις, επιτρέπεται numpystandard (1 vCPU, 2 GB)~2 ώρες$0.13
Build + δοκιμές ανά λύσηplus (2 vCPU, 4 GB)~3 ώρες$0.40

Οι κλήσεις στο μοντέλο που παράγουν αυτές τις λύσεις θα σας κοστίσουν περισσότερο από την εκτέλεση — συνήθως κατά μία τάξη μεγέθους.

Κλειδιά και αναπαραγωγιμότητα

Αν το harness καλεί API μοντέλου μέσα από το sandbox — για παράδειγμα για βαθμολόγηση τύπου LLM-as-judge — περάστε το κλειδί ως μεταβλητή περιβάλλοντος του sandbox. Οι τιμές αποθηκεύονται κρυπτογραφημένες, δεν καταγράφονται ποτέ σε logs, και το API επιστρέφει μόνο τα ονόματα των μεταβλητών.

Για αναπαραγωγιμότητα, κλειδώστε τις εκδόσεις πακέτων στο harness σας και καταγράψτε το τιμολόγιο του sandbox μαζί με τα αποτελέσματα. Κάθε sandbox ξεκινά από την ίδια καθαρή εικόνα, κάτι που αφαιρεί τη μεταβλητή «στο laptop μου δούλευε» από τους αριθμούς σας. Ειλικρινά, μόνο αυτό αξίζει την αλλαγή.

Ξεκινήστε από τη σελίδα των sandboxes και την τεκμηρίωση των sandboxes. Οι νέοι λογαριασμοί παίρνουν $1 χρόνου sandbox — αρκετό για μια πρώτη αξιολόγηση μερικών χιλιάδων λύσεων στο τιμολόγιο small. Η τεκμηρίωση του SDK καλύπτει τις εργασίες παρασκηνίου και τις μεταφορές αρχείων, και τα όρια και χρέωση των sandboxes περιέχουν τον πλήρη πίνακα ορίων.

Σχετικά: sandbox για πράκτορες AI και η πρώτη εργασία πράκτορα σε sandbox.

Έτοιμοι για ανάπτυξη; Πληρωμή με crypto, χωρίς KYC — έτοιμο σε περίπου ένα λεπτό.

Ανάπτυξη τώρα →

Συχνές ερωτήσεις

Γιατί μια αξιολόγηση χρειάζεται sandbox;

Επειδή εκτελείτε χιλιάδες προγράμματα γραμμένα από μοντέλο. Τα περισσότερα είναι αθώα, μερικά κάνουν ατέρμονο βρόχο, λίγα διαγράφουν αρχεία ή ανοίγουν συνδέσεις δικτύου. Στον σταθμό εργασίας σας αυτό είναι κίνδυνος για τα δεδομένα σας· σε ένα sandbox είναι απλώς μια αποτυχημένη λύση.

Να δημιουργώ ένα sandbox ανά λύση;

Συνήθως όχι. Η δημιουργία sandbox διαρκεί περίπου ένα δευτερόλεπτο και χρεώνεται τουλάχιστον 60 δευτερόλεπτα, οπότε ένα sandbox ανά λύση σπαταλά και τα δύο. Τρέξτε μέσα σε ένα sandbox ένα harness που εκτελεί πολλές λύσεις, την καθεμία με δικό της χρονικό όριο, και αναδημιουργήστε το sandbox ανάμεσα σε μοντέλα ή όταν κάτι το χαλάσει.

Πόσο γρήγορα μπορώ να πάω;

Ένας λογαριασμός εκτελεί το πολύ 2 εντολές ταυτόχρονα σε έως 20 sandboxes. Το πρακτικό μοτίβο είναι λίγα sandboxes, το καθένα με το harness σας να τρέχει ως εργασία παρασκηνίου πάνω σε ένα κομμάτι του συνόλου δεδομένων.

Μπορώ να τρέξω ένα μακρύ benchmark για ώρες;

Ως εργασία παρασκηνίου, ναι, μέχρι να λήξει η διάρκεια ζωής του sandbox (24 ώρες για προσωρινό). Όμως ένα sandbox με πλήρη φόρτο CPU για πάνω από 15 λεπτά θεωρείται κατάχρηση. Οι αξιολογήσεις σε εκρήξεις είναι εντάξει· οι σταθεροί πολύωροι υπολογισμοί ανήκουν σε VPS.

Μπορεί το sandbox να καλέσει το API του μοντέλου μου;

Η εξερχόμενη σύνδεση στο διαδίκτυο είναι ανοιχτή, οπότε ναι. Περάστε το κλειδί API ως μεταβλητή περιβάλλοντος του sandbox — αποθηκεύεται κρυπτογραφημένο και το API δεν το επιστρέφει ποτέ — αντί να το επικολλήσετε σε παραγόμενο κώδικα.

Σχόλια

Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.

Αφήστε ένα σχόλιο

Τα σχόλια ελέγχονται πριν εμφανιστούν.